vscroll 1.6.2 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/bundles/vscroll.esm5.js +17 -6
  4. package/dist/bundles/vscroll.esm5.js.map +1 -1
  5. package/dist/bundles/vscroll.esm5.min.js +2 -2
  6. package/dist/bundles/vscroll.esm5.min.js.map +1 -1
  7. package/dist/bundles/vscroll.esm6.js +17 -6
  8. package/dist/bundles/vscroll.esm6.js.map +1 -1
  9. package/dist/bundles/vscroll.esm6.min.js +2 -2
  10. package/dist/bundles/vscroll.esm6.min.js.map +1 -1
  11. package/dist/bundles/vscroll.umd.js +18 -7
  12. package/dist/bundles/vscroll.umd.js.map +1 -1
  13. package/dist/bundles/vscroll.umd.min.js +2 -2
  14. package/dist/bundles/vscroll.umd.min.js.map +1 -1
  15. package/dist/esm2015/inputs/adapter.js +12 -2
  16. package/dist/esm2015/inputs/adapter.js.map +1 -1
  17. package/dist/esm2015/interfaces/adapter.js.map +1 -1
  18. package/dist/esm2015/processes/adapter/append.js +2 -1
  19. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  20. package/dist/esm2015/processes/adapter/insert.js +1 -1
  21. package/dist/esm2015/processes/adapter/insert.js.map +1 -1
  22. package/dist/esm2015/version.js +1 -1
  23. package/dist/esm2015/version.js.map +1 -1
  24. package/dist/esm5/inputs/adapter.js +12 -2
  25. package/dist/esm5/inputs/adapter.js.map +1 -1
  26. package/dist/esm5/interfaces/adapter.js.map +1 -1
  27. package/dist/esm5/processes/adapter/append.js +2 -1
  28. package/dist/esm5/processes/adapter/append.js.map +1 -1
  29. package/dist/esm5/processes/adapter/insert.js +1 -1
  30. package/dist/esm5/processes/adapter/insert.js.map +1 -1
  31. package/dist/esm5/version.js +1 -1
  32. package/dist/esm5/version.js.map +1 -1
  33. package/dist/typings/interfaces/adapter.d.ts +3 -0
  34. package/package.json +1 -1
@@ -31,6 +31,7 @@ var AdapterPrependParams;
31
31
  AdapterPrependParams["items"] = "items";
32
32
  AdapterPrependParams["bof"] = "bof";
33
33
  AdapterPrependParams["increase"] = "increase";
34
+ AdapterPrependParams["virtualize"] = "virtualize";
34
35
  })(AdapterPrependParams || (AdapterPrependParams = {}));
35
36
  const PREPEND_METHOD_PARAMS = {
36
37
  [AdapterPrependParams.items]: {
@@ -38,19 +39,24 @@ const PREPEND_METHOD_PARAMS = {
38
39
  mandatory: true
39
40
  },
40
41
  [AdapterPrependParams.bof]: {
41
- validators: [BOOLEAN],
42
+ validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.virtualize])],
42
43
  defaultValue: false
43
44
  },
44
45
  [AdapterPrependParams.increase]: {
45
46
  validators: [BOOLEAN],
46
47
  defaultValue: false
47
48
  },
49
+ [AdapterPrependParams.virtualize]: {
50
+ validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.bof])],
51
+ defaultValue: false
52
+ },
48
53
  };
49
54
  var AdapterAppendParams;
50
55
  (function (AdapterAppendParams) {
51
56
  AdapterAppendParams["items"] = "items";
52
57
  AdapterAppendParams["eof"] = "eof";
53
58
  AdapterAppendParams["decrease"] = "decrease";
59
+ AdapterAppendParams["virtualize"] = "virtualize";
54
60
  })(AdapterAppendParams || (AdapterAppendParams = {}));
55
61
  const APPEND_METHOD_PARAMS = {
56
62
  [AdapterAppendParams.items]: {
@@ -58,13 +64,17 @@ const APPEND_METHOD_PARAMS = {
58
64
  mandatory: true
59
65
  },
60
66
  [AdapterAppendParams.eof]: {
61
- validators: [BOOLEAN],
67
+ validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.virtualize])],
62
68
  defaultValue: false
63
69
  },
64
70
  [AdapterAppendParams.decrease]: {
65
71
  validators: [BOOLEAN],
66
72
  defaultValue: false
67
73
  },
74
+ [AdapterPrependParams.virtualize]: {
75
+ validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.eof])],
76
+ defaultValue: false
77
+ },
68
78
  };
69
79
  var AdapterRemoveParams;
