Remove init version

This commit is contained in:
Vadim
2021-10-05 19:35:09 +03:00
parent 54e219b883
commit f1f657c5a7
2 changed files with 0 additions and 218 deletions

View File

@@ -30,9 +30,7 @@
import { ProgressManager } from '../../utils/ProgressManager' import { ProgressManager } from '../../utils/ProgressManager'
import { wait } from '../../utils/interval' import { wait } from '../../utils/interval'
import { carouselEngine } from './carousel'
import { carousel2 } from './carousel2' import { carousel2 } from './carousel2'
import { reactive } from './reactive'
let currentPageIndex let currentPageIndex

View File

@@ -1,216 +0,0 @@
import { NEXT, PREV } from '../../direction'
import {
applyParticleSizes,
getCurrentPageIndexByCurrentParticleIndex,
getPartialPageSize,
getPagesCountByParticlesCount,
getParticleIndexByPageIndex,
createResizeObserver,
} from '../../utils/page'
import { getClones, applyClones, getClonesCount } from '../../utils/clones'
import { getAdjacentIndexes } from '../../utils/lazy'
import { getValueInRange } from '../../utils/math'
import { get } from '../../utils/object'
import { ProgressManager } from '../../utils/ProgressManager'
import { wait } from '../../utils/interval'
function getCapitalized(str) {
const _str = String(str)
return `${_str.charAt(0).toUpperCase()}${_str.slice(1)}`
}
// TODO: merge values and computed
const carousel = (effects, options) => {
const values = {}
const setters = {}
const computed = get(options, 'computed', {})
const memo = {}
const actions = {}
Object.entries(get(options, 'actions', {})).forEach(([actionName, fn]) => {
actions[actionName] = (args) => fn(values, setters, computed, actions, args)
})
Object.entries(effects).forEach(([subject, descriptor]) => {
setters[`set${getCapitalized(subject)}`] = (value) => {
console.log('===> setter', subject)
// if (memo[subject])
const _value = get(descriptor, 'normalize', (value) => value)(
value,
values,
computed
)
values[subject] = _value
Object.entries(computed).forEach(([c, v]) => {
if (v.deps.includes(subject)) {
const dV = v.deps.map((d) => values[d])
const _memo = dV.join(' ')
// console.log()
if (dV.every((v) => v !== undefined) && memo[c] !== _memo) {
v.fn(values, computed)
}
memo[c] = _memo
}
})
get(options, 'onChange', () => {})(values, computed)
}
})
return {
...setters,
...actions,
}
}
export const carouselEngine = (onChange) => {
const _carousel = carousel(
{
particlesCountWithoutClones: {
effect: ({ values, setters }) => {},
},
particlesToShow: {
effect: ({ values, setters }) => {},
normalize: (value, values) => {
return getValueInRange(1, value, values.particlesCountWithoutClones)
},
},
particlesToScroll: {
effect: ({ values, setters }) => {},
normalize: (value, values) => {
return getValueInRange(1, value, values.particlesCountWithoutClones)
},
},
initialPageIndex: {
effect: ({ values }) => {
console.log('initialPageIndex effect', values)
},
// ignore calc if value is undefined
normalize: (value, values, computed) => {
return getParticleIndexByPageIndex({
infinite: values.infinite,
pageIndex: value,
clonesCountHead: computed.clonesCount.head,
clonesCountTail: computed.clonesCount.tail,
particlesToScroll: values.particlesToScroll,
particlesCount: values.particlesCount,
particlesToShow: values.particlesToShow,
})
},
},
particlesCount: {
effect: ({ values }) => {},
},
currentParticleIndex: {
effect: ({ values }) => {},
},
infinite: {},
},
{
onChange,
computed: {
clonesCount: {
fn: (values, computed) => {
return getClonesCount({
infinite: values.infinite,
particlesToShow: values.particlesToShow,
partialPageSize: values.partialPageSize,
})
},
deps: ['infinite', 'particlesToShow', 'partialPageSize'], // try to use proxy to detect deps
},
partialPageSize: {
fn: (values, computed) => {
return getPartialPageSize({
particlesToScroll: values.particlesToScroll,
particlesToShow: values.particlesToShow,
particlesCountWithoutClones: values.particlesCountWithoutClones,
})
},
deps: [
'particlesToScroll',
'particlesToShow',
'particlesCountWithoutClones',
],
},
currentPageIndex: {
fn: (values, computed) => {
console.log('===> currentPageIndex', currentPageIndex)
// dispatch('pageChange', currentPageIndex)
return getCurrentPageIndexByCurrentParticleIndex({
currentParticleIndex: values.currentParticleIndex,
particlesCount: values.particlesCount,
clonesCountHead: clonesCount.head,
clonesCountTotal: clonesCount.total,
infinite: values.initialPageIndex,
particlesToScroll: values.particlesToScroll,
})
},
deps: [
'currentParticleIndex',
'particlesCount',
'initialPageIndex',
'particlesToScroll',
'clonesCount',
],
},
pagesCount: {
fn: (values, computed) => {
return getPagesCountByParticlesCount({
infinite: values.infinite,
particlesCountWithoutClones: values.particlesCountWithoutClones,
particlesToScroll: values.particlesToScroll,
})
},
deps: [
'infinite',
'particlesCountWithoutClones',
'particlesToScroll',
],
},
},
actions: {
prev: (values, setters, computed, actions) => {
const newCurrentParticleIndex = getParticleIndexByPageIndex({
infinite: values.infinite,
pageIndex: computed.currentPageIndex - 1,
clonesCountHead: computed.clonesCount.head,
clonesCountTail: computed.clonesCount.tail,
particlesToScroll: values.particlesToScroll,
particlesCount: values.particlesCount,
particlesToShow: values.particlesToShow,
})
setters.setCurrentParticleIndex(newCurrentParticleIndex)
},
next: (values, setters, computed, actions) => {
const newCurrentParticleIndex = getParticleIndexByPageIndex({
infinite: values.infinite,
pageIndex: computed.currentPageIndex + 1,
clonesCountHead: computed.clonesCount.head,
clonesCountTail: computed.clonesCount.tail,
particlesToScroll: values.particlesToScroll,
particlesCount: values.particlesCount,
particlesToShow: values.particlesToShow,
})
setters.setCurrentParticleIndex(newCurrentParticleIndex)
},
moveToParticle: (values, setters, computed, actions, args) => {
const newCurrentParticleIndex = getValueInRange(
0,
args.particleIndex,
values.particlesCount - 1
)
setters.setCurrentParticleIndex(newCurrentParticleIndex)
},
},
}
)
return _carousel
}