{"_id":"@atirip/virtual-layout","_rev":"3-8f7566ade41f1a41eb544c9772042036","name":"@atirip/virtual-layout","description":"Virtual Layout","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@atirip/virtual-layout","description":"Virtual Layout","version":"0.0.1","main":"layout.js","author":{"name":"Priit Pirita","email":"atirip@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/atirip/virtual-layout.git"},"license":"MIT","keywords":["layout"],"dependencies":{"@atirip/matrix":"^1.0.0","@atirip/rectangle":"^1.0.0"},"devDependencies":{"chai":"^1.5.x","mocha":"^1.8.x","mocha-eslint":"^0.1.7"},"scripts":{"test":"mocha test/*"},"bugs":{"url":"https://github.com/atirip/virtual-layout/issues"},"homepage":"https://github.com/atirip/virtual-layout#readme","gitHead":"8c6b240de0a77df64d0d385907906eef045eab96","_id":"@atirip/virtual-layout@0.0.1","_shasum":"fb51c318c89af054cab6952423d383955375245b","_from":".","_npmVersion":"2.11.1","_nodeVersion":"0.12.4","_npmUser":{"name":"atirip","email":"atirip@gmail.com"},"dist":{"shasum":"fb51c318c89af054cab6952423d383955375245b","tarball":"https://registry.npmjs.org/@atirip/virtual-layout/-/virtual-layout-0.0.1.tgz","integrity":"sha512-PfVn5p/Ho7FIBYFSJsMMhMdUQfMGSkj+RdmB/ZbRQBfFgDbFj0glRVtGkl3v+W98mVYZtlGxHw8foezLZN4KZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWGumhaPIvcruNqQXSXCjtqRXNupFSTyAO85Rhx1BJNgIgWZgEscCX5XmkIBTSpED1zQlJU9OriW2HWRd8Jn+vLVs="}]},"maintainers":[{"name":"atirip","email":"atirip@gmail.com"}]}},"readme":"# Virtual Layout\n\n__Work in progress. This is still in alpha__.   \nPure academic interest only. What is published actually does work for what it is intended, but things are changing. Documentation will follow. Examples too. Stay tuned.   \n_The reason of this published prematurely is that i'm honing my front-end workflow in the process and need some things in GitHub & Npm repo._\n\n## Overview\nBare bones library (absolute minimal set of tools) of \"boxes inside boxes\" or virtual scrollable - you have viewport, \nyou have pasteboard and you have objects (rectangles) on that pasteboard. Pasteboard can scroll inside viewport, it can be\nscaled (zoomed) and rotated. All the objects on the pasteboard transform with it in unison. Object on pasteboard can be another \nviewport and so on. Object on pasteboard can individually be scaled and rotated.\n\nViewport and objects (but not pasteboard itself) can be projected to DOM e.g. instead of traditional \"viewport -> large scrollable area\" this\nimplements \"viewport -> many small objects that scroll separately\" idea. The primary reason is that this large scrollable area is\nsometimes too large and too heavy to scroll smoothly and any change (lazy loading, infinite) will add jank. By moving (or more specifically, \nupdating DOM and styles) all the separate objects individually we can ideally have much smoother and lighter experience. The kicker being that we actually move\n_only_ those objects that are visible in viewport, which usually we have not that many.\n\n_Not usable standalone._ This library needs the glue code to connects it with real DOM objects. Such a glue code is highly dependant of actual use case and will not be part of the library.\n\n\n## License\n\nCopyright &copy; 2015 Priit Pirita, released under the MIT license.\n\n","maintainers":[{"name":"atirip","email":"atirip@gmail.com"}],"time":{"modified":"2022-06-12T14:49:58.449Z","created":"2015-06-07T19:22:40.101Z","0.0.1":"2015-06-07T19:22:40.101Z"},"homepage":"https://github.com/atirip/virtual-layout#readme","keywords":["layout"],"repository":{"type":"git","url":"git+https://github.com/atirip/virtual-layout.git"},"author":{"name":"Priit Pirita","email":"atirip@yahoo.com"},"bugs":{"url":"https://github.com/atirip/virtual-layout/issues"},"license":"MIT","readmeFilename":"README.md"}