70
80
  (function (AdapterRemoveParams) {
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/inputs/adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { VALIDATORS } from './validation';\r\nimport { DatasourceProps as AdapterResetParams } from './datasource';\r\nimport { AdapterProcess as Process } from '../processes/misc/enums';\r\nimport { ICommonProps, AdapterProcessMap } from '../interfaces/index';\r\n\r\nconst {\r\n INTEGER,\r\n INTEGER_UNLIMITED,\r\n BOOLEAN,\r\n OBJECT,\r\n ITEM_LIST,\r\n FUNC_WITH_X_ARGUMENTS,\r\n FUNC_WITH_X_AND_MORE_ARGUMENTS,\r\n FUNC_WITH_X_TO_Y_ARGUMENTS,\r\n ONE_OF_MUST,\r\n ONE_OF_CAN,\r\n OR,\r\n} = VALIDATORS;\r\n\r\nenum AdapterNoParams { }\r\nconst NO_METHOD_PARAMS: ICommonProps<AdapterNoParams> = {};\r\n\r\nconst RESET_METHOD_PARAMS: ICommonProps<AdapterResetParams> = {\r\n [AdapterResetParams.get]: {\r\n validators: [FUNC_WITH_X_AND_MORE_ARGUMENTS(2)]\r\n },\r\n [AdapterResetParams.settings]: {\r\n validators: [OBJECT]\r\n },\r\n [AdapterResetParams.devSettings]: {\r\n validators: [OBJECT]\r\n },\r\n};\r\n\r\nenum AdapterReloadParams {\r\n reloadIndex = 'reloadIndex',\r\n}\r\n\r\nconst RELOAD_METHOD_PARAMS: ICommonProps<AdapterReloadParams> = {\r\n [AdapterReloadParams.reloadIndex]: {\r\n validators: [INTEGER]\r\n },\r\n};\r\n\r\nenum AdapterPrependParams {\r\n items = 'items',\r\n bof = 'bof',\r\n increase = 'increase',\r\n}\r\n\r\nconst PREPEND_METHOD_PARAMS: ICommonProps<AdapterPrependParams> = {\r\n [AdapterPrependParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterPrependParams.bof]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n [AdapterPrependParams.increase]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterAppendParams {\r\n items = 'items',\r\n eof = 'eof',\r\n decrease = 'decrease',\r\n}\r\n\r\nconst APPEND_METHOD_PARAMS: ICommonProps<AdapterAppendParams> = {\r\n [AdapterAppendParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterAppendParams.eof]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n [AdapterAppendParams.decrease]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterRemoveParams {\r\n predicate = 'predicate',\r\n indexes = 'indexes',\r\n increase = 'increase',\r\n}\r\n\r\nconst REMOVE_METHOD_PARAMS: ICommonProps<AdapterRemoveParams> = {\r\n [AdapterRemoveParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([AdapterRemoveParams.indexes])]\r\n },\r\n [AdapterRemoveParams.indexes]: {\r\n validators: [ITEM_LIST, ONE_OF_MUST([AdapterRemoveParams.predicate])]\r\n },\r\n [AdapterRemoveParams.increase]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterClipParams {\r\n backwardOnly = 'backwardOnly',\r\n forwardOnly = 'forwardOnly',\r\n}\r\n\r\nconst CLIP_METHOD_PARAMS: ICommonProps<AdapterClipParams> = {\r\n [AdapterClipParams.backwardOnly]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.forwardOnly])],\r\n defaultValue: false\r\n },\r\n [AdapterClipParams.forwardOnly]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.backwardOnly])],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterInsertParams {\r\n items = 'items',\r\n before = 'before',\r\n after = 'after',\r\n beforeIndex = 'beforeIndex',\r\n afterIndex = 'afterIndex',\r\n decrease = 'decrease',\r\n}\r\n\r\nconst INSERT_METHOD_PARAMS: ICommonProps<AdapterInsertParams> = {\r\n [AdapterInsertParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterInsertParams.before]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([\r\n AdapterInsertParams.after, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.after]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.beforeIndex]: {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.afterIndex]: {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.beforeIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.decrease]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterReplaceParams {\r\n items = 'items',\r\n predicate = 'predicate',\r\n fixRight = 'fixRight',\r\n}\r\n\r\nconst REPLACE_METHOD_PARAMS: ICommonProps<AdapterReplaceParams> = {\r\n [AdapterInsertParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterReplaceParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)],\r\n mandatory: true\r\n },\r\n [AdapterReplaceParams.fixRight]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n }\r\n};\r\n\r\nenum AdapterUpdateParams {\r\n predicate = 'predicate',\r\n fixRight = 'fixRight',\r\n}\r\n\r\nconst UPDATE_METHOD_PARAMS: ICommonProps<AdapterUpdateParams> = {\r\n [AdapterUpdateParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)],\r\n mandatory: true\r\n },\r\n [AdapterUpdateParams.fixRight]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterFixParams {\r\n scrollPosition = 'scrollPosition',\r\n minIndex = 'minIndex',\r\n maxIndex = 'maxIndex',\r\n updater = 'updater',\r\n scrollToItem = 'scrollToItem',\r\n scrollToItemOpt = 'scrollToItemOpt',\r\n}\r\n\r\nconst FIX_METHOD_PARAMS: ICommonProps<AdapterFixParams> = {\r\n [AdapterFixParams.scrollPosition]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.minIndex]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.maxIndex]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.updater]: {\r\n validators: [FUNC_WITH_X_TO_Y_ARGUMENTS(1, 2)]\r\n },\r\n [AdapterFixParams.scrollToItem]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)]\r\n },\r\n [AdapterFixParams.scrollToItemOpt]: {\r\n validators: [OR([BOOLEAN, OBJECT])]\r\n },\r\n};\r\n\r\nexport const AdapterMethods: AdapterProcessMap<{ [key: string]: string }> = {\r\n [Process.reset]: AdapterResetParams,\r\n [Process.reload]: AdapterReloadParams,\r\n [Process.prepend]: AdapterPrependParams,\r\n [Process.append]: AdapterAppendParams,\r\n [Process.check]: AdapterNoParams,\r\n [Process.remove]: AdapterRemoveParams,\r\n [Process.clip]: AdapterClipParams,\r\n [Process.insert]: AdapterInsertParams,\r\n [Process.replace]: AdapterReplaceParams,\r\n [Process.update]: AdapterUpdateParams,\r\n [Process.pause]: AdapterNoParams,\r\n [Process.fix]: AdapterFixParams,\r\n};\r\n\r\nexport const ADAPTER_METHODS: AdapterProcessMap<ICommonProps<PropertyKey>> = {\r\n [Process.reset]: RESET_METHOD_PARAMS,\r\n [Process.reload]: RELOAD_METHOD_PARAMS,\r\n [Process.prepend]: PREPEND_METHOD_PARAMS,\r\n [Process.append]: APPEND_METHOD_PARAMS,\r\n [Process.check]: NO_METHOD_PARAMS,\r\n [Process.remove]: REMOVE_METHOD_PARAMS,\r\n [Process.clip]: CLIP_METHOD_PARAMS,\r\n [Process.insert]: INSERT_METHOD_PARAMS,\r\n [Process.replace]: REPLACE_METHOD_PARAMS,\r\n [Process.update]: UPDATE_METHOD_PARAMS,\r\n [Process.pause]: NO_METHOD_PARAMS,\r\n [Process.fix]: FIX_METHOD_PARAMS,\r\n};\r\n"]}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/inputs/adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { VALIDATORS } from './validation';\r\nimport { DatasourceProps as AdapterResetParams } from './datasource';\r\nimport { AdapterProcess as Process } from '../processes/misc/enums';\r\nimport { ICommonProps, AdapterProcessMap } from '../interfaces/index';\r\n\r\nconst {\r\n INTEGER,\r\n INTEGER_UNLIMITED,\r\n BOOLEAN,\r\n OBJECT,\r\n ITEM_LIST,\r\n FUNC_WITH_X_ARGUMENTS,\r\n FUNC_WITH_X_AND_MORE_ARGUMENTS,\r\n FUNC_WITH_X_TO_Y_ARGUMENTS,\r\n ONE_OF_MUST,\r\n ONE_OF_CAN,\r\n OR,\r\n} = VALIDATORS;\r\n\r\nenum AdapterNoParams { }\r\nconst NO_METHOD_PARAMS: ICommonProps<AdapterNoParams> = {};\r\n\r\nconst RESET_METHOD_PARAMS: ICommonProps<AdapterResetParams> = {\r\n [AdapterResetParams.get]: {\r\n validators: [FUNC_WITH_X_AND_MORE_ARGUMENTS(2)]\r\n },\r\n [AdapterResetParams.settings]: {\r\n validators: [OBJECT]\r\n },\r\n [AdapterResetParams.devSettings]: {\r\n validators: [OBJECT]\r\n },\r\n};\r\n\r\nenum AdapterReloadParams {\r\n reloadIndex = 'reloadIndex',\r\n}\r\n\r\nconst RELOAD_METHOD_PARAMS: ICommonProps<AdapterReloadParams> = {\r\n [AdapterReloadParams.reloadIndex]: {\r\n validators: [INTEGER]\r\n },\r\n};\r\n\r\nenum AdapterPrependParams {\r\n items = 'items',\r\n bof = 'bof',\r\n increase = 'increase',\r\n virtualize = 'virtualize',\r\n}\r\n\r\nconst PREPEND_METHOD_PARAMS: ICommonProps<AdapterPrependParams> = {\r\n [AdapterPrependParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterPrependParams.bof]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.virtualize])],\r\n defaultValue: false\r\n },\r\n [AdapterPrependParams.increase]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n [AdapterPrependParams.virtualize]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.bof])],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterAppendParams {\r\n items = 'items',\r\n eof = 'eof',\r\n decrease = 'decrease',\r\n virtualize = 'virtualize',\r\n}\r\n\r\nconst APPEND_METHOD_PARAMS: ICommonProps<AdapterAppendParams> = {\r\n [AdapterAppendParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterAppendParams.eof]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.virtualize])],\r\n defaultValue: false\r\n },\r\n [AdapterAppendParams.decrease]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n [AdapterPrependParams.virtualize]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.eof])],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterRemoveParams {\r\n predicate = 'predicate',\r\n indexes = 'indexes',\r\n increase = 'increase',\r\n}\r\n\r\nconst REMOVE_METHOD_PARAMS: ICommonProps<AdapterRemoveParams> = {\r\n [AdapterRemoveParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([AdapterRemoveParams.indexes])]\r\n },\r\n [AdapterRemoveParams.indexes]: {\r\n validators: [ITEM_LIST, ONE_OF_MUST([AdapterRemoveParams.predicate])]\r\n },\r\n [AdapterRemoveParams.increase]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterClipParams {\r\n backwardOnly = 'backwardOnly',\r\n forwardOnly = 'forwardOnly',\r\n}\r\n\r\nconst CLIP_METHOD_PARAMS: ICommonProps<AdapterClipParams> = {\r\n [AdapterClipParams.backwardOnly]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.forwardOnly])],\r\n defaultValue: false\r\n },\r\n [AdapterClipParams.forwardOnly]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.backwardOnly])],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterInsertParams {\r\n items = 'items',\r\n before = 'before',\r\n after = 'after',\r\n beforeIndex = 'beforeIndex',\r\n afterIndex = 'afterIndex',\r\n decrease = 'decrease',\r\n}\r\n\r\nconst INSERT_METHOD_PARAMS: ICommonProps<AdapterInsertParams> = {\r\n [AdapterInsertParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterInsertParams.before]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([\r\n AdapterInsertParams.after, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.after]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.beforeIndex]: {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.afterIndex]: {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.beforeIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.decrease]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterReplaceParams {\r\n items = 'items',\r\n predicate = 'predicate',\r\n fixRight = 'fixRight',\r\n}\r\n\r\nconst REPLACE_METHOD_PARAMS: ICommonProps<AdapterReplaceParams> = {\r\n [AdapterInsertParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterReplaceParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)],\r\n mandatory: true\r\n },\r\n [AdapterReplaceParams.fixRight]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n }\r\n};\r\n\r\nenum AdapterUpdateParams {\r\n predicate = 'predicate',\r\n fixRight = 'fixRight',\r\n}\r\n\r\nconst UPDATE_METHOD_PARAMS: ICommonProps<AdapterUpdateParams> = {\r\n [AdapterUpdateParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)],\r\n mandatory: true\r\n },\r\n [AdapterUpdateParams.fixRight]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterFixParams {\r\n scrollPosition = 'scrollPosition',\r\n minIndex = 'minIndex',\r\n maxIndex = 'maxIndex',\r\n updater = 'updater',\r\n scrollToItem = 'scrollToItem',\r\n scrollToItemOpt = 'scrollToItemOpt',\r\n}\r\n\r\nconst FIX_METHOD_PARAMS: ICommonProps<AdapterFixParams> = {\r\n [AdapterFixParams.scrollPosition]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.minIndex]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.maxIndex]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.updater]: {\r\n validators: [FUNC_WITH_X_TO_Y_ARGUMENTS(1, 2)]\r\n },\r\n [AdapterFixParams.scrollToItem]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)]\r\n },\r\n [AdapterFixParams.scrollToItemOpt]: {\r\n validators: [OR([BOOLEAN, OBJECT])]\r\n },\r\n};\r\n\r\nexport const AdapterMethods: AdapterProcessMap<{ [key: string]: string }> = {\r\n [Process.reset]: AdapterResetParams,\r\n [Process.reload]: AdapterReloadParams,\r\n [Process.prepend]: AdapterPrependParams,\r\n [Process.append]: AdapterAppendParams,\r\n [Process.check]: AdapterNoParams,\r\n [Process.remove]: AdapterRemoveParams,\r\n [Process.clip]: AdapterClipParams,\r\n [Process.insert]: AdapterInsertParams,\r\n [Process.replace]: AdapterReplaceParams,\r\n [Process.update]: AdapterUpdateParams,\r\n [Process.pause]: AdapterNoParams,\r\n [Process.fix]: AdapterFixParams,\r\n};\r\n\r\nexport const ADAPTER_METHODS: AdapterProcessMap<ICommonProps<PropertyKey>> = {\r\n [Process.reset]: RESET_METHOD_PARAMS,\r\n [Process.reload]: RELOAD_METHOD_PARAMS,\r\n [Process.prepend]: PREPEND_METHOD_PARAMS,\r\n [Process.append]: APPEND_METHOD_PARAMS,\r\n [Process.check]: NO_METHOD_PARAMS,\r\n [Process.remove]: REMOVE_METHOD_PARAMS,\r\n [Process.clip]: CLIP_METHOD_PARAMS,\r\n [Process.insert]: INSERT_METHOD_PARAMS,\r\n [Process.replace]: REPLACE_METHOD_PARAMS,\r\n [Process.update]: UPDATE_METHOD_PARAMS,\r\n [Process.pause]: NO_METHOD_PARAMS,\r\n [Process.fix]: FIX_METHOD_PARAMS,\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/interfaces/adapter.ts"],"names":[],"mappings":"","sourcesContent":["import { AdapterPropName, AdapterPropType } from '../classes/adapter/props';\r\nimport { Reactive } from '../classes/reactive';\r\nimport { IDatasourceOptional } from './datasource';\r\nimport { IValidatedData } from './validation';\r\n\r\nexport interface IReactivePropConfig {\r\n source: unknown;\r\n emit: (source: unknown, value: unknown) => void;\r\n}\r\n\r\ninterface IReactivePropStore extends IReactivePropConfig {\r\n default: Reactive<unknown>;\r\n}\r\n\r\nexport type IReactivePropsConfig = {\r\n [key in AdapterPropName]?: IReactivePropConfig;\r\n};\r\n\r\nexport type IReactivePropsStore = {\r\n [key in AdapterPropName]?: IReactivePropStore;\r\n};\r\n\r\nexport interface IWanted {\r\n box: { [key: string]: boolean };\r\n block: boolean;\r\n}\r\n\r\nexport interface IAdapterConfig {\r\n mock: boolean;\r\n reactive?: IReactivePropsConfig;\r\n}\r\n\r\nexport interface IAdapterProp {\r\n name: AdapterPropName;\r\n type: AdapterPropType;\r\n value: unknown;\r\n reactive?: AdapterPropName;\r\n wanted?: boolean;\r\n onDemand?: boolean;\r\n permanent?: boolean;\r\n allowedWhenPaused?: boolean;\r\n}\r\n\r\nexport interface ItemAdapter<Data = unknown> {\r\n $index: number;\r\n data: Data;\r\n element?: HTMLElement;\r\n}\r\n\r\nexport type ItemsPredicate<T = unknown> = (item: ItemAdapter<T>) => boolean;\r\nexport type ItemsUpdater<T = unknown> = (item: ItemAdapter<T>, update: () => void) => void;\r\nexport type ItemsProcessor<T = unknown> = (items: ItemAdapter<T>[]) => void;\r\nexport type BufferUpdater<T = unknown> = (item: ItemAdapter<T>) => unknown;\r\n\r\nexport interface IPackage {\r\n name: string;\r\n version: string;\r\n}\r\n\r\nexport interface IPackages {\r\n core: IPackage;\r\n consumer: IPackage;\r\n}\r\n\r\nexport interface IBufferInfo {\r\n firstIndex: number;\r\n lastIndex: number;\r\n minIndex: number;\r\n maxIndex: number;\r\n absMinIndex: number;\r\n absMaxIndex: number;\r\n defaultSize: number;\r\n}\r\n\r\nexport interface IAdapterInput<T> {\r\n data: IValidatedData;\r\n params?: T;\r\n}\r\n\r\nexport interface AdapterAppendOptions<Data = unknown> {\r\n items: Data[];\r\n eof?: boolean;\r\n decrease?: boolean;\r\n}\r\n\r\nexport interface AdapterPrependOptions<Data = unknown> {\r\n items: Data[];\r\n bof?: boolean;\r\n increase?: boolean;\r\n}\r\n\r\nexport interface AdapterRemoveOptions<Data = unknown> {\r\n predicate?: ItemsPredicate<Data>;\r\n indexes?: number[];\r\n increase?: boolean;\r\n}\r\n\r\nexport interface AdapterClipOptions {\r\n forwardOnly?: boolean;\r\n backwardOnly?: boolean;\r\n}\r\n\r\nexport interface AdapterInsertOptions<Data = unknown> {\r\n items: Data[];\r\n before?: ItemsPredicate<Data>;\r\n after?: ItemsPredicate<Data>;\r\n beforeIndex?: number;\r\n afterIndex?: number;\r\n decrease?: boolean;\r\n}\r\n\r\nexport interface AdapterReplaceOptions<Data = unknown> {\r\n items: Data[];\r\n predicate: ItemsPredicate<Data>;\r\n fixRight?: boolean;\r\n}\r\n\r\nexport interface AdapterUpdateOptions<Data = unknown> {\r\n predicate: BufferUpdater<Data>;\r\n fixRight?: boolean;\r\n}\r\n\r\nexport interface AdapterFixOptions<Data = unknown> {\r\n scrollPosition?: number;\r\n minIndex?: number;\r\n maxIndex?: number;\r\n updater?: ItemsUpdater<Data>;\r\n scrollToItem?: ItemsPredicate<Data>;\r\n scrollToItemOpt?: boolean | ScrollIntoViewOptions;\r\n}\r\n\r\nexport interface AdapterMethodResult {\r\n success: boolean;\r\n immediate: boolean;\r\n details: string | null;\r\n}\r\ntype MethodResult = Promise<AdapterMethodResult>;\r\n\r\nexport interface IAdapter<Data = unknown> {\r\n readonly id: number;\r\n readonly mock: boolean;\r\n readonly augmented: boolean;\r\n readonly version: string;\r\n readonly init: boolean;\r\n readonly init$: Reactive<boolean>;\r\n readonly packageInfo: IPackages;\r\n readonly itemsCount: number;\r\n readonly bufferInfo: IBufferInfo;\r\n readonly isLoading: boolean;\r\n readonly isLoading$: Reactive<boolean>;\r\n readonly loopPending: boolean;\r\n readonly loopPending$: Reactive<boolean>;\r\n readonly firstVisible: ItemAdapter<Data>;\r\n readonly firstVisible$: Reactive<ItemAdapter<Data>>;\r\n readonly lastVisible: ItemAdapter<Data>;\r\n readonly lastVisible$: Reactive<ItemAdapter<Data>>;\r\n readonly bof: boolean;\r\n readonly bof$: Reactive<boolean>;\r\n readonly eof: boolean;\r\n readonly eof$: Reactive<boolean>;\r\n readonly paused: boolean;\r\n readonly paused$: Reactive<boolean>;\r\n reset(datasource?: IDatasourceOptional): MethodResult;\r\n reload(reloadIndex?: number | string): MethodResult;\r\n append(options: AdapterAppendOptions<Data>): MethodResult;\r\n append(items: Data | Data[], eof?: boolean): MethodResult; // old signature\r\n prepend(options: AdapterPrependOptions<Data>): MethodResult;\r\n prepend(items: Data | Data[], bof?: boolean): MethodResult; // old signature\r\n check(): MethodResult;\r\n remove(args: AdapterRemoveOptions<Data>): MethodResult;\r\n remove(args: ItemsPredicate<Data>): MethodResult; // old signature\r\n clip(options?: AdapterClipOptions): MethodResult;\r\n insert(options: AdapterInsertOptions<Data>): MethodResult;\r\n replace(options: AdapterReplaceOptions<Data>): MethodResult;\r\n update(options: AdapterUpdateOptions<Data>): MethodResult;\r\n pause(): MethodResult;\r\n resume(): MethodResult;\r\n fix(options: AdapterFixOptions<Data>): MethodResult; // experimental\r\n relax(callback?: () => void): MethodResult;\r\n showLog(): void;\r\n}\r\n"]}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/interfaces/adapter.ts"],"names":[],"mappings":"","sourcesContent":["import { AdapterPropName, AdapterPropType } from '../classes/adapter/props';\r\nimport { Reactive } from '../classes/reactive';\r\nimport { IDatasourceOptional } from './datasource';\r\nimport { IValidatedData } from './validation';\r\n\r\nexport interface IReactivePropConfig {\r\n source: unknown;\r\n emit: (source: unknown, value: unknown) => void;\r\n}\r\n\r\ninterface IReactivePropStore extends IReactivePropConfig {\r\n default: Reactive<unknown>;\r\n}\r\n\r\nexport type IReactivePropsConfig = {\r\n [key in AdapterPropName]?: IReactivePropConfig;\r\n};\r\n\r\nexport type IReactivePropsStore = {\r\n [key in AdapterPropName]?: IReactivePropStore;\r\n};\r\n\r\nexport interface IWanted {\r\n box: { [key: string]: boolean };\r\n block: boolean;\r\n}\r\n\r\nexport interface IAdapterConfig {\r\n mock: boolean;\r\n reactive?: IReactivePropsConfig;\r\n}\r\n\r\nexport interface IAdapterProp {\r\n name: AdapterPropName;\r\n type: AdapterPropType;\r\n value: unknown;\r\n reactive?: AdapterPropName;\r\n wanted?: boolean;\r\n onDemand?: boolean;\r\n permanent?: boolean;\r\n allowedWhenPaused?: boolean;\r\n}\r\n\r\nexport interface ItemAdapter<Data = unknown> {\r\n $index: number;\r\n data: Data;\r\n element?: HTMLElement;\r\n}\r\n\r\nexport type ItemsPredicate<T = unknown> = (item: ItemAdapter<T>) => boolean;\r\nexport type ItemsUpdater<T = unknown> = (item: ItemAdapter<T>, update: () => void) => void;\r\nexport type ItemsProcessor<T = unknown> = (items: ItemAdapter<T>[]) => void;\r\nexport type BufferUpdater<T = unknown> = (item: ItemAdapter<T>) => unknown;\r\n\r\nexport interface IPackage {\r\n name: string;\r\n version: string;\r\n}\r\n\r\nexport interface IPackages {\r\n core: IPackage;\r\n consumer: IPackage;\r\n}\r\n\r\nexport interface IBufferInfo {\r\n firstIndex: number;\r\n lastIndex: number;\r\n minIndex: number;\r\n maxIndex: number;\r\n absMinIndex: number;\r\n absMaxIndex: number;\r\n defaultSize: number;\r\n}\r\n\r\nexport interface IAdapterInput<T> {\r\n data: IValidatedData;\r\n params?: T;\r\n}\r\n\r\nexport interface AdapterAppendOptions<Data = unknown> {\r\n items: Data[];\r\n eof?: boolean;\r\n decrease?: boolean;\r\n virtualize?: boolean;\r\n}\r\n\r\nexport interface AdapterPrependOptions<Data = unknown> {\r\n items: Data[];\r\n bof?: boolean;\r\n increase?: boolean;\r\n virtualize?: boolean;\r\n}\r\n\r\nexport interface AdapterRemoveOptions<Data = unknown> {\r\n predicate?: ItemsPredicate<Data>;\r\n indexes?: number[];\r\n increase?: boolean;\r\n}\r\n\r\nexport interface AdapterClipOptions {\r\n forwardOnly?: boolean;\r\n backwardOnly?: boolean;\r\n}\r\n\r\nexport interface AdapterInsertOptions<Data = unknown> {\r\n items: Data[];\r\n before?: ItemsPredicate<Data>;\r\n after?: ItemsPredicate<Data>;\r\n beforeIndex?: number;\r\n afterIndex?: number;\r\n decrease?: boolean;\r\n virtualize?: boolean;\r\n}\r\n\r\nexport interface AdapterReplaceOptions<Data = unknown> {\r\n items: Data[];\r\n predicate: ItemsPredicate<Data>;\r\n fixRight?: boolean;\r\n}\r\n\r\nexport interface AdapterUpdateOptions<Data = unknown> {\r\n predicate: BufferUpdater<Data>;\r\n fixRight?: boolean;\r\n}\r\n\r\nexport interface AdapterFixOptions<Data = unknown> {\r\n scrollPosition?: number;\r\n minIndex?: number;\r\n maxIndex?: number;\r\n updater?: ItemsUpdater<Data>;\r\n scrollToItem?: ItemsPredicate<Data>;\r\n scrollToItemOpt?: boolean | ScrollIntoViewOptions;\r\n}\r\n\r\nexport interface AdapterMethodResult {\r\n success: boolean;\r\n immediate: boolean;\r\n details: string | null;\r\n}\r\ntype MethodResult = Promise<AdapterMethodResult>;\r\n\r\nexport interface IAdapter<Data = unknown> {\r\n readonly id: number;\r\n readonly mock: boolean;\r\n readonly augmented: boolean;\r\n readonly version: string;\r\n readonly init: boolean;\r\n readonly init$: Reactive<boolean>;\r\n readonly packageInfo: IPackages;\r\n readonly itemsCount: number;\r\n readonly bufferInfo: IBufferInfo;\r\n readonly isLoading: boolean;\r\n readonly isLoading$: Reactive<boolean>;\r\n readonly loopPending: boolean;\r\n readonly loopPending$: Reactive<boolean>;\r\n readonly firstVisible: ItemAdapter<Data>;\r\n readonly firstVisible$: Reactive<ItemAdapter<Data>>;\r\n readonly lastVisible: ItemAdapter<Data>;\r\n readonly lastVisible$: Reactive<ItemAdapter<Data>>;\r\n readonly bof: boolean;\r\n readonly bof$: Reactive<boolean>;\r\n readonly eof: boolean;\r\n readonly eof$: Reactive<boolean>;\r\n readonly paused: boolean;\r\n readonly paused$: Reactive<boolean>;\r\n reset(datasource?: IDatasourceOptional): MethodResult;\r\n reload(reloadIndex?: number | string): MethodResult;\r\n append(options: AdapterAppendOptions<Data>): MethodResult;\r\n append(items: Data | Data[], eof?: boolean): MethodResult; // old signature\r\n prepend(options: AdapterPrependOptions<Data>): MethodResult;\r\n prepend(items: Data | Data[], bof?: boolean): MethodResult; // old signature\r\n check(): MethodResult;\r\n remove(args: AdapterRemoveOptions<Data>): MethodResult;\r\n remove(args: ItemsPredicate<Data>): MethodResult; // old signature\r\n clip(options?: AdapterClipOptions): MethodResult;\r\n insert(options: AdapterInsertOptions<Data>): MethodResult;\r\n replace(options: AdapterReplaceOptions<Data>): MethodResult;\r\n update(options: AdapterUpdateOptions<Data>): MethodResult;\r\n pause(): MethodResult;\r\n resume(): MethodResult;\r\n fix(options: AdapterFixOptions<Data>): MethodResult; // experimental\r\n relax(callback?: () => void): MethodResult;\r\n showLog(): void;\r\n}\r\n"]}
@@ -29,7 +29,8 @@ export default class Append extends BaseAdapterProcessFactory(AdapterProcess.app
29
29
  items,
30
30
  beforeIndex,
31
31
  afterIndex,
32
- decrease: opposite
32
+ decrease: opposite,
33
+ virtualize: params.virtualize
33
34
  });
