Last change
on this file since 8d391a1 was 59329aa, checked in by Ema <ema_spirova@…>, 3 years ago |
adding photos
|
-
Property mode
set to
100644
|
File size:
4.8 KB
|
Line | |
---|
1 | function ZIndexUtils() {
|
---|
2 | let zIndexes = [];
|
---|
3 | const generateZIndex = (key, baseZIndex) => {
|
---|
4 | let lastZIndex = zIndexes.length > 0 ? zIndexes[zIndexes.length - 1] : { key, value: baseZIndex };
|
---|
5 | let newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 1;
|
---|
6 | zIndexes.push({ key, value: newZIndex });
|
---|
7 | return newZIndex;
|
---|
8 | };
|
---|
9 | const revertZIndex = (zIndex) => {
|
---|
10 | zIndexes = zIndexes.filter(obj => obj.value !== zIndex);
|
---|
11 | };
|
---|
12 | const getCurrentZIndex = () => {
|
---|
13 | return zIndexes.length > 0 ? zIndexes[zIndexes.length - 1].value : 0;
|
---|
14 | };
|
---|
15 | const getZIndex = (el) => {
|
---|
16 | return el ? parseInt(el.style.zIndex, 10) || 0 : 0;
|
---|
17 | };
|
---|
18 | return {
|
---|
19 | get: getZIndex,
|
---|
20 | set: (key, el, baseZIndex) => {
|
---|
21 | if (el) {
|
---|
22 | el.style.zIndex = String(generateZIndex(key, baseZIndex));
|
---|
23 | }
|
---|
24 | },
|
---|
25 | clear: (el) => {
|
---|
26 | if (el) {
|
---|
27 | revertZIndex(getZIndex(el));
|
---|
28 | el.style.zIndex = '';
|
---|
29 | }
|
---|
30 | },
|
---|
31 | getCurrent: () => getCurrentZIndex()
|
---|
32 | };
|
---|
33 | }
|
---|
34 | export default ZIndexUtils();
|
---|
35 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemluZGV4dXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvdXRpbHMvemluZGV4dXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxXQUFXO0lBQ2hCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUVsQixNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUN2QyxJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUNsRyxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpGLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFekMsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQyxDQUFBO0lBRUQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUM1QixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFBO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUU7UUFDMUIsT0FBTyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQyxDQUFBO0lBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUNyQixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RELENBQUMsQ0FBQTtJQUVELE9BQU87UUFDSCxHQUFHLEVBQUUsU0FBUztRQUNkLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUU7WUFDekIsSUFBSSxFQUFFLEVBQUU7Z0JBQ0osRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUM3RDtRQUNMLENBQUM7UUFDRCxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNWLElBQUksRUFBRSxFQUFFO2dCQUNKLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDNUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQztRQUNELFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRTtLQUN2QyxDQUFDO0FBQ04sQ0FBQztBQUVELGVBQWUsV0FBVyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBaSW5kZXhVdGlscygpIHtcbiAgICBsZXQgekluZGV4ZXMgPSBbXTtcblxuICAgIGNvbnN0IGdlbmVyYXRlWkluZGV4ID0gKGtleSwgYmFzZVpJbmRleCkgPT4ge1xuICAgICAgICBsZXQgbGFzdFpJbmRleCA9IHpJbmRleGVzLmxlbmd0aCA+IDAgPyB6SW5kZXhlc1t6SW5kZXhlcy5sZW5ndGggLSAxXSA6IHsga2V5LCB2YWx1ZTogYmFzZVpJbmRleCB9O1xuICAgICAgICBsZXQgbmV3WkluZGV4ID0gbGFzdFpJbmRleC52YWx1ZSArIChsYXN0WkluZGV4LmtleSA9PT0ga2V5ID8gMCA6IGJhc2VaSW5kZXgpICsgMTtcblxuICAgICAgICB6SW5kZXhlcy5wdXNoKHsga2V5LCB2YWx1ZTogbmV3WkluZGV4IH0pO1xuXG4gICAgICAgIHJldHVybiBuZXdaSW5kZXg7XG4gICAgfVxuXG4gICAgY29uc3QgcmV2ZXJ0WkluZGV4ID0gKHpJbmRleCkgPT4ge1xuICAgICAgICB6SW5kZXhlcyA9IHpJbmRleGVzLmZpbHRlcihvYmogPT4gb2JqLnZhbHVlICE9PSB6SW5kZXgpO1xuICAgIH1cblxuICAgIGNvbnN0IGdldEN1cnJlbnRaSW5kZXggPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB6SW5kZXhlcy5sZW5ndGggPiAwID8gekluZGV4ZXNbekluZGV4ZXMubGVuZ3RoIC0gMV0udmFsdWUgOiAwO1xuICAgIH1cblxuICAgIGNvbnN0IGdldFpJbmRleCA9IChlbCkgPT4ge1xuICAgICAgICByZXR1cm4gZWwgPyBwYXJzZUludChlbC5zdHlsZS56SW5kZXgsIDEwKSB8fCAwIDogMFxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGdldDogZ2V0WkluZGV4LFxuICAgICAgICBzZXQ6IChrZXksIGVsLCBiYXNlWkluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS56SW5kZXggPSBTdHJpbmcoZ2VuZXJhdGVaSW5kZXgoa2V5LCBiYXNlWkluZGV4KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNsZWFyOiAoZWwpID0+IHtcbiAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICAgIHJldmVydFpJbmRleChnZXRaSW5kZXgoZWwpKTtcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS56SW5kZXggPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0Q3VycmVudDogKCkgPT4gZ2V0Q3VycmVudFpJbmRleCgpXG4gICAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgWkluZGV4VXRpbHMoKTtcbiJdfQ== |
---|
Note:
See
TracBrowser
for help on using the repository browser.