atom.io 0.15.3 → 0.15.4
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/data/dist/index.cjs +9 -0
- package/data/dist/index.cjs.map +1 -1
- package/data/dist/index.js +9 -0
- package/data/dist/index.js.map +1 -1
- package/data/src/join.ts +9 -0
- package/dist/{chunk-K22LR3V6.js → chunk-RLZQ6IIY.js} +11 -2
- package/dist/chunk-RLZQ6IIY.js.map +1 -0
- package/dist/index.cjs +11 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +89 -72
- package/dist/index.js +1 -1
- package/internal/dist/index.cjs +16 -16
- package/internal/dist/index.cjs.map +1 -1
- package/internal/dist/index.d.ts +18 -18
- package/internal/dist/index.js +17 -17
- package/internal/dist/index.js.map +1 -1
- package/internal/src/atom/create-regular-atom.ts +1 -1
- package/internal/src/mutable/tracker.ts +3 -3
- package/internal/src/operation.ts +1 -1
- package/internal/src/selector/create-read-write-selector.ts +1 -1
- package/internal/src/selector/create-readonly-selector.ts +1 -1
- package/internal/src/store/store.ts +4 -4
- package/internal/src/store/withdraw.ts +7 -9
- package/internal/src/subscribe/subscribe-to-timeline.ts +4 -4
- package/internal/src/timeline/add-atom-to-timeline.ts +7 -7
- package/internal/src/timeline/create-timeline.ts +29 -21
- package/internal/src/timeline/time-travel.ts +1 -1
- package/internal/src/transaction/apply-transaction.ts +2 -2
- package/internal/src/transaction/build-transaction.ts +1 -1
- package/internal/src/transaction/create-transaction.ts +1 -1
- package/introspection/dist/index.cjs +9 -9
- package/introspection/dist/index.cjs.map +1 -1
- package/introspection/dist/index.d.ts +2 -2
- package/introspection/dist/index.js +9 -9
- package/introspection/dist/index.js.map +1 -1
- package/introspection/src/attach-atom-index.ts +2 -2
- package/introspection/src/attach-introspection-states.ts +2 -2
- package/introspection/src/attach-selector-index.ts +2 -2
- package/introspection/src/attach-timeline-family.ts +6 -6
- package/introspection/src/attach-timeline-index.ts +6 -4
- package/introspection/src/attach-transaction-index.ts +1 -1
- package/package.json +8 -9
- package/react/dist/index.cjs.map +1 -1
- package/react/dist/index.d.ts +1 -1
- package/react/dist/index.js.map +1 -1
- package/react/src/store-hooks.ts +1 -1
- package/react-devtools/dist/index.cjs +7 -9
- package/react-devtools/dist/index.cjs.map +1 -1
- package/react-devtools/dist/index.d.ts +7 -262
- package/react-devtools/dist/index.js +7 -9
- package/react-devtools/dist/index.js.map +1 -1
- package/react-devtools/src/TimelineIndex.tsx +2 -2
- package/react-devtools/src/Updates.tsx +1 -1
- package/realtime-client/dist/index.cjs +1 -1
- package/realtime-client/dist/index.cjs.map +1 -1
- package/realtime-client/dist/index.d.ts +2 -2
- package/realtime-client/dist/index.js +1 -1
- package/realtime-client/dist/index.js.map +1 -1
- package/realtime-client/src/realtime-state.ts +3 -3
- package/realtime-react/dist/index.cjs +2 -4
- package/realtime-react/dist/index.cjs.map +1 -1
- package/realtime-react/dist/index.js +2 -4
- package/realtime-react/dist/index.js.map +1 -1
- package/realtime-react/src/realtime-context.tsx +2 -4
- package/src/index.ts +10 -0
- package/src/subscribe.ts +7 -11
- package/src/timeline.ts +18 -10
- package/src/validators.ts +74 -0
- package/dist/chunk-K22LR3V6.js.map +0 -1
- package/internal/src/set-state/copy-mutable-into-new-store.ts +0 -34
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/attach-introspection-states.ts","../src/attach-atom-index.ts","../src/attach-selector-index.ts","../src/attach-timeline-family.ts","../src/attach-timeline-index.ts","../src/attach-transaction-index.ts","../src/attach-transaction-logs.ts"],"names":["IMPLICIT","createRegularAtom","createSelector","newest","createRegularAtomFamily","createSelectorFamily"],"mappings":"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","sourcesContent":["import type {\n\tReadonlySelectorFamily,\n\tReadonlySelectorToken,\n\tTimelineToken,\n\tTransactionToken,\n\tTransactionUpdate,\n\tƒn,\n} from \"atom.io\"\nimport * as Internal from \"atom.io/internal\"\nimport type { Timeline } from \"atom.io/internal\"\n\nimport { type AtomTokenIndex, attachAtomIndex } from \"./attach-atom-index\"\nimport type { SelectorTokenIndex } from \"./attach-selector-index\"\nimport { attachSelectorIndex } from \"./attach-selector-index\"\nimport { attachTimelineFamily } from \"./attach-timeline-family\"\nimport { attachTimelineIndex } from \"./attach-timeline-index\"\nimport { attachTransactionIndex } from \"./attach-transaction-index\"\nimport { attachTransactionLogs } from \"./attach-transaction-logs\"\n\nexport const attachIntrospectionStates = (\n\tstore: Internal.Store = Internal.IMPLICIT.STORE,\n): {\n\tatomIndex: ReadonlySelectorToken<AtomTokenIndex>\n\tselectorIndex: ReadonlySelectorToken<SelectorTokenIndex>\n\ttransactionIndex: ReadonlySelectorToken<TransactionToken<ƒn>[]>\n\tfindTransactionLogState: ReadonlySelectorFamily<TransactionUpdate<ƒn>[]>\n\ttimelineIndex: ReadonlySelectorToken<TimelineToken[]>\n\tfindTimelineState: ReadonlySelectorFamily<Timeline>\n} => {\n\treturn {\n\t\tatomIndex: attachAtomIndex(store),\n\t\tselectorIndex: attachSelectorIndex(store),\n\t\ttransactionIndex: attachTransactionIndex(store),\n\t\tfindTransactionLogState: attachTransactionLogs(store),\n\t\ttimelineIndex: attachTimelineIndex(store),\n\t\tfindTimelineState: attachTimelineFamily(store),\n\t}\n}\n","import type { AtomToken, ReadonlySelectorToken } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tIMPLICIT,\n\tcreateRegularAtom,\n\tcreateSelector,\n\tnewest,\n} from \"atom.io/internal\"\n\nimport type { StateTokenIndex } from \".\"\n\nexport type AtomTokenIndex = StateTokenIndex<AtomToken<unknown>>\n\nexport const attachAtomIndex = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorToken<AtomTokenIndex> => {\n\tconst atomTokenIndexState__INTERNAL = createRegularAtom<AtomTokenIndex>(\n\t\t{\n\t\t\tkey: `👁🗨 Atom Token Index (Internal)`,\n\t\t\tdefault: () => {\n\t\t\t\tconst defaultAtomIndex = [...store.atoms]\n\t\t\t\t\t.filter(([key]) => !key.includes(`👁🗨`))\n\t\t\t\t\t.reduce<AtomTokenIndex>((acc, [key]) => {\n\t\t\t\t\t\tacc[key] = { key, type: `atom` }\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}, {})\n\t\t\t\treturn defaultAtomIndex\n\t\t\t},\n\t\t\teffects: [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tstore.subject.atomCreation.subscribe(`introspection`, (atomToken) => {\n\t\t\t\t\t\tif (atomToken.key.includes(`👁🗨`)) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst set = () =>\n\t\t\t\t\t\t\tsetSelf((state) => {\n\t\t\t\t\t\t\t\tconst { key, family } = atomToken\n\t\t\t\t\t\t\t\tif (family) {\n\t\t\t\t\t\t\t\t\tconst { key: familyKey, subKey } = family\n\t\t\t\t\t\t\t\t\tconst current = state[familyKey]\n\t\t\t\t\t\t\t\t\tif (current === undefined || `familyMembers` in current) {\n\t\t\t\t\t\t\t\t\t\tconst familyKeyState = current || {\n\t\t\t\t\t\t\t\t\t\t\tkey: familyKey,\n\t\t\t\t\t\t\t\t\t\t\tfamilyMembers: {},\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t\t\t[familyKey]: {\n\t\t\t\t\t\t\t\t\t\t\t\t...familyKeyState,\n\t\t\t\t\t\t\t\t\t\t\t\tfamilyMembers: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...familyKeyState.familyMembers,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[subKey]: atomToken,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t[key]: atomToken,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\tif (newest(store).operation.open) {\n\t\t\t\t\t\t\tconst unsubscribe = store.subject.operationStatus.subscribe(\n\t\t\t\t\t\t\t\t`introspection: waiting to update atom index`,\n\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\tunsubscribe()\n\t\t\t\t\t\t\t\t\tset()\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tset()\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\treturn createSelector(\n\t\t{\n\t\t\tkey: `👁🗨 Atom Token Index`,\n\t\t\tget: ({ get }) => get(atomTokenIndexState__INTERNAL),\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n}\n","import type { ReadonlySelectorToken, SelectorToken } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tIMPLICIT,\n\tcreateRegularAtom,\n\tcreateSelector,\n\tnewest,\n} from \"atom.io/internal\"\n\nimport type { StateTokenIndex } from \".\"\n\nexport type SelectorTokenIndex = StateTokenIndex<\n\tReadonlySelectorToken<unknown> | SelectorToken<unknown>\n>\n\nexport const attachSelectorIndex = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorToken<SelectorTokenIndex> => {\n\tconst readonlySelectorTokenIndexState__INTERNAL =\n\t\tcreateRegularAtom<SelectorTokenIndex>(\n\t\t\t{\n\t\t\t\tkey: `👁🗨 Selector Token Index (Internal)`,\n\t\t\t\tdefault: () =>\n\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t[...store.readonlySelectors]\n\t\t\t\t\t\t\t.filter(([key]) => !key.includes(`👁🗨`))\n\t\t\t\t\t\t\t.reduce<SelectorTokenIndex>((acc, [key]) => {\n\t\t\t\t\t\t\t\tacc[key] = { key, type: `readonly_selector` }\n\t\t\t\t\t\t\t\treturn acc\n\t\t\t\t\t\t\t}, {}),\n\t\t\t\t\t\t[...store.selectors].reduce<SelectorTokenIndex>((acc, [key]) => {\n\t\t\t\t\t\t\tacc[key] = { key, type: `selector` }\n\t\t\t\t\t\t\treturn acc\n\t\t\t\t\t\t}, {}),\n\t\t\t\t\t),\n\t\t\t\teffects: [\n\t\t\t\t\t({ setSelf }) => {\n\t\t\t\t\t\tstore.subject.selectorCreation.subscribe(\n\t\t\t\t\t\t\t`introspection`,\n\t\t\t\t\t\t\t(selectorToken) => {\n\t\t\t\t\t\t\t\tif (selectorToken.key.includes(`👁🗨`)) {\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst set = () =>\n\t\t\t\t\t\t\t\t\tsetSelf((state) => {\n\t\t\t\t\t\t\t\t\t\tconst { key, family } = selectorToken\n\t\t\t\t\t\t\t\t\t\tif (family) {\n\t\t\t\t\t\t\t\t\t\t\tconst { key: familyKey, subKey } = family\n\t\t\t\t\t\t\t\t\t\t\tconst current = state[familyKey]\n\t\t\t\t\t\t\t\t\t\t\tif (current === undefined || `familyMembers` in current) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst familyKeyState = current || {\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: familyKey,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfamilyMembers: {},\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[familyKey]: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...familyKeyState,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfamilyMembers: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...familyKeyState.familyMembers,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[subKey]: selectorToken,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t\t\t[key]: selectorToken,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\tif (newest(store).operation.open) {\n\t\t\t\t\t\t\t\t\tconst unsubscribe = store.subject.operationStatus.subscribe(\n\t\t\t\t\t\t\t\t\t\t`introspection: waiting to update selector index`,\n\t\t\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\t\t\tunsubscribe()\n\t\t\t\t\t\t\t\t\t\t\tset()\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tset()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tundefined,\n\t\t\tstore,\n\t\t)\n\treturn createSelector(\n\t\t{\n\t\t\tkey: `👁🗨 Selector Token Index`,\n\t\t\tget: ({ get }) => get(readonlySelectorTokenIndexState__INTERNAL),\n\t\t},\n\t\tundefined,\n\t\tIMPLICIT.STORE,\n\t)\n}\n","import type { ReadonlySelectorFamily } from \"atom.io\"\nimport type { Store, Timeline } from \"atom.io/internal\"\nimport {\n\tIMPLICIT,\n\tSubject,\n\tcreateRegularAtomFamily,\n\tcreateSelectorFamily,\n} from \"atom.io/internal\"\n\nexport const attachTimelineFamily = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorFamily<Timeline> => {\n\tconst findTimelineLogState__INTERNAL = createRegularAtomFamily<\n\t\tTimeline,\n\t\tstring\n\t>(\n\t\t{\n\t\t\tkey: `👁🗨 Timeline Update Log (Internal)`,\n\t\t\tdefault: (key) =>\n\t\t\t\tstore.timelines.get(key) ?? {\n\t\t\t\t\ttype: `timeline`,\n\t\t\t\t\tkey: ``,\n\t\t\t\t\tat: 0,\n\t\t\t\t\ttimeTraveling: null,\n\t\t\t\t\thistory: [],\n\t\t\t\t\tselectorTime: null,\n\t\t\t\t\ttransactionKey: null,\n\t\t\t\t\tinstall: () => {},\n\t\t\t\t\tsubject: new Subject(),\n\t\t\t\t},\n\t\t\teffects: (key) => [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tconst tl = store.timelines.get(key)\n\t\t\t\t\ttl?.subject.subscribe(`introspection`, (_) => {\n\t\t\t\t\t\tif (store.operation.open === true) {\n\t\t\t\t\t\t\tconst unsubscribe = store.subject.operationStatus.subscribe(\n\t\t\t\t\t\t\t\t`introspection`,\n\t\t\t\t\t\t\t\t(operationStatus) => {\n\t\t\t\t\t\t\t\t\tif (operationStatus.open === false) {\n\t\t\t\t\t\t\t\t\t\tunsubscribe()\n\t\t\t\t\t\t\t\t\t\tsetSelf({ ...tl })\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetSelf({ ...tl })\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tstore,\n\t)\n\tconst findTimelineLogState = createSelectorFamily<Timeline, string>(\n\t\t{\n\t\t\tkey: `👁🗨 Timeline Update Log`,\n\t\t\tget:\n\t\t\t\t(key) =>\n\t\t\t\t({ get }) =>\n\t\t\t\t\tget(findTimelineLogState__INTERNAL(key)),\n\t\t},\n\t\tstore,\n\t)\n\treturn findTimelineLogState\n}\n","import type { ReadonlySelectorToken, TimelineToken } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport { IMPLICIT, createRegularAtom, createSelector } from \"atom.io/internal\"\n\nexport const attachTimelineIndex = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorToken<TimelineToken[]> => {\n\tconst timelineTokenIndexState__INTERNAL = createRegularAtom<TimelineToken[]>(\n\t\t{\n\t\t\tkey: `👁🗨 Timeline Token Index (Internal)`,\n\t\t\tdefault: () =>\n\t\t\t\t[...store.timelines].map(([key]): TimelineToken => {\n\t\t\t\t\treturn { key, type: `timeline` }\n\t\t\t\t}),\n\t\t\teffects: [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tstore.subject.timelineCreation.subscribe(\n\t\t\t\t\t\t`introspection`,\n\t\t\t\t\t\t(timelineToken) => {\n\t\t\t\t\t\t\tsetSelf((state) => [...state, timelineToken])\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\tconst timelineTokenIndex = createSelector(\n\t\t{\n\t\t\tkey: `👁🗨 Timeline Token Index`,\n\t\t\tget: ({ get }) => get(timelineTokenIndexState__INTERNAL),\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\treturn timelineTokenIndex\n}\n","import type { ReadonlySelectorToken, TransactionToken, ƒn } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport { IMPLICIT, createRegularAtom, createSelector } from \"atom.io/internal\"\n\nexport const attachTransactionIndex = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorToken<TransactionToken<ƒn>[]> => {\n\tconst transactionTokenIndexState__INTERNAL = createRegularAtom<\n\t\tTransactionToken<ƒn>[]\n\t>(\n\t\t{\n\t\t\tkey: `👁🗨 Transaction Token Index (Internal)`,\n\t\t\tdefault: () =>\n\t\t\t\t[...store.transactions].map(([key]): TransactionToken<ƒn> => {\n\t\t\t\t\treturn { key, type: `transaction` }\n\t\t\t\t}),\n\t\t\teffects: [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tstore.subject.transactionCreation.subscribe(\n\t\t\t\t\t\t`introspection`,\n\t\t\t\t\t\t(transactionToken) => {\n\t\t\t\t\t\t\tsetSelf((state) => [...state, transactionToken])\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\tconst transactionTokenIndex = createSelector(\n\t\t{\n\t\t\tkey: `👁🗨 Transaction Token Index`,\n\t\t\tget: ({ get }) => get(transactionTokenIndexState__INTERNAL),\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\treturn transactionTokenIndex\n}\n","import type { ReadonlySelectorFamily, TransactionUpdate, ƒn } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tIMPLICIT,\n\tcreateRegularAtomFamily,\n\tcreateSelectorFamily,\n} from \"atom.io/internal\"\n\nexport const attachTransactionLogs = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorFamily<TransactionUpdate<ƒn>[]> => {\n\tconst findTransactionUpdateLog = createRegularAtomFamily<\n\t\tTransactionUpdate<ƒn>[],\n\t\tstring\n\t>(\n\t\t{\n\t\t\tkey: `👁🗨 Transaction Update Log (Internal)`,\n\t\t\tdefault: () => [],\n\t\t\teffects: (key) => [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tconst tx = store.transactions.get(key)\n\t\t\t\t\ttx?.subject.subscribe(`introspection`, (transactionUpdate) => {\n\t\t\t\t\t\tif (transactionUpdate.key === key) {\n\t\t\t\t\t\t\tsetSelf((state) => [...state, transactionUpdate])\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tstore,\n\t)\n\tconst findTransactionUpdateLogState = createSelectorFamily<\n\t\tTransactionUpdate<ƒn>[],\n\t\tstring\n\t>(\n\t\t{\n\t\t\tkey: `👁🗨 Transaction Update Log`,\n\t\t\tget:\n\t\t\t\t(key) =>\n\t\t\t\t({ get }) =>\n\t\t\t\t\tget(findTransactionUpdateLog(key)),\n\t\t},\n\t\tstore,\n\t)\n\treturn findTransactionUpdateLogState\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/attach-introspection-states.ts","../src/attach-atom-index.ts","../src/attach-selector-index.ts","../src/attach-timeline-family.ts","../src/attach-timeline-index.ts","../src/attach-transaction-index.ts","../src/attach-transaction-logs.ts"],"names":["IMPLICIT","createRegularAtom","createSelector","newest","createRegularAtomFamily","createSelectorFamily"],"mappings":"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","sourcesContent":["import type {\n\tReadonlySelectorFamily,\n\tReadonlySelectorToken,\n\tTimelineToken,\n\tTransactionToken,\n\tTransactionUpdate,\n\tƒn,\n} from \"atom.io\"\nimport * as Internal from \"atom.io/internal\"\nimport type { Timeline } from \"atom.io/internal\"\n\nimport { type AtomTokenIndex, attachAtomIndex } from \"./attach-atom-index\"\nimport type { SelectorTokenIndex } from \"./attach-selector-index\"\nimport { attachSelectorIndex } from \"./attach-selector-index\"\nimport { attachTimelineFamily } from \"./attach-timeline-family\"\nimport { attachTimelineIndex } from \"./attach-timeline-index\"\nimport { attachTransactionIndex } from \"./attach-transaction-index\"\nimport { attachTransactionLogs } from \"./attach-transaction-logs\"\n\nexport const attachIntrospectionStates = (\n\tstore: Internal.Store = Internal.IMPLICIT.STORE,\n): {\n\tatomIndex: ReadonlySelectorToken<AtomTokenIndex>\n\tselectorIndex: ReadonlySelectorToken<SelectorTokenIndex>\n\ttransactionIndex: ReadonlySelectorToken<TransactionToken<ƒn>[]>\n\tfindTransactionLogState: ReadonlySelectorFamily<TransactionUpdate<ƒn>[]>\n\ttimelineIndex: ReadonlySelectorToken<TimelineToken<any>[]>\n\tfindTimelineState: ReadonlySelectorFamily<Timeline<any>>\n} => {\n\treturn {\n\t\tatomIndex: attachAtomIndex(store),\n\t\tselectorIndex: attachSelectorIndex(store),\n\t\ttransactionIndex: attachTransactionIndex(store),\n\t\tfindTransactionLogState: attachTransactionLogs(store),\n\t\ttimelineIndex: attachTimelineIndex(store),\n\t\tfindTimelineState: attachTimelineFamily(store),\n\t}\n}\n","import type { AtomToken, ReadonlySelectorToken } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tIMPLICIT,\n\tcreateRegularAtom,\n\tcreateSelector,\n\tnewest,\n} from \"atom.io/internal\"\n\nimport type { StateTokenIndex } from \".\"\n\nexport type AtomTokenIndex = StateTokenIndex<AtomToken<unknown>>\n\nexport const attachAtomIndex = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorToken<AtomTokenIndex> => {\n\tconst atomTokenIndexState__INTERNAL = createRegularAtom<AtomTokenIndex>(\n\t\t{\n\t\t\tkey: `👁🗨 Atom Token Index (Internal)`,\n\t\t\tdefault: () => {\n\t\t\t\tconst defaultAtomIndex = [...store.atoms]\n\t\t\t\t\t.filter(([key]) => !key.includes(`👁🗨`))\n\t\t\t\t\t.reduce<AtomTokenIndex>((acc, [key]) => {\n\t\t\t\t\t\tacc[key] = { key, type: `atom` }\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}, {})\n\t\t\t\treturn defaultAtomIndex\n\t\t\t},\n\t\t\teffects: [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tstore.on.atomCreation.subscribe(`introspection`, (atomToken) => {\n\t\t\t\t\t\tif (atomToken.key.includes(`👁🗨`)) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst set = () =>\n\t\t\t\t\t\t\tsetSelf((state) => {\n\t\t\t\t\t\t\t\tconst { key, family } = atomToken\n\t\t\t\t\t\t\t\tif (family) {\n\t\t\t\t\t\t\t\t\tconst { key: familyKey, subKey } = family\n\t\t\t\t\t\t\t\t\tconst current = state[familyKey]\n\t\t\t\t\t\t\t\t\tif (current === undefined || `familyMembers` in current) {\n\t\t\t\t\t\t\t\t\t\tconst familyKeyState = current || {\n\t\t\t\t\t\t\t\t\t\t\tkey: familyKey,\n\t\t\t\t\t\t\t\t\t\t\tfamilyMembers: {},\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t\t\t[familyKey]: {\n\t\t\t\t\t\t\t\t\t\t\t\t...familyKeyState,\n\t\t\t\t\t\t\t\t\t\t\t\tfamilyMembers: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...familyKeyState.familyMembers,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[subKey]: atomToken,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t[key]: atomToken,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\tif (newest(store).operation.open) {\n\t\t\t\t\t\t\tconst unsubscribe = store.on.operationClose.subscribe(\n\t\t\t\t\t\t\t\t`introspection: waiting to update atom index`,\n\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\tunsubscribe()\n\t\t\t\t\t\t\t\t\tset()\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tset()\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\treturn createSelector(\n\t\t{\n\t\t\tkey: `👁🗨 Atom Token Index`,\n\t\t\tget: ({ get }) => get(atomTokenIndexState__INTERNAL),\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n}\n","import type { ReadonlySelectorToken, SelectorToken } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tIMPLICIT,\n\tcreateRegularAtom,\n\tcreateSelector,\n\tnewest,\n} from \"atom.io/internal\"\n\nimport type { StateTokenIndex } from \".\"\n\nexport type SelectorTokenIndex = StateTokenIndex<\n\tReadonlySelectorToken<unknown> | SelectorToken<unknown>\n>\n\nexport const attachSelectorIndex = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorToken<SelectorTokenIndex> => {\n\tconst readonlySelectorTokenIndexState__INTERNAL =\n\t\tcreateRegularAtom<SelectorTokenIndex>(\n\t\t\t{\n\t\t\t\tkey: `👁🗨 Selector Token Index (Internal)`,\n\t\t\t\tdefault: () =>\n\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t[...store.readonlySelectors]\n\t\t\t\t\t\t\t.filter(([key]) => !key.includes(`👁🗨`))\n\t\t\t\t\t\t\t.reduce<SelectorTokenIndex>((acc, [key]) => {\n\t\t\t\t\t\t\t\tacc[key] = { key, type: `readonly_selector` }\n\t\t\t\t\t\t\t\treturn acc\n\t\t\t\t\t\t\t}, {}),\n\t\t\t\t\t\t[...store.selectors].reduce<SelectorTokenIndex>((acc, [key]) => {\n\t\t\t\t\t\t\tacc[key] = { key, type: `selector` }\n\t\t\t\t\t\t\treturn acc\n\t\t\t\t\t\t}, {}),\n\t\t\t\t\t),\n\t\t\t\teffects: [\n\t\t\t\t\t({ setSelf }) => {\n\t\t\t\t\t\tstore.on.selectorCreation.subscribe(\n\t\t\t\t\t\t\t`introspection`,\n\t\t\t\t\t\t\t(selectorToken) => {\n\t\t\t\t\t\t\t\tif (selectorToken.key.includes(`👁🗨`)) {\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst set = () =>\n\t\t\t\t\t\t\t\t\tsetSelf((state) => {\n\t\t\t\t\t\t\t\t\t\tconst { key, family } = selectorToken\n\t\t\t\t\t\t\t\t\t\tif (family) {\n\t\t\t\t\t\t\t\t\t\t\tconst { key: familyKey, subKey } = family\n\t\t\t\t\t\t\t\t\t\t\tconst current = state[familyKey]\n\t\t\t\t\t\t\t\t\t\t\tif (current === undefined || `familyMembers` in current) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst familyKeyState = current || {\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: familyKey,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfamilyMembers: {},\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[familyKey]: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...familyKeyState,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfamilyMembers: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...familyKeyState.familyMembers,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[subKey]: selectorToken,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t\t\t[key]: selectorToken,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\tif (newest(store).operation.open) {\n\t\t\t\t\t\t\t\t\tconst unsubscribe = store.on.operationClose.subscribe(\n\t\t\t\t\t\t\t\t\t\t`introspection: waiting to update selector index`,\n\t\t\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\t\t\tunsubscribe()\n\t\t\t\t\t\t\t\t\t\t\tset()\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tset()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tundefined,\n\t\t\tstore,\n\t\t)\n\treturn createSelector(\n\t\t{\n\t\t\tkey: `👁🗨 Selector Token Index`,\n\t\t\tget: ({ get }) => get(readonlySelectorTokenIndexState__INTERNAL),\n\t\t},\n\t\tundefined,\n\t\tIMPLICIT.STORE,\n\t)\n}\n","import type { ReadonlySelectorFamily } from \"atom.io\"\nimport type { Store, Timeline } from \"atom.io/internal\"\nimport {\n\tIMPLICIT,\n\tSubject,\n\tcreateRegularAtomFamily,\n\tcreateSelectorFamily,\n} from \"atom.io/internal\"\n\nexport const attachTimelineFamily = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorFamily<Timeline<any>> => {\n\tconst findTimelineLogState__INTERNAL = createRegularAtomFamily<\n\t\tTimeline<any>,\n\t\tstring\n\t>(\n\t\t{\n\t\t\tkey: `👁🗨 Timeline Update Log (Internal)`,\n\t\t\tdefault: (key) =>\n\t\t\t\tstore.timelines.get(key) ?? {\n\t\t\t\t\ttype: `timeline`,\n\t\t\t\t\tkey: ``,\n\t\t\t\t\tat: 0,\n\t\t\t\t\ttimeTraveling: null,\n\t\t\t\t\thistory: [],\n\t\t\t\t\tselectorTime: null,\n\t\t\t\t\ttransactionKey: null,\n\t\t\t\t\tinstall: () => {},\n\t\t\t\t\tsubject: new Subject(),\n\t\t\t\t},\n\t\t\teffects: (key) => [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tconst tl = store.timelines.get(key)\n\t\t\t\t\ttl?.subject.subscribe(`introspection`, (_) => {\n\t\t\t\t\t\tif (store.operation.open === true) {\n\t\t\t\t\t\t\tconst unsubscribe = store.on.operationClose.subscribe(\n\t\t\t\t\t\t\t\t`introspection`,\n\t\t\t\t\t\t\t\t(operationClose) => {\n\t\t\t\t\t\t\t\t\tif (operationClose.open === false) {\n\t\t\t\t\t\t\t\t\t\tunsubscribe()\n\t\t\t\t\t\t\t\t\t\tsetSelf({ ...tl })\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetSelf({ ...tl })\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tstore,\n\t)\n\tconst findTimelineLogState = createSelectorFamily<Timeline<any>, string>(\n\t\t{\n\t\t\tkey: `👁🗨 Timeline Update Log`,\n\t\t\tget:\n\t\t\t\t(key) =>\n\t\t\t\t({ get }) =>\n\t\t\t\t\tget(findTimelineLogState__INTERNAL(key)),\n\t\t},\n\t\tstore,\n\t)\n\treturn findTimelineLogState\n}\n","import type { ReadonlySelectorToken, TimelineToken } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport { IMPLICIT, createRegularAtom, createSelector } from \"atom.io/internal\"\n\nexport const attachTimelineIndex = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorToken<TimelineToken<any>[]> => {\n\tconst timelineTokenIndexState__INTERNAL = createRegularAtom<\n\t\tTimelineToken<any>[]\n\t>(\n\t\t{\n\t\t\tkey: `👁🗨 Timeline Token Index (Internal)`,\n\t\t\tdefault: () =>\n\t\t\t\t[...store.timelines].map(([key]): TimelineToken<any> => {\n\t\t\t\t\treturn { key, type: `timeline` }\n\t\t\t\t}),\n\t\t\teffects: [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tstore.on.timelineCreation.subscribe(\n\t\t\t\t\t\t`introspection`,\n\t\t\t\t\t\t(timelineToken) => {\n\t\t\t\t\t\t\tsetSelf((state) => [...state, timelineToken])\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\tconst timelineTokenIndex = createSelector(\n\t\t{\n\t\t\tkey: `👁🗨 Timeline Token Index`,\n\t\t\tget: ({ get }) => get(timelineTokenIndexState__INTERNAL),\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\treturn timelineTokenIndex\n}\n","import type { ReadonlySelectorToken, TransactionToken, ƒn } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport { IMPLICIT, createRegularAtom, createSelector } from \"atom.io/internal\"\n\nexport const attachTransactionIndex = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorToken<TransactionToken<ƒn>[]> => {\n\tconst transactionTokenIndexState__INTERNAL = createRegularAtom<\n\t\tTransactionToken<ƒn>[]\n\t>(\n\t\t{\n\t\t\tkey: `👁🗨 Transaction Token Index (Internal)`,\n\t\t\tdefault: () =>\n\t\t\t\t[...store.transactions].map(([key]): TransactionToken<ƒn> => {\n\t\t\t\t\treturn { key, type: `transaction` }\n\t\t\t\t}),\n\t\t\teffects: [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tstore.on.transactionCreation.subscribe(\n\t\t\t\t\t\t`introspection`,\n\t\t\t\t\t\t(transactionToken) => {\n\t\t\t\t\t\t\tsetSelf((state) => [...state, transactionToken])\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\tconst transactionTokenIndex = createSelector(\n\t\t{\n\t\t\tkey: `👁🗨 Transaction Token Index`,\n\t\t\tget: ({ get }) => get(transactionTokenIndexState__INTERNAL),\n\t\t},\n\t\tundefined,\n\t\tstore,\n\t)\n\treturn transactionTokenIndex\n}\n","import type { ReadonlySelectorFamily, TransactionUpdate, ƒn } from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tIMPLICIT,\n\tcreateRegularAtomFamily,\n\tcreateSelectorFamily,\n} from \"atom.io/internal\"\n\nexport const attachTransactionLogs = (\n\tstore: Store = IMPLICIT.STORE,\n): ReadonlySelectorFamily<TransactionUpdate<ƒn>[]> => {\n\tconst findTransactionUpdateLog = createRegularAtomFamily<\n\t\tTransactionUpdate<ƒn>[],\n\t\tstring\n\t>(\n\t\t{\n\t\t\tkey: `👁🗨 Transaction Update Log (Internal)`,\n\t\t\tdefault: () => [],\n\t\t\teffects: (key) => [\n\t\t\t\t({ setSelf }) => {\n\t\t\t\t\tconst tx = store.transactions.get(key)\n\t\t\t\t\ttx?.subject.subscribe(`introspection`, (transactionUpdate) => {\n\t\t\t\t\t\tif (transactionUpdate.key === key) {\n\t\t\t\t\t\t\tsetSelf((state) => [...state, transactionUpdate])\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tstore,\n\t)\n\tconst findTransactionUpdateLogState = createSelectorFamily<\n\t\tTransactionUpdate<ƒn>[],\n\t\tstring\n\t>(\n\t\t{\n\t\t\tkey: `👁🗨 Transaction Update Log`,\n\t\t\tget:\n\t\t\t\t(key) =>\n\t\t\t\t({ get }) =>\n\t\t\t\t\tget(findTransactionUpdateLog(key)),\n\t\t},\n\t\tstore,\n\t)\n\treturn findTransactionUpdateLogState\n}\n"]}
|
|
@@ -28,7 +28,7 @@ export const attachAtomIndex = (
|
|
|
28
28
|
},
|
|
29
29
|
effects: [
|
|
30
30
|
({ setSelf }) => {
|
|
31
|
-
store.
|
|
31
|
+
store.on.atomCreation.subscribe(`introspection`, (atomToken) => {
|
|
32
32
|
if (atomToken.key.includes(`👁🗨`)) {
|
|
33
33
|
return
|
|
34
34
|
}
|
|
@@ -61,7 +61,7 @@ export const attachAtomIndex = (
|
|
|
61
61
|
}
|
|
62
62
|
})
|
|
63
63
|
if (newest(store).operation.open) {
|
|
64
|
-
const unsubscribe = store.
|
|
64
|
+
const unsubscribe = store.on.operationClose.subscribe(
|
|
65
65
|
`introspection: waiting to update atom index`,
|
|
66
66
|
() => {
|
|
67
67
|
unsubscribe()
|
|
@@ -24,8 +24,8 @@ export const attachIntrospectionStates = (
|
|
|
24
24
|
selectorIndex: ReadonlySelectorToken<SelectorTokenIndex>
|
|
25
25
|
transactionIndex: ReadonlySelectorToken<TransactionToken<ƒn>[]>
|
|
26
26
|
findTransactionLogState: ReadonlySelectorFamily<TransactionUpdate<ƒn>[]>
|
|
27
|
-
timelineIndex: ReadonlySelectorToken<TimelineToken[]>
|
|
28
|
-
findTimelineState: ReadonlySelectorFamily<Timeline
|
|
27
|
+
timelineIndex: ReadonlySelectorToken<TimelineToken<any>[]>
|
|
28
|
+
findTimelineState: ReadonlySelectorFamily<Timeline<any>>
|
|
29
29
|
} => {
|
|
30
30
|
return {
|
|
31
31
|
atomIndex: attachAtomIndex(store),
|
|
@@ -35,7 +35,7 @@ export const attachSelectorIndex = (
|
|
|
35
35
|
),
|
|
36
36
|
effects: [
|
|
37
37
|
({ setSelf }) => {
|
|
38
|
-
store.
|
|
38
|
+
store.on.selectorCreation.subscribe(
|
|
39
39
|
`introspection`,
|
|
40
40
|
(selectorToken) => {
|
|
41
41
|
if (selectorToken.key.includes(`👁🗨`)) {
|
|
@@ -70,7 +70,7 @@ export const attachSelectorIndex = (
|
|
|
70
70
|
}
|
|
71
71
|
})
|
|
72
72
|
if (newest(store).operation.open) {
|
|
73
|
-
const unsubscribe = store.
|
|
73
|
+
const unsubscribe = store.on.operationClose.subscribe(
|
|
74
74
|
`introspection: waiting to update selector index`,
|
|
75
75
|
() => {
|
|
76
76
|
unsubscribe()
|
|
@@ -9,9 +9,9 @@ import {
|
|
|
9
9
|
|
|
10
10
|
export const attachTimelineFamily = (
|
|
11
11
|
store: Store = IMPLICIT.STORE,
|
|
12
|
-
): ReadonlySelectorFamily<Timeline
|
|
12
|
+
): ReadonlySelectorFamily<Timeline<any>> => {
|
|
13
13
|
const findTimelineLogState__INTERNAL = createRegularAtomFamily<
|
|
14
|
-
Timeline
|
|
14
|
+
Timeline<any>,
|
|
15
15
|
string
|
|
16
16
|
>(
|
|
17
17
|
{
|
|
@@ -33,10 +33,10 @@ export const attachTimelineFamily = (
|
|
|
33
33
|
const tl = store.timelines.get(key)
|
|
34
34
|
tl?.subject.subscribe(`introspection`, (_) => {
|
|
35
35
|
if (store.operation.open === true) {
|
|
36
|
-
const unsubscribe = store.
|
|
36
|
+
const unsubscribe = store.on.operationClose.subscribe(
|
|
37
37
|
`introspection`,
|
|
38
|
-
(
|
|
39
|
-
if (
|
|
38
|
+
(operationClose) => {
|
|
39
|
+
if (operationClose.open === false) {
|
|
40
40
|
unsubscribe()
|
|
41
41
|
setSelf({ ...tl })
|
|
42
42
|
}
|
|
@@ -51,7 +51,7 @@ export const attachTimelineFamily = (
|
|
|
51
51
|
},
|
|
52
52
|
store,
|
|
53
53
|
)
|
|
54
|
-
const findTimelineLogState = createSelectorFamily<Timeline
|
|
54
|
+
const findTimelineLogState = createSelectorFamily<Timeline<any>, string>(
|
|
55
55
|
{
|
|
56
56
|
key: `👁🗨 Timeline Update Log`,
|
|
57
57
|
get:
|
|
@@ -4,17 +4,19 @@ import { IMPLICIT, createRegularAtom, createSelector } from "atom.io/internal"
|
|
|
4
4
|
|
|
5
5
|
export const attachTimelineIndex = (
|
|
6
6
|
store: Store = IMPLICIT.STORE,
|
|
7
|
-
): ReadonlySelectorToken<TimelineToken[]> => {
|
|
8
|
-
const timelineTokenIndexState__INTERNAL = createRegularAtom<
|
|
7
|
+
): ReadonlySelectorToken<TimelineToken<any>[]> => {
|
|
8
|
+
const timelineTokenIndexState__INTERNAL = createRegularAtom<
|
|
9
|
+
TimelineToken<any>[]
|
|
10
|
+
>(
|
|
9
11
|
{
|
|
10
12
|
key: `👁🗨 Timeline Token Index (Internal)`,
|
|
11
13
|
default: () =>
|
|
12
|
-
[...store.timelines].map(([key]): TimelineToken => {
|
|
14
|
+
[...store.timelines].map(([key]): TimelineToken<any> => {
|
|
13
15
|
return { key, type: `timeline` }
|
|
14
16
|
}),
|
|
15
17
|
effects: [
|
|
16
18
|
({ setSelf }) => {
|
|
17
|
-
store.
|
|
19
|
+
store.on.timelineCreation.subscribe(
|
|
18
20
|
`introspection`,
|
|
19
21
|
(timelineToken) => {
|
|
20
22
|
setSelf((state) => [...state, timelineToken])
|
|
@@ -16,7 +16,7 @@ export const attachTransactionIndex = (
|
|
|
16
16
|
}),
|
|
17
17
|
effects: [
|
|
18
18
|
({ setSelf }) => {
|
|
19
|
-
store.
|
|
19
|
+
store.on.transactionCreation.subscribe(
|
|
20
20
|
`introspection`,
|
|
21
21
|
(transactionToken) => {
|
|
22
22
|
setSelf((state) => [...state, transactionToken])
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "atom.io",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.4",
|
|
4
4
|
"description": "Composable and testable reactive data library.",
|
|
5
5
|
"homepage": "https://atom.io.fyi",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -48,19 +48,18 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@emotion/react": "11.11.3",
|
|
52
51
|
"@testing-library/react": "14.1.2",
|
|
53
52
|
"@types/http-proxy": "1.17.14",
|
|
54
53
|
"@types/npmlog": "7.0.0",
|
|
55
54
|
"@types/react": "18.2.46",
|
|
56
55
|
"@types/tmp": "0.2.6",
|
|
57
|
-
"@vitest/coverage-v8": "1.1.
|
|
58
|
-
"@vitest/ui": "1.1.
|
|
56
|
+
"@vitest/coverage-v8": "1.1.1",
|
|
57
|
+
"@vitest/ui": "1.1.1",
|
|
59
58
|
"concurrently": "8.2.2",
|
|
60
59
|
"drizzle-kit": "0.20.9",
|
|
61
|
-
"drizzle-orm": "0.29.
|
|
60
|
+
"drizzle-orm": "0.29.3",
|
|
62
61
|
"eslint": "8.56.0",
|
|
63
|
-
"framer-motion": "10.
|
|
62
|
+
"framer-motion": "10.17.4",
|
|
64
63
|
"happy-dom": "12.10.3",
|
|
65
64
|
"http-proxy": "1.18.1",
|
|
66
65
|
"npmlog": "7.0.1",
|
|
@@ -69,14 +68,14 @@
|
|
|
69
68
|
"react": "18.2.0",
|
|
70
69
|
"react-dom": "18.2.0",
|
|
71
70
|
"react-router-dom": "6.21.1",
|
|
72
|
-
"socket.io": "4.7.
|
|
73
|
-
"socket.io-client": "4.7.
|
|
71
|
+
"socket.io": "4.7.3",
|
|
72
|
+
"socket.io-client": "4.7.3",
|
|
74
73
|
"tmp": "0.2.1",
|
|
75
74
|
"tsup": "8.0.1",
|
|
76
75
|
"typescript": "5.3.3",
|
|
77
76
|
"vite": "5.0.10",
|
|
78
77
|
"vite-tsconfig-paths": "4.2.3",
|
|
79
|
-
"vitest": "1.1.
|
|
78
|
+
"vitest": "1.1.1"
|
|
80
79
|
},
|
|
81
80
|
"main": "dist/index.js",
|
|
82
81
|
"types": "dist/index.d.ts",
|
package/react/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/store-context.tsx","../src/store-hooks.ts"],"names":["React"],"mappings":";AACA,SAAS,gBAAgB;AACzB,YAAY,WAAW;AAQtB;AANM,IAAM,eAAqB,oBAAqB,SAAS,KAAK;AAE9D,IAAM,gBAGR,CAAC,EAAE,UAAU,QAAQ,SAAS,MAAM,MACxC,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAAQ,UAAS;;;ACVhD,YAAYA,YAAW;AAEvB,SAAS,UAAU,MAAM,UAAU,YAAY;AAQ/C;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAIA,SAAS,KACf,OACyD;AACzD,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,SAEI,cAAO,IAAI;AACrB,MAAI,OAAO,YAAY,MAAM;AAC5B,WAAO,UAAU,CAAC,SAAS,SAAS,OAAO,MAAM,KAAK;AAAA,EACvD;AACA,SAAO,OAAO;AACf;AAEO,SAAS,KAAQ,OAAoD;AAC3E,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,KAAW,aAAM;AACvB,SAAa;AAAA,IACZ,CAAC,aAAa,iBAAiB,OAAO,UAAU,SAAS,EAAE,IAAI,KAAK;AAAA,IACpE,MAAM,SAAS,OAAO,KAAK;AAAA,IAC3B,MAAM,SAAS,OAAO,KAAK;AAAA,EAC5B;AACD;AAEO,SAAS,QACf,OACe;AACf,QAAM,YAAY,aAAa,KAAK;AACpC,SAAO,KAAK,SAAS;AACtB;AASO,SAAS,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/store-context.tsx","../src/store-hooks.ts"],"names":["React"],"mappings":";AACA,SAAS,gBAAgB;AACzB,YAAY,WAAW;AAQtB;AANM,IAAM,eAAqB,oBAAqB,SAAS,KAAK;AAE9D,IAAM,gBAGR,CAAC,EAAE,UAAU,QAAQ,SAAS,MAAM,MACxC,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAAQ,UAAS;;;ACVhD,YAAYA,YAAW;AAEvB,SAAS,UAAU,MAAM,UAAU,YAAY;AAQ/C;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAIA,SAAS,KACf,OACyD;AACzD,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,SAEI,cAAO,IAAI;AACrB,MAAI,OAAO,YAAY,MAAM;AAC5B,WAAO,UAAU,CAAC,SAAS,SAAS,OAAO,MAAM,KAAK;AAAA,EACvD;AACA,SAAO,OAAO;AACf;AAEO,SAAS,KAAQ,OAAoD;AAC3E,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,KAAW,aAAM;AACvB,SAAa;AAAA,IACZ,CAAC,aAAa,iBAAiB,OAAO,UAAU,SAAS,EAAE,IAAI,KAAK;AAAA,IACpE,MAAM,SAAS,OAAO,KAAK;AAAA,IAC3B,MAAM,SAAS,OAAO,KAAK;AAAA,EAC5B;AACD;AAEO,SAAS,QACf,OACe;AACf,QAAM,YAAY,aAAa,KAAK;AACpC,SAAO,KAAK,SAAS;AACtB;AASO,SAAS,MAAM,OAAyC;AAC9D,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,KAAW,aAAM;AACvB,QAAM,WAAW,SAAS,OAAO,KAAK;AACtC,QAAM,WAAiB,cAAO,KAAK;AACnC,QAAM,cAAc,MAAM;AA7D3B;AA8DE,WAAO;AAAA,MACN,KAAI,0CAAU,OAAV,YAAgB;AAAA,MACpB,SAAQ,0CAAU,QAAQ,WAAlB,YAA4B;AAAA,MACpC,MAAM,MAAM,KAAK,KAAK;AAAA,MACtB,MAAM,MAAM,KAAK,KAAK;AAAA,IACvB;AAAA,EACD;AACA,QAAM,OAAa,cAAqB,YAAY,CAAC;AACrD,QAAM,WAAW,MAAM;AACtB,QACC,KAAK,QAAQ,QAAO,qCAAU,OAC9B,KAAK,QAAQ,YAAW,qCAAU,QAAQ,WAC1C,SAAS,YAAY,OACpB;AACD,eAAS,UAAU;AACnB,WAAK,UAAU,YAAY;AAAA,IAC5B;AACA,WAAO,KAAK;AAAA,EACb;AACA,SAAa;AAAA,IACZ,CAAC,aAAa,oBAAoB,OAAO,UAAU,UAAU,EAAE,IAAI,KAAK;AAAA,IACxE;AAAA,IACA;AAAA,EACD;AACD","sourcesContent":["import type { Store } from \"atom.io/internal\"\nimport { IMPLICIT } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nexport const StoreContext = React.createContext<Store>(IMPLICIT.STORE)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: Store\n}> = ({ children, store = IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import * as React from \"react\"\n\nimport { getState, redo, setState, undo } from \"atom.io\"\nimport type {\n\tMutableAtomToken,\n\tReadonlySelectorToken,\n\tStateToken,\n\tTimelineToken,\n} from \"atom.io\"\n\nimport {\n\tgetJsonToken,\n\tsubscribeToState,\n\tsubscribeToTimeline,\n\twithdraw,\n} from \"atom.io/internal\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useI<T>(\n\ttoken: StateToken<T>,\n): <New extends T>(next: New | ((old: T) => New)) => void {\n\tconst store = React.useContext(StoreContext)\n\tconst setter: React.MutableRefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t> = React.useRef(null)\n\tif (setter.current === null) {\n\t\tsetter.current = (next) => setState(token, next, store)\n\t}\n\treturn setter.current\n}\n\nexport function useO<T>(token: ReadonlySelectorToken<T> | StateToken<T>): T {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\treturn React.useSyncExternalStore<T>(\n\t\t(dispatch) => subscribeToState(token, dispatch, `use-o:${id}`, store),\n\t\t() => getState(token, store),\n\t\t() => getState(token, store),\n\t)\n}\n\nexport function useJSON<Serializable extends Json.Serializable>(\n\ttoken: MutableAtomToken<any, Serializable>,\n): Serializable {\n\tconst jsonToken = getJsonToken(token)\n\treturn useO(jsonToken)\n}\n\nexport type TimelineMeta = {\n\tat: number\n\tlength: number\n\tundo: () => void\n\tredo: () => void\n}\n\nexport function useTL(token: TimelineToken<any>): TimelineMeta {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\tconst timeline = withdraw(token, store)\n\tconst tokenRef = React.useRef(token)\n\tconst rebuildMeta = () => {\n\t\treturn {\n\t\t\tat: timeline?.at ?? NaN,\n\t\t\tlength: timeline?.history.length ?? NaN,\n\t\t\tundo: () => undo(token),\n\t\t\tredo: () => redo(token),\n\t\t}\n\t}\n\tconst meta = React.useRef<TimelineMeta>(rebuildMeta())\n\tconst retrieve = () => {\n\t\tif (\n\t\t\tmeta.current.at !== timeline?.at ||\n\t\t\tmeta.current.length !== timeline?.history.length ||\n\t\t\ttokenRef.current !== token\n\t\t) {\n\t\t\ttokenRef.current = token\n\t\t\tmeta.current = rebuildMeta()\n\t\t}\n\t\treturn meta.current\n\t}\n\treturn React.useSyncExternalStore<TimelineMeta>(\n\t\t(dispatch) => subscribeToTimeline(token, dispatch, `use-tl:${id}`, store),\n\t\tretrieve,\n\t\tretrieve,\n\t)\n}\n"]}
|
package/react/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,6 @@ type TimelineMeta = {
|
|
|
18
18
|
undo: () => void;
|
|
19
19
|
redo: () => void;
|
|
20
20
|
};
|
|
21
|
-
declare function useTL(token: TimelineToken): TimelineMeta;
|
|
21
|
+
declare function useTL(token: TimelineToken<any>): TimelineMeta;
|
|
22
22
|
|
|
23
23
|
export { StoreContext, StoreProvider, type TimelineMeta, useI, useJSON, useO, useTL };
|
package/react/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/store-context.tsx","../src/store-hooks.ts"],"names":["React"],"mappings":";;;AACA,SAAS,gBAAgB;AACzB,YAAY,WAAW;AAQtB;AANM,IAAM,eAAqB,oBAAqB,SAAS,KAAK;AAE9D,IAAM,gBAGR,CAAC,EAAE,UAAU,QAAQ,SAAS,MAAM,MACxC,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAAQ,UAAS;;;ACVhD,YAAYA,YAAW;AAEvB,SAAS,UAAU,MAAM,UAAU,YAAY;AAQ/C;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAIA,SAAS,KACf,OACyD;AACzD,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,SAEI,cAAO,IAAI;AACrB,MAAI,OAAO,YAAY,MAAM;AAC5B,WAAO,UAAU,CAAC,SAAS,SAAS,OAAO,MAAM,KAAK;AAAA,EACvD;AACA,SAAO,OAAO;AACf;AAEO,SAAS,KAAQ,OAAoD;AAC3E,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,KAAW,aAAM;AACvB,SAAa;AAAA,IACZ,CAAC,aAAa,iBAAiB,OAAO,UAAU,SAAS,EAAE,IAAI,KAAK;AAAA,IACpE,MAAM,SAAS,OAAO,KAAK;AAAA,IAC3B,MAAM,SAAS,OAAO,KAAK;AAAA,EAC5B;AACD;AAEO,SAAS,QACf,OACe;AACf,QAAM,YAAY,aAAa,KAAK;AACpC,SAAO,KAAK,SAAS;AACtB;AASO,SAAS,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/store-context.tsx","../src/store-hooks.ts"],"names":["React"],"mappings":";;;AACA,SAAS,gBAAgB;AACzB,YAAY,WAAW;AAQtB;AANM,IAAM,eAAqB,oBAAqB,SAAS,KAAK;AAE9D,IAAM,gBAGR,CAAC,EAAE,UAAU,QAAQ,SAAS,MAAM,MACxC,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAAQ,UAAS;;;ACVhD,YAAYA,YAAW;AAEvB,SAAS,UAAU,MAAM,UAAU,YAAY;AAQ/C;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAIA,SAAS,KACf,OACyD;AACzD,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,SAEI,cAAO,IAAI;AACrB,MAAI,OAAO,YAAY,MAAM;AAC5B,WAAO,UAAU,CAAC,SAAS,SAAS,OAAO,MAAM,KAAK;AAAA,EACvD;AACA,SAAO,OAAO;AACf;AAEO,SAAS,KAAQ,OAAoD;AAC3E,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,KAAW,aAAM;AACvB,SAAa;AAAA,IACZ,CAAC,aAAa,iBAAiB,OAAO,UAAU,SAAS,EAAE,IAAI,KAAK;AAAA,IACpE,MAAM,SAAS,OAAO,KAAK;AAAA,IAC3B,MAAM,SAAS,OAAO,KAAK;AAAA,EAC5B;AACD;AAEO,SAAS,QACf,OACe;AACf,QAAM,YAAY,aAAa,KAAK;AACpC,SAAO,KAAK,SAAS;AACtB;AASO,SAAS,MAAM,OAAyC;AAC9D,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,KAAW,aAAM;AACvB,QAAM,WAAW,SAAS,OAAO,KAAK;AACtC,QAAM,WAAiB,cAAO,KAAK;AACnC,QAAM,cAAc,MAAM;AA7D3B;AA8DE,WAAO;AAAA,MACN,KAAI,0CAAU,OAAV,YAAgB;AAAA,MACpB,SAAQ,0CAAU,QAAQ,WAAlB,YAA4B;AAAA,MACpC,MAAM,MAAM,KAAK,KAAK;AAAA,MACtB,MAAM,MAAM,KAAK,KAAK;AAAA,IACvB;AAAA,EACD;AACA,QAAM,OAAa,cAAqB,YAAY,CAAC;AACrD,QAAM,WAAW,MAAM;AACtB,QACC,KAAK,QAAQ,QAAO,qCAAU,OAC9B,KAAK,QAAQ,YAAW,qCAAU,QAAQ,WAC1C,SAAS,YAAY,OACpB;AACD,eAAS,UAAU;AACnB,WAAK,UAAU,YAAY;AAAA,IAC5B;AACA,WAAO,KAAK;AAAA,EACb;AACA,SAAa;AAAA,IACZ,CAAC,aAAa,oBAAoB,OAAO,UAAU,UAAU,EAAE,IAAI,KAAK;AAAA,IACxE;AAAA,IACA;AAAA,EACD;AACD","sourcesContent":["import type { Store } from \"atom.io/internal\"\nimport { IMPLICIT } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nexport const StoreContext = React.createContext<Store>(IMPLICIT.STORE)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: Store\n}> = ({ children, store = IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import * as React from \"react\"\n\nimport { getState, redo, setState, undo } from \"atom.io\"\nimport type {\n\tMutableAtomToken,\n\tReadonlySelectorToken,\n\tStateToken,\n\tTimelineToken,\n} from \"atom.io\"\n\nimport {\n\tgetJsonToken,\n\tsubscribeToState,\n\tsubscribeToTimeline,\n\twithdraw,\n} from \"atom.io/internal\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useI<T>(\n\ttoken: StateToken<T>,\n): <New extends T>(next: New | ((old: T) => New)) => void {\n\tconst store = React.useContext(StoreContext)\n\tconst setter: React.MutableRefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t> = React.useRef(null)\n\tif (setter.current === null) {\n\t\tsetter.current = (next) => setState(token, next, store)\n\t}\n\treturn setter.current\n}\n\nexport function useO<T>(token: ReadonlySelectorToken<T> | StateToken<T>): T {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\treturn React.useSyncExternalStore<T>(\n\t\t(dispatch) => subscribeToState(token, dispatch, `use-o:${id}`, store),\n\t\t() => getState(token, store),\n\t\t() => getState(token, store),\n\t)\n}\n\nexport function useJSON<Serializable extends Json.Serializable>(\n\ttoken: MutableAtomToken<any, Serializable>,\n): Serializable {\n\tconst jsonToken = getJsonToken(token)\n\treturn useO(jsonToken)\n}\n\nexport type TimelineMeta = {\n\tat: number\n\tlength: number\n\tundo: () => void\n\tredo: () => void\n}\n\nexport function useTL(token: TimelineToken<any>): TimelineMeta {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\tconst timeline = withdraw(token, store)\n\tconst tokenRef = React.useRef(token)\n\tconst rebuildMeta = () => {\n\t\treturn {\n\t\t\tat: timeline?.at ?? NaN,\n\t\t\tlength: timeline?.history.length ?? NaN,\n\t\t\tundo: () => undo(token),\n\t\t\tredo: () => redo(token),\n\t\t}\n\t}\n\tconst meta = React.useRef<TimelineMeta>(rebuildMeta())\n\tconst retrieve = () => {\n\t\tif (\n\t\t\tmeta.current.at !== timeline?.at ||\n\t\t\tmeta.current.length !== timeline?.history.length ||\n\t\t\ttokenRef.current !== token\n\t\t) {\n\t\t\ttokenRef.current = token\n\t\t\tmeta.current = rebuildMeta()\n\t\t}\n\t\treturn meta.current\n\t}\n\treturn React.useSyncExternalStore<TimelineMeta>(\n\t\t(dispatch) => subscribeToTimeline(token, dispatch, `use-tl:${id}`, store),\n\t\tretrieve,\n\t\tretrieve,\n\t)\n}\n"]}
|
package/react/src/store-hooks.ts
CHANGED
|
@@ -54,7 +54,7 @@ export type TimelineMeta = {
|
|
|
54
54
|
redo: () => void
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
export function useTL(token: TimelineToken): TimelineMeta {
|
|
57
|
+
export function useTL(token: TimelineToken<any>): TimelineMeta {
|
|
58
58
|
const store = React.useContext(StoreContext)
|
|
59
59
|
const id = React.useId()
|
|
60
60
|
const timeline = withdraw(token, store)
|
|
@@ -947,7 +947,6 @@ var valueToText = (numericValue) => {
|
|
|
947
947
|
};
|
|
948
948
|
var NumberInput = ({
|
|
949
949
|
autoSize = false,
|
|
950
|
-
customCss,
|
|
951
950
|
decimalPlaces,
|
|
952
951
|
disabled = false,
|
|
953
952
|
label,
|
|
@@ -996,7 +995,7 @@ var NumberInput = ({
|
|
|
996
995
|
}
|
|
997
996
|
};
|
|
998
997
|
const displayValue = temporaryEntry != null ? temporaryEntry : valueToText(value ? refine(value) : value);
|
|
999
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", {
|
|
998
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
1000
999
|
label && /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: id, children: label }),
|
|
1001
1000
|
autoSize ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1002
1001
|
ElasticInput,
|
|
@@ -1034,10 +1033,9 @@ var TextInput = ({
|
|
|
1034
1033
|
set,
|
|
1035
1034
|
label,
|
|
1036
1035
|
placeholder,
|
|
1037
|
-
customCss,
|
|
1038
1036
|
autoSize = false
|
|
1039
1037
|
}) => {
|
|
1040
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", {
|
|
1038
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
1041
1039
|
/* @__PURE__ */ jsxRuntime.jsx("label", { children: label }),
|
|
1042
1040
|
autoSize ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1043
1041
|
ElasticInput,
|
|
@@ -1081,7 +1079,7 @@ var JsonEditor_INTERNAL = ({
|
|
|
1081
1079
|
isReadonly = () => false,
|
|
1082
1080
|
isHidden = () => false,
|
|
1083
1081
|
className,
|
|
1084
|
-
|
|
1082
|
+
style,
|
|
1085
1083
|
Header: HeaderDisplay,
|
|
1086
1084
|
Components
|
|
1087
1085
|
}) => {
|
|
@@ -1089,7 +1087,7 @@ var JsonEditor_INTERNAL = ({
|
|
|
1089
1087
|
const refined = dataIsJson ? refineJsonType(data) : { type: `non-json`, data };
|
|
1090
1088
|
const SubEditor = dataIsJson ? SubEditors[refined.type] : NonJsonEditor;
|
|
1091
1089
|
const disabled = isReadonly(path);
|
|
1092
|
-
return isHidden(path) ? null : /* @__PURE__ */ jsxRuntime.jsx(Components.ErrorBoundary, { children: /* @__PURE__ */ jsxRuntime.jsxs(Components.EditorWrapper, { className,
|
|
1090
|
+
return isHidden(path) ? null : /* @__PURE__ */ jsxRuntime.jsx(Components.ErrorBoundary, { children: /* @__PURE__ */ jsxRuntime.jsxs(Components.EditorWrapper, { className, style, children: [
|
|
1093
1091
|
remove && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1094
1092
|
Components.Button,
|
|
1095
1093
|
{
|
|
@@ -1874,7 +1872,7 @@ var DEFAULT_JSON_EDITOR_COMPONENTS = {
|
|
|
1874
1872
|
children
|
|
1875
1873
|
}
|
|
1876
1874
|
),
|
|
1877
|
-
EditorWrapper: ({ children,
|
|
1875
|
+
EditorWrapper: ({ children, className }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: `json_editor ` + className, children }),
|
|
1878
1876
|
EditorLayout: ({
|
|
1879
1877
|
DeleteButton,
|
|
1880
1878
|
Header,
|
|
@@ -1916,8 +1914,8 @@ var JsonEditor = ({
|
|
|
1916
1914
|
isHidden = () => false,
|
|
1917
1915
|
// isIllegal = () => false,
|
|
1918
1916
|
className,
|
|
1919
|
-
customCss,
|
|
1920
1917
|
Header,
|
|
1918
|
+
style,
|
|
1921
1919
|
Components: CustomComponents = {}
|
|
1922
1920
|
}) => {
|
|
1923
1921
|
const Components = __spreadValues(__spreadValues({}, DEFAULT_JSON_EDITOR_COMPONENTS), CustomComponents);
|
|
@@ -1934,8 +1932,8 @@ var JsonEditor = ({
|
|
|
1934
1932
|
isReadonly,
|
|
1935
1933
|
isHidden,
|
|
1936
1934
|
className,
|
|
1937
|
-
customCss,
|
|
1938
1935
|
Header,
|
|
1936
|
+
style,
|
|
1939
1937
|
Components
|
|
1940
1938
|
}
|
|
1941
1939
|
);
|