{
  "version": 3,
  "sources": ["../../src/alignment-matrix-control/utils.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\n\nexport const GRID = [['top left', 'top center', 'top right'], ['center left', 'center center', 'center right'], ['bottom left', 'bottom center', 'bottom right']];\n\n// Stored as map as i18n __() only accepts strings (not variables)\nexport const ALIGNMENT_LABEL = {\n  'top left': __('Top Left'),\n  'top center': __('Top Center'),\n  'top right': __('Top Right'),\n  'center left': __('Center Left'),\n  'center center': __('Center'),\n  center: __('Center'),\n  'center right': __('Center Right'),\n  'bottom left': __('Bottom Left'),\n  'bottom center': __('Bottom Center'),\n  'bottom right': __('Bottom Right')\n};\n\n// Transforms GRID into a flat Array of values.\nexport const ALIGNMENTS = GRID.flat();\n\n/**\n * Normalizes and transforms an incoming value to better match the alignment values\n *\n * @param value An alignment value to parse.\n *\n * @return The parsed value.\n */\nfunction normalize(value) {\n  const normalized = value === 'center' ? 'center center' : value;\n\n  // Strictly speaking, this could be `string | null | undefined`,\n  // but will be validated shortly, so we're typecasting to an\n  // `AlignmentMatrixControlValue` to keep TypeScript happy.\n  const transformed = normalized?.replace('-', ' ');\n  return ALIGNMENTS.includes(transformed) ? transformed : undefined;\n}\n\n/**\n * Creates an item ID based on a prefix ID and an alignment value.\n *\n * @param prefixId An ID to prefix.\n * @param value    An alignment value.\n *\n * @return The item id.\n */\nexport function getItemId(prefixId, value) {\n  const normalized = normalize(value);\n  if (!normalized) {\n    return;\n  }\n  const id = normalized.replace(' ', '-');\n  return `${prefixId}-${id}`;\n}\n\n/**\n * Extracts an item value from its ID\n *\n * @param prefixId An ID prefix to remove\n * @param id       An item ID\n * @return         The item value\n */\nexport function getItemValue(prefixId, id) {\n  const value = id?.replace(prefixId + '-', '');\n  return normalize(value);\n}\n\n/**\n * Retrieves the alignment index from a value.\n *\n * @param alignment Value to check.\n *\n * @return The index of a matching alignment.\n */\nexport function getAlignmentIndex(alignment = 'center') {\n  const normalized = normalize(alignment);\n  if (!normalized) {\n    return undefined;\n  }\n  const index = ALIGNMENTS.indexOf(normalized);\n  return index > -1 ? index : undefined;\n}"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAMZ,IAAM,OAAO,CAAC,CAAC,YAAY,cAAc,WAAW,GAAG,CAAC,eAAe,iBAAiB,cAAc,GAAG,CAAC,eAAe,iBAAiB,cAAc,CAAC;AAGzJ,IAAM,kBAAkB;AAAA,EAC7B,gBAAY,gBAAG,UAAU;AAAA,EACzB,kBAAc,gBAAG,YAAY;AAAA,EAC7B,iBAAa,gBAAG,WAAW;AAAA,EAC3B,mBAAe,gBAAG,aAAa;AAAA,EAC/B,qBAAiB,gBAAG,QAAQ;AAAA,EAC5B,YAAQ,gBAAG,QAAQ;AAAA,EACnB,oBAAgB,gBAAG,cAAc;AAAA,EACjC,mBAAe,gBAAG,aAAa;AAAA,EAC/B,qBAAiB,gBAAG,eAAe;AAAA,EACnC,oBAAgB,gBAAG,cAAc;AACnC;AAGO,IAAM,aAAa,KAAK,KAAK;AASpC,SAAS,UAAU,OAAO;AACxB,QAAM,aAAa,UAAU,WAAW,kBAAkB;AAK1D,QAAM,cAAc,YAAY,QAAQ,KAAK,GAAG;AAChD,SAAO,WAAW,SAAS,WAAW,IAAI,cAAc;AAC1D;AAUO,SAAS,UAAU,UAAU,OAAO;AACzC,QAAM,aAAa,UAAU,KAAK;AAClC,MAAI,CAAC,YAAY;AACf;AAAA,EACF;AACA,QAAM,KAAK,WAAW,QAAQ,KAAK,GAAG;AACtC,SAAO,GAAG,QAAQ,IAAI,EAAE;AAC1B;AASO,SAAS,aAAa,UAAU,IAAI;AACzC,QAAM,QAAQ,IAAI,QAAQ,WAAW,KAAK,EAAE;AAC5C,SAAO,UAAU,KAAK;AACxB;AASO,SAAS,kBAAkB,YAAY,UAAU;AACtD,QAAM,aAAa,UAAU,SAAS;AACtC,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,WAAW,QAAQ,UAAU;AAC3C,SAAO,QAAQ,KAAK,QAAQ;AAC9B;",
  "names": []
}
