{"version":3,"file":"dep-4b6dac40.mjs","sources":["../../src/utils/markdownPlugin/link/index.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\n\nfunction findFirstMatchingConfig(link, configs) {\n  let i; let config;\n  const href = link.attrs[link.attrIndex('href')][1];\n\n  for (i = 0; i < configs.length; ++i) {\n    config = configs[i];\n\n    // if there is no pattern, config matches for all links\n    // otherwise, only return config if href matches the pattern set\n    if (!config.pattern || new RegExp(config.pattern).test(href)) {\n      return config;\n    }\n  }\n}\n\nfunction applyAttributes(idx: any, tokens, attributes) {\n  Object.keys(attributes).forEach((attr) => {\n    const value = attributes[attr];\n\n    if (attr === 'className') {\n      attr = 'class';\n    }\n\n    const attrIndex = tokens[idx].attrIndex(attr);\n\n    if (attrIndex < 0) { // attr doesn't exist, add new attribute\n      tokens[idx].attrPush([attr, value]);\n    } else { // attr already exists, overwrite it\n      tokens[idx].attrs[attrIndex][1] = value; // replace value of existing attr\n    }\n  });\n}\n\nexport default function markdownitLinkAttributes(md, configs) {\n  if (!configs) {\n    configs = [];\n  } else {\n    configs = Array.isArray(configs) ? configs : [configs];\n  }\n\n  Object.freeze(configs);\n\n  const defaultRender = md.renderer.rules.link_open || function (tokens, idx, options, env, self) {\n    return self.renderToken(tokens, idx, options);\n  };\n\n  md.renderer.rules.link_open = function (tokens, idx, options, env, self) {\n    const config = findFirstMatchingConfig(tokens[idx], configs);\n    const attributes = config?.attrs;\n\n    if (attributes) {\n      applyAttributes(idx, tokens, attributes);\n    }\n\n    return defaultRender(tokens, idx, options, env, self);\n  };\n}\n"],"names":["findFirstMatchingConfig","link","configs","i","config","href","attrs","attrIndex","length","pattern","RegExp","test","applyAttributes","idx","tokens","attributes","Object","keys","forEach","attr","value","attrPush","markdownitLinkAttributes","md","Array","isArray","freeze","defaultRender","renderer","rules","link_open","options","env","self","renderToken"],"mappings":"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"}