34
35
  }
35
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"append.js","sourceRoot":"","sources":["../../../../src/processes/adapter/append.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAUzF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC;IAElF,MAAM,CAAC,GAAG,CAAC,QAAkB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAoB;QACnE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,QAAkB,EAAE,OAAuB,EAAE,MAAmC;QAC9F,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAChD,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,KAAK,cAAc,CAAC,OAAO,CAAC;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChD,IAAI,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClD,IAAI,OAAO,EAAE;YACX,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SAC9B;aAAM;YACL,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjG;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC/B,KAAK;YACL,WAAW;YACX,UAAU;YACV,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;CAEF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Insert from './insert';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { AdapterAppendOptions, AdapterPrependOptions } from '../../interfaces/index';\r\n\r\ntype AdapterAppendPrependOptions = AdapterAppendOptions & AdapterPrependOptions;\r\n\r\ninterface AppendRunOptions {\r\n process: AdapterProcess;\r\n options: AdapterAppendPrependOptions;\r\n}\r\n\r\nexport default class Append extends BaseAdapterProcessFactory(AdapterProcess.append) {\r\n\r\n static run(scroller: Scroller, { process, options }: AppendRunOptions): void {\r\n const { params } = Append.parseInput(scroller, options, false, process);\r\n if (!params) {\r\n return;\r\n }\r\n\r\n const shouldAppend = Append.doAppend(scroller, process, params);\r\n\r\n scroller.workflow.call({\r\n process: Append.process,\r\n status: shouldAppend ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doAppend(scroller: Scroller, process: AdapterProcess, params: AdapterAppendPrependOptions): boolean {\r\n const { bof, eof, increase, decrease } = params;\r\n const { buffer } = scroller;\r\n const prepend = process === AdapterProcess.prepend;\r\n const opposite = prepend ? !increase : decrease;\r\n let beforeIndex, afterIndex, items = params.items;\r\n if (prepend) {\r\n beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);\r\n items = [...items].reverse();\r\n } else {\r\n afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);\r\n }\r\n return Insert.doInsert(scroller, {\r\n items,\r\n beforeIndex,\r\n afterIndex,\r\n decrease: opposite\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"append.js","sourceRoot":"","sources":["../../../../src/processes/adapter/append.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAUzF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC;IAElF,MAAM,CAAC,GAAG,CAAC,QAAkB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAoB;QACnE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,QAAkB,EAAE,OAAuB,EAAE,MAAmC;QAC9F,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAChD,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,KAAK,cAAc,CAAC,OAAO,CAAC;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChD,IAAI,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClD,IAAI,OAAO,EAAE;YACX,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SAC9B;aAAM;YACL,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjG;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC/B,KAAK;YACL,WAAW;YACX,UAAU;YACV,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;CAEF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Insert from './insert';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { AdapterAppendOptions, AdapterPrependOptions } from '../../interfaces/index';\r\n\r\ntype AdapterAppendPrependOptions = AdapterAppendOptions & AdapterPrependOptions;\r\n\r\ninterface AppendRunOptions {\r\n process: AdapterProcess;\r\n options: AdapterAppendPrependOptions;\r\n}\r\n\r\nexport default class Append extends BaseAdapterProcessFactory(AdapterProcess.append) {\r\n\r\n static run(scroller: Scroller, { process, options }: AppendRunOptions): void {\r\n const { params } = Append.parseInput(scroller, options, false, process);\r\n if (!params) {\r\n return;\r\n }\r\n\r\n const shouldAppend = Append.doAppend(scroller, process, params);\r\n\r\n scroller.workflow.call({\r\n process: Append.process,\r\n status: shouldAppend ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doAppend(scroller: Scroller, process: AdapterProcess, params: AdapterAppendPrependOptions): boolean {\r\n const { bof, eof, increase, decrease } = params;\r\n const { buffer } = scroller;\r\n const prepend = process === AdapterProcess.prepend;\r\n const opposite = prepend ? !increase : decrease;\r\n let beforeIndex, afterIndex, items = params.items;\r\n if (prepend) {\r\n beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);\r\n items = [...items].reverse();\r\n } else {\r\n afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);\r\n }\r\n return Insert.doInsert(scroller, {\r\n items,\r\n beforeIndex,\r\n afterIndex,\r\n decrease: opposite,\r\n virtualize: params.virtualize\r\n });\r\n }\r\n\r\n}\r\n"]}
@@ -39,7 +39,7 @@ export default class Insert extends BaseAdapterProcessFactory(AdapterProcess.ins
39
39
  static insertInBuffer(scroller, params) {
40
40
  const { before, after, beforeIndex, afterIndex, items, decrease } = params;
41
41
  const indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);
42
- if (isNaN(indexToInsert)) {
42
+ if (params.virtualize || isNaN(indexToInsert)) {
43
43
  return false;
44
44
  }
45
45
  const isBackward = Number.isInteger(beforeIndex) || before;
@@ -1 +1 @@
1
- {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/processes/adapter/insert.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC;IAElF,MAAM,CAAC,GAAG,CAAC,QAAkB,EAAE,OAA6B;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEvD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,QAAkB,EAAE,MAA4B;QAC9D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;gBAC5C,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;oBAC7C,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,QAAkB,EAAE,MAA4B;QACjE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC;QACxD,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QACD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,SAAS,CACnB,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,EAC1C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CACjD,EAAE;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,QAAkB,EAAE,MAA4B;QACpE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC3E,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,IAAI,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAEjG,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC;QAE3D,MAAM,aAAa,GAAyB;YAC1C,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC9B,IAAI,aAAa,KAAK,MAAM,EAAE;oBAC5B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;iBACzD;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,QAAkB,EAAE,MAA4B;QACrE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC5D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;QACzF,MAAM,aAAa,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAW,CAAC;QAE9F,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE;YACxE,OAAO,KAAK,CAAC;SACd;QAED,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtF,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACjB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,CAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;SAClE;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CAEF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Item } from '../../classes/item';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterInsertOptions, AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Insert extends BaseAdapterProcessFactory(AdapterProcess.insert) {\r\n\r\n static run(scroller: Scroller, options: AdapterInsertOptions): void {\r\n const { params } = Insert.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldInsert = Insert.doInsert(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Insert.process,\r\n status: shouldInsert ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doInsert(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n if (!Insert.insertEmpty(scroller, params)) {\r\n if (!Insert.insertInBuffer(scroller, params)) {\r\n if (!Insert.insertVirtually(scroller, params)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n static insertEmpty(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { buffer, routines, state: { fetch } } = scroller;\r\n if (buffer.size) {\r\n return false;\r\n }\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n if (!buffer.fillEmpty(\r\n items, beforeIndex, afterIndex, !!decrease,\r\n (index, data) => new Item(index, data, routines)\r\n )) {\r\n return false;\r\n }\r\n fetch.fill(buffer.items, buffer.startIndex);\r\n\r\n return true;\r\n }\r\n\r\n static insertInBuffer(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { before, after, beforeIndex, afterIndex, items, decrease } = params;\r\n const indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);\r\n\r\n if (isNaN(indexToInsert)) {\r\n return false;\r\n }\r\n const isBackward = Number.isInteger(beforeIndex) || before;\r\n\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: ({ $index, data }) => {\r\n if (indexToInsert === $index) {\r\n return isBackward ? [...items, data] : [data, ...items];\r\n }\r\n return true;\r\n },\r\n fixRight: decrease\r\n };\r\n\r\n return Update.doUpdate(scroller, updateOptions);\r\n }\r\n\r\n static insertVirtually(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n const { buffer, state: { fetch }, viewport } = scroller;\r\n const direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;\r\n const indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex) as number;\r\n\r\n if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {\r\n return false;\r\n }\r\n\r\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.simulate = true;\r\n fetch.firstVisible.delta = - buffer.getSizeByIndex(index) + diff;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/processes/adapter/insert.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Item } from '../../classes/item';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterInsertOptions, AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Insert extends BaseAdapterProcessFactory(AdapterProcess.insert) {\r\n\r\n static run(scroller: Scroller, options: AdapterInsertOptions): void {\r\n const { params } = Insert.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldInsert = Insert.doInsert(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Insert.process,\r\n status: shouldInsert ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doInsert(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n if (!Insert.insertEmpty(scroller, params)) {\r\n if (!Insert.insertInBuffer(scroller, params)) {\r\n if (!Insert.insertVirtually(scroller, params)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n static insertEmpty(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { buffer, routines, state: { fetch } } = scroller;\r\n if (buffer.size) {\r\n return false;\r\n }\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n if (!buffer.fillEmpty(\r\n items, beforeIndex, afterIndex, !!decrease,\r\n (index, data) => new Item(index, data, routines)\r\n )) {\r\n return false;\r\n }\r\n fetch.fill(buffer.items, buffer.startIndex);\r\n\r\n return true;\r\n }\r\n\r\n static insertInBuffer(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { before, after, beforeIndex, afterIndex, items, decrease } = params;\r\n const indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);\r\n\r\n if (params.virtualize || isNaN(indexToInsert)) {\r\n return false;\r\n }\r\n const isBackward = Number.isInteger(beforeIndex) || before;\r\n\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: ({ $index, data }) => {\r\n if (indexToInsert === $index) {\r\n return isBackward ? [...items, data] : [data, ...items];\r\n }\r\n return true;\r\n },\r\n fixRight: decrease\r\n };\r\n\r\n return Update.doUpdate(scroller, updateOptions);\r\n }\r\n\r\n static insertVirtually(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n const { buffer, state: { fetch }, viewport } = scroller;\r\n const direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;\r\n const indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex) as number;\r\n\r\n if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {\r\n return false;\r\n }\r\n\r\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.simulate = true;\r\n fetch.firstVisible.delta = - buffer.getSizeByIndex(index) + diff;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  name: 'vscroll',
3
- version: '1.6.2'
3
+ version: '1.6.3'
4
4
  };
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;CACjB,CAAC","sourcesContent":["export default {\n name: 'vscroll',\n version: '1.6.2'\n};\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;CACjB,CAAC","sourcesContent":["export default {\n name: 'vscroll',\n version: '1.6.3'\n};\n"]}
@@ -32,6 +32,7 @@ var AdapterPrependParams;
32
32
  AdapterPrependParams["items"] = "items";
33
33
  AdapterPrependParams["bof"] = "bof";
34
34
  AdapterPrependParams["increase"] = "increase";
35
+ AdapterPrependParams["virtualize"] = "virtualize";
35
36
  })(AdapterPrependParams || (AdapterPrependParams = {}));
36
37
  var PREPEND_METHOD_PARAMS = (_c = {},
37
38
  _c[AdapterPrependParams.items] = {
@@ -39,19 +40,24 @@ var PREPEND_METHOD_PARAMS = (_c = {},
39
40
  mandatory: true
40
41
  },
41
42
  _c[AdapterPrependParams.bof] = {
42
- validators: [BOOLEAN],
43
+ validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.virtualize])],
43
44
  defaultValue: false
44
45
  },
45
46
  _c[AdapterPrependParams.increase] = {
46
47
  validators: [BOOLEAN],
47
48
  defaultValue: false
48
49
  },
50
+ _c[AdapterPrependParams.virtualize] = {
51
+ validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.bof])],
52
+ defaultValue: false
53
+ },
49
54
  _c);
50
55
  var AdapterAppendParams;
51
56
  (function (AdapterAppendParams) {
52
57
  AdapterAppendParams["items"] = "items";
53
58
  AdapterAppendParams["eof"] = "eof";
54
59
  AdapterAppendParams["decrease"] = "decrease";
60
+ AdapterAppendParams["virtualize"] = "virtualize";
55
61
  })(AdapterAppendParams || (AdapterAppendParams = {}));
56
62
  var APPEND_METHOD_PARAMS = (_d = {},
57
63
  _d[AdapterAppendParams.items] = {
@@ -59,13 +65,17 @@ var APPEND_METHOD_PARAMS = (_d = {},
59
65
  mandatory: true
60
66
  },
61
67
  _d[AdapterAppendParams.eof] = {
62
- validators: [BOOLEAN],
68
+ validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.virtualize])],
63
69
  defaultValue: false
64
70
  },
65
71
  _d[AdapterAppendParams.decrease] = {
66
72
  validators: [BOOLEAN],
67
73
  defaultValue: false
68
74
  },
75
+ _d[AdapterPrependParams.virtualize] = {
76
+ validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.eof])],
77
+ defaultValue: false
78
+ },
69
79
  _d);
