fonteva-design-guide
Version:
## Dev, Build and Test
135 lines (115 loc) • 3.83 kB
JavaScript
import { LightningElement, api, track } from 'lwc';
import PFM_Base from 'c/pfmBase';
export default class Row extends PFM_Base {
pull; // xx-small, x-small, small, medium, large, x-large
vertical; // boolean
wrap; // boolean
nowrap; // boolean
center; // boolean
align; // start, center, end, space, spread
overflowY; // boolean
overflowX; // boolean
border; // top, right, bottom, left, horizontal, vertical
isRelative; // boolean
get padding() {
return super.paddingStr;
}
set padding(value) {
super.paddingStr = value;
}
get margin() {
return super.marginStr;
}
set margin(value) {
super.marginStr = value;
}
// danger, success, brand, shade, shade-dark, blue-dark
get theme() {
return this.background;
}
set theme(value) {
this.background = value;
}
classes;
borderStr;
connectedCallback() {
this.borderValue();
super.connectedCallback('slds-grid pfm-row');
const classBase = 'slds-grid';
let valPull = this.pull,
valVertical = this.vertical,
valWrap = this.wrap,
valAlign = this.align,
valCenter = this.center,
valOverflowY = this.overflowY,
valOverflowX = this.overflowX,
valNoWrap = this.nowrap,
valBorder = this.borderStr,
valIsRelative = this.isRelative;
let pull,
vertical,
wrap,
center,
nowrap,
align,
overflowY,
overflowX,
border,
background = this.background ? ' pfm-row-theme_' + this.background : '',
relative;
pull = valPull ? ' ' + 'slds-grid_pull-padded-' + valPull : '';
vertical = valVertical ? ' ' + 'slds-grid_vertical' : '';
wrap = valWrap ? ' ' + 'slds-wrap' : '';
nowrap = valNoWrap ? ' ' + 'slds-nowrap' : '';
center =
valCenter && valVertical
? ' slds-grid_vertical-align-center'
: valCenter && !valVertical
? ' slds-grid_align-center'
: '';
align = valAlign ? ' slds-grid_align-' + valAlign : '';
overflowX = valOverflowX ? ' slds-scrollable_x' : '';
overflowY = valOverflowY ? ' slds-scrollable_y' : '';
border = valBorder ? ' ' + valBorder : '';
relative = valIsRelative ? ' slds-is-relative' : '';
this.classes =
this.classStr +
pull +
vertical +
wrap +
nowrap +
center +
align +
overflowY +
overflowX +
border +
background +
relative;
}
borderValue() {
switch (this.border) {
case 'top':
this.borderStr = 'slds-border_top';
break;
case 'bottom':
this.borderStr = 'slds-border_bottom';
break;
case 'left':
this.borderStr = 'slds-border_left';
break;
case 'right':
this.borderStr = 'slds-border_right';
break;
case 'horizontal':
this.borderStr = 'slds-border_left slds-border_right';
break;
case 'vertical':
this.borderStr = 'slds-border_top slds-border_bottom';
break;
default:
this.borderStr = '';
}
}
}