@any-scroll/bar
Advanced tools
Comparing version 0.2.2 to 0.2.3
export declare const TRACK_CLASS_NAME = "scroll-bar-track"; | ||
export declare const THUMB_CLASS_NAME = "scroll-bar-thumb"; | ||
export declare const BAR_CSS: string; | ||
export declare const enum DIRECTION { | ||
X = "x", | ||
Y = "y" | ||
} |
@@ -8,3 +8,3 @@ import { Wrap } from '@any-scroll/core'; | ||
*/ | ||
export default function (wrapRef: WarpInstance): void; | ||
export default function (context: WarpInstance): void; | ||
export {}; |
import { __read, __spread } from 'tslib'; | ||
import { setStyle, runTwice, changeDOMVisible, createDOMDiv } from '@any-scroll/shared'; | ||
import { DIRECTION, setStyle, runTwice, changeDOMVisible, createDOMDiv } from '@any-scroll/shared'; | ||
import { insertCss } from 'insert-css'; | ||
@@ -12,29 +12,21 @@ import { Wrap } from '@any-scroll/core'; | ||
var BAR_CSS = "\n." + TRACK_CLASS_NAME + "{\n position:absolute;\n right:0;\n bottom:0;\n background: " + TRACK_COLOR + ";\n}\n\n." + TRACK_CLASS_NAME + " > ." + THUMB_CLASS_NAME + "{\n width: " + TRACK_WIDTH + ";\n height: " + TRACK_WIDTH + ";\n background: " + THUMB_COLOR + ";\n border-radius:4px;\n}\n\n." + TRACK_CLASS_NAME + "-x{\n left:0;\n height:" + TRACK_WIDTH + ";\n}\n\n." + TRACK_CLASS_NAME + "-y{\n top:0;\n width:" + TRACK_WIDTH + ";\n}\n"; | ||
var DIRECTION; | ||
(function (DIRECTION) { | ||
DIRECTION["X"] = "x"; | ||
DIRECTION["Y"] = "y"; | ||
})(DIRECTION || (DIRECTION = {})); | ||
function index (wrapRef) { | ||
var widthAndHeight = ['width', 'height']; | ||
function index (context) { | ||
var __isDraggingBar = false; | ||
insertCss(BAR_CSS); | ||
var barRefs = []; | ||
var bars = []; | ||
var xyBarElements = [DIRECTION.X, DIRECTION.Y].map(function (dir, index) { | ||
var _a = __read(createDOM(wrapRef.el, dir), 2), trackEl = _a[0], thumbEl = _a[1]; | ||
var barRef = new Wrap(trackEl, { | ||
allow: [DIRECTION.X === dir, DIRECTION.Y === dir], | ||
overflowDistance: 0, | ||
watchResize: false, | ||
}); | ||
barRefs.push(barRef); | ||
setStyle(barRef.el, { position: 'absolute' }); | ||
barRef.on('pan', function (e) { | ||
var thumbRef = barRef.getContentRef(); | ||
if (thumbRef) { | ||
var contentRef = wrapRef.getContentRef(); | ||
var _a = __read(createDOM(context.el, dir), 2), trackEl = _a[0], thumbEl = _a[1]; | ||
var bar = new Wrap(trackEl, { allow: [DIRECTION.X === dir, DIRECTION.Y === dir], overflowDistance: 0 }); | ||
bars.push(bar); | ||
setStyle(bar.el, { position: 'absolute' }); | ||
bar.on('pan', function () { | ||
var thumb = bar.getContentRef(); | ||
if (thumb) { | ||
var contentRef = context.getContentRef(); | ||
if (null !== contentRef) { | ||
var xy = contentRef.xy; | ||
var nextXY = __spread(xy); | ||
nextXY[index] = (-thumbRef.xy[index] * contentRef.contentSize[index]) / thumbRef.wrapSize[index]; | ||
nextXY[index] = -thumb.xy[index] * contentRef.contentSize[index] / thumb.wrapSize[index]; | ||
contentRef.moveTo(nextXY); | ||
@@ -45,3 +37,3 @@ __isDraggingBar = true; | ||
}); | ||
barRef.on('at:end', function () { | ||
bar.on('at:end', function () { | ||
__isDraggingBar = false; | ||
@@ -51,13 +43,13 @@ }); | ||
}); | ||
updateBar(wrapRef, barRefs, xyBarElements); | ||
wrapRef.on(['at:start', 'scroll', 'resize'], function () { | ||
updateBar(context, bars, xyBarElements); | ||
context.on(['at:start', 'scroll'], function () { | ||
if (__isDraggingBar) | ||
return; | ||
updateBar(wrapRef, barRefs, xyBarElements); | ||
updateBar(context, bars, xyBarElements); | ||
}); | ||
} | ||
function updateBar(wrapRef, barRefs, xyBarElements) { | ||
var contentRef = wrapRef.getContentRef(); | ||
function updateBar(context, bars, xyBarElements) { | ||
var contentRef = context.getContentRef(); | ||
if (null !== contentRef) { | ||
var contentSize_1 = contentRef.contentSize, wrapSize_1 = contentRef.wrapSize, minXY_1 = contentRef.minXY, maxXY_1 = contentRef.maxXY; contentRef.xy; | ||
var contentSize_1 = contentRef.contentSize, wrapSize_1 = contentRef.wrapSize, minXY_1 = contentRef.minXY, maxXY_1 = contentRef.maxXY; | ||
runTwice(function (i) { | ||
@@ -67,12 +59,12 @@ var _a; | ||
changeDOMVisible(xyBarElements[i][0]); | ||
var thumbRef = barRefs[i].getContentRef(); | ||
var thumbRef = bars[i].getContentRef(); | ||
if (null !== thumbRef) { | ||
var _b = __read(getBarSizeAndPosition(contentRef.xy[i], wrapSize_1[i], contentSize_1[i], maxXY_1[i], minXY_1[i], thumbRef.minXY[i], thumbRef.maxXY[i]), 2), thumbSize = _b[0], thumbXorY = _b[1]; | ||
var _b = __read(calcBarXorY(contentRef.xy[i], wrapSize_1[i], contentSize_1[i], maxXY_1[i], minXY_1[i], thumbRef.minXY[i], thumbRef.maxXY[i]), 2), thumbSize = _b[0], thumbXorY = _b[1]; | ||
var thumbElement = xyBarElements[i][1]; | ||
setStyle(thumbElement, (_a = {}, _a[['width', 'height'][i]] = thumbSize + "px", _a)); | ||
thumbRef.maxXY[i] = contentRef.wrapSize[i] - thumbSize; | ||
setStyle(thumbElement, (_a = {}, _a[widthAndHeight[i]] = thumbSize + "px", _a)); | ||
thumbRef.maxXY[i] = thumbRef.wrapSize[i] - thumbSize; | ||
thumbRef.minXY[i] = 0; | ||
var xy_1 = thumbRef.xy; | ||
xy_1[i] = thumbXorY; | ||
thumbRef.moveTo(xy_1); | ||
var xy = thumbRef.xy; | ||
xy[i] = thumbXorY; | ||
thumbRef.moveTo(xy); | ||
} | ||
@@ -94,3 +86,3 @@ } | ||
} | ||
function getBarSizeAndPosition(scrollViewXOrY, wrapSize, contentSize, maxXorY, minXorY, thumbMinXOrY, thumbMaxXOrY) { | ||
function calcBarXorY(scrollViewXOrY, wrapSize, contentSize, maxXorY, minXorY, thumbMinXOrY, thumbMaxXOrY) { | ||
var trackSize = wrapSize; | ||
@@ -97,0 +89,0 @@ var scrollViewMaxDistance = maxXorY - minXorY; |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,r=require("tslib"),e=require("@any-scroll/shared"),t=require("insert-css"),a=require("@any-scroll/core");function i(n,t,a){var i=n.getContentRef();if(null!==i){var o=i.contentSize,l=i.wrapSize,c=i.minXY,s=i.maxXY;i.xy,e.runTwice((function(n){var u;if(o[n]>l[n]){e.changeDOMVisible(a[n][0]);var b=t[n].getContentRef();if(null!==b){var p=r.__read(function(n,r,e,t,a,i,o){var l=1,c=r/e*r;a>=n?l=1-(a-n)/r:t<n&&(l=1-(n-t)/r);return[c*=l,-n/(t-a)*(r-c)]}(i.xy[n],l[n],o[n],s[n],c[n],b.minXY[n],b.maxXY[n]),2),f=p[0],v=p[1],d=a[n][1];e.setStyle(d,((u={})[["width","height"][n]]=f+"px",u)),b.maxXY[n]=i.wrapSize[n]-f,b.minXY[n]=0;var h=b.xy;h[n]=v,b.moveTo(h)}}else e.changeDOMVisible(a[n][0],!1)}))}}!function(n){n.X="x",n.Y="y"}(n||(n={})),exports.default=function(o){var l=!1;t.insertCss("\n.scroll-bar-track{\n position:absolute;\n right:0;\n bottom:0;\n background: rgba(177,177,177,0.6);\n}\n\n.scroll-bar-track > .scroll-bar-thumb{\n width: 8px;\n height: 8px;\n background: rgba(55,55,55,0.6);\n border-radius:4px;\n}\n\n.scroll-bar-track-x{\n left:0;\n height:8px;\n}\n\n.scroll-bar-track-y{\n top:0;\n width:8px;\n}\n");var c=[],s=[n.X,n.Y].map((function(t,i){var s=r.__read(function(r,t){void 0===t&&(t=n.X);var a=e.createDOMDiv(["scroll-bar-track","scroll-bar-track-"+t]),i=e.createDOMDiv(["scroll-bar-thumb","scroll-bar-thumb-"+t]);return a.appendChild(i),r.appendChild(a),[a,i]}(o.el,t),2),u=s[0],b=s[1],p=new a.Wrap(u,{allow:[n.X===t,n.Y===t],overflowDistance:0,watchResize:!1});return c.push(p),e.setStyle(p.el,{position:"absolute"}),p.on("pan",(function(n){var e=p.getContentRef();if(e){var t=o.getContentRef();if(null!==t){var a=t.xy,c=r.__spread(a);c[i]=-e.xy[i]*t.contentSize[i]/e.wrapSize[i],t.moveTo(c),l=!0}}})),p.on("at:end",(function(){l=!1})),[u,b]}));i(o,c,s),o.on(["at:start","scroll","resize"],(function(){l||i(o,c,s)}))}; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("tslib"),n=require("@any-scroll/shared"),e=require("insert-css"),t=require("@any-scroll/core"),a=["width","height"];function o(e,t,o){var i=e.getContentRef();if(null!==i){var l=i.contentSize,c=i.wrapSize,s=i.minXY,u=i.maxXY;n.runTwice((function(e){var b;if(l[e]>c[e]){n.changeDOMVisible(o[e][0]);var p=t[e].getContentRef();if(null!==p){var f=r.__read(function(r,n,e,t,a,o,i){var l=1,c=n/e*n;a>=r?l=1-(a-r)/n:t<r&&(l=1-(r-t)/n);return[c*=l,-r/(t-a)*(n-c)]}(i.xy[e],c[e],l[e],u[e],s[e],p.minXY[e],p.maxXY[e]),2),v=f[0],d=f[1],h=o[e][1];n.setStyle(h,((b={})[a[e]]=v+"px",b)),p.maxXY[e]=p.wrapSize[e]-v,p.minXY[e]=0;var x=p.xy;x[e]=d,p.moveTo(x)}}else n.changeDOMVisible(o[e][0],!1)}))}}exports.default=function(a){var i=!1;e.insertCss("\n.scroll-bar-track{\n position:absolute;\n right:0;\n bottom:0;\n background: rgba(177,177,177,0.6);\n}\n\n.scroll-bar-track > .scroll-bar-thumb{\n width: 8px;\n height: 8px;\n background: rgba(55,55,55,0.6);\n border-radius:4px;\n}\n\n.scroll-bar-track-x{\n left:0;\n height:8px;\n}\n\n.scroll-bar-track-y{\n top:0;\n width:8px;\n}\n");var l=[],c=[n.DIRECTION.X,n.DIRECTION.Y].map((function(e,o){var c=r.__read(function(r,e){void 0===e&&(e=n.DIRECTION.X);var t=n.createDOMDiv(["scroll-bar-track","scroll-bar-track-"+e]),a=n.createDOMDiv(["scroll-bar-thumb","scroll-bar-thumb-"+e]);return t.appendChild(a),r.appendChild(t),[t,a]}(a.el,e),2),s=c[0],u=c[1],b=new t.Wrap(s,{allow:[n.DIRECTION.X===e,n.DIRECTION.Y===e],overflowDistance:0});return l.push(b),n.setStyle(b.el,{position:"absolute"}),b.on("pan",(function(){var n=b.getContentRef();if(n){var e=a.getContentRef();if(null!==e){var t=e.xy,l=r.__spread(t);l[o]=-n.xy[o]*e.contentSize[o]/n.wrapSize[o],e.moveTo(l),i=!0}}})),b.on("at:end",(function(){i=!1})),[s,u]}));o(a,l,c),a.on(["at:start","scroll"],(function(){i||o(a,l,c)}))}; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@any-scroll/bar", | ||
"version": "0.2.2", | ||
"version": "0.2.3", | ||
"description": "虚拟滚动", | ||
@@ -24,3 +24,3 @@ "unpkg": "dist/any-scroll.js", | ||
"dependencies": { | ||
"@any-scroll/shared": "^0.2.2", | ||
"@any-scroll/shared": "^0.2.3", | ||
"insert-css": "^2.0.0", | ||
@@ -42,3 +42,3 @@ "lodash": "^4.17.15", | ||
"sideEffects": false, | ||
"gitHead": "ef0e34106b6bf93a79c7437b52c5a1001ad1a5e5" | ||
"gitHead": "9b354b5b897d74ceb98b9b75a77bb7446510f3d6" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
29358
118
Updated@any-scroll/shared@^0.2.3