70
80
  var AdapterRemoveParams;
71
81
  (function (AdapterRemoveParams) {
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/inputs/adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { VALIDATORS } from './validation';\r\nimport { DatasourceProps as AdapterResetParams } from './datasource';\r\nimport { AdapterProcess as Process } from '../processes/misc/enums';\r\nimport { ICommonProps, AdapterProcessMap } from '../interfaces/index';\r\n\r\nconst {\r\n INTEGER,\r\n INTEGER_UNLIMITED,\r\n BOOLEAN,\r\n OBJECT,\r\n ITEM_LIST,\r\n FUNC_WITH_X_ARGUMENTS,\r\n FUNC_WITH_X_AND_MORE_ARGUMENTS,\r\n FUNC_WITH_X_TO_Y_ARGUMENTS,\r\n ONE_OF_MUST,\r\n ONE_OF_CAN,\r\n OR,\r\n} = VALIDATORS;\r\n\r\nenum AdapterNoParams { }\r\nconst NO_METHOD_PARAMS: ICommonProps<AdapterNoParams> = {};\r\n\r\nconst RESET_METHOD_PARAMS: ICommonProps<AdapterResetParams> = {\r\n [AdapterResetParams.get]: {\r\n validators: [FUNC_WITH_X_AND_MORE_ARGUMENTS(2)]\r\n },\r\n [AdapterResetParams.settings]: {\r\n validators: [OBJECT]\r\n },\r\n [AdapterResetParams.devSettings]: {\r\n validators: [OBJECT]\r\n },\r\n};\r\n\r\nenum AdapterReloadParams {\r\n reloadIndex = 'reloadIndex',\r\n}\r\n\r\nconst RELOAD_METHOD_PARAMS: ICommonProps<AdapterReloadParams> = {\r\n [AdapterReloadParams.reloadIndex]: {\r\n validators: [INTEGER]\r\n },\r\n};\r\n\r\nenum AdapterPrependParams {\r\n items = 'items',\r\n bof = 'bof',\r\n increase = 'increase',\r\n}\r\n\r\nconst PREPEND_METHOD_PARAMS: ICommonProps<AdapterPrependParams> = {\r\n [AdapterPrependParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterPrependParams.bof]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n [AdapterPrependParams.increase]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterAppendParams {\r\n items = 'items',\r\n eof = 'eof',\r\n decrease = 'decrease',\r\n}\r\n\r\nconst APPEND_METHOD_PARAMS: ICommonProps<AdapterAppendParams> = {\r\n [AdapterAppendParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterAppendParams.eof]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n [AdapterAppendParams.decrease]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterRemoveParams {\r\n predicate = 'predicate',\r\n indexes = 'indexes',\r\n increase = 'increase',\r\n}\r\n\r\nconst REMOVE_METHOD_PARAMS: ICommonProps<AdapterRemoveParams> = {\r\n [AdapterRemoveParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([AdapterRemoveParams.indexes])]\r\n },\r\n [AdapterRemoveParams.indexes]: {\r\n validators: [ITEM_LIST, ONE_OF_MUST([AdapterRemoveParams.predicate])]\r\n },\r\n [AdapterRemoveParams.increase]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterClipParams {\r\n backwardOnly = 'backwardOnly',\r\n forwardOnly = 'forwardOnly',\r\n}\r\n\r\nconst CLIP_METHOD_PARAMS: ICommonProps<AdapterClipParams> = {\r\n [AdapterClipParams.backwardOnly]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.forwardOnly])],\r\n defaultValue: false\r\n },\r\n [AdapterClipParams.forwardOnly]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.backwardOnly])],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterInsertParams {\r\n items = 'items',\r\n before = 'before',\r\n after = 'after',\r\n beforeIndex = 'beforeIndex',\r\n afterIndex = 'afterIndex',\r\n decrease = 'decrease',\r\n}\r\n\r\nconst INSERT_METHOD_PARAMS: ICommonProps<AdapterInsertParams> = {\r\n [AdapterInsertParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterInsertParams.before]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([\r\n AdapterInsertParams.after, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.after]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.beforeIndex]: {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.afterIndex]: {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.beforeIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.decrease]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterReplaceParams {\r\n items = 'items',\r\n predicate = 'predicate',\r\n fixRight = 'fixRight',\r\n}\r\n\r\nconst REPLACE_METHOD_PARAMS: ICommonProps<AdapterReplaceParams> = {\r\n [AdapterInsertParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterReplaceParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)],\r\n mandatory: true\r\n },\r\n [AdapterReplaceParams.fixRight]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n }\r\n};\r\n\r\nenum AdapterUpdateParams {\r\n predicate = 'predicate',\r\n fixRight = 'fixRight',\r\n}\r\n\r\nconst UPDATE_METHOD_PARAMS: ICommonProps<AdapterUpdateParams> = {\r\n [AdapterUpdateParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)],\r\n mandatory: true\r\n },\r\n [AdapterUpdateParams.fixRight]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterFixParams {\r\n scrollPosition = 'scrollPosition',\r\n minIndex = 'minIndex',\r\n maxIndex = 'maxIndex',\r\n updater = 'updater',\r\n scrollToItem = 'scrollToItem',\r\n scrollToItemOpt = 'scrollToItemOpt',\r\n}\r\n\r\nconst FIX_METHOD_PARAMS: ICommonProps<AdapterFixParams> = {\r\n [AdapterFixParams.scrollPosition]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.minIndex]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.maxIndex]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.updater]: {\r\n validators: [FUNC_WITH_X_TO_Y_ARGUMENTS(1, 2)]\r\n },\r\n [AdapterFixParams.scrollToItem]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)]\r\n },\r\n [AdapterFixParams.scrollToItemOpt]: {\r\n validators: [OR([BOOLEAN, OBJECT])]\r\n },\r\n};\r\n\r\nexport const AdapterMethods: AdapterProcessMap<{ [key: string]: string }> = {\r\n [Process.reset]: AdapterResetParams,\r\n [Process.reload]: AdapterReloadParams,\r\n [Process.prepend]: AdapterPrependParams,\r\n [Process.append]: AdapterAppendParams,\r\n [Process.check]: AdapterNoParams,\r\n [Process.remove]: AdapterRemoveParams,\r\n [Process.clip]: AdapterClipParams,\r\n [Process.insert]: AdapterInsertParams,\r\n [Process.replace]: AdapterReplaceParams,\r\n [Process.update]: AdapterUpdateParams,\r\n [Process.pause]: AdapterNoParams,\r\n [Process.fix]: AdapterFixParams,\r\n};\r\n\r\nexport const ADAPTER_METHODS: AdapterProcessMap<ICommonProps<PropertyKey>> = {\r\n [Process.reset]: RESET_METHOD_PARAMS,\r\n [Process.reload]: RELOAD_METHOD_PARAMS,\r\n [Process.prepend]: PREPEND_METHOD_PARAMS,\r\n [Process.append]: APPEND_METHOD_PARAMS,\r\n [Process.check]: NO_METHOD_PARAMS,\r\n [Process.remove]: REMOVE_METHOD_PARAMS,\r\n [Process.clip]: CLIP_METHOD_PARAMS,\r\n [Process.insert]: INSERT_METHOD_PARAMS,\r\n [Process.replace]: REPLACE_METHOD_PARAMS,\r\n [Process.update]: UPDATE_METHOD_PARAMS,\r\n [Process.pause]: NO_METHOD_PARAMS,\r\n [Process.fix]: FIX_METHOD_PARAMS,\r\n};\r\n"]}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/inputs/adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { VALIDATORS } from './validation';\r\nimport { DatasourceProps as AdapterResetParams } from './datasource';\r\nimport { AdapterProcess as Process } from '../processes/misc/enums';\r\nimport { ICommonProps, AdapterProcessMap } from '../interfaces/index';\r\n\r\nconst {\r\n INTEGER,\r\n INTEGER_UNLIMITED,\r\n BOOLEAN,\r\n OBJECT,\r\n ITEM_LIST,\r\n FUNC_WITH_X_ARGUMENTS,\r\n FUNC_WITH_X_AND_MORE_ARGUMENTS,\r\n FUNC_WITH_X_TO_Y_ARGUMENTS,\r\n ONE_OF_MUST,\r\n ONE_OF_CAN,\r\n OR,\r\n} = VALIDATORS;\r\n\r\nenum AdapterNoParams { }\r\nconst NO_METHOD_PARAMS: ICommonProps<AdapterNoParams> = {};\r\n\r\nconst RESET_METHOD_PARAMS: ICommonProps<AdapterResetParams> = {\r\n [AdapterResetParams.get]: {\r\n validators: [FUNC_WITH_X_AND_MORE_ARGUMENTS(2)]\r\n },\r\n [AdapterResetParams.settings]: {\r\n validators: [OBJECT]\r\n },\r\n [AdapterResetParams.devSettings]: {\r\n validators: [OBJECT]\r\n },\r\n};\r\n\r\nenum AdapterReloadParams {\r\n reloadIndex = 'reloadIndex',\r\n}\r\n\r\nconst RELOAD_METHOD_PARAMS: ICommonProps<AdapterReloadParams> = {\r\n [AdapterReloadParams.reloadIndex]: {\r\n validators: [INTEGER]\r\n },\r\n};\r\n\r\nenum AdapterPrependParams {\r\n items = 'items',\r\n bof = 'bof',\r\n increase = 'increase',\r\n virtualize = 'virtualize',\r\n}\r\n\r\nconst PREPEND_METHOD_PARAMS: ICommonProps<AdapterPrependParams> = {\r\n [AdapterPrependParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterPrependParams.bof]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.virtualize])],\r\n defaultValue: false\r\n },\r\n [AdapterPrependParams.increase]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n [AdapterPrependParams.virtualize]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.bof])],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterAppendParams {\r\n items = 'items',\r\n eof = 'eof',\r\n decrease = 'decrease',\r\n virtualize = 'virtualize',\r\n}\r\n\r\nconst APPEND_METHOD_PARAMS: ICommonProps<AdapterAppendParams> = {\r\n [AdapterAppendParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterAppendParams.eof]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.virtualize])],\r\n defaultValue: false\r\n },\r\n [AdapterAppendParams.decrease]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n [AdapterPrependParams.virtualize]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.eof])],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterRemoveParams {\r\n predicate = 'predicate',\r\n indexes = 'indexes',\r\n increase = 'increase',\r\n}\r\n\r\nconst REMOVE_METHOD_PARAMS: ICommonProps<AdapterRemoveParams> = {\r\n [AdapterRemoveParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([AdapterRemoveParams.indexes])]\r\n },\r\n [AdapterRemoveParams.indexes]: {\r\n validators: [ITEM_LIST, ONE_OF_MUST([AdapterRemoveParams.predicate])]\r\n },\r\n [AdapterRemoveParams.increase]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterClipParams {\r\n backwardOnly = 'backwardOnly',\r\n forwardOnly = 'forwardOnly',\r\n}\r\n\r\nconst CLIP_METHOD_PARAMS: ICommonProps<AdapterClipParams> = {\r\n [AdapterClipParams.backwardOnly]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.forwardOnly])],\r\n defaultValue: false\r\n },\r\n [AdapterClipParams.forwardOnly]: {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.backwardOnly])],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterInsertParams {\r\n items = 'items',\r\n before = 'before',\r\n after = 'after',\r\n beforeIndex = 'beforeIndex',\r\n afterIndex = 'afterIndex',\r\n decrease = 'decrease',\r\n}\r\n\r\nconst INSERT_METHOD_PARAMS: ICommonProps<AdapterInsertParams> = {\r\n [AdapterInsertParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterInsertParams.before]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([\r\n AdapterInsertParams.after, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.after]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.beforeIndex]: {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.afterIndex]: {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.beforeIndex\r\n ])]\r\n },\r\n [AdapterInsertParams.decrease]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterReplaceParams {\r\n items = 'items',\r\n predicate = 'predicate',\r\n fixRight = 'fixRight',\r\n}\r\n\r\nconst REPLACE_METHOD_PARAMS: ICommonProps<AdapterReplaceParams> = {\r\n [AdapterInsertParams.items]: {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n [AdapterReplaceParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)],\r\n mandatory: true\r\n },\r\n [AdapterReplaceParams.fixRight]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n }\r\n};\r\n\r\nenum AdapterUpdateParams {\r\n predicate = 'predicate',\r\n fixRight = 'fixRight',\r\n}\r\n\r\nconst UPDATE_METHOD_PARAMS: ICommonProps<AdapterUpdateParams> = {\r\n [AdapterUpdateParams.predicate]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)],\r\n mandatory: true\r\n },\r\n [AdapterUpdateParams.fixRight]: {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n};\r\n\r\nenum AdapterFixParams {\r\n scrollPosition = 'scrollPosition',\r\n minIndex = 'minIndex',\r\n maxIndex = 'maxIndex',\r\n updater = 'updater',\r\n scrollToItem = 'scrollToItem',\r\n scrollToItemOpt = 'scrollToItemOpt',\r\n}\r\n\r\nconst FIX_METHOD_PARAMS: ICommonProps<AdapterFixParams> = {\r\n [AdapterFixParams.scrollPosition]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.minIndex]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.maxIndex]: {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n [AdapterFixParams.updater]: {\r\n validators: [FUNC_WITH_X_TO_Y_ARGUMENTS(1, 2)]\r\n },\r\n [AdapterFixParams.scrollToItem]: {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)]\r\n },\r\n [AdapterFixParams.scrollToItemOpt]: {\r\n validators: [OR([BOOLEAN, OBJECT])]\r\n },\r\n};\r\n\r\nexport const AdapterMethods: AdapterProcessMap<{ [key: string]: string }> = {\r\n [Process.reset]: AdapterResetParams,\r\n [Process.reload]: AdapterReloadParams,\r\n [Process.prepend]: AdapterPrependParams,\r\n [Process.append]: AdapterAppendParams,\r\n [Process.check]: AdapterNoParams,\r\n [Process.remove]: AdapterRemoveParams,\r\n [Process.clip]: AdapterClipParams,\r\n [Process.insert]: AdapterInsertParams,\r\n [Process.replace]: AdapterReplaceParams,\r\n [Process.update]: AdapterUpdateParams,\r\n [Process.pause]: AdapterNoParams,\r\n [Process.fix]: AdapterFixParams,\r\n};\r\n\r\nexport const ADAPTER_METHODS: AdapterProcessMap<ICommonProps<PropertyKey>> = {\r\n [Process.reset]: RESET_METHOD_PARAMS,\r\n [Process.reload]: RELOAD_METHOD_PARAMS,\r\n [Process.prepend]: PREPEND_METHOD_PARAMS,\r\n [Process.append]: APPEND_METHOD_PARAMS,\r\n [Process.check]: NO_METHOD_PARAMS,\r\n [Process.remove]: REMOVE_METHOD_PARAMS,\r\n [Process.clip]: CLIP_METHOD_PARAMS,\r\n [Process.insert]: INSERT_METHOD_PARAMS,\r\n [Process.replace]: REPLACE_METHOD_PARAMS,\r\n [Process.update]: UPDATE_METHOD_PARAMS,\r\n [Process.pause]: NO_METHOD_PARAMS,\r\n [Process.fix]: FIX_METHOD_PARAMS,\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/interfaces/adapter.ts"],"names":[],"mappings":"","sourcesContent":["import { AdapterPropName, AdapterPropType } from '../classes/adapter/props';\r\nimport { Reactive } from '../classes/reactive';\r\nimport { IDatasourceOptional } from './datasource';\r\nimport { IValidatedData } from './validation';\r\n\r\nexport interface IReactivePropConfig {\r\n source: unknown;\r\n emit: (source: unknown, value: unknown) => void;\r\n}\r\n\r\ninterface IReactivePropStore extends IReactivePropConfig {\r\n default: Reactive<unknown>;\r\n}\r\n\r\nexport type IReactivePropsConfig = {\r\n [key in AdapterPropName]?: IReactivePropConfig;\r\n};\r\n\r\nexport type IReactivePropsStore = {\r\n [key in AdapterPropName]?: IReactivePropStore;\r\n};\r\n\r\nexport interface IWanted {\r\n box: { [key: string]: boolean };\r\n block: boolean;\r\n}\r\n\r\nexport interface IAdapterConfig {\r\n mock: boolean;\r\n reactive?: IReactivePropsConfig;\r\n}\r\n\r\nexport interface IAdapterProp {\r\n name: AdapterPropName;\r\n type: AdapterPropType;\r\n value: unknown;\r\n reactive?: AdapterPropName;\r\n wanted?: boolean;\r\n onDemand?: boolean;\r\n permanent?: boolean;\r\n allowedWhenPaused?: boolean;\r\n}\r\n\r\nexport interface ItemAdapter<Data = unknown> {\r\n $index: number;\r\n data: Data;\r\n element?: HTMLElement;\r\n}\r\n\r\nexport type ItemsPredicate<T = unknown> = (item: ItemAdapter<T>) => boolean;\r\nexport type ItemsUpdater<T = unknown> = (item: ItemAdapter<T>, update: () => void) => void;\r\nexport type ItemsProcessor<T = unknown> = (items: ItemAdapter<T>[]) => void;\r\nexport type BufferUpdater<T = unknown> = (item: ItemAdapter<T>) => unknown;\r\n\r\nexport interface IPackage {\r\n name: string;\r\n version: string;\r\n}\r\n\r\nexport interface IPackages {\r\n core: IPackage;\r\n consumer: IPackage;\r\n}\r\n\r\nexport interface IBufferInfo {\r\n firstIndex: number;\r\n lastIndex: number;\r\n minIndex: number;\r\n maxIndex: number;\r\n absMinIndex: number;\r\n absMaxIndex: number;\r\n defaultSize: number;\r\n}\r\n\r\nexport interface IAdapterInput<T> {\r\n data: IValidatedData;\r\n params?: T;\r\n}\r\n\r\nexport interface AdapterAppendOptions<Data = unknown> {\r\n items: Data[];\r\n eof?: boolean;\r\n decrease?: boolean;\r\n}\r\n\r\nexport interface AdapterPrependOptions<Data = unknown> {\r\n items: Data[];\r\n bof?: boolean;\r\n increase?: boolean;\r\n}\r\n\r\nexport interface AdapterRemoveOptions<Data = unknown> {\r\n predicate?: ItemsPredicate<Data>;\r\n indexes?: number[];\r\n increase?: boolean;\r\n}\r\n\r\nexport interface AdapterClipOptions {\r\n forwardOnly?: boolean;\r\n backwardOnly?: boolean;\r\n}\r\n\r\nexport interface AdapterInsertOptions<Data = unknown> {\r\n items: Data[];\r\n before?: ItemsPredicate<Data>;\r\n after?: ItemsPredicate<Data>;\r\n beforeIndex?: number;\r\n afterIndex?: number;\r\n decrease?: boolean;\r\n}\r\n\r\nexport interface AdapterReplaceOptions<Data = unknown> {\r\n items: Data[];\r\n predicate: ItemsPredicate<Data>;\r\n fixRight?: boolean;\r\n}\r\n\r\nexport interface AdapterUpdateOptions<Data = unknown> {\r\n predicate: BufferUpdater<Data>;\r\n fixRight?: boolean;\r\n}\r\n\r\nexport interface AdapterFixOptions<Data = unknown> {\r\n scrollPosition?: number;\r\n minIndex?: number;\r\n maxIndex?: number;\r\n updater?: ItemsUpdater<Data>;\r\n scrollToItem?: ItemsPredicate<Data>;\r\n scrollToItemOpt?: boolean | ScrollIntoViewOptions;\r\n}\r\n\r\nexport interface AdapterMethodResult {\r\n success: boolean;\r\n immediate: boolean;\r\n details: string | null;\r\n}\r\ntype MethodResult = Promise<AdapterMethodResult>;\r\n\r\nexport interface IAdapter<Data = unknown> {\r\n readonly id: number;\r\n readonly mock: boolean;\r\n readonly augmented: boolean;\r\n readonly version: string;\r\n readonly init: boolean;\r\n readonly init$: Reactive<boolean>;\r\n readonly packageInfo: IPackages;\r\n readonly itemsCount: number;\r\n readonly bufferInfo: IBufferInfo;\r\n readonly isLoading: boolean;\r\n readonly isLoading$: Reactive<boolean>;\r\n readonly loopPending: boolean;\r\n readonly loopPending$: Reactive<boolean>;\r\n readonly firstVisible: ItemAdapter<Data>;\r\n readonly firstVisible$: Reactive<ItemAdapter<Data>>;\r\n readonly lastVisible: ItemAdapter<Data>;\r\n readonly lastVisible$: Reactive<ItemAdapter<Data>>;\r\n readonly bof: boolean;\r\n readonly bof$: Reactive<boolean>;\r\n readonly eof: boolean;\r\n readonly eof$: Reactive<boolean>;\r\n readonly paused: boolean;\r\n readonly paused$: Reactive<boolean>;\r\n reset(datasource?: IDatasourceOptional): MethodResult;\r\n reload(reloadIndex?: number | string): MethodResult;\r\n append(options: AdapterAppendOptions<Data>): MethodResult;\r\n append(items: Data | Data[], eof?: boolean): MethodResult; // old signature\r\n prepend(options: AdapterPrependOptions<Data>): MethodResult;\r\n prepend(items: Data | Data[], bof?: boolean): MethodResult; // old signature\r\n check(): MethodResult;\r\n remove(args: AdapterRemoveOptions<Data>): MethodResult;\r\n remove(args: ItemsPredicate<Data>): MethodResult; // old signature\r\n clip(options?: AdapterClipOptions): MethodResult;\r\n insert(options: AdapterInsertOptions<Data>): MethodResult;\r\n replace(options: AdapterReplaceOptions<Data>): MethodResult;\r\n update(options: AdapterUpdateOptions<Data>): MethodResult;\r\n pause(): MethodResult;\r\n resume(): MethodResult;\r\n fix(options: AdapterFixOptions<Data>): MethodResult; // experimental\r\n relax(callback?: () => void): MethodResult;\r\n showLog(): void;\r\n}\r\n"]}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/interfaces/adapter.ts"],"names":[],"mappings":"","sourcesContent":["import { AdapterPropName, AdapterPropType } from '../classes/adapter/props';\r\nimport { Reactive } from '../classes/reactive';\r\nimport { IDatasourceOptional } from './datasource';\r\nimport { IValidatedData } from './validation';\r\n\r\nexport interface IReactivePropConfig {\r\n source: unknown;\r\n emit: (source: unknown, value: unknown) => void;\r\n}\r\n\r\ninterface IReactivePropStore extends IReactivePropConfig {\r\n default: Reactive<unknown>;\r\n}\r\n\r\nexport type IReactivePropsConfig = {\r\n [key in AdapterPropName]?: IReactivePropConfig;\r\n};\r\n\r\nexport type IReactivePropsStore = {\r\n [key in AdapterPropName]?: IReactivePropStore;\r\n};\r\n\r\nexport interface IWanted {\r\n box: { [key: string]: boolean };\r\n block: boolean;\r\n}\r\n\r\nexport interface IAdapterConfig {\r\n mock: boolean;\r\n reactive?: IReactivePropsConfig;\r\n}\r\n\r\nexport interface IAdapterProp {\r\n name: AdapterPropName;\r\n type: AdapterPropType;\r\n value: unknown;\r\n reactive?: AdapterPropName;\r\n wanted?: boolean;\r\n onDemand?: boolean;\r\n permanent?: boolean;\r\n allowedWhenPaused?: boolean;\r\n}\r\n\r\nexport interface ItemAdapter<Data = unknown> {\r\n $index: number;\r\n data: Data;\r\n element?: HTMLElement;\r\n}\r\n\r\nexport type ItemsPredicate<T = unknown> = (item: ItemAdapter<T>) => boolean;\r\nexport type ItemsUpdater<T = unknown> = (item: ItemAdapter<T>, update: () => void) => void;\r\nexport type ItemsProcessor<T = unknown> = (items: ItemAdapter<T>[]) => void;\r\nexport type BufferUpdater<T = unknown> = (item: ItemAdapter<T>) => unknown;\r\n\r\nexport interface IPackage {\r\n name: string;\r\n version: string;\r\n}\r\n\r\nexport interface IPackages {\r\n core: IPackage;\r\n consumer: IPackage;\r\n}\r\n\r\nexport interface IBufferInfo {\r\n firstIndex: number;\r\n lastIndex: number;\r\n minIndex: number;\r\n maxIndex: number;\r\n absMinIndex: number;\r\n absMaxIndex: number;\r\n defaultSize: number;\r\n}\r\n\r\nexport interface IAdapterInput<T> {\r\n data: IValidatedData;\r\n params?: T;\r\n}\r\n\r\nexport interface AdapterAppendOptions<Data = unknown> {\r\n items: Data[];\r\n eof?: boolean;\r\n decrease?: boolean;\r\n virtualize?: boolean;\r\n}\r\n\r\nexport interface AdapterPrependOptions<Data = unknown> {\r\n items: Data[];\r\n bof?: boolean;\r\n increase?: boolean;\r\n virtualize?: boolean;\r\n}\r\n\r\nexport interface AdapterRemoveOptions<Data = unknown> {\r\n predicate?: ItemsPredicate<Data>;\r\n indexes?: number[];\r\n increase?: boolean;\r\n}\r\n\r\nexport interface AdapterClipOptions {\r\n forwardOnly?: boolean;\r\n backwardOnly?: boolean;\r\n}\r\n\r\nexport interface AdapterInsertOptions<Data = unknown> {\r\n items: Data[];\r\n before?: ItemsPredicate<Data>;\r\n after?: ItemsPredicate<Data>;\r\n beforeIndex?: number;\r\n afterIndex?: number;\r\n decrease?: boolean;\r\n virtualize?: boolean;\r\n}\r\n\r\nexport interface AdapterReplaceOptions<Data = unknown> {\r\n items: Data[];\r\n predicate: ItemsPredicate<Data>;\r\n fixRight?: boolean;\r\n}\r\n\r\nexport interface AdapterUpdateOptions<Data = unknown> {\r\n predicate: BufferUpdater<Data>;\r\n fixRight?: boolean;\r\n}\r\n\r\nexport interface AdapterFixOptions<Data = unknown> {\r\n scrollPosition?: number;\r\n minIndex?: number;\r\n maxIndex?: number;\r\n updater?: ItemsUpdater<Data>;\r\n scrollToItem?: ItemsPredicate<Data>;\r\n scrollToItemOpt?: boolean | ScrollIntoViewOptions;\r\n}\r\n\r\nexport interface AdapterMethodResult {\r\n success: boolean;\r\n immediate: boolean;\r\n details: string | null;\r\n}\r\ntype MethodResult = Promise<AdapterMethodResult>;\r\n\r\nexport interface IAdapter<Data = unknown> {\r\n readonly id: number;\r\n readonly mock: boolean;\r\n readonly augmented: boolean;\r\n readonly version: string;\r\n readonly init: boolean;\r\n readonly init$: Reactive<boolean>;\r\n readonly packageInfo: IPackages;\r\n readonly itemsCount: number;\r\n readonly bufferInfo: IBufferInfo;\r\n readonly isLoading: boolean;\r\n readonly isLoading$: Reactive<boolean>;\r\n readonly loopPending: boolean;\r\n readonly loopPending$: Reactive<boolean>;\r\n readonly firstVisible: ItemAdapter<Data>;\r\n readonly firstVisible$: Reactive<ItemAdapter<Data>>;\r\n readonly lastVisible: ItemAdapter<Data>;\r\n readonly lastVisible$: Reactive<ItemAdapter<Data>>;\r\n readonly bof: boolean;\r\n readonly bof$: Reactive<boolean>;\r\n readonly eof: boolean;\r\n readonly eof$: Reactive<boolean>;\r\n readonly paused: boolean;\r\n readonly paused$: Reactive<boolean>;\r\n reset(datasource?: IDatasourceOptional): MethodResult;\r\n reload(reloadIndex?: number | string): MethodResult;\r\n append(options: AdapterAppendOptions<Data>): MethodResult;\r\n append(items: Data | Data[], eof?: boolean): MethodResult; // old signature\r\n prepend(options: AdapterPrependOptions<Data>): MethodResult;\r\n prepend(items: Data | Data[], bof?: boolean): MethodResult; // old signature\r\n check(): MethodResult;\r\n remove(args: AdapterRemoveOptions<Data>): MethodResult;\r\n remove(args: ItemsPredicate<Data>): MethodResult; // old signature\r\n clip(options?: AdapterClipOptions): MethodResult;\r\n insert(options: AdapterInsertOptions<Data>): MethodResult;\r\n replace(options: AdapterReplaceOptions<Data>): MethodResult;\r\n update(options: AdapterUpdateOptions<Data>): MethodResult;\r\n pause(): MethodResult;\r\n resume(): MethodResult;\r\n fix(options: AdapterFixOptions<Data>): MethodResult; // experimental\r\n relax(callback?: () => void): MethodResult;\r\n showLog(): void;\r\n}\r\n"]}
@@ -35,7 +35,8 @@ var Append = /** @class */ (function (_super) {
35
35
  items: items,
36
36
  beforeIndex: beforeIndex,
37
37
  afterIndex: afterIndex,
38
- decrease: opposite
38
+ decrease: opposite,
39
+ virtualize: params.virtualize
39
40
  });
40
41
  };
41
42
  return Append;
@@ -1 +1 @@
1
- {"version":3,"file":"append.js","sourceRoot":"","sources":["../../../../src/processes/adapter/append.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAUzF;IAAoC,0BAAgD;IAApF;;IAoCA,CAAC;IAlCQ,UAAG,GAAV,UAAW,QAAkB,EAAE,EAAsC;YAApC,OAAO,aAAA,EAAE,OAAO,aAAA;QACvC,IAAA,MAAM,GAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAzD,CAA0D;QACxE,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAEM,eAAQ,GAAf,UAAgB,QAAkB,EAAE,OAAuB,EAAE,MAAmC;QACtF,IAAA,GAAG,GAA8B,MAAM,IAApC,EAAE,GAAG,GAAyB,MAAM,IAA/B,EAAE,QAAQ,GAAe,MAAM,SAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QACxC,IAAA,MAAM,GAAK,QAAQ,OAAb,CAAc;QAC5B,IAAM,OAAO,GAAG,OAAO,KAAK,cAAc,CAAC,OAAO,CAAC;QACnD,IAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChD,IAAI,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClD,IAAI,OAAO,EAAE;YACX,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,KAAK,GAAG,yBAAI,KAAK,UAAE,OAAO,EAAE,CAAC;SAC9B;aAAM;YACL,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjG;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC/B,KAAK,OAAA;YACL,WAAW,aAAA;YACX,UAAU,YAAA;YACV,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IAEH,aAAC;AAAD,CAAC,AApCD,CAAoC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,GAoCnF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Insert from './insert';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { AdapterAppendOptions, AdapterPrependOptions } from '../../interfaces/index';\r\n\r\ntype AdapterAppendPrependOptions = AdapterAppendOptions & AdapterPrependOptions;\r\n\r\ninterface AppendRunOptions {\r\n process: AdapterProcess;\r\n options: AdapterAppendPrependOptions;\r\n}\r\n\r\nexport default class Append extends BaseAdapterProcessFactory(AdapterProcess.append) {\r\n\r\n static run(scroller: Scroller, { process, options }: AppendRunOptions): void {\r\n const { params } = Append.parseInput(scroller, options, false, process);\r\n if (!params) {\r\n return;\r\n }\r\n\r\n const shouldAppend = Append.doAppend(scroller, process, params);\r\n\r\n scroller.workflow.call({\r\n process: Append.process,\r\n status: shouldAppend ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doAppend(scroller: Scroller, process: AdapterProcess, params: AdapterAppendPrependOptions): boolean {\r\n const { bof, eof, increase, decrease } = params;\r\n const { buffer } = scroller;\r\n const prepend = process === AdapterProcess.prepend;\r\n const opposite = prepend ? !increase : decrease;\r\n let beforeIndex, afterIndex, items = params.items;\r\n if (prepend) {\r\n beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);\r\n items = [...items].reverse();\r\n } else {\r\n afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);\r\n }\r\n return Insert.doInsert(scroller, {\r\n items,\r\n beforeIndex,\r\n afterIndex,\r\n decrease: opposite\r\n });\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"append.js","sourceRoot":"","sources":["../../../../src/processes/adapter/append.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAUzF;IAAoC,0BAAgD;IAApF;;IAqCA,CAAC;IAnCQ,UAAG,GAAV,UAAW,QAAkB,EAAE,EAAsC;YAApC,OAAO,aAAA,EAAE,OAAO,aAAA;QACvC,IAAA,MAAM,GAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAzD,CAA0D;QACxE,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAEM,eAAQ,GAAf,UAAgB,QAAkB,EAAE,OAAuB,EAAE,MAAmC;QACtF,IAAA,GAAG,GAA8B,MAAM,IAApC,EAAE,GAAG,GAAyB,MAAM,IAA/B,EAAE,QAAQ,GAAe,MAAM,SAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QACxC,IAAA,MAAM,GAAK,QAAQ,OAAb,CAAc;QAC5B,IAAM,OAAO,GAAG,OAAO,KAAK,cAAc,CAAC,OAAO,CAAC;QACnD,IAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChD,IAAI,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClD,IAAI,OAAO,EAAE;YACX,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,KAAK,GAAG,yBAAI,KAAK,UAAE,OAAO,EAAE,CAAC;SAC9B;aAAM;YACL,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjG;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC/B,KAAK,OAAA;YACL,WAAW,aAAA;YACX,UAAU,YAAA;YACV,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IAEH,aAAC;AAAD,CAAC,AArCD,CAAoC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,GAqCnF","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Insert from './insert';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { AdapterAppendOptions, AdapterPrependOptions } from '../../interfaces/index';\r\n\r\ntype AdapterAppendPrependOptions = AdapterAppendOptions & AdapterPrependOptions;\r\n\r\ninterface AppendRunOptions {\r\n process: AdapterProcess;\r\n options: AdapterAppendPrependOptions;\r\n}\r\n\r\nexport default class Append extends BaseAdapterProcessFactory(AdapterProcess.append) {\r\n\r\n static run(scroller: Scroller, { process, options }: AppendRunOptions): void {\r\n const { params } = Append.parseInput(scroller, options, false, process);\r\n if (!params) {\r\n return;\r\n }\r\n\r\n const shouldAppend = Append.doAppend(scroller, process, params);\r\n\r\n scroller.workflow.call({\r\n process: Append.process,\r\n status: shouldAppend ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doAppend(scroller: Scroller, process: AdapterProcess, params: AdapterAppendPrependOptions): boolean {\r\n const { bof, eof, increase, decrease } = params;\r\n const { buffer } = scroller;\r\n const prepend = process === AdapterProcess.prepend;\r\n const opposite = prepend ? !increase : decrease;\r\n let beforeIndex, afterIndex, items = params.items;\r\n if (prepend) {\r\n beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);\r\n items = [...items].reverse();\r\n } else {\r\n afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);\r\n }\r\n return Insert.doInsert(scroller, {\r\n items,\r\n beforeIndex,\r\n afterIndex,\r\n decrease: opposite,\r\n virtualize: params.virtualize\r\n });\r\n }\r\n\r\n}\r\n"]}
@@ -44,7 +44,7 @@ var Insert = /** @class */ (function (_super) {
44
44
  Insert.insertInBuffer = function (scroller, params) {
45
45
  var before = params.before, after = params.after, beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
46
46
  var indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);
47
- if (isNaN(indexToInsert)) {
47
+ if (params.virtualize || isNaN(indexToInsert)) {
48
48
  return false;
49
49
  }
50
50
  var isBackward = Number.isInteger(beforeIndex) || before;
@@ -1 +1 @@
1
- {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/processes/adapter/insert.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Item } from '../../classes/item';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterInsertOptions, AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Insert extends BaseAdapterProcessFactory(AdapterProcess.insert) {\r\n\r\n static run(scroller: Scroller, options: AdapterInsertOptions): void {\r\n const { params } = Insert.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldInsert = Insert.doInsert(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Insert.process,\r\n status: shouldInsert ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doInsert(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n if (!Insert.insertEmpty(scroller, params)) {\r\n if (!Insert.insertInBuffer(scroller, params)) {\r\n if (!Insert.insertVirtually(scroller, params)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n static insertEmpty(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { buffer, routines, state: { fetch } } = scroller;\r\n if (buffer.size) {\r\n return false;\r\n }\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n if (!buffer.fillEmpty(\r\n items, beforeIndex, afterIndex, !!decrease,\r\n (index, data) => new Item(index, data, routines)\r\n )) {\r\n return false;\r\n }\r\n fetch.fill(buffer.items, buffer.startIndex);\r\n\r\n return true;\r\n }\r\n\r\n static insertInBuffer(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { before, after, beforeIndex, afterIndex, items, decrease } = params;\r\n const indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);\r\n\r\n if (isNaN(indexToInsert)) {\r\n return false;\r\n }\r\n const isBackward = Number.isInteger(beforeIndex) || before;\r\n\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: ({ $index, data }) => {\r\n if (indexToInsert === $index) {\r\n return isBackward ? [...items, data] : [data, ...items];\r\n }\r\n return true;\r\n },\r\n fixRight: decrease\r\n };\r\n\r\n return Update.doUpdate(scroller, updateOptions);\r\n }\r\n\r\n static insertVirtually(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n const { buffer, state: { fetch }, viewport } = scroller;\r\n const direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;\r\n const indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex) as number;\r\n\r\n if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {\r\n return false;\r\n }\r\n\r\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.simulate = true;\r\n fetch.firstVisible.delta = - buffer.getSizeByIndex(index) + diff;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/processes/adapter/insert.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scroller } from '../../scroller';\r\nimport Update from './update';\r\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\r\nimport { Item } from '../../classes/item';\r\nimport { Direction } from '../../inputs/index';\r\nimport { AdapterInsertOptions, AdapterUpdateOptions } from '../../interfaces/index';\r\n\r\nexport default class Insert extends BaseAdapterProcessFactory(AdapterProcess.insert) {\r\n\r\n static run(scroller: Scroller, options: AdapterInsertOptions): void {\r\n const { params } = Insert.parseInput(scroller, options);\r\n if (!params) {\r\n return;\r\n }\r\n const shouldInsert = Insert.doInsert(scroller, params);\r\n\r\n scroller.workflow.call({\r\n process: Insert.process,\r\n status: shouldInsert ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n }\r\n\r\n static doInsert(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n if (!Insert.insertEmpty(scroller, params)) {\r\n if (!Insert.insertInBuffer(scroller, params)) {\r\n if (!Insert.insertVirtually(scroller, params)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n static insertEmpty(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { buffer, routines, state: { fetch } } = scroller;\r\n if (buffer.size) {\r\n return false;\r\n }\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n if (!buffer.fillEmpty(\r\n items, beforeIndex, afterIndex, !!decrease,\r\n (index, data) => new Item(index, data, routines)\r\n )) {\r\n return false;\r\n }\r\n fetch.fill(buffer.items, buffer.startIndex);\r\n\r\n return true;\r\n }\r\n\r\n static insertInBuffer(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { before, after, beforeIndex, afterIndex, items, decrease } = params;\r\n const indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);\r\n\r\n if (params.virtualize || isNaN(indexToInsert)) {\r\n return false;\r\n }\r\n const isBackward = Number.isInteger(beforeIndex) || before;\r\n\r\n const updateOptions: AdapterUpdateOptions = {\r\n predicate: ({ $index, data }) => {\r\n if (indexToInsert === $index) {\r\n return isBackward ? [...items, data] : [data, ...items];\r\n }\r\n return true;\r\n },\r\n fixRight: decrease\r\n };\r\n\r\n return Update.doUpdate(scroller, updateOptions);\r\n }\r\n\r\n static insertVirtually(scroller: Scroller, params: AdapterInsertOptions): boolean {\r\n const { beforeIndex, afterIndex, items, decrease } = params;\r\n const { buffer, state: { fetch }, viewport } = scroller;\r\n const direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;\r\n const indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex) as number;\r\n\r\n if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {\r\n return false;\r\n }\r\n\r\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.simulate = true;\r\n fetch.firstVisible.delta = - buffer.getSizeByIndex(index) + diff;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  name: 'vscroll',
3
- version: '1.6.2'
3
+ version: '1.6.3'
4
4
  };
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;CACjB,CAAC","sourcesContent":["export default {\n name: 'vscroll',\n version: '1.6.2'\n};\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;CACjB,CAAC","sourcesContent":["export default {\n name: 'vscroll',\n version: '1.6.3'\n};\n"]}
@@ -69,11 +69,13 @@ export interface AdapterAppendOptions<Data = unknown> {
69
69
  items: Data[];
70
70
  eof?: boolean;
71
71
  decrease?: boolean;
72
+ virtualize?: boolean;
72
73
  }
73
74
  export interface AdapterPrependOptions<Data = unknown> {
74
75
  items: Data[];
75
76
  bof?: boolean;
76
77
  increase?: boolean;
78
+ virtualize?: boolean;
77
79
  }
78
80
  export interface AdapterRemoveOptions<Data = unknown> {
79
81
  predicate?: ItemsPredicate<Data>;
@@ -91,6 +93,7 @@ export interface AdapterInsertOptions<Data = unknown> {
91
93
  beforeIndex?: number;
92
94
  afterIndex?: number;
93
95
  decrease?: boolean;
96
+ virtualize?: boolean;
94
97
  }
95
98
  export interface AdapterReplaceOptions<Data = unknown> {
96
99
  items: Data[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vscroll",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "Virtual scroll engine",
5
5
  "main": "dist/bundles/vscroll.umd.js",
6
6
  "module": "dist/bundles/vscroll.esm5.js",