Skip to content

Commit 2a0ca46

Browse files
committed
[WIP] Not working
1 parent 5370cab commit 2a0ca46

File tree

2 files changed

+21
-14
lines changed

2 files changed

+21
-14
lines changed

projects/angular-split/src/lib/component/split.component.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -499,25 +499,23 @@ export class SplitComponent implements AfterViewInit, OnDestroy {
499499
// Need to know if each gutter side areas could reacts to steppedOffset
500500

501501
const areasBefore: ISplitSideAbsorptionCapacity = this.snapshot.areasBeforeGutter.reduce((acc, area) => {
502-
const res = getAreaAbsorptionCapacity(this.unit, area, acc.remain);
502+
const res = getAreaAbsorptionCapacity(this.unit, area, acc.remain, this.snapshot.containerSizePixel);
503503
acc.list.push(res);
504504
acc.remain = res.pixelRemain;
505505
return acc;
506506
}, {remain: -steppedOffset, list: []});
507-
508-
if(areasBefore.remain !== 0) return;
509507

510-
const areasAfter: ISplitSideAbsorptionCapacity = this.snapshot.areasAfterGutter.reduce((acc, a) => {
511-
const res = getAreaAbsorptionCapacity(this.unit, a, acc.remain);
508+
const areasAfter: ISplitSideAbsorptionCapacity = this.snapshot.areasAfterGutter.reduce((acc, area) => {
509+
const res = getAreaAbsorptionCapacity(this.unit, area, acc.remain, this.snapshot.containerSizePixel);
512510
acc.list.push(res);
513511
acc.remain = res.pixelRemain;
514512
return acc;
515513
}, {remain: steppedOffset, list: []});
516514

517-
if(areasAfter.remain !== 0) return;
518-
519515
// Now we know areas could absorb steppedOffset, time to really update sizes
520516

517+
console.log('A', areasBefore.list[0].pixelAbsorb, areasBefore.list[0].percentAfterAbsorption);
518+
console.log('B', areasAfter.list[0].pixelAbsorb, areasAfter.list[0].percentAfterAbsorption);
521519
areasBefore.list.forEach(item => updateAreaSize(this.unit, item));
522520
areasAfter.list.forEach(item => updateAreaSize(this.unit, item));
523521

projects/angular-split/src/lib/utils.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export function isUserSizesValid(unit: 'percent' | 'pixel', sizes: Array<number
4848
}
4949
}
5050

51-
export function getAreaAbsorptionCapacity(unit: 'percent' | 'pixel', areaSnapshot: IAreaSnapshot, pixels: number): IAreaAbsorptionCapacity {
51+
export function getAreaAbsorptionCapacity(unit: 'percent' | 'pixel', areaSnapshot: IAreaSnapshot, pixels: number, containerSizePixel: number): IAreaAbsorptionCapacity {
5252
// No pain no gain
5353
if(pixels === 0) {
5454
return {
@@ -70,14 +70,14 @@ export function getAreaAbsorptionCapacity(unit: 'percent' | 'pixel', areaSnapsho
7070
}
7171

7272
if(unit === 'pixel') {
73-
return getAreaAbsorptionCapacityPixel(areaSnapshot, pixels);
73+
return getAreaAbsorptionCapacityPixel(areaSnapshot, pixels, containerSizePixel);
7474
}
7575
else if(unit === 'percent') {
76-
return getAreaAbsorptionCapacityPercent(areaSnapshot, pixels);
76+
return getAreaAbsorptionCapacityPercent(areaSnapshot, pixels, containerSizePixel);
7777
}
7878
}
7979

80-
function getAreaAbsorptionCapacityPercent(areaSnapshot: IAreaSnapshot, pixels: number): IAreaAbsorptionCapacity {
80+
function getAreaAbsorptionCapacityPercent(areaSnapshot: IAreaSnapshot, pixels: number, containerSizePixel: number): IAreaAbsorptionCapacity {
8181
const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;
8282
const tempPercentSize = tempPixelSize / areaSnapshot.sizePixelAtStart * areaSnapshot.sizePercentAtStart;
8383

@@ -95,10 +95,19 @@ function getAreaAbsorptionCapacityPercent(areaSnapshot: IAreaSnapshot, pixels: n
9595
pixelRemain: pixels - maxPixelAbsorb
9696
};
9797
}
98+
else if(areaSnapshot.sizePixelAtStart === 0) {
99+
console.log('TODO percentAfterAbsorption', (pixels / containerSizePixel * 100))
100+
return {
101+
areaSnapshot,
102+
pixelAbsorb: pixels,
103+
percentAfterAbsorption: pixels / containerSizePixel * 100,
104+
pixelRemain: pixels,
105+
};
106+
}
98107
return {
99108
areaSnapshot,
100109
pixelAbsorb: pixels,
101-
percentAfterAbsorption: tempPercentSize,
110+
percentAfterAbsorption: tempPercentSize > 100 ? 100 : tempPercentSize,
102111
pixelRemain: 0
103112
};
104113
}
@@ -124,7 +133,7 @@ function getAreaAbsorptionCapacityPercent(areaSnapshot: IAreaSnapshot, pixels: n
124133
areaSnapshot,
125134
pixelAbsorb: -areaSnapshot.sizePixelAtStart,
126135
percentAfterAbsorption: 0,
127-
pixelRemain: pixels - areaSnapshot.sizePixelAtStart
136+
pixelRemain: pixels + areaSnapshot.sizePixelAtStart
128137
};
129138
}
130139
return {
@@ -136,7 +145,7 @@ function getAreaAbsorptionCapacityPercent(areaSnapshot: IAreaSnapshot, pixels: n
136145
}
137146
}
138147

139-
function getAreaAbsorptionCapacityPixel(areaSnapshot: IAreaSnapshot, pixels: number): IAreaAbsorptionCapacity {
148+
function getAreaAbsorptionCapacityPixel(areaSnapshot: IAreaSnapshot, pixels: number, containerSizePixel: number): IAreaAbsorptionCapacity {
140149
const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;
141150

142151
// ENLARGE AREA

0 commit comments

Comments
 (0)