vscroll 1.4.4 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles/vscroll.esm5.js +102 -75
- package/dist/bundles/vscroll.esm5.js.map +1 -1
- package/dist/bundles/vscroll.esm5.min.js +2 -2
- package/dist/bundles/vscroll.esm5.min.js.map +1 -1
- package/dist/bundles/vscroll.esm6.js +20 -8
- package/dist/bundles/vscroll.esm6.js.map +1 -1
- package/dist/bundles/vscroll.esm6.min.js +2 -2
- package/dist/bundles/vscroll.esm6.min.js.map +1 -1
- package/dist/bundles/vscroll.umd.js +103 -76
- package/dist/bundles/vscroll.umd.js.map +1 -1
- package/dist/bundles/vscroll.umd.min.js +2 -2
- package/dist/bundles/vscroll.umd.min.js.map +1 -1
- package/dist/esm2015/classes/domRoutines.js +12 -2
- package/dist/esm2015/classes/domRoutines.js.map +1 -1
- package/dist/esm2015/classes/logger.js.map +1 -1
- package/dist/esm2015/index.js.map +1 -1
- package/dist/esm2015/interfaces/index.js.map +1 -1
- package/dist/esm2015/interfaces/routines.js.map +1 -1
- package/dist/esm2015/interfaces/workflow.js.map +1 -1
- package/dist/esm2015/scroller.js +2 -2
- package/dist/esm2015/scroller.js.map +1 -1
- package/dist/esm2015/version.js +1 -1
- package/dist/esm2015/version.js.map +1 -1
- package/dist/esm2015/workflow.js +4 -2
- package/dist/esm2015/workflow.js.map +1 -1
- package/dist/esm5/classes/adapter.js +4 -4
- package/dist/esm5/classes/adapter.js.map +1 -1
- package/dist/esm5/classes/buffer/cache.js +1 -1
- package/dist/esm5/classes/buffer/cache.js.map +1 -1
- package/dist/esm5/classes/buffer/checkCall.js +4 -4
- package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
- package/dist/esm5/classes/buffer.js +3 -3
- package/dist/esm5/classes/buffer.js.map +1 -1
- package/dist/esm5/classes/domRoutines.js +26 -5
- package/dist/esm5/classes/domRoutines.js.map +1 -1
- package/dist/esm5/classes/logger.js +19 -19
- package/dist/esm5/classes/logger.js.map +1 -1
- package/dist/esm5/classes/state/cycle.js +2 -2
- package/dist/esm5/classes/state/cycle.js.map +1 -1
- package/dist/esm5/classes/viewport.js +1 -1
- package/dist/esm5/classes/viewport.js.map +1 -1
- package/dist/esm5/index.js.map +1 -1
- package/dist/esm5/inputs/validation.js +4 -4
- package/dist/esm5/inputs/validation.js.map +1 -1
- package/dist/esm5/interfaces/index.js.map +1 -1
- package/dist/esm5/interfaces/routines.js.map +1 -1
- package/dist/esm5/interfaces/workflow.js.map +1 -1
- package/dist/esm5/processes/adapter/remove.js +1 -1
- package/dist/esm5/processes/adapter/remove.js.map +1 -1
- package/dist/esm5/processes/adjust.js +5 -5
- package/dist/esm5/processes/adjust.js.map +1 -1
- package/dist/esm5/processes/clip.js +5 -5
- package/dist/esm5/processes/clip.js.map +1 -1
- package/dist/esm5/processes/fetch.js +2 -2
- package/dist/esm5/processes/fetch.js.map +1 -1
- package/dist/esm5/processes/misc/base.js +1 -1
- package/dist/esm5/processes/misc/base.js.map +1 -1
- package/dist/esm5/processes/preClip.js +2 -2
- package/dist/esm5/processes/preClip.js.map +1 -1
- package/dist/esm5/processes/preFetch.js +5 -5
- package/dist/esm5/processes/preFetch.js.map +1 -1
- package/dist/esm5/processes/scroll.js +2 -2
- package/dist/esm5/processes/scroll.js.map +1 -1
- package/dist/esm5/scroller.js +3 -3
- package/dist/esm5/scroller.js.map +1 -1
- package/dist/esm5/version.js +1 -1
- package/dist/esm5/version.js.map +1 -1
- package/dist/esm5/workflow.js +10 -4
- package/dist/esm5/workflow.js.map +1 -1
- package/dist/typings/classes/domRoutines.d.ts +2 -2
- package/dist/typings/index.d.ts +2 -2
- package/dist/typings/interfaces/index.d.ts +2 -2
- package/dist/typings/interfaces/routines.d.ts +3 -0
- package/dist/typings/interfaces/workflow.d.ts +3 -0
- package/dist/typings/scroller.d.ts +1 -1
- package/dist/typings/workflow.d.ts +1 -1
- package/package.json +18 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from './scroller';\nimport { runStateMachine } from './workflow-transducer';\nimport { Reactive } from './classes/reactive';\nimport { Item } from './classes/item';\nimport { CommonProcess, ProcessStatus as Status, } from './processes/index';\nimport {\n WorkflowParams,\n ProcessName,\n ProcessPayload,\n ProcessClass,\n ProcessSubject,\n WorkflowError,\n InterruptParams,\n StateMachineMethods,\n ScrollerWorkflow,\n} from './interfaces/index';\n\nexport class Workflow<ItemData = unknown> {\n\n isInitialized: boolean;\n initTimer: ReturnType<typeof setTimeout> | null;\n adapterRun$: Reactive<ProcessSubject>;\n cyclesDone: number;\n interruptionCount: number;\n errors: WorkflowError[];\n\n private offScroll: () => void;\n readonly propagateChanges: WorkflowParams<ItemData>['run'];\n readonly stateMachineMethods: StateMachineMethods<ItemData>;\n\n scroller: Scroller<ItemData>;\n\n constructor({ element, datasource, consumer, run }: WorkflowParams<ItemData>) {\n this.isInitialized = false;\n this.initTimer = null;\n this.adapterRun$ = new Reactive();\n this.cyclesDone = 0;\n this.interruptionCount = 0;\n this.errors = [];\n this.offScroll = () => null;\n this.propagateChanges = run;\n this.stateMachineMethods = {\n run: this.runProcess(),\n interrupt: this.interrupt.bind(this),\n done: this.done.bind(this),\n onError: this.onError.bind(this)\n };\n\n this.scroller = new Scroller<ItemData>({ element, datasource, consumer, workflow: this.getUpdater() });\n\n if (this.scroller.settings.initializeDelay) {\n this.initTimer = setTimeout(() => {\n this.initTimer = null;\n this.init();\n }, this.scroller.settings.initializeDelay);\n } else {\n this.init();\n }\n }\n\n init(): void {\n this.scroller.init(this.adapterRun$);\n this.isInitialized = true;\n\n // run the Workflow\n this.callWorkflow({\n process: CommonProcess.init,\n status: Status.start\n });\n\n // set up scroll event listener\n const { routines } = this.scroller;\n const onScrollHandler: EventListener =\n event => this.callWorkflow({\n process: CommonProcess.scroll,\n status: Status.start,\n payload: { event }\n });\n this.offScroll = routines.onScroll(onScrollHandler);\n }\n\n changeItems(items: Item<ItemData>[]): void {\n this.propagateChanges(items);\n }\n\n callWorkflow(processSubject: ProcessSubject): void {\n if (!this.isInitialized) {\n return;\n }\n const { process, status } = processSubject;\n if (process && process.startsWith('adapter') && status !== Status.next) {\n this.adapterRun$.set(processSubject);\n }\n this.process(processSubject);\n }\n\n getUpdater(): ScrollerWorkflow<ItemData> {\n return {\n call: this.callWorkflow.bind(this),\n onDataChanged: this.changeItems.bind(this),\n };\n }\n\n process(data: ProcessSubject): void {\n const { status, process, payload } = data;\n if (this.scroller.settings.logProcessRun) {\n this.scroller.logger.log(() => [\n '%cfire%c', ...['color: #cc7777;', 'color: #000000;'],\n process, `\"${status}\"`, ...(payload !== void 0 ? [payload] : [])\n ]);\n }\n this.scroller.logger.logProcess(data);\n\n if (process === CommonProcess.end) {\n this.scroller.finalize();\n }\n runStateMachine({\n input: data,\n methods: this.stateMachineMethods as StateMachineMethods<unknown>\n });\n }\n\n runProcess() {\n return ({ run, process, name }: ProcessClass) =>\n (...args: any[]): void => {\n if (this.scroller.settings.logProcessRun) {\n this.scroller.logger.log(() => [\n '%crun%c', ...['color: #333399;', 'color: #000000;'],\n process || name, ...args\n ]);\n }\n run(this.scroller as Scroller, ...args);\n };\n }\n\n onError(process: ProcessName, payload?: ProcessPayload): void {\n const message: string = payload && String(payload.error) || '';\n const { time, cycle } = this.scroller.state;\n this.errors.push({\n process,\n message,\n time,\n loop: cycle.loopIdNext\n });\n this.scroller.logger.logError(message);\n }\n\n interrupt({ process, finalize, datasource }: InterruptParams<ItemData>): void {\n if (finalize) {\n const { workflow, logger } = this.scroller;\n // we are going to create a new reference for the scroller.workflow object\n // calling the old version of the scroller.workflow by any outstanding async processes will be skipped\n workflow.call = (p: ProcessSubject) => // eslint-disable-line @typescript-eslint/no-unused-vars\n logger.log('[skip wf call]');\n workflow.call.interrupted = true;\n this.scroller.workflow = this.getUpdater();\n this.interruptionCount++;\n logger.log(() => `workflow had been interrupted by the ${process} process (${this.interruptionCount})`);\n }\n if (datasource) { // Scroller re-initialization case\n this.scroller.adapter.relax(() => {\n this.scroller.logger.log('new Scroller instantiation');\n const scroller = new Scroller<ItemData>({ datasource, scroller: this.scroller });\n this.scroller.dispose();\n this.scroller = scroller;\n this.scroller.init();\n });\n }\n }\n\n done(): void {\n const { state, logger } = this.scroller;\n this.cyclesDone++;\n logger.logCycle(false);\n state.endWorkflowCycle(this.cyclesDone + 1);\n this.finalize();\n }\n\n dispose(): void {\n if (this.initTimer) {\n clearTimeout(this.initTimer);\n }\n this.offScroll();\n this.adapterRun$.dispose();\n this.scroller.dispose(true);\n Object.getOwnPropertyNames(this).forEach(prop => {\n delete (this as Record<string, unknown>)[prop];\n });\n }\n\n finalize(): void {\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from './scroller';\nimport { runStateMachine } from './workflow-transducer';\nimport { Reactive } from './classes/reactive';\nimport { Item } from './classes/item';\nimport { CommonProcess, ProcessStatus as Status, } from './processes/index';\nimport {\n WorkflowParams,\n ProcessName,\n ProcessPayload,\n ProcessClass,\n ProcessSubject,\n WorkflowError,\n InterruptParams,\n StateMachineMethods,\n ScrollerWorkflow,\n} from './interfaces/index';\n\nexport class Workflow<ItemData = unknown> {\n\n isInitialized: boolean;\n initTimer: ReturnType<typeof setTimeout> | null;\n adapterRun$: Reactive<ProcessSubject>;\n cyclesDone: number;\n interruptionCount: number;\n errors: WorkflowError[];\n\n private offScroll: () => void;\n readonly propagateChanges: WorkflowParams<ItemData>['run'];\n readonly stateMachineMethods: StateMachineMethods<ItemData>;\n\n scroller: Scroller<ItemData>;\n\n constructor({ element, datasource, consumer, run, Routines }: WorkflowParams<ItemData>) {\n this.isInitialized = false;\n this.initTimer = null;\n this.adapterRun$ = new Reactive();\n this.cyclesDone = 0;\n this.interruptionCount = 0;\n this.errors = [];\n this.offScroll = () => null;\n this.propagateChanges = run;\n this.stateMachineMethods = {\n run: this.runProcess(),\n interrupt: this.interrupt.bind(this),\n done: this.done.bind(this),\n onError: this.onError.bind(this)\n };\n\n this.scroller = new Scroller<ItemData>({\n element, datasource, consumer, workflow: this.getUpdater(), Routines\n });\n\n if (this.scroller.settings.initializeDelay) {\n this.initTimer = setTimeout(() => {\n this.initTimer = null;\n this.init();\n }, this.scroller.settings.initializeDelay);\n } else {\n this.init();\n }\n }\n\n init(): void {\n this.scroller.init(this.adapterRun$);\n this.isInitialized = true;\n\n // run the Workflow\n this.callWorkflow({\n process: CommonProcess.init,\n status: Status.start\n });\n\n // set up scroll event listener\n const { routines } = this.scroller;\n const onScrollHandler: EventListener =\n event => this.callWorkflow({\n process: CommonProcess.scroll,\n status: Status.start,\n payload: { event }\n });\n this.offScroll = routines.onScroll(onScrollHandler);\n }\n\n changeItems(items: Item<ItemData>[]): void {\n this.propagateChanges(items);\n }\n\n callWorkflow(processSubject: ProcessSubject): void {\n if (!this.isInitialized) {\n return;\n }\n const { process, status } = processSubject;\n if (process && process.startsWith('adapter') && status !== Status.next) {\n this.adapterRun$.set(processSubject);\n }\n this.process(processSubject);\n }\n\n getUpdater(): ScrollerWorkflow<ItemData> {\n return {\n call: this.callWorkflow.bind(this),\n onDataChanged: this.changeItems.bind(this),\n };\n }\n\n process(data: ProcessSubject): void {\n const { status, process, payload } = data;\n if (this.scroller.settings.logProcessRun) {\n this.scroller.logger.log(() => [\n '%cfire%c', ...['color: #cc7777;', 'color: #000000;'],\n process, `\"${status}\"`, ...(payload !== void 0 ? [payload] : [])\n ]);\n }\n this.scroller.logger.logProcess(data);\n\n if (process === CommonProcess.end) {\n this.scroller.finalize();\n }\n runStateMachine({\n input: data,\n methods: this.stateMachineMethods as StateMachineMethods<unknown>\n });\n }\n\n runProcess() {\n return ({ run, process, name }: ProcessClass) =>\n (...args: any[]): void => {\n if (this.scroller.settings.logProcessRun) {\n this.scroller.logger.log(() => [\n '%crun%c', ...['color: #333399;', 'color: #000000;'],\n process || name, ...args\n ]);\n }\n run(this.scroller as Scroller, ...args);\n };\n }\n\n onError(process: ProcessName, payload?: ProcessPayload): void {\n const message: string = payload && String(payload.error) || '';\n const { time, cycle } = this.scroller.state;\n this.errors.push({\n process,\n message,\n time,\n loop: cycle.loopIdNext\n });\n this.scroller.logger.logError(message);\n }\n\n interrupt({ process, finalize, datasource }: InterruptParams<ItemData>): void {\n if (finalize) {\n const { workflow, logger } = this.scroller;\n // we are going to create a new reference for the scroller.workflow object\n // calling the old version of the scroller.workflow by any outstanding async processes will be skipped\n workflow.call = (p: ProcessSubject) => // eslint-disable-line @typescript-eslint/no-unused-vars\n logger.log('[skip wf call]');\n workflow.call.interrupted = true;\n this.scroller.workflow = this.getUpdater();\n this.interruptionCount++;\n logger.log(() => `workflow had been interrupted by the ${process} process (${this.interruptionCount})`);\n }\n if (datasource) { // Scroller re-initialization case\n this.scroller.adapter.relax(() => {\n this.scroller.logger.log('new Scroller instantiation');\n const scroller = new Scroller<ItemData>({ datasource, scroller: this.scroller });\n this.scroller.dispose();\n this.scroller = scroller;\n this.scroller.init();\n });\n }\n }\n\n done(): void {\n const { state, logger } = this.scroller;\n this.cyclesDone++;\n logger.logCycle(false);\n state.endWorkflowCycle(this.cyclesDone + 1);\n this.finalize();\n }\n\n dispose(): void {\n if (this.initTimer) {\n clearTimeout(this.initTimer);\n }\n this.offScroll();\n this.adapterRun$.dispose();\n this.scroller.dispose(true);\n Object.getOwnPropertyNames(this).forEach(prop => {\n delete (this as Record<string, unknown>)[prop];\n });\n }\n\n finalize(): void {\n }\n\n}\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Settings } from './settings';
|
|
2
2
|
import { Direction } from '../inputs/index';
|
|
3
|
-
import { IRoutines } from '../interfaces/index';
|
|
3
|
+
import { IRoutines, CustomRoutinesClass } from '../interfaces/index';
|
|
4
4
|
export declare class Routines implements IRoutines {
|
|
5
5
|
readonly settings: IRoutines['settings'];
|
|
6
6
|
readonly element: HTMLElement;
|
|
7
7
|
readonly viewport: HTMLElement;
|
|
8
|
-
constructor(element: HTMLElement, settings: Settings);
|
|
8
|
+
constructor(element: HTMLElement, settings: Settings, CustomRoutines?: CustomRoutinesClass);
|
|
9
9
|
checkElement(element: HTMLElement): void;
|
|
10
10
|
getViewportElement(): HTMLElement;
|
|
11
11
|
onInit(settings: Settings): void;
|
package/dist/typings/index.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ import packageInfo from './version';
|
|
|
4
4
|
import { INVALID_DATASOURCE_PREFIX } from './scroller';
|
|
5
5
|
import { AdapterPropName, EMPTY_ITEM, getDefaultAdapterProps } from './classes/adapter/props';
|
|
6
6
|
import { Direction, SizeStrategy } from './inputs/index';
|
|
7
|
-
import { IDatasource, IDatasourceConstructed, IReactivePropConfig, IAdapterConfig, ItemAdapter, IAdapter, Item } from './interfaces/index';
|
|
7
|
+
import { IDatasource, IDatasourceConstructed, IRoutines, IReactivePropConfig, IAdapterConfig, ItemAdapter, IAdapter, Item } from './interfaces/index';
|
|
8
8
|
export { Workflow, makeDatasource, packageInfo, INVALID_DATASOURCE_PREFIX, AdapterPropName, EMPTY_ITEM, getDefaultAdapterProps, Direction, SizeStrategy, };
|
|
9
|
-
export { IDatasource, IDatasourceConstructed, IReactivePropConfig, IAdapterConfig, ItemAdapter as IAdapterItem, IAdapter, Item, };
|
|
9
|
+
export { IDatasource, IDatasourceConstructed, IRoutines, IReactivePropConfig, IAdapterConfig, ItemAdapter as IAdapterItem, IAdapter, Item, };
|
|
@@ -3,8 +3,8 @@ import { OnDataChanged, WorkflowParams, ScrollerWorkflow, ScrollerParams, Workfl
|
|
|
3
3
|
import { Item } from './item';
|
|
4
4
|
import { IReactivePropConfig, IReactivePropsConfig, IReactivePropsStore, IAdapterConfig, IAdapterProp, ItemAdapter, ItemsPredicate, ItemsUpdater, ItemsProcessor, BufferUpdater, IPackage, IPackages, IBufferInfo, IAdapterInput, AdapterAppendOptions, AdapterPrependOptions, AdapterRemoveOptions, AdapterClipOptions, AdapterInsertOptions, AdapterReplaceOptions, AdapterUpdateOptions, AdapterFixOptions, AdapterMethodResult, IAdapter } from './adapter';
|
|
5
5
|
import { Settings, DevSettings } from './settings';
|
|
6
|
-
import { IRoutines } from './routines';
|
|
6
|
+
import { IRoutines, CustomRoutinesClass } from './routines';
|
|
7
7
|
import { ScrollEventData, State } from './state';
|
|
8
8
|
import { ProcessName, ProcessClass, ProcessPayload, ProcessSubject, AdapterProcessMap, IBaseProcess, IBaseAdapterProcess } from './process';
|
|
9
9
|
import { ValidatedValue, IValidator, ICommonProp, ICommonProps, IValidatedCommonProps, IValidatedData } from './validation';
|
|
10
|
-
export { ObservableLike, DatasourceGet, IDatasourceOptional, IDatasource, IDatasourceConstructed, OnDataChanged, WorkflowParams, ScrollerWorkflow, ScrollerParams, WorkflowGetter, WorkflowError, InterruptParams, StateMachineMethods, StateMachineParams, Item, IReactivePropConfig, IReactivePropsConfig, IReactivePropsStore, IAdapterConfig, IAdapterProp, ItemAdapter, AdapterMethodResult, IAdapter, ItemsPredicate, ItemsUpdater, ItemsProcessor, BufferUpdater, IPackage, IPackages, IBufferInfo, IAdapterInput, AdapterAppendOptions, AdapterPrependOptions, AdapterRemoveOptions, AdapterClipOptions, AdapterInsertOptions, AdapterReplaceOptions, AdapterUpdateOptions, AdapterFixOptions, Settings, DevSettings, IRoutines, ScrollEventData, State, ProcessName, ProcessClass, ProcessPayload, ProcessSubject, AdapterProcessMap, IBaseProcess, IBaseAdapterProcess, ValidatedValue, IValidator, ICommonProp, ICommonProps, IValidatedCommonProps, IValidatedData, };
|
|
10
|
+
export { ObservableLike, DatasourceGet, IDatasourceOptional, IDatasource, IDatasourceConstructed, OnDataChanged, WorkflowParams, ScrollerWorkflow, ScrollerParams, WorkflowGetter, WorkflowError, InterruptParams, StateMachineMethods, StateMachineParams, Item, IReactivePropConfig, IReactivePropsConfig, IReactivePropsStore, IAdapterConfig, IAdapterProp, ItemAdapter, AdapterMethodResult, IAdapter, ItemsPredicate, ItemsUpdater, ItemsProcessor, BufferUpdater, IPackage, IPackages, IBufferInfo, IAdapterInput, AdapterAppendOptions, AdapterPrependOptions, AdapterRemoveOptions, AdapterClipOptions, AdapterInsertOptions, AdapterReplaceOptions, AdapterUpdateOptions, AdapterFixOptions, Settings, DevSettings, IRoutines, CustomRoutinesClass, ScrollEventData, State, ProcessName, ProcessClass, ProcessPayload, ProcessSubject, AdapterProcessMap, IBaseProcess, IBaseAdapterProcess, ValidatedValue, IValidator, ICommonProp, ICommonProps, IValidatedCommonProps, IValidatedData, };
|
|
@@ -2,6 +2,7 @@ import { ProcessClass, ProcessName, ProcessPayload, ProcessSubject } from './pro
|
|
|
2
2
|
import { IDatasource } from './datasource';
|
|
3
3
|
import { IPackage } from './adapter';
|
|
4
4
|
import { Item } from '../classes/item';
|
|
5
|
+
import { CustomRoutinesClass } from './routines';
|
|
5
6
|
import { Scroller } from '../scroller';
|
|
6
7
|
export declare type OnDataChanged<Data> = (items: Item<Data>[]) => void;
|
|
7
8
|
export interface WorkflowParams<ItemData> {
|
|
@@ -9,6 +10,7 @@ export interface WorkflowParams<ItemData> {
|
|
|
9
10
|
consumer: IPackage;
|
|
10
11
|
element: HTMLElement;
|
|
11
12
|
run: OnDataChanged<ItemData>;
|
|
13
|
+
Routines?: CustomRoutinesClass;
|
|
12
14
|
}
|
|
13
15
|
interface CallWorkflow {
|
|
14
16
|
(process: ProcessSubject): void;
|
|
@@ -23,6 +25,7 @@ export interface ScrollerParams<ItemData> {
|
|
|
23
25
|
consumer?: IPackage;
|
|
24
26
|
element?: HTMLElement;
|
|
25
27
|
workflow?: ScrollerWorkflow<ItemData>;
|
|
28
|
+
Routines?: CustomRoutinesClass;
|
|
26
29
|
scroller?: Scroller<ItemData>;
|
|
27
30
|
}
|
|
28
31
|
export declare type WorkflowGetter<ItemData> = () => ScrollerWorkflow<ItemData>;
|
|
@@ -18,7 +18,7 @@ export declare class Scroller<Data = unknown> {
|
|
|
18
18
|
buffer: Buffer<Data>;
|
|
19
19
|
state: State;
|
|
20
20
|
adapter: Adapter<Data>;
|
|
21
|
-
constructor({ datasource, consumer, element, workflow, scroller }: ScrollerParams<Data>);
|
|
21
|
+
constructor({ datasource, consumer, element, workflow, Routines: CustomRoutines, scroller }: ScrollerParams<Data>);
|
|
22
22
|
initDatasource(datasource: IDatasource<Data>, scroller?: Scroller<Data>): void;
|
|
23
23
|
init(adapterRun$?: Reactive<ProcessSubject>): void;
|
|
24
24
|
dispose(forever?: boolean): void;
|
|
@@ -13,7 +13,7 @@ export declare class Workflow<ItemData = unknown> {
|
|
|
13
13
|
readonly propagateChanges: WorkflowParams<ItemData>['run'];
|
|
14
14
|
readonly stateMachineMethods: StateMachineMethods<ItemData>;
|
|
15
15
|
scroller: Scroller<ItemData>;
|
|
16
|
-
constructor({ element, datasource, consumer, run }: WorkflowParams<ItemData>);
|
|
16
|
+
constructor({ element, datasource, consumer, run, Routines }: WorkflowParams<ItemData>);
|
|
17
17
|
init(): void;
|
|
18
18
|
changeItems(items: Item<ItemData>[]): void;
|
|
19
19
|
callWorkflow(processSubject: ProcessSubject): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vscroll",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Virtual scroll engine",
|
|
5
5
|
"main": "dist/bundles/vscroll.umd.js",
|
|
6
6
|
"module": "dist/bundles/vscroll.esm5.js",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"fesm5": "dist/bundles/vscroll.esm5.js",
|
|
10
10
|
"fesm2015": "dist/bundles/vscroll.esm6.js",
|
|
11
11
|
"types": "dist/typings/index.d.ts",
|
|
12
|
+
"type": "module",
|
|
12
13
|
"files": [
|
|
13
14
|
"dist"
|
|
14
15
|
],
|
|
@@ -35,23 +36,23 @@
|
|
|
35
36
|
"tslib": "^2.3.1"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
|
-
"@babel/core": "^7.
|
|
39
|
-
"@babel/preset-env": "^7.
|
|
40
|
-
"@babel/preset-typescript": "^7.
|
|
41
|
-
"@rollup/plugin-node-resolve": "^13.
|
|
42
|
-
"@types/jest": "^27.0
|
|
43
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
44
|
-
"@typescript-eslint/parser": "^
|
|
45
|
-
"babel-jest": "^27.
|
|
46
|
-
"chalk": "^
|
|
47
|
-
"eslint": "^
|
|
48
|
-
"jest": "^27.
|
|
49
|
-
"rollup": "^2.
|
|
50
|
-
"rollup-plugin-license": "^2.
|
|
39
|
+
"@babel/core": "^7.16.12",
|
|
40
|
+
"@babel/preset-env": "^7.16.11",
|
|
41
|
+
"@babel/preset-typescript": "^7.16.7",
|
|
42
|
+
"@rollup/plugin-node-resolve": "^13.1.3",
|
|
43
|
+
"@types/jest": "^27.4.0",
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^5.10.2",
|
|
45
|
+
"@typescript-eslint/parser": "^5.10.2",
|
|
46
|
+
"babel-jest": "^27.4.6",
|
|
47
|
+
"chalk": "^5.0.0",
|
|
48
|
+
"eslint": "^8.8.0",
|
|
49
|
+
"jest": "^27.4.7",
|
|
50
|
+
"rollup": "^2.67.0",
|
|
51
|
+
"rollup-plugin-license": "^2.6.1",
|
|
51
52
|
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
52
53
|
"rollup-plugin-terser": "^7.0.2",
|
|
53
|
-
"shelljs": "^0.8.
|
|
54
|
-
"typescript": "^4.
|
|
54
|
+
"shelljs": "^0.8.5",
|
|
55
|
+
"typescript": "^4.5.5"
|
|
55
56
|
},
|
|
56
57
|
"keywords": [
|
|
57
58
|
"vscroll",
|
|
@@ -64,4 +65,4 @@
|
|
|
64
65
|
"javascript",
|
|
65
66
|
"typescript"
|
|
66
67
|
]
|
|
67
|
-
}
|
|
68
|
+
}
|