MCPcopy Create free account
hub / github.com/breck7/scroll / _layoutArray

Function _layoutArray

external/.datatables.js:3389–3440  ·  view source on GitHub ↗

* Convert a `layout` object given by a user to the object structure needed * for the renderer. This is done twice, once for above and once for below * the table. Ordering must also be considered. * * @param {*} settings DataTables settings object * @param {*} layout Layout object to conver

(settings, layout, side)

Source from the content-addressed store, hash-verified

3387 * @returns Converted array structure - one item for each row.
3388 */
3389 function _layoutArray(settings, layout, side) {
3390 var rows = []
3391
3392 // Split out into an array
3393 $.each(layout, function (pos, items) {
3394 if (items === null) {
3395 return
3396 }
3397
3398 var parts = pos.match(/^([a-z]+)([0-9]*)([A-Za-z]*)$/)
3399 var rowNum = parts[2] ? parts[2] * 1 : 0
3400 var align = parts[3] ? parts[3].toLowerCase() : "full"
3401
3402 // Filter out the side we aren't interested in
3403 if (parts[1] !== side) {
3404 return
3405 }
3406
3407 // Get or create the row we should attach to
3408 var row = _layoutGetRow(rows, rowNum, align)
3409
3410 _layoutItems(row, align, items)
3411 })
3412
3413 // Order by item identifier
3414 rows.sort(function (a, b) {
3415 var order1 = a.rowNum
3416 var order2 = b.rowNum
3417
3418 // If both in the same row, then the row with `full` comes first
3419 if (order1 === order2) {
3420 var ret = a.full && !b.full ? -1 : 1
3421
3422 return side === "bottom" ? ret * -1 : ret
3423 }
3424
3425 return order2 - order1
3426 })
3427
3428 // Invert for below the table
3429 if (side === "bottom") {
3430 rows.reverse()
3431 }
3432
3433 for (var row = 0; row < rows.length; row++) {
3434 delete rows[row].rowNum
3435
3436 _layoutResolve(settings, rows[row])
3437 }
3438
3439 return rows
3440 }
3441
3442 /**
3443 * Convert the contents of a row's layout object to nodes that can be inserted

Callers 1

_fnAddOptionsHtmlFunction · 0.85

Calls 6

_layoutGetRowFunction · 0.85
_layoutItemsFunction · 0.85
_layoutResolveFunction · 0.85
eachMethod · 0.80
sortMethod · 0.80
reverseMethod · 0.80

Tested by

no test coverage detected