/** * @private */Ext.define('Ext.exporter.file.ooxml.excel.CellAlignment', { extend: 'Ext.exporter.file.ooxml.Base', isCellAlignment: true, config: { /** * Possible values: * - general * - left * - center * - right * - fill * - justify * - centerContinuous * - distributed */ horizontal: 'general', /** * Possible values: * - top * - center * - bottom * - justify * - distributed */ vertical: 'top', rotate: null, wrapText: false, indent: null, relativeIndent: null, justifyLastLine: false, shrinkToFit: false, /** * An integer value indicating whether the reading order (bidirectionality) of the cell is left- to-right, right-to-left, or context dependent. * * 0 - Context Dependent - reading order is determined by scanning the text for the first non-whitespace character: if it is a strong right-to-left character, the reading order is right-to-left; otherwise, the reading order left-to-right. * 1 - Left-to-Right- reading order is left-to-right in the cell, as in English. * 2 - Right-to-Left - reading order is right-to-left in the cell, as in Hebrew. * * The possible values for this attribute are defined by the W3C XML Schema unsignedInt datatype. */ readingOrder: null }, mappings: { horizontal: { Automatic: 'general', CenterAcrossSelection: 'centerContinuous', JustifyDistributed: 'distributed' }, vertical: { Automatic: 'top', JustifyDistributed: 'distributed' }, readingOrder: { Context: 0, LeftToRight: 1, RightToLeft: 2 } }, tpl: [ '<alignment', '<tpl if="horizontal"> horizontal="{horizontal}"</tpl>', '<tpl if="vertical"> vertical="{vertical}"</tpl>', '<tpl if="rotate"> textRotation="{rotate}"</tpl>', '<tpl if="wrapText"> wrapText="{wrapText}"</tpl>', '<tpl if="indent"> indent="{indent}"</tpl>', '<tpl if="relativeIndent"> relativeIndent="{relativeIndent}"</tpl>', '<tpl if="justifyLastLine"> justifyLastLine="{justifyLastLine}"</tpl>', '<tpl if="shrinkToFit"> shrinkToFit="{shrinkToFit}"</tpl>', '<tpl if="readingOrder"> readingOrder="{readingOrder}"</tpl>', '/>' ], constructor: function(config){ var cfg = {}, keys = Ext.Object.getKeys(config || {}), len = keys.length, i; if(config) { for (i = 0; i < len; i++) { cfg[Ext.String.uncapitalize(keys[i])] = config[keys[i]]; } } this.callParent([cfg]); }, applyHorizontal: function(value){ var possible = ['general', 'left', 'center', 'right', 'fill', 'justify', 'centerContinuous', 'distributed'], v = Ext.util.Format.uncapitalize(value); return Ext.Array.indexOf(possible, v) >= 0 ? v : (this.mappings.horizontal[value] || 'general'); }, applyVertical: function(value){ var possible = ['top', 'center', 'bottom', 'justify', 'distributed'], v = Ext.util.Format.uncapitalize(value); return Ext.Array.indexOf(possible, v) >= 0 ? v : (this.mappings.vertical[value] || 'top'); }, applyReadingOrder: function(value){ if(typeof value === 'string'){ return this.mappings.readingOrder[value] || 0; } return value; }});