Dia antes primera install
This commit is contained in:
68
node_modules/table-layout/lib/column.js
generated
vendored
Normal file
68
node_modules/table-layout/lib/column.js
generated
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
'use strict'
|
||||
const t = require('typical')
|
||||
const Padding = require('./padding')
|
||||
|
||||
/**
|
||||
* @module column
|
||||
*/
|
||||
|
||||
const _padding = new WeakMap()
|
||||
|
||||
// setting any column property which is a factor of the width should trigger autoSize()
|
||||
|
||||
/**
|
||||
* Represents a table column
|
||||
*/
|
||||
class Column {
|
||||
constructor (column) {
|
||||
/**
|
||||
* @type {string}
|
||||
*/
|
||||
if (t.isDefined(column.name)) this.name = column.name
|
||||
/**
|
||||
* @type {number}
|
||||
*/
|
||||
if (t.isDefined(column.width)) this.width = column.width
|
||||
if (t.isDefined(column.maxWidth)) this.maxWidth = column.maxWidth
|
||||
if (t.isDefined(column.minWidth)) this.minWidth = column.minWidth
|
||||
if (t.isDefined(column.noWrap)) this.noWrap = column.noWrap
|
||||
if (t.isDefined(column.break)) this.break = column.break
|
||||
if (t.isDefined(column.contentWrappable)) this.contentWrappable = column.contentWrappable
|
||||
if (t.isDefined(column.contentWidth)) this.contentWidth = column.contentWidth
|
||||
if (t.isDefined(column.minContentWidth)) this.minContentWidth = column.minContentWidth
|
||||
this.padding = column.padding || { left: ' ', right: ' ' }
|
||||
this.generatedWidth = null
|
||||
}
|
||||
|
||||
set padding (padding) {
|
||||
_padding.set(this, new Padding(padding))
|
||||
}
|
||||
get padding () {
|
||||
return _padding.get(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* the width of the content (excluding padding) after being wrapped
|
||||
*/
|
||||
get wrappedContentWidth () {
|
||||
return Math.max(this.generatedWidth - this.padding.length(), 0)
|
||||
}
|
||||
|
||||
isResizable () {
|
||||
return !this.isFixed()
|
||||
}
|
||||
|
||||
isFixed () {
|
||||
return t.isDefined(this.width) || this.noWrap || !this.contentWrappable
|
||||
}
|
||||
|
||||
generateWidth () {
|
||||
this.generatedWidth = this.width || (this.contentWidth + this.padding.length())
|
||||
}
|
||||
|
||||
generateMinWidth () {
|
||||
this.minWidth = this.minContentWidth + this.padding.length()
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Column
|
||||
Reference in New Issue
Block a user