Version 1
[yaffs-website] / node_modules / grunt-legacy-log-utils / node_modules / lodash / _getView.js
diff --git a/node_modules/grunt-legacy-log-utils/node_modules/lodash/_getView.js b/node_modules/grunt-legacy-log-utils/node_modules/lodash/_getView.js
new file mode 100644 (file)
index 0000000..df1e5d4
--- /dev/null
@@ -0,0 +1,33 @@
+/* Built-in method references for those with the same name as other `lodash` methods. */
+var nativeMax = Math.max,
+    nativeMin = Math.min;
+
+/**
+ * Gets the view, applying any `transforms` to the `start` and `end` positions.
+ *
+ * @private
+ * @param {number} start The start of the view.
+ * @param {number} end The end of the view.
+ * @param {Array} transforms The transformations to apply to the view.
+ * @returns {Object} Returns an object containing the `start` and `end`
+ *  positions of the view.
+ */
+function getView(start, end, transforms) {
+  var index = -1,
+      length = transforms.length;
+
+  while (++index < length) {
+    var data = transforms[index],
+        size = data.size;
+
+    switch (data.type) {
+      case 'drop':      start += size; break;
+      case 'dropRight': end -= size; break;
+      case 'take':      end = nativeMin(end, start + size); break;
+      case 'takeRight': start = nativeMax(start, end - size); break;
+    }
+  }
+  return { 'start': start, 'end': end };
+}
+
+module.exports = getView;