Comparing version 0.13.6 to 0.13.7
@@ -1,12 +0,12 @@ | ||
import { Dialogic } from "./index"; | ||
export { actions, selectors, states } from "./state/store"; | ||
import type { Dialogic } from './index'; | ||
export { actions, selectors, states } from './state/store'; | ||
export declare const filterCandidates: (ns: string, items: Dialogic.NamespaceStore, identityOptions: Dialogic.IdentityOptions) => Dialogic.Item[]; | ||
export declare const show: (ns: string) => (defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => <T = unknown>(options?: Dialogic.Options<T> | undefined) => Promise<Dialogic.Item<T>>; | ||
export declare const hide: (ns: string) => (defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => <T = unknown>(options?: Dialogic.Options<T> | undefined) => Promise<Dialogic.Item<T>>; | ||
export declare const pause: (ns: string) => (_defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => <T = unknown>(identityOptions?: Dialogic.IdentityOptions | undefined) => Promise<Dialogic.Item<T>[]>; | ||
export declare const resume: (ns: string) => (_defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => <T = unknown>(commandOptions?: Dialogic.CommandOptions | undefined) => Promise<Dialogic.Item<T>[]>; | ||
export declare const isPaused: (ns: string) => (defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => (identityOptions?: Dialogic.IdentityOptions | undefined) => boolean; | ||
export declare const getRemaining: (ns: string) => (defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => (identityOptions?: Dialogic.IdentityOptions | undefined) => number | undefined; | ||
export declare const exists: (ns: string) => (_defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => (identityOptions?: Dialogic.IdentityOptions | undefined) => boolean; | ||
export declare const resetAll: (ns: string) => (_defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => (identityOptions?: Dialogic.IdentityOptions | undefined) => Promise<Dialogic.Item<unknown>[]>; | ||
export declare const pause: (ns: string) => (_defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => <T = unknown>(identityOptions?: Dialogic.IdentityOptions) => Promise<Dialogic.Item<T>[]>; | ||
export declare const resume: (ns: string) => (_defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => <T = unknown>(commandOptions?: Dialogic.CommandOptions) => Promise<Dialogic.Item<T>[]>; | ||
export declare const isPaused: (ns: string) => (defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => (identityOptions?: Dialogic.IdentityOptions) => boolean; | ||
export declare const getRemaining: (ns: string) => (defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => (identityOptions?: Dialogic.IdentityOptions) => number | undefined; | ||
export declare const exists: (ns: string) => (_defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => (identityOptions?: Dialogic.IdentityOptions) => boolean; | ||
export declare const resetAll: (ns: string) => (_defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => (identityOptions?: Dialogic.IdentityOptions) => Promise<Dialogic.Item<unknown>[]>; | ||
/** | ||
@@ -18,3 +18,3 @@ * Triggers a `hideItem` for each item in the store. | ||
export declare const hideAll: (ns: string) => (_defaultDialogicOptions: Dialogic.DefaultDialogicOptions) => <T = unknown>(dialogicOptions?: Dialogic.DialogicOptions<T> | undefined) => Promise<Dialogic.Item<T>[]>; | ||
export declare const getCount: (ns: string) => (identityOptions?: Dialogic.IdentityOptions | undefined) => number; | ||
export declare const getCount: (ns: string) => (identityOptions?: Dialogic.IdentityOptions) => number; | ||
export declare const showItem: Dialogic.InitiateItemTransitionFn; | ||
@@ -21,0 +21,0 @@ /** |
@@ -1,20 +0,1 @@ | ||
var __defProp = Object.defineProperty; | ||
var __defProps = Object.defineProperties; | ||
var __getOwnPropDescs = Object.getOwnPropertyDescriptors; | ||
var __getOwnPropSymbols = Object.getOwnPropertySymbols; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __propIsEnum = Object.prototype.propertyIsEnumerable; | ||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||
var __spreadValues = (a, b) => { | ||
for (var prop in b || (b = {})) | ||
if (__hasOwnProp.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
if (__getOwnPropSymbols) | ||
for (var prop of __getOwnPropSymbols(b)) { | ||
if (__propIsEnum.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
} | ||
return a; | ||
}; | ||
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); | ||
import Stream from "mithril-stream-standalone"; | ||
@@ -39,2 +20,5 @@ const findItem = (id, items) => items.find((item) => item.id === id); | ||
actions: (update2) => ({ | ||
/** | ||
* Add an item to the end of the list. | ||
*/ | ||
add: (ns, item) => { | ||
@@ -50,2 +34,5 @@ update2((state) => { | ||
}, | ||
/** | ||
* Removes the first item with a match on `id`. | ||
*/ | ||
remove: (ns, id) => { | ||
@@ -59,2 +46,5 @@ update2((state) => { | ||
}, | ||
/** | ||
* Replaces the first item with a match on `id` with a newItem. | ||
*/ | ||
replace: (ns, id, newItem) => { | ||
@@ -73,2 +63,5 @@ update2((state) => { | ||
}, | ||
/** | ||
* Removes all items within a namespace. | ||
*/ | ||
removeAll: (ns) => { | ||
@@ -80,2 +73,5 @@ update2((state) => { | ||
}, | ||
/** | ||
* Replaces all items within a namespace. | ||
*/ | ||
store: (ns, newItems) => { | ||
@@ -88,3 +84,5 @@ update2((state) => { | ||
refresh: () => { | ||
update2((state) => __spreadValues({}, state)); | ||
update2((state) => ({ | ||
...state | ||
})); | ||
} | ||
@@ -120,5 +118,15 @@ }), | ||
const update = Stream(); | ||
const states = Stream.scan((state, patch) => patch(state), __spreadValues({}, store.initialState), update); | ||
const actions = __spreadValues({}, store.actions(update)); | ||
const selectors = __spreadValues({}, store.selectors(states)); | ||
const states = Stream.scan( | ||
(state, patch) => patch(state), | ||
{ | ||
...store.initialState | ||
}, | ||
update | ||
); | ||
const actions = { | ||
...store.actions(update) | ||
}; | ||
const selectors = { | ||
...store.selectors(states) | ||
}; | ||
const initialState = { | ||
@@ -145,3 +153,3 @@ callback: () => { | ||
}; | ||
return __spreadValues({ | ||
return { | ||
timeoutFn, | ||
@@ -151,8 +159,9 @@ promise: new Promise((resolve) => { | ||
state.onAbort = () => resolve(); | ||
}) | ||
}, state.isPaused ? {} : { | ||
startTime: new Date().getTime(), | ||
timerId: window.setTimeout(timeoutFn, duration), | ||
remaining: duration | ||
}); | ||
}), | ||
...state.isPaused ? {} : { | ||
startTime: new Date().getTime(), | ||
timerId: window.setTimeout(timeoutFn, duration), | ||
remaining: duration | ||
} | ||
}; | ||
}; | ||
@@ -165,4 +174,7 @@ const appendStopTimeout = (state) => { | ||
}; | ||
const appendStopTimer = (state) => __spreadValues({}, appendStopTimeout(state)); | ||
const appendPauseTimer = (state) => __spreadProps(__spreadValues({}, appendStopTimeout(state)), { | ||
const appendStopTimer = (state) => ({ | ||
...appendStopTimeout(state) | ||
}); | ||
const appendPauseTimer = (state) => ({ | ||
...appendStopTimeout(state), | ||
isPaused: true, | ||
@@ -186,23 +198,73 @@ remaining: getRemaining$1(state) | ||
actions: (update22) => ({ | ||
/** | ||
* Starts the timer | ||
* @param {callback} Function Callback function that is called after completion. | ||
* @param {duration} Number Timer duration in milliseconds. | ||
*/ | ||
start: (callback, duration) => { | ||
update22((state) => __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, state), appendStopTimeout(state)), appendStartTimer(state, callback, duration, () => timer.actions(update22).done())), state.isPaused && appendPauseTimer(state))); | ||
update22((state) => ({ | ||
...state, | ||
...appendStopTimeout(state), | ||
...appendStartTimer( | ||
state, | ||
callback, | ||
duration, | ||
() => timer.actions(update22).done() | ||
), | ||
...state.isPaused && appendPauseTimer(state) | ||
})); | ||
}, | ||
/** | ||
* Stops the timer. | ||
*/ | ||
stop: () => { | ||
update22((state) => __spreadValues(__spreadValues(__spreadValues({}, state), appendStopTimer(state)), initialState)); | ||
update22((state) => ({ | ||
...state, | ||
...appendStopTimer(state), | ||
...initialState | ||
})); | ||
}, | ||
/** | ||
* Pauses a running timer. | ||
*/ | ||
pause: () => { | ||
update22((state) => __spreadValues(__spreadValues({}, state), !state.isPaused && appendPauseTimer(state))); | ||
update22((state) => ({ | ||
...state, | ||
...!state.isPaused && appendPauseTimer(state) | ||
})); | ||
}, | ||
/** | ||
* Resumes a paused timer. | ||
* @param {minimumDuration} Number Sets the minimum duration. | ||
*/ | ||
resume: (minimumDuration) => { | ||
update22((state) => __spreadValues(__spreadValues({}, state), state.isPaused && appendResumeTimer(state, minimumDuration))); | ||
update22((state) => ({ | ||
...state, | ||
...state.isPaused && appendResumeTimer(state, minimumDuration) | ||
})); | ||
}, | ||
/** | ||
* Aborts and clears a timer. | ||
*/ | ||
abort: () => { | ||
update22((state) => { | ||
state.onAbort(); | ||
return __spreadValues(__spreadValues({}, state), appendStopTimeout(state)); | ||
return { | ||
...state, | ||
...appendStopTimeout(state) | ||
}; | ||
}); | ||
}, | ||
/** | ||
* Updates the current state. Used to get the state for selectors.getRemaining. | ||
*/ | ||
refresh: () => { | ||
update22((state) => __spreadValues({}, state)); | ||
update22((state) => ({ | ||
...state | ||
})); | ||
}, | ||
/** | ||
* Brings the timer to its initial state. | ||
* Used internally. | ||
*/ | ||
done: () => { | ||
@@ -213,2 +275,5 @@ update22(() => initialState); | ||
selectors: (states22) => ({ | ||
/** | ||
* Returns the paused state. | ||
*/ | ||
isPaused: () => { | ||
@@ -218,2 +283,5 @@ const state = states22(); | ||
}, | ||
/** | ||
* Returns the remaining duration in milliseconds. | ||
*/ | ||
getRemaining: () => { | ||
@@ -223,2 +291,5 @@ const state = states22(); | ||
}, | ||
/** | ||
* The promise that is handled when the timer is done or canceled. | ||
*/ | ||
getResultPromise: () => { | ||
@@ -231,5 +302,15 @@ const state = states22(); | ||
const update2 = Stream(); | ||
const states2 = Stream.scan((state, patch) => patch(state), __spreadValues({}, timer.initialState), update2); | ||
const actions2 = __spreadValues({}, timer.actions(update2)); | ||
const selectors2 = __spreadValues({}, timer.selectors(states2)); | ||
const states2 = Stream.scan( | ||
(state, patch) => patch(state), | ||
{ | ||
...timer.initialState | ||
}, | ||
update2 | ||
); | ||
const actions2 = { | ||
...timer.actions(update2) | ||
}; | ||
const selectors2 = { | ||
...timer.selectors(states2) | ||
}; | ||
return { | ||
@@ -241,3 +322,2 @@ states: states2, | ||
}; | ||
const pipe = (...fns) => (x) => fns.filter(Boolean).reduce((y, f) => f(y), x); | ||
const getStyleValue = ({ | ||
@@ -247,3 +327,3 @@ domElement, | ||
}) => { | ||
const defaultView = document.defaultView; | ||
const { defaultView } = document; | ||
if (defaultView) { | ||
@@ -261,3 +341,8 @@ const style = defaultView.getComputedStyle(domElement); | ||
}; | ||
const removeTransitionClassNames = (domElement, transitionClassNames) => domElement.classList.remove(...transitionClassNames.showStart, ...transitionClassNames.showEnd, ...transitionClassNames.hideStart, ...transitionClassNames.hideEnd); | ||
const removeTransitionClassNames = (domElement, transitionClassNames) => domElement.classList.remove( | ||
...transitionClassNames.showStart, | ||
...transitionClassNames.showEnd, | ||
...transitionClassNames.hideStart, | ||
...transitionClassNames.hideEnd | ||
); | ||
const applyTransitionStyles = (domElement, step, styles) => { | ||
@@ -339,3 +424,8 @@ const transitionStyle = styles[step]; | ||
return new Promise((resolve) => { | ||
applyStylesForState(domElement, props, currentStep, currentStep === "showStart"); | ||
applyStylesForState( | ||
domElement, | ||
props, | ||
currentStep, | ||
currentStep === "showStart" | ||
); | ||
setTimeout(() => { | ||
@@ -363,10 +453,10 @@ const { nextStep } = steps[currentStep]; | ||
}; | ||
var TransitionStates; | ||
(function(TransitionStates2) { | ||
TransitionStates2[TransitionStates2["Default"] = 0] = "Default"; | ||
TransitionStates2[TransitionStates2["Displaying"] = 1] = "Displaying"; | ||
TransitionStates2[TransitionStates2["Hiding"] = 2] = "Hiding"; | ||
})(TransitionStates || (TransitionStates = {})); | ||
const getMaybeItem = (ns) => (defaultDialogicOptions) => (identityOptions) => selectors.find(ns, getMergedIdentityOptions(defaultDialogicOptions, identityOptions)); | ||
const filterBySpawn = (identityOptions) => (items) => identityOptions.spawn !== void 0 ? items.filter((item) => item.identityOptions.spawn === identityOptions.spawn) : items; | ||
const getMaybeItem = (ns) => (defaultDialogicOptions) => (identityOptions) => selectors.find( | ||
ns, | ||
// eslint-disable-next-line @typescript-eslint/no-use-before-define | ||
getMergedIdentityOptions(defaultDialogicOptions, identityOptions) | ||
); | ||
const filterBySpawn = (identityOptions) => (items) => identityOptions.spawn !== void 0 ? items.filter( | ||
(item) => item.identityOptions.spawn === identityOptions.spawn | ||
) : items; | ||
const filterById = (identityOptions) => (items) => identityOptions.id !== void 0 ? items.filter((item) => item.identityOptions.id === identityOptions.id) : items; | ||
@@ -385,6 +475,9 @@ const filterFirstInQueue = (nsItems) => { | ||
} | ||
return pipe(filterBySpawn(identityOptions), filterFirstInQueue)(nsItems); | ||
const filteredBySpawn = filterBySpawn(identityOptions)(nsItems); | ||
return filterFirstInQueue(filteredBySpawn); | ||
}; | ||
const getPassThroughOptions = (options) => { | ||
const copy = __spreadValues({}, options); | ||
const copy = { | ||
...options | ||
}; | ||
delete copy.dialogic; | ||
@@ -397,12 +490,17 @@ return copy; | ||
}); | ||
const handleOptions = (defaultDialogicOptions, options = {}) => { | ||
const handleOptions = (defaultDialogicOptions, options) => { | ||
const identityOptions = { | ||
id: options.dialogic ? options.dialogic.id : void 0, | ||
spawn: options.dialogic ? options.dialogic.spawn : void 0 | ||
id: (options == null ? void 0 : options.dialogic) ? options.dialogic.id : void 0, | ||
spawn: (options == null ? void 0 : options.dialogic) ? options.dialogic.spawn : void 0 | ||
}; | ||
const mergedIdentityOptions = getMergedIdentityOptions(defaultDialogicOptions || {}, identityOptions); | ||
const dialogicOptions = __spreadProps(__spreadValues(__spreadValues({}, defaultDialogicOptions), options.dialogic), { | ||
const mergedIdentityOptions = getMergedIdentityOptions( | ||
defaultDialogicOptions || {}, | ||
identityOptions | ||
); | ||
const dialogicOptions = { | ||
...defaultDialogicOptions, | ||
...options == null ? void 0 : options.dialogic, | ||
__transitionTimeoutId__: 0 | ||
}); | ||
const passThroughOptions = getPassThroughOptions(options); | ||
}; | ||
const passThroughOptions = options ? getPassThroughOptions(options) : {}; | ||
return { | ||
@@ -451,17 +549,26 @@ identityOptions: mergedIdentityOptions, | ||
timer: dialogicOptions.timeout ? TimerStore() : void 0, | ||
// when timeout is undefined or 0 | ||
key: getUid().toString(), | ||
// Uniquely identify each item for keyed display | ||
transitionState: 0 | ||
/* Default */ | ||
}; | ||
const maybeExistingItem = selectors.find(ns, identityOptions); | ||
const maybeExistingItem = selectors.find( | ||
ns, | ||
identityOptions | ||
); | ||
const existingItem = maybeExistingItem.just; | ||
if (existingItem && dialogicOptions.toggle) { | ||
hide(ns)(defaultDialogicOptions)(options); | ||
return resolve(existingItem); | ||
resolve(existingItem); | ||
return; | ||
} | ||
if (existingItem && !dialogicOptions.queued) { | ||
const replacingItem = __spreadProps(__spreadValues({}, item), { | ||
const replacingItem = { | ||
...item, | ||
key: existingItem.key, | ||
transitionState: existingItem.transitionState, | ||
dialogicOptions: existingItem.dialogicOptions | ||
}); | ||
// Preserve dialogicOptions | ||
}; | ||
actions.replace(ns, existingItem.id, replacingItem); | ||
@@ -477,11 +584,19 @@ } else { | ||
const { identityOptions, dialogicOptions, passThroughOptions } = handleOptions(defaultDialogicOptions, options); | ||
const maybeExistingItem = selectors.find(ns, identityOptions); | ||
const maybeExistingItem = selectors.find( | ||
ns, | ||
identityOptions | ||
); | ||
const existingItem = maybeExistingItem.just; | ||
if (existingItem) { | ||
const item = __spreadProps(__spreadValues({}, existingItem), { | ||
dialogicOptions: __spreadValues(__spreadValues({}, existingItem.dialogicOptions), dialogicOptions), | ||
passThroughOptions: __spreadProps(__spreadValues({}, existingItem.passThroughOptions), { | ||
const item = { | ||
...existingItem, | ||
dialogicOptions: { | ||
...existingItem.dialogicOptions, | ||
...dialogicOptions | ||
}, | ||
passThroughOptions: { | ||
...existingItem.passThroughOptions, | ||
passThroughOptions | ||
}) | ||
}); | ||
} | ||
}; | ||
actions.replace(ns, existingItem.id, item); | ||
@@ -499,3 +614,5 @@ if (item.transitionState !== 2) { | ||
const pause = (ns) => (_defaultDialogicOptions) => (identityOptions) => { | ||
const validItems = getValidItems(ns, identityOptions).filter((item) => !!item.timer); | ||
const validItems = getValidItems(ns, identityOptions).filter( | ||
(item) => !!item.timer | ||
); | ||
validItems.forEach((item) => { | ||
@@ -514,3 +631,5 @@ if (item.timer) { | ||
}; | ||
const validItems = getValidItems(ns, identityOptions).filter((item) => !!item.timer); | ||
const validItems = getValidItems(ns, identityOptions).filter( | ||
(item) => !!item.timer | ||
); | ||
validItems.forEach((item) => { | ||
@@ -525,3 +644,5 @@ if (item.timer) { | ||
var _a, _b; | ||
const maybeItem = getMaybeItem(ns)(defaultDialogicOptions)(identityOptions); | ||
const maybeItem = getMaybeItem(ns)( | ||
defaultDialogicOptions | ||
)(identityOptions); | ||
return (_b = (_a = maybeItem == null ? void 0 : maybeItem.just) == null ? void 0 : _a.timer) == null ? void 0 : _b.selectors; | ||
@@ -531,9 +652,20 @@ }; | ||
var _a; | ||
return ((_a = getTimerSelectors(ns, defaultDialogicOptions, identityOptions)) == null ? void 0 : _a.isPaused()) || false; | ||
return ((_a = getTimerSelectors( | ||
ns, | ||
defaultDialogicOptions, | ||
identityOptions | ||
)) == null ? void 0 : _a.isPaused()) || false; | ||
}; | ||
const getRemaining = (ns) => (defaultDialogicOptions) => (identityOptions) => { | ||
var _a; | ||
return ((_a = getTimerSelectors(ns, defaultDialogicOptions, identityOptions)) == null ? void 0 : _a.getRemaining()) || void 0; | ||
return ((_a = getTimerSelectors( | ||
ns, | ||
defaultDialogicOptions, | ||
identityOptions | ||
)) == null ? void 0 : _a.getRemaining()) || void 0; | ||
}; | ||
const exists = (ns) => (_defaultDialogicOptions) => (identityOptions) => !!getValidItems(ns, identityOptions).length; | ||
const exists = (ns) => (_defaultDialogicOptions) => (identityOptions) => ( | ||
// eslint-disable-next-line @typescript-eslint/no-use-before-define | ||
!!getValidItems(ns, identityOptions).length | ||
); | ||
const getValidItems = (ns, identityOptions) => { | ||
@@ -543,3 +675,4 @@ const allItems = selectors.getAll(ns); | ||
if (identityOptions) { | ||
validItems = pipe(filterBySpawn(identityOptions), filterById(identityOptions))(allItems); | ||
const filteredBySpawn = filterBySpawn(identityOptions)(allItems); | ||
validItems = filterById(identityOptions)(filteredBySpawn); | ||
} else { | ||
@@ -568,4 +701,8 @@ validItems = allItems; | ||
}; | ||
const getOverridingTransitionOptions = (item, dialogicOptions) => __spreadProps(__spreadValues({}, item), { | ||
dialogicOptions: __spreadValues(__spreadValues({}, item.dialogicOptions), dialogicOptions) | ||
const getOverridingTransitionOptions = (item, dialogicOptions) => ({ | ||
...item, | ||
dialogicOptions: { | ||
...item.dialogicOptions, | ||
...dialogicOptions | ||
} | ||
}); | ||
@@ -579,6 +716,15 @@ const hideAll = (ns) => (_defaultDialogicOptions) => (dialogicOptions) => { | ||
const validItems = getValidItems(ns, identityOptions); | ||
const regularItems = validItems.filter((item) => !options.queued && !item.dialogicOptions.queued); | ||
const queuedItems = validItems.filter((item) => options.queued || item.dialogicOptions.queued); | ||
const regularItems = validItems.filter( | ||
(item) => !options.queued && !item.dialogicOptions.queued | ||
); | ||
const queuedItems = validItems.filter( | ||
(item) => options.queued || item.dialogicOptions.queued | ||
); | ||
const items = []; | ||
regularItems.forEach((item) => items.push(hideItem(getOverridingTransitionOptions(item, options)))); | ||
regularItems.forEach( | ||
(item) => ( | ||
// eslint-disable-next-line @typescript-eslint/no-use-before-define | ||
items.push(hideItem(getOverridingTransitionOptions(item, options))) | ||
) | ||
); | ||
if (queuedItems.length > 0) { | ||
@@ -594,3 +740,5 @@ const [current] = queuedItems; | ||
const getResultPromise = () => (ns) => (defaultDialogicOptions) => (identityOptions) => { | ||
const maybeItem = getMaybeItem(ns)(defaultDialogicOptions)(identityOptions); | ||
const maybeItem = getMaybeItem(ns)( | ||
defaultDialogicOptions | ||
)(identityOptions); | ||
if (maybeItem.just) { | ||
@@ -636,3 +784,5 @@ if (maybeItem.just && maybeItem.just.timer) { | ||
} | ||
const copy = __spreadValues({}, item); | ||
const copy = { | ||
...item | ||
}; | ||
actions.remove(item.ns, item.id); | ||
@@ -651,11 +801,16 @@ return Promise.resolve(copy); | ||
const defaultSpawn = `default_${ns}`; | ||
const defaultDialogicOptions = __spreadValues(__spreadValues({ | ||
const defaultDialogicOptions = { | ||
id: defaultId, | ||
spawn: defaultSpawn | ||
}, queued && { queued }), timeout !== void 0 && { timeout }); | ||
spawn: defaultSpawn, | ||
...queued && { queued }, | ||
...timeout !== void 0 && { timeout } | ||
}; | ||
return { | ||
// Identification | ||
ns, | ||
defaultId, | ||
defaultSpawn, | ||
// Configuration | ||
defaultDialogicOptions, | ||
// Commands | ||
show: show(ns)(defaultDialogicOptions), | ||
@@ -665,6 +820,9 @@ hide: hide(ns)(defaultDialogicOptions), | ||
resetAll: resetAll(ns)(defaultDialogicOptions), | ||
// Timer commands | ||
pause: pause(ns)(defaultDialogicOptions), | ||
resume: resume(ns)(defaultDialogicOptions), | ||
// State | ||
exists: exists(ns)(defaultDialogicOptions), | ||
getCount: getCount(ns), | ||
// Timer state | ||
isPaused: isPaused(ns)(defaultDialogicOptions), | ||
@@ -703,7 +861,29 @@ getRemaining: getRemaining(ns)(defaultDialogicOptions) | ||
}; | ||
var types = /* @__PURE__ */ Object.freeze({ | ||
__proto__: null, | ||
[Symbol.toStringTag]: "Module" | ||
}); | ||
export { types as Dialogic, actions, dialog, dialogical, exists, filterCandidates, getCount, getRemaining, hide, hideAll, hideItem, isPaused, notification, pause, remaining, resetAll, resume, selectors, setDomElement, show, showItem, states }; | ||
const types = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ | ||
__proto__: null | ||
}, Symbol.toStringTag, { value: "Module" })); | ||
export { | ||
types as Dialogic, | ||
actions, | ||
dialog, | ||
dialogical, | ||
exists, | ||
filterCandidates, | ||
getCount, | ||
getRemaining, | ||
hide, | ||
hideAll, | ||
hideItem, | ||
isPaused, | ||
notification, | ||
pause, | ||
remaining, | ||
resetAll, | ||
resume, | ||
selectors, | ||
setDomElement, | ||
show, | ||
showItem, | ||
states | ||
}; | ||
//# sourceMappingURL=dialogic.module.js.map |
@@ -1,20 +0,1 @@ | ||
var __defProp = Object.defineProperty; | ||
var __defProps = Object.defineProperties; | ||
var __getOwnPropDescs = Object.getOwnPropertyDescriptors; | ||
var __getOwnPropSymbols = Object.getOwnPropertySymbols; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __propIsEnum = Object.prototype.propertyIsEnumerable; | ||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||
var __spreadValues = (a, b) => { | ||
for (var prop in b || (b = {})) | ||
if (__hasOwnProp.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
if (__getOwnPropSymbols) | ||
for (var prop of __getOwnPropSymbols(b)) { | ||
if (__propIsEnum.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
} | ||
return a; | ||
}; | ||
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); | ||
(function(global, factory) { | ||
@@ -24,6 +5,2 @@ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("mithril-stream-standalone")) : typeof define === "function" && define.amd ? define(["exports", "mithril-stream-standalone"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.dialogic = {}, global.Stream)); | ||
"use strict"; | ||
function _interopDefaultLegacy(e) { | ||
return e && typeof e === "object" && "default" in e ? e : { "default": e }; | ||
} | ||
var Stream__default = /* @__PURE__ */ _interopDefaultLegacy(Stream); | ||
const findItem = (id, items) => items.find((item) => item.id === id); | ||
@@ -47,2 +24,5 @@ const itemIndex = (id, items) => { | ||
actions: (update2) => ({ | ||
/** | ||
* Add an item to the end of the list. | ||
*/ | ||
add: (ns, item) => { | ||
@@ -58,2 +38,5 @@ update2((state) => { | ||
}, | ||
/** | ||
* Removes the first item with a match on `id`. | ||
*/ | ||
remove: (ns, id) => { | ||
@@ -67,2 +50,5 @@ update2((state) => { | ||
}, | ||
/** | ||
* Replaces the first item with a match on `id` with a newItem. | ||
*/ | ||
replace: (ns, id, newItem) => { | ||
@@ -81,2 +67,5 @@ update2((state) => { | ||
}, | ||
/** | ||
* Removes all items within a namespace. | ||
*/ | ||
removeAll: (ns) => { | ||
@@ -88,2 +77,5 @@ update2((state) => { | ||
}, | ||
/** | ||
* Replaces all items within a namespace. | ||
*/ | ||
store: (ns, newItems) => { | ||
@@ -96,3 +88,5 @@ update2((state) => { | ||
refresh: () => { | ||
update2((state) => __spreadValues({}, state)); | ||
update2((state) => ({ | ||
...state | ||
})); | ||
} | ||
@@ -127,6 +121,16 @@ }), | ||
}; | ||
const update = Stream__default["default"](); | ||
const states = Stream__default["default"].scan((state, patch) => patch(state), __spreadValues({}, store.initialState), update); | ||
const actions = __spreadValues({}, store.actions(update)); | ||
const selectors = __spreadValues({}, store.selectors(states)); | ||
const update = Stream(); | ||
const states = Stream.scan( | ||
(state, patch) => patch(state), | ||
{ | ||
...store.initialState | ||
}, | ||
update | ||
); | ||
const actions = { | ||
...store.actions(update) | ||
}; | ||
const selectors = { | ||
...store.selectors(states) | ||
}; | ||
const initialState = { | ||
@@ -153,3 +157,3 @@ callback: () => { | ||
}; | ||
return __spreadValues({ | ||
return { | ||
timeoutFn, | ||
@@ -159,8 +163,9 @@ promise: new Promise((resolve) => { | ||
state.onAbort = () => resolve(); | ||
}) | ||
}, state.isPaused ? {} : { | ||
startTime: new Date().getTime(), | ||
timerId: window.setTimeout(timeoutFn, duration), | ||
remaining: duration | ||
}); | ||
}), | ||
...state.isPaused ? {} : { | ||
startTime: new Date().getTime(), | ||
timerId: window.setTimeout(timeoutFn, duration), | ||
remaining: duration | ||
} | ||
}; | ||
}; | ||
@@ -173,4 +178,7 @@ const appendStopTimeout = (state) => { | ||
}; | ||
const appendStopTimer = (state) => __spreadValues({}, appendStopTimeout(state)); | ||
const appendPauseTimer = (state) => __spreadProps(__spreadValues({}, appendStopTimeout(state)), { | ||
const appendStopTimer = (state) => ({ | ||
...appendStopTimeout(state) | ||
}); | ||
const appendPauseTimer = (state) => ({ | ||
...appendStopTimeout(state), | ||
isPaused: true, | ||
@@ -194,23 +202,73 @@ remaining: getRemaining$1(state) | ||
actions: (update22) => ({ | ||
/** | ||
* Starts the timer | ||
* @param {callback} Function Callback function that is called after completion. | ||
* @param {duration} Number Timer duration in milliseconds. | ||
*/ | ||
start: (callback, duration) => { | ||
update22((state) => __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, state), appendStopTimeout(state)), appendStartTimer(state, callback, duration, () => timer.actions(update22).done())), state.isPaused && appendPauseTimer(state))); | ||
update22((state) => ({ | ||
...state, | ||
...appendStopTimeout(state), | ||
...appendStartTimer( | ||
state, | ||
callback, | ||
duration, | ||
() => timer.actions(update22).done() | ||
), | ||
...state.isPaused && appendPauseTimer(state) | ||
})); | ||
}, | ||
/** | ||
* Stops the timer. | ||
*/ | ||
stop: () => { | ||
update22((state) => __spreadValues(__spreadValues(__spreadValues({}, state), appendStopTimer(state)), initialState)); | ||
update22((state) => ({ | ||
...state, | ||
...appendStopTimer(state), | ||
...initialState | ||
})); | ||
}, | ||
/** | ||
* Pauses a running timer. | ||
*/ | ||
pause: () => { | ||
update22((state) => __spreadValues(__spreadValues({}, state), !state.isPaused && appendPauseTimer(state))); | ||
update22((state) => ({ | ||
...state, | ||
...!state.isPaused && appendPauseTimer(state) | ||
})); | ||
}, | ||
/** | ||
* Resumes a paused timer. | ||
* @param {minimumDuration} Number Sets the minimum duration. | ||
*/ | ||
resume: (minimumDuration) => { | ||
update22((state) => __spreadValues(__spreadValues({}, state), state.isPaused && appendResumeTimer(state, minimumDuration))); | ||
update22((state) => ({ | ||
...state, | ||
...state.isPaused && appendResumeTimer(state, minimumDuration) | ||
})); | ||
}, | ||
/** | ||
* Aborts and clears a timer. | ||
*/ | ||
abort: () => { | ||
update22((state) => { | ||
state.onAbort(); | ||
return __spreadValues(__spreadValues({}, state), appendStopTimeout(state)); | ||
return { | ||
...state, | ||
...appendStopTimeout(state) | ||
}; | ||
}); | ||
}, | ||
/** | ||
* Updates the current state. Used to get the state for selectors.getRemaining. | ||
*/ | ||
refresh: () => { | ||
update22((state) => __spreadValues({}, state)); | ||
update22((state) => ({ | ||
...state | ||
})); | ||
}, | ||
/** | ||
* Brings the timer to its initial state. | ||
* Used internally. | ||
*/ | ||
done: () => { | ||
@@ -221,2 +279,5 @@ update22(() => initialState); | ||
selectors: (states22) => ({ | ||
/** | ||
* Returns the paused state. | ||
*/ | ||
isPaused: () => { | ||
@@ -226,2 +287,5 @@ const state = states22(); | ||
}, | ||
/** | ||
* Returns the remaining duration in milliseconds. | ||
*/ | ||
getRemaining: () => { | ||
@@ -231,2 +295,5 @@ const state = states22(); | ||
}, | ||
/** | ||
* The promise that is handled when the timer is done or canceled. | ||
*/ | ||
getResultPromise: () => { | ||
@@ -238,6 +305,16 @@ const state = states22(); | ||
}; | ||
const update2 = Stream__default["default"](); | ||
const states2 = Stream__default["default"].scan((state, patch) => patch(state), __spreadValues({}, timer.initialState), update2); | ||
const actions2 = __spreadValues({}, timer.actions(update2)); | ||
const selectors2 = __spreadValues({}, timer.selectors(states2)); | ||
const update2 = Stream(); | ||
const states2 = Stream.scan( | ||
(state, patch) => patch(state), | ||
{ | ||
...timer.initialState | ||
}, | ||
update2 | ||
); | ||
const actions2 = { | ||
...timer.actions(update2) | ||
}; | ||
const selectors2 = { | ||
...timer.selectors(states2) | ||
}; | ||
return { | ||
@@ -249,3 +326,2 @@ states: states2, | ||
}; | ||
const pipe = (...fns) => (x) => fns.filter(Boolean).reduce((y, f) => f(y), x); | ||
const getStyleValue = ({ | ||
@@ -255,3 +331,3 @@ domElement, | ||
}) => { | ||
const defaultView = document.defaultView; | ||
const { defaultView } = document; | ||
if (defaultView) { | ||
@@ -269,3 +345,8 @@ const style = defaultView.getComputedStyle(domElement); | ||
}; | ||
const removeTransitionClassNames = (domElement, transitionClassNames) => domElement.classList.remove(...transitionClassNames.showStart, ...transitionClassNames.showEnd, ...transitionClassNames.hideStart, ...transitionClassNames.hideEnd); | ||
const removeTransitionClassNames = (domElement, transitionClassNames) => domElement.classList.remove( | ||
...transitionClassNames.showStart, | ||
...transitionClassNames.showEnd, | ||
...transitionClassNames.hideStart, | ||
...transitionClassNames.hideEnd | ||
); | ||
const applyTransitionStyles = (domElement, step, styles) => { | ||
@@ -347,3 +428,8 @@ const transitionStyle = styles[step]; | ||
return new Promise((resolve) => { | ||
applyStylesForState(domElement, props, currentStep, currentStep === "showStart"); | ||
applyStylesForState( | ||
domElement, | ||
props, | ||
currentStep, | ||
currentStep === "showStart" | ||
); | ||
setTimeout(() => { | ||
@@ -371,10 +457,10 @@ const { nextStep } = steps[currentStep]; | ||
}; | ||
var TransitionStates; | ||
(function(TransitionStates2) { | ||
TransitionStates2[TransitionStates2["Default"] = 0] = "Default"; | ||
TransitionStates2[TransitionStates2["Displaying"] = 1] = "Displaying"; | ||
TransitionStates2[TransitionStates2["Hiding"] = 2] = "Hiding"; | ||
})(TransitionStates || (TransitionStates = {})); | ||
const getMaybeItem = (ns) => (defaultDialogicOptions) => (identityOptions) => selectors.find(ns, getMergedIdentityOptions(defaultDialogicOptions, identityOptions)); | ||
const filterBySpawn = (identityOptions) => (items) => identityOptions.spawn !== void 0 ? items.filter((item) => item.identityOptions.spawn === identityOptions.spawn) : items; | ||
const getMaybeItem = (ns) => (defaultDialogicOptions) => (identityOptions) => selectors.find( | ||
ns, | ||
// eslint-disable-next-line @typescript-eslint/no-use-before-define | ||
getMergedIdentityOptions(defaultDialogicOptions, identityOptions) | ||
); | ||
const filterBySpawn = (identityOptions) => (items) => identityOptions.spawn !== void 0 ? items.filter( | ||
(item) => item.identityOptions.spawn === identityOptions.spawn | ||
) : items; | ||
const filterById = (identityOptions) => (items) => identityOptions.id !== void 0 ? items.filter((item) => item.identityOptions.id === identityOptions.id) : items; | ||
@@ -393,6 +479,9 @@ const filterFirstInQueue = (nsItems) => { | ||
} | ||
return pipe(filterBySpawn(identityOptions), filterFirstInQueue)(nsItems); | ||
const filteredBySpawn = filterBySpawn(identityOptions)(nsItems); | ||
return filterFirstInQueue(filteredBySpawn); | ||
}; | ||
const getPassThroughOptions = (options) => { | ||
const copy = __spreadValues({}, options); | ||
const copy = { | ||
...options | ||
}; | ||
delete copy.dialogic; | ||
@@ -405,12 +494,17 @@ return copy; | ||
}); | ||
const handleOptions = (defaultDialogicOptions, options = {}) => { | ||
const handleOptions = (defaultDialogicOptions, options) => { | ||
const identityOptions = { | ||
id: options.dialogic ? options.dialogic.id : void 0, | ||
spawn: options.dialogic ? options.dialogic.spawn : void 0 | ||
id: (options == null ? void 0 : options.dialogic) ? options.dialogic.id : void 0, | ||
spawn: (options == null ? void 0 : options.dialogic) ? options.dialogic.spawn : void 0 | ||
}; | ||
const mergedIdentityOptions = getMergedIdentityOptions(defaultDialogicOptions || {}, identityOptions); | ||
const dialogicOptions = __spreadProps(__spreadValues(__spreadValues({}, defaultDialogicOptions), options.dialogic), { | ||
const mergedIdentityOptions = getMergedIdentityOptions( | ||
defaultDialogicOptions || {}, | ||
identityOptions | ||
); | ||
const dialogicOptions = { | ||
...defaultDialogicOptions, | ||
...options == null ? void 0 : options.dialogic, | ||
__transitionTimeoutId__: 0 | ||
}); | ||
const passThroughOptions = getPassThroughOptions(options); | ||
}; | ||
const passThroughOptions = options ? getPassThroughOptions(options) : {}; | ||
return { | ||
@@ -459,17 +553,26 @@ identityOptions: mergedIdentityOptions, | ||
timer: dialogicOptions.timeout ? TimerStore() : void 0, | ||
// when timeout is undefined or 0 | ||
key: getUid().toString(), | ||
// Uniquely identify each item for keyed display | ||
transitionState: 0 | ||
/* Default */ | ||
}; | ||
const maybeExistingItem = selectors.find(ns, identityOptions); | ||
const maybeExistingItem = selectors.find( | ||
ns, | ||
identityOptions | ||
); | ||
const existingItem = maybeExistingItem.just; | ||
if (existingItem && dialogicOptions.toggle) { | ||
hide(ns)(defaultDialogicOptions)(options); | ||
return resolve(existingItem); | ||
resolve(existingItem); | ||
return; | ||
} | ||
if (existingItem && !dialogicOptions.queued) { | ||
const replacingItem = __spreadProps(__spreadValues({}, item), { | ||
const replacingItem = { | ||
...item, | ||
key: existingItem.key, | ||
transitionState: existingItem.transitionState, | ||
dialogicOptions: existingItem.dialogicOptions | ||
}); | ||
// Preserve dialogicOptions | ||
}; | ||
actions.replace(ns, existingItem.id, replacingItem); | ||
@@ -485,11 +588,19 @@ } else { | ||
const { identityOptions, dialogicOptions, passThroughOptions } = handleOptions(defaultDialogicOptions, options); | ||
const maybeExistingItem = selectors.find(ns, identityOptions); | ||
const maybeExistingItem = selectors.find( | ||
ns, | ||
identityOptions | ||
); | ||
const existingItem = maybeExistingItem.just; | ||
if (existingItem) { | ||
const item = __spreadProps(__spreadValues({}, existingItem), { | ||
dialogicOptions: __spreadValues(__spreadValues({}, existingItem.dialogicOptions), dialogicOptions), | ||
passThroughOptions: __spreadProps(__spreadValues({}, existingItem.passThroughOptions), { | ||
const item = { | ||
...existingItem, | ||
dialogicOptions: { | ||
...existingItem.dialogicOptions, | ||
...dialogicOptions | ||
}, | ||
passThroughOptions: { | ||
...existingItem.passThroughOptions, | ||
passThroughOptions | ||
}) | ||
}); | ||
} | ||
}; | ||
actions.replace(ns, existingItem.id, item); | ||
@@ -507,3 +618,5 @@ if (item.transitionState !== 2) { | ||
const pause = (ns) => (_defaultDialogicOptions) => (identityOptions) => { | ||
const validItems = getValidItems(ns, identityOptions).filter((item) => !!item.timer); | ||
const validItems = getValidItems(ns, identityOptions).filter( | ||
(item) => !!item.timer | ||
); | ||
validItems.forEach((item) => { | ||
@@ -522,3 +635,5 @@ if (item.timer) { | ||
}; | ||
const validItems = getValidItems(ns, identityOptions).filter((item) => !!item.timer); | ||
const validItems = getValidItems(ns, identityOptions).filter( | ||
(item) => !!item.timer | ||
); | ||
validItems.forEach((item) => { | ||
@@ -533,3 +648,5 @@ if (item.timer) { | ||
var _a, _b; | ||
const maybeItem = getMaybeItem(ns)(defaultDialogicOptions)(identityOptions); | ||
const maybeItem = getMaybeItem(ns)( | ||
defaultDialogicOptions | ||
)(identityOptions); | ||
return (_b = (_a = maybeItem == null ? void 0 : maybeItem.just) == null ? void 0 : _a.timer) == null ? void 0 : _b.selectors; | ||
@@ -539,9 +656,20 @@ }; | ||
var _a; | ||
return ((_a = getTimerSelectors(ns, defaultDialogicOptions, identityOptions)) == null ? void 0 : _a.isPaused()) || false; | ||
return ((_a = getTimerSelectors( | ||
ns, | ||
defaultDialogicOptions, | ||
identityOptions | ||
)) == null ? void 0 : _a.isPaused()) || false; | ||
}; | ||
const getRemaining = (ns) => (defaultDialogicOptions) => (identityOptions) => { | ||
var _a; | ||
return ((_a = getTimerSelectors(ns, defaultDialogicOptions, identityOptions)) == null ? void 0 : _a.getRemaining()) || void 0; | ||
return ((_a = getTimerSelectors( | ||
ns, | ||
defaultDialogicOptions, | ||
identityOptions | ||
)) == null ? void 0 : _a.getRemaining()) || void 0; | ||
}; | ||
const exists = (ns) => (_defaultDialogicOptions) => (identityOptions) => !!getValidItems(ns, identityOptions).length; | ||
const exists = (ns) => (_defaultDialogicOptions) => (identityOptions) => ( | ||
// eslint-disable-next-line @typescript-eslint/no-use-before-define | ||
!!getValidItems(ns, identityOptions).length | ||
); | ||
const getValidItems = (ns, identityOptions) => { | ||
@@ -551,3 +679,4 @@ const allItems = selectors.getAll(ns); | ||
if (identityOptions) { | ||
validItems = pipe(filterBySpawn(identityOptions), filterById(identityOptions))(allItems); | ||
const filteredBySpawn = filterBySpawn(identityOptions)(allItems); | ||
validItems = filterById(identityOptions)(filteredBySpawn); | ||
} else { | ||
@@ -576,4 +705,8 @@ validItems = allItems; | ||
}; | ||
const getOverridingTransitionOptions = (item, dialogicOptions) => __spreadProps(__spreadValues({}, item), { | ||
dialogicOptions: __spreadValues(__spreadValues({}, item.dialogicOptions), dialogicOptions) | ||
const getOverridingTransitionOptions = (item, dialogicOptions) => ({ | ||
...item, | ||
dialogicOptions: { | ||
...item.dialogicOptions, | ||
...dialogicOptions | ||
} | ||
}); | ||
@@ -587,6 +720,15 @@ const hideAll = (ns) => (_defaultDialogicOptions) => (dialogicOptions) => { | ||
const validItems = getValidItems(ns, identityOptions); | ||
const regularItems = validItems.filter((item) => !options.queued && !item.dialogicOptions.queued); | ||
const queuedItems = validItems.filter((item) => options.queued || item.dialogicOptions.queued); | ||
const regularItems = validItems.filter( | ||
(item) => !options.queued && !item.dialogicOptions.queued | ||
); | ||
const queuedItems = validItems.filter( | ||
(item) => options.queued || item.dialogicOptions.queued | ||
); | ||
const items = []; | ||
regularItems.forEach((item) => items.push(hideItem(getOverridingTransitionOptions(item, options)))); | ||
regularItems.forEach( | ||
(item) => ( | ||
// eslint-disable-next-line @typescript-eslint/no-use-before-define | ||
items.push(hideItem(getOverridingTransitionOptions(item, options))) | ||
) | ||
); | ||
if (queuedItems.length > 0) { | ||
@@ -602,3 +744,5 @@ const [current] = queuedItems; | ||
const getResultPromise = () => (ns) => (defaultDialogicOptions) => (identityOptions) => { | ||
const maybeItem = getMaybeItem(ns)(defaultDialogicOptions)(identityOptions); | ||
const maybeItem = getMaybeItem(ns)( | ||
defaultDialogicOptions | ||
)(identityOptions); | ||
if (maybeItem.just) { | ||
@@ -644,3 +788,5 @@ if (maybeItem.just && maybeItem.just.timer) { | ||
} | ||
const copy = __spreadValues({}, item); | ||
const copy = { | ||
...item | ||
}; | ||
actions.remove(item.ns, item.id); | ||
@@ -659,11 +805,16 @@ return Promise.resolve(copy); | ||
const defaultSpawn = `default_${ns}`; | ||
const defaultDialogicOptions = __spreadValues(__spreadValues({ | ||
const defaultDialogicOptions = { | ||
id: defaultId, | ||
spawn: defaultSpawn | ||
}, queued && { queued }), timeout !== void 0 && { timeout }); | ||
spawn: defaultSpawn, | ||
...queued && { queued }, | ||
...timeout !== void 0 && { timeout } | ||
}; | ||
return { | ||
// Identification | ||
ns, | ||
defaultId, | ||
defaultSpawn, | ||
// Configuration | ||
defaultDialogicOptions, | ||
// Commands | ||
show: show(ns)(defaultDialogicOptions), | ||
@@ -673,6 +824,9 @@ hide: hide(ns)(defaultDialogicOptions), | ||
resetAll: resetAll(ns)(defaultDialogicOptions), | ||
// Timer commands | ||
pause: pause(ns)(defaultDialogicOptions), | ||
resume: resume(ns)(defaultDialogicOptions), | ||
// State | ||
exists: exists(ns)(defaultDialogicOptions), | ||
getCount: getCount(ns), | ||
// Timer state | ||
isPaused: isPaused(ns)(defaultDialogicOptions), | ||
@@ -711,6 +865,5 @@ getRemaining: getRemaining(ns)(defaultDialogicOptions) | ||
}; | ||
var types = /* @__PURE__ */ Object.freeze({ | ||
__proto__: null, | ||
[Symbol.toStringTag]: "Module" | ||
}); | ||
const types = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ | ||
__proto__: null | ||
}, Symbol.toStringTag, { value: "Module" })); | ||
exports2.Dialogic = types; | ||
@@ -738,5 +891,4 @@ exports2.actions = actions; | ||
exports2.states = states; | ||
Object.defineProperty(exports2, "__esModule", { value: true }); | ||
exports2[Symbol.toStringTag] = "Module"; | ||
Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" }); | ||
}); | ||
//# sourceMappingURL=dialogic.umd.js.map |
@@ -1,2 +0,2 @@ | ||
import { Dialogic } from "./index"; | ||
import type { Dialogic } from './index'; | ||
export declare const dialogical: ({ ns, queued, timeout, }: { | ||
@@ -3,0 +3,0 @@ ns: string; |
@@ -1,6 +0,6 @@ | ||
export { dialog } from "./dialog"; | ||
export * from "./dialogic"; | ||
export { dialogical } from "./dialogical"; | ||
export { notification } from "./notification"; | ||
export { remaining } from "./remaining"; | ||
export * as Dialogic from "./types"; | ||
export { dialog } from './dialog'; | ||
export * from './dialogic'; | ||
export { dialogical } from './dialogical'; | ||
export { notification } from './notification'; | ||
export { remaining } from './remaining'; | ||
export * as Dialogic from './types'; |
@@ -5,4 +5,4 @@ /** | ||
*/ | ||
import { DialogicInstance } from './types'; | ||
declare type RemainingProps = { | ||
import type { DialogicInstance } from './types'; | ||
type RemainingProps = { | ||
/** | ||
@@ -9,0 +9,0 @@ * Dialogic instance: notification, dialog, or custom. |
@@ -1,2 +0,2 @@ | ||
import { Dialogic } from "../index"; | ||
import type { Dialogic } from '../index'; | ||
export declare const createId: (identityOptions: Dialogic.IdentityOptions, ns: string) => string; | ||
@@ -36,4 +36,4 @@ export declare const states: Dialogic.States; | ||
}; | ||
getAll: <T_1 = unknown>(ns: string, identityOptions?: Dialogic.IdentityOptions | undefined) => Dialogic.Item<T_1>[]; | ||
getCount: (ns: string, identityOptions?: Dialogic.IdentityOptions | undefined) => number; | ||
getAll: <T_1 = unknown>(ns: string, identityOptions?: Dialogic.IdentityOptions) => Dialogic.Item<T_1>[]; | ||
getCount: (ns: string, identityOptions?: Dialogic.IdentityOptions) => number; | ||
}; |
@@ -1,4 +0,4 @@ | ||
import Stream from "mithril-stream-standalone"; | ||
declare type TimerCallback = () => unknown; | ||
declare type TOnFinishFn = () => void; | ||
import Stream from 'mithril-stream-standalone'; | ||
type TimerCallback = () => unknown; | ||
type TOnFinishFn = () => void; | ||
export declare const TimerStore: () => { | ||
@@ -35,3 +35,3 @@ states: Stream<{ | ||
*/ | ||
resume: (minimumDuration?: number | undefined) => void; | ||
resume: (minimumDuration?: number) => void; | ||
/** | ||
@@ -66,3 +66,3 @@ * Aborts and clears a timer. | ||
}; | ||
export declare type Timer = ReturnType<typeof TimerStore>; | ||
export type Timer = ReturnType<typeof TimerStore>; | ||
export {}; |
@@ -5,4 +5,4 @@ export declare const MODE: { | ||
}; | ||
export declare type TransitionStylesFn = (domElement: HTMLElement) => TransitionStyles; | ||
export declare type TransitionStyles = { | ||
export type TransitionStylesFn = (domElement: HTMLElement) => TransitionStyles; | ||
export type TransitionStyles = { | ||
default?: Partial<CSSStyleDeclaration>; | ||
@@ -14,3 +14,3 @@ showStart?: Partial<CSSStyleDeclaration>; | ||
}; | ||
declare type TransitionProps = { | ||
type TransitionProps = { | ||
domElement?: HTMLElement; | ||
@@ -21,3 +21,3 @@ className?: string; | ||
}; | ||
export declare const transition: (props: TransitionProps, mode?: string | undefined) => Promise<unknown>; | ||
export declare const transition: (props: TransitionProps, mode?: string) => Promise<unknown>; | ||
export {}; |
@@ -1,11 +0,11 @@ | ||
import type Stream from "mithril-stream-standalone"; | ||
import { dialogical } from "./dialogical"; | ||
import type { Timer } from "./state/timer"; | ||
import type { TransitionStyles, TransitionStylesFn } from "./transition"; | ||
import type Stream from 'mithril-stream-standalone'; | ||
import type { dialogical } from './dialogical'; | ||
import type { Timer } from './state/timer'; | ||
import type { TransitionStyles, TransitionStylesFn } from './transition'; | ||
export type { TransitionStyles, TransitionStylesFn }; | ||
export declare type DialogicInstance = ReturnType<typeof dialogical>; | ||
declare type ConfirmFn<T = unknown> = { | ||
export type DialogicInstance = ReturnType<typeof dialogical>; | ||
type ConfirmFn<T = unknown> = { | ||
(item: Item<T>): void; | ||
}; | ||
export declare type DefaultDialogicOptions = { | ||
export type DefaultDialogicOptions = { | ||
id: string; | ||
@@ -16,20 +16,20 @@ spawn: string; | ||
}; | ||
export declare type IdentityOptions = { | ||
export type IdentityOptions = { | ||
id?: string; | ||
spawn?: string; | ||
}; | ||
export declare type ComponentOptions = { | ||
export type ComponentOptions = { | ||
onMount?: (args?: unknown) => unknown; | ||
} & IdentityOptions; | ||
export declare type TimerResumeOptions = { | ||
export type TimerResumeOptions = { | ||
minimumDuration?: number; | ||
}; | ||
export declare type CommandOptions = IdentityOptions & TimerResumeOptions; | ||
export declare type PassThroughOptions = unknown; | ||
export declare type DialogicalWrapperOptions = { | ||
export type CommandOptions = IdentityOptions & TimerResumeOptions; | ||
export type PassThroughOptions = unknown; | ||
export type DialogicalWrapperOptions = { | ||
ns: string; | ||
identityOptions: IdentityOptions; | ||
}; | ||
export declare type DialogicalInstanceDispatchFn = (event: InstanceEvent) => void; | ||
export declare type DialogicalInstanceOptions<T = unknown> = { | ||
export type DialogicalInstanceDispatchFn = (event: InstanceEvent) => void; | ||
export type DialogicalInstanceOptions<T = unknown> = { | ||
identityOptions: IdentityOptions; | ||
@@ -42,3 +42,3 @@ dialogicOptions: DialogicOptions<T>; | ||
}; | ||
export declare type DialogicOptions<T = unknown> = { | ||
export type DialogicOptions<T = unknown> = { | ||
className?: string; | ||
@@ -58,10 +58,10 @@ component?: unknown; | ||
}; | ||
export declare type Options<T = unknown> = { | ||
export type Options<T = unknown> = { | ||
dialogic?: DialogicOptions<T>; | ||
} & T; | ||
export declare type MaybeItem<T = unknown> = { | ||
export type MaybeItem<T = unknown> = { | ||
just?: Item<T>; | ||
nothing?: undefined; | ||
}; | ||
export declare type Callbacks<T = unknown> = { | ||
export type Callbacks<T = unknown> = { | ||
willHide: ConfirmFn<T>; | ||
@@ -75,3 +75,3 @@ willShow: ConfirmFn<T>; | ||
*/ | ||
export declare type Item<T = unknown> = { | ||
export type Item<T = unknown> = { | ||
ns: string; | ||
@@ -87,10 +87,10 @@ id: string; | ||
}; | ||
export declare type NamespaceStore = { | ||
export type NamespaceStore = { | ||
[key: string]: Item<unknown>[]; | ||
}; | ||
export declare type State = { | ||
export type State = { | ||
store: NamespaceStore; | ||
}; | ||
export declare type States = Stream<State>; | ||
export declare type InstanceEvent = { | ||
export type States = Stream<State>; | ||
export type InstanceEvent = { | ||
detail: { | ||
@@ -101,2 +101,2 @@ identityOptions: IdentityOptions; | ||
}; | ||
export declare type InitiateItemTransitionFn = <T = unknown>(item: Item<T>) => Promise<Item<T>>; | ||
export type InitiateItemTransitionFn = <T = unknown>(item: Item<T>) => Promise<Item<T>>; |
export declare const isClient: boolean; | ||
export declare const isServer: boolean; | ||
declare type Fn = (args: any) => any; | ||
export declare const pipe: (...fns: Fn[]) => (x: any) => any; | ||
export declare const getStyleValue: ({ domElement, prop, }: { | ||
@@ -9,2 +7,1 @@ domElement: HTMLElement; | ||
}) => string | undefined; | ||
export {}; |
{ | ||
"name": "dialogic", | ||
"version": "0.13.6", | ||
"version": "0.13.7", | ||
"description": "Logic for dialogs and notifications", | ||
"types": "dist", | ||
"type": "module", | ||
@@ -15,2 +14,3 @@ "files": [ | ||
".": { | ||
"require": "./dist/dialogic.cjs", | ||
"import": "./dist/dialogic.module.js", | ||
@@ -21,3 +21,3 @@ "default": "./dist/dialogic.umd.js" | ||
"scripts": { | ||
"deps": "../../node_modules/npm-check-updates/bin/cli.js -u", | ||
"deps": "../../node_modules/npm-check-updates/build/src/bin/cli.js -u", | ||
"build": "node ../../node_modules/npm-run-all/bin/run-s/index.js build:*", | ||
@@ -27,6 +27,4 @@ "build:vite": "vite build", | ||
}, | ||
"devDependencies": { | ||
"mithril-stream-standalone": "0.1.4", | ||
"typescript": "^4.4.4", | ||
"vite": "^2.6.14" | ||
"dependencies": { | ||
"mithril-stream-standalone": "0.1.6" | ||
}, | ||
@@ -33,0 +31,0 @@ "author": "Arthur Clemens <arthurclemens@gmail.com> (http://arthurclemens.com)", |
@@ -5,5 +5,31 @@ # Dialogic | ||
## Size | ||
## Sizes | ||
- Module: `3.81 KB` with all dependencies, minified and gzipped | ||
- UMD: `3.66 KB` with all dependencies, minified and gzipped | ||
``` | ||
┌──────────────────────────────────────┐ | ||
│ │ | ||
│ Bundle Name: dialogic.module.js │ | ||
│ Bundle Size: 23.7 KB │ | ||
│ Minified Size: 10.86 KB │ | ||
│ Gzipped Size: 3.49 KB │ | ||
│ │ | ||
└──────────────────────────────────────┘ | ||
┌───────────────────────────────────┐ | ||
│ │ | ||
│ Bundle Name: dialogic.umd.js │ | ||
│ Bundle Size: 26.17 KB │ | ||
│ Minified Size: 9.11 KB │ | ||
│ Gzipped Size: 3.31 KB │ | ||
│ │ | ||
└───────────────────────────────────┘ | ||
┌────────────────────────────────┐ | ||
│ │ | ||
│ Bundle Name: dialogic.cjs │ | ||
│ Bundle Size: 24.13 KB │ | ||
│ Minified Size: 11.29 KB │ | ||
│ Gzipped Size: 3.58 KB │ | ||
│ │ | ||
└────────────────────────────────┘ | ||
``` |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
251728
0
19
2896
34
1
+ Addedmithril-stream-standalone@0.1.6(transitive)