def _renderImpl(self, **kwargs): a = self.attrs class SqueezeEnum(object): VERTICAL = ['v', ['vertical','vert','v']] HORIZONTAL = ['h', ['horizontal', 'horiz', 'h']] squeezeType = a.getAsEnumerated( TagAttributesEnum.TYPE, SqueezeEnum, SqueezeEnum.HORIZONTAL, overrides=kwargs, extract=True ) pad = a.getAsEnumerated( TagAttributesEnum.SIZE, GeneralSizeEnum, None, overrides=kwargs, ) if pad is None: pad = a.getAsUnit( TagAttributesEnum.SIZE, None ) if isinstance(pad, basestring): if pad == GeneralSizeEnum.xxsmall[0]: pad = '0.25em' elif pad == GeneralSizeEnum.xsmall[0]: pad = '0.5em' elif pad == GeneralSizeEnum.small[0]: pad = '0.75em' elif pad == GeneralSizeEnum.medium[0]: pad = '1.0em' elif pad == GeneralSizeEnum.large[0]: pad = '1.5em' elif pad == GeneralSizeEnum.xlarge[0]: pad = '2.0em' elif pad == GeneralSizeEnum.xxlarge[0]: pad = '3.0em' else: pad = '0' elif pad: pad = pad.valueAndUnit if pad is None: pad = '0.5em' if squeezeType == 'h': a.styles.add('margin', 'auto ' + pad) else: a.styles.add('margin', pad + ' auto') BoxTag._renderImpl(self, **kwargs)
def _renderImpl(self, **kwargs): BoxTag._renderImpl(self, **kwargs) a = self.attrs # If the hanger tag is a row child tag its hanging attributes should be ignored and it # should be rendered as a normal box tag. if a.settings.getKey('rowReach'): a.render['hangerActive'] = False return else: a.render['hangerActive'] = True side = a.getAsKeyword( TagAttributesEnum.SIDE + TagAttributesEnum.EDGES + TagAttributesEnum.ON, 'left', kwargs ) r = a.getAsEnumerated( TagAttributesEnum.REACH, GeneralSizeEnum, GeneralSizeEnum.xsmall, kwargs ) if side in ['left', 'lft', 'l']: a.classes.add('v-gvml-hangerLeft') else: a.classes.add('v-gvml-hangerRight') if r == 'xxs': r = 0.125 elif r == 'xs': r = 0.25 elif r == 's': r = 0.33 elif r == 'm': r = 0.5 elif r == 'l': r = 0.66 elif r == 'xl': r = 0.75 elif r == 'xxl': r = 1.0 else: r = None if r is not None: a.settings.add('hangerReach', r) # Populate the attributes and settings for the resizer tag that triggers resize handling # on the hanger. a.addTagClasses('sizer', 'resizer') a.vdata.add('target', a.id.get(), 'resizer') self.addResizerClass()
def _renderImpl(self, **kwargs): a = self.attrs a.classes.add('row') rowType, rowTypeKey = a.get(TagAttributesEnum.TYPE, returnKey=True) if rowType is not None: rowType = rowType.lower() if rowType in ['f', 'full']: a.classes.add('fullWidth') elif rowType in ['l', 'large']: a.classes.add('largeWidth') BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
def _connectivityReversalImpl(self): # If the border tag is wrapping a single block tag then apply the border to the element to # save on wrapping the border in an element of its own. cs = self.children merge = not self.attrs.explicitAccent and \ self.attrs.getAsBool(TagAttributesEnum.MERGE, True) and \ len(cs) == 1 and cs[0].isBlockDisplay if merge: merge = not self._processor.result[self.bodyStart():cs[0].start()].strip() if merge: merge = not self._processor.result[cs[0].end():self.bodyEnd()].strip() if merge: self._populateBorder(cs[0]) cs[0].attrs.join(self.attrs) self.renderTemplate = 'markup/empty.mako' self._mergedToChild = True BoxTag._renderImpl(self, skipBackground=True, paddingDef=GeneralSizeEnum.none[0])
def getAttributeList(cls): t = TagAttributesEnum return ( BoxTag.getAttributeList() + t.VERTICAL_ALIGN + t.SPACING + t.SAME_HEIGHT + t.RAGGED + t.DEFAULT_REACH + t.MAX_COLUMNS + t.SIZE )
def getAttributeList(cls): t = TagAttributesEnum return BoxTag.getAttributeList() + t.TYPE
def _renderImpl(self, **kwargs): a = self.attrs align = a.getAsKeyword(TagAttributesEnum.VERTICAL_ALIGN, "grow", kwargs) gapSize = a.getAsEnumerated(TagAttributesEnum.SPACING, GeneralSizeEnum, GeneralSizeEnum.medium, kwargs) sameHeight = a.getAsBool(TagAttributesEnum.SAME_HEIGHT, True, kwargs) ragged = a.getAsBool(TagAttributesEnum.RAGGED, False, kwargs) size = a.getAsEnumerated( TagAttributesEnum.SIZE + TagAttributesEnum.DEFAULT_REACH, GeneralSizeEnum, None, kwargs ) maxColumns = a.getAsInt(TagAttributesEnum.MAX_COLUMNS, len(self.children), kwargs) a.settings.add("maxCols", maxColumns) a.settings.add("rag", ragged) a.settings.add("hAll", sameHeight) if not size: size = a.getAsUnit(TagAttributesEnum.SIZE + TagAttributesEnum.DEFAULT_REACH, 125, "px", unitType=int) a.settings.add("size", size.value) else: if size == "xxs": size = 50 elif size == "xs": size = 125 elif size == "s": size = 200 elif size == "m": size = 250 elif size == "l": size = 325 elif size == "xl": size = 425 elif size == "xxl": size = 500 else: size = 125 a.settings.add("size", size) if gapSize == "xxs": gap = 1 elif gapSize == "xs": gap = 4 elif gapSize == "s": gap = 8 elif gapSize == "m": gap = 16 elif gapSize == "l": gap = 32 elif gapSize == "xl": gap = 64 elif gapSize == "xxl": gap = 128 else: gap = 0 a.settings.add("gap", gap) if align in ["grow", "fill"]: align = "fill" elif align in ["top"]: align = "top" elif align in ["middle", "center"]: align = "middle" elif align in ["bottom", "baseline"]: align = "bottom" else: align = None if align: a.settings.add("rowAlign", align) self.addResizerClass() BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], align="auto", **kwargs)
def _renderImpl(self, **kwargs): a = self.attrs sameHeight = a.getAsBool( TagAttributesEnum.SAME_HEIGHT, False, kwargs ) maxColumns = a.getAsInt( TagAttributesEnum.MAX_COLUMNS, 0, kwargs ) minColumns = a.getAsInt( TagAttributesEnum.MIN_COLUMNS, 1, kwargs ) align = a.getAsKeyword( TagAttributesEnum.VERTICAL_ALIGN, 'grow', kwargs ) gapSize = a.getAsEnumerated( TagAttributesEnum.SPACING, GeneralSizeEnum, GeneralSizeEnum.medium, kwargs ) if gapSize == 'xxs': gap = 1 elif gapSize == 'xs': gap = 4 elif gapSize == 's': gap = 8 elif gapSize == 'm': gap = 16 elif gapSize == 'l': gap = 32 elif gapSize == 'xl': gap = 64 elif gapSize == 'xxl': gap = 128 else: gap = 0 a.settings.add('gap', gap) a.settings.add('maxCols', maxColumns) a.settings.add('minCols', min(max(minColumns, 1), maxColumns)) a.settings.add('hAll', sameHeight) if align in ['grow', 'fill']: align = 'fill' elif align in ['top']: align = 'top' elif align in ['middle', 'center']: align = 'middle' elif align in ['bottom', 'baseline']: align = 'bottom' else: align = None if align: a.settings.add('rowAlign', align) self.addResizerClass() BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
def getAttributeList(cls): t = TagAttributesEnum return BoxTag.getAttributeList() + t.ROW_REACH + t.SIDE + t.EDGES + t.ON + t.REACH
def _renderImpl(self, **kwargs): a = self.attrs a.classes.add('row') ZurbBoxTag.addZurbColumnClasses(a, target='column', **kwargs) BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
def _renderImpl(self, **kwargs): a = self.attrs self.addZurbColumnClasses(a, **kwargs) BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
def getAttributeList(cls): t = TagAttributesEnum return BoxTag.getAttributeList() + t.SMALL + t.SIZE + t.CENTER + t.TYPE + t.PUSH + t.PULL \ + t.OFFSET
def _renderImpl(self, **kwargs): if self._mergedToChild: return self._populateBorder(self) BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
def getAttributeList(cls): t = TagAttributesEnum return BoxTag.getAttributeList() + t.MERGE + t.LINE_TYPE + t.EDGES + t.COLOR + \ t.LINE_WIDTH + t.TYPE
def __init__(self, *args, **kwargs): BoxTag.__init__(self, *args, **kwargs) self._mergedToChild = False