@gechiui/components
Version:
UI components for GeChiUI.
82 lines (69 loc) • 2.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GRID = exports.ALIGNMENT_LABEL = exports.ALIGNMENTS = void 0;
exports.getAlignmentIndex = getAlignmentIndex;
exports.getItemId = getItemId;
exports.transformValue = transformValue;
var _lodash = require("lodash");
var _i18n = require("@gechiui/i18n");
/**
* External dependencies
*/
/**
* GeChiUI dependencies
*/
const GRID = [['top left', 'top center', 'top right'], ['center left', 'center center', 'center right'], ['bottom left', 'bottom center', 'bottom right']]; // Stored as map as i18n __() only accepts strings (not variables)
exports.GRID = GRID;
const ALIGNMENT_LABEL = {
'top left': (0, _i18n.__)('左上角'),
'top center': (0, _i18n.__)('顶部中心'),
'top right': (0, _i18n.__)('右上角'),
'center left': (0, _i18n.__)('中间左侧'),
'center center': (0, _i18n.__)('正中部'),
'center right': (0, _i18n.__)('中间右侧'),
'bottom left': (0, _i18n.__)('左下角'),
'bottom center': (0, _i18n.__)('底部中心'),
'bottom right': (0, _i18n.__)('右下角')
}; // Transforms GRID into a flat Array of values
exports.ALIGNMENT_LABEL = ALIGNMENT_LABEL;
const ALIGNMENTS = (0, _lodash.flattenDeep)(GRID);
/**
* Parses and transforms an incoming value to better match the alignment values
*
* @param {string} value An alignment value to parse.
*
* @return {string} The parsed value.
*/
exports.ALIGNMENTS = ALIGNMENTS;
function transformValue(value) {
const nextValue = value === 'center' ? 'center center' : value;
return nextValue.replace('-', ' ');
}
/**
* Creates an item ID based on a prefix ID and an alignment value.
*
* @param {string} prefixId An ID to prefix.
* @param {string} value An alignment value.
*
* @return {string} The item id.
*/
function getItemId(prefixId, value) {
const valueId = transformValue(value).replace(' ', '-');
return `${prefixId}-${valueId}`;
}
/**
* Retrieves the alignment index from a value.
*
* @param {string} alignment Value to check.
*
* @return {number} The index of a matching alignment.
*/
function getAlignmentIndex() {
let alignment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'center';
const item = transformValue(alignment).replace('-', ' ');
const index = ALIGNMENTS.indexOf(item);
return index > -1 ? index : undefined;
}
//# sourceMappingURL=utils.js.map