{"version":3,"file":"main.D8Qax_.js","sources":["theme-4/virtual:theme","theme-4/discourse/components/social-links-clickable.gjs","theme-4/discourse/api-initializers/social-links-clickable.js","theme-4/virtual:entrypoint:main","theme-4/discourse/services/links-settings.js"],"sourcesContent":["import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(4);\n\nexport function themePrefix(key) {\n  return `theme_translations.4.${key}`;\n}\n","import Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\nimport icon from \"discourse/helpers/d-icon\";\n\nexport default class SocialLinksClickable extends Component {\n  @service linksSettings;\n\n  get userModel() {\n    // Safely fetch the user model from the outlet arguments.\n    return this.args.outletArgs?.user || this.args.outletArgs?.model;\n  }\n\n  get list() {\n    // Get field options and fallback to an empty array if null or undefined.\n    return this.linksSettings.fieldOptions(this.userModel) || [];\n  }\n\n  <template>\n    <div class=\"iconic-user-fields\">\n      {{#each this.list as |field|}}\n        {{#if field.icon}}\n          <a\n            href=\"{{field.href}}\"\n            rel=\"nofollow\"\n            target=\"_blank\"\n            title=\"{{field.name}}\"\n          >\n            {{icon field.icon}}\n          </a>\n        {{/if}}\n      {{/each}}\n    </div>\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport SocialLinksClickable from \"../components/social-links-clickable\";\n\nexport default apiInitializer(\"1.13.0\", (api) => {\n  api.renderInOutlet(\"user-post-names\", SocialLinksClickable);\n  api.renderInOutlet(\"user-card-post-names\", SocialLinksClickable);\n\n  api.modifyClass(\n    \"component:user-card-contents\",\n    (Superclass) =>\n      class extends Superclass {\n        get hasLocationOrWebsite() {\n          return true;\n        }\n      }\n  );\n});\n","import * as Mod1 from \"./discourse/api-initializers/social-links-clickable\";\nimport * as Mod2 from \"./discourse/components/social-links-clickable\";\nimport * as Mod3 from \"./discourse/services/links-settings\";\nconst compatModules = {\n  \"discourse/api-initializers/social-links-clickable\": Mod1,\n  \"discourse/components/social-links-clickable\": Mod2,\n  \"discourse/services/links-settings\": Mod3,\n};\nexport { compatModules };\nexport default compatModules;\n","import Service from \"@ember/service\";\n\nexport default class SocialLinksClickable extends Service {\n  get defaultSettings() {\n        return [\n      {\n        name: \"Email\",\n        icon: \"envelope\",\n        link: {\n          value: settings.email_custom_field_name,\n        },\n      },\n      {\n        name: \"Facebook\",\n        icon: \"fab-facebook\",\n        link: {\n          value: settings.facebook_custom_field_name,\n          base: \"https://www.facebook.com/\",\n          baseregex: \"^http(s)?://(www.)?facebook.com/\",\n        },\n      },\n      {\n        name: \"Instagram\",\n        icon: \"fab-instagram\",\n        link: {\n          value: settings.instagram_custom_field_name,\n          base: \"https://www.instagram.com/\",\n          baseregex: \"^http(s)?://(www.)?instagram.com/\",\n        },\n      },\n      {\n        name: \"Threads\",\n        icon: \"fab-threads\",\n        link: {\n          value: settings.threads_custom_field_name,\n          base: \"https://www.threads.net/@\",\n          baseregex: \"^http(s)?://(www.)?threads.net/@\",\n        },\n      },\n      {\n        name: \"X\",\n        icon: \"fab-x-twitter\",\n        link: {\n          value: settings.twitter_custom_field_name,\n          base: \"https://x.com/\",\n          baseregex: \"^http(s)?://(www.)?x.com/\",\n        },\n      },\n      {\n        name: \"Mastodon\",\n        icon: \"fab-mastodon\",\n        link: {\n          value: settings.mastodon_custom_field_name,\n        },\n      },\n      {\n        name: \"Tiktok\",\n        icon: \"fab-tiktok\",\n        link: {\n          value: settings.tiktok_custom_field_name,\n          base: \"https://tiktok.com/@\",\n          baseregex: \"^http(s)?://(www.)?tiktok.com/@\",\n        },\n      },\n      {\n        name: \"Discord\",\n        icon: \"fab-discord\",\n        link: {\n          value: settings.discord_custom_field_name,\n        },\n      },\n      {\n        name: \"Steam\",\n        icon: \"fab-steam\",\n        link: {\n          value: settings.steam_custom_field_name,\n        },\n      },\n      {\n        name: \"YouTube\",\n        icon: \"fab-youtube\",\n        link: {\n          value: settings.youtube_custom_field_name,\n          base: \"https://youtube.com/@\",\n          baseregex: \"^http(s)?://(www.)?youtube.com/@\", \n        },\n      },\n      {\n        name: \"Twitch\",\n        icon: \"fab-twitch\",\n        link: {\n          value: settings.twitch_custom_field_name,\n          base: \"https://www.twitch.tv/\",\n          baseregex: \"^http(s)?://(www.)?twitch.tv/\", \n        },\n      },\n      {\n        name: \"Telegram\",\n        icon: \"fab-telegram\",\n        link: {\n          value: settings.telegram_custom_field_name,\n          base: \"https://t.me/\",\n          baseregex: \"^(https://)?t.me/\",\n        },\n      },\n      {\n        name: \"LinkedIn\",\n        icon: \"fab-linkedin-in\",\n        link: {\n          value: settings.linkedin_custom_field_name,\n        },\n      },\n      {\n        name: \"Soundcloud\",\n        icon: \"fab-soundcloud\",\n        link: {\n          value: settings.soundcloud_custom_field_name,\n          base: \"https://soundcloud.com/\",\n          baseregex: \"^http(s)?://(www.)?soundcloud.com/\",\n        },\n      },\n      {\n        name: \"Spotify\",\n        icon: \"fab-spotify\",\n        link: {\n          value: settings.spotify_custom_field_name,\n          base: \"https://open.spotify.com/artist/\",\n          baseregex: \"^http(s)?://(www.)?open.spotify.com/artist/\",\n        },\n      },\n      {\n        name: \"Bandcamp\",\n        icon: \"fab-bandcamp\",\n        link: {\n          value: settings.bandcamp_custom_field_name,\n        },\n      },\n      {\n        name: \"Bluesky\",\n        icon: \"fab-bluesky\",\n        link: {\n          value: settings.bluesky_custom_field_name,\n          base: \"https://bsky.app/profile/\",\n          baseregex: \"^http(s)?://(www.)?bsky.app/profile/\",\n        },\n      },\n      {\n        name: \"Github\",\n        icon: \"fab-github\",\n        link: {\n          value: settings.github_custom_field_name,\n          base: \"https://github.com/\",\n          baseregex: \"^http(s)?://(www.)?github.com/\",\n        },\n      },\n     {\n        name: \"Strava\",\n        icon: \"fab-strava\",\n        link: {\n          value: settings.strava_custom_field_name,\n          base: \"https://strava.com/athletes/\",\n          baseregex: \"^http(s)?://(www.)strava.com/athletes/\",\n        },\n      },   \n    ];\n  }\n\n  fieldOptions(model) {\n    const userFields = model?.user_fields;\n\n    if (userFields === undefined) {\n      return null;\n    }\n\n    return this.defaultSettings\n      .map((field) => {\n        const base = field.link.base || \"\";\n        const baseregex = field.link.baseregex || \"\";\n\n        // Fixed: native .find() instead of deprecated .filterBy(...)[0]\n        const siteUserField = model.site?.user_fields.find(\n          (f) => f.name === field.link.value\n        );\n\n        if (siteUserField && userFields[siteUserField.id]) {\n          const socialLinkValue = userFields[siteUserField.id];\n          field.href =\n            (RegExp(baseregex).test(socialLinkValue)\n              ? socialLinkValue\n              : base + socialLinkValue) || \"\";\n        } else {\n          return null;\n        }\n\n        return field;\n      })\n      // Fixed: native .filter() instead of deprecated .compact()\n      .filter((field) => field != null);\n  }\n}\n"],"names":["settings","getObjectForTheme","Component","dt7948","g","this","prototype","service","linksSettings","i","userModel","args","outletArgs","user","model","list","fieldOptions","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","icon","isStrictMode","socialLinksClickable","apiInitializer","api","renderInOutlet","SocialLinksClickable","modifyClass","Superclass","hasLocationOrWebsite","compatModules","Mod1","Mod2","Service","defaultSettings","name","link","value","email_custom_field_name","facebook_custom_field_name","base","baseregex","instagram_custom_field_name","threads_custom_field_name","twitter_custom_field_name","mastodon_custom_field_name","tiktok_custom_field_name","discord_custom_field_name","steam_custom_field_name","youtube_custom_field_name","twitch_custom_field_name","telegram_custom_field_name","linkedin_custom_field_name","soundcloud_custom_field_name","spotify_custom_field_name","bandcamp_custom_field_name","bluesky_custom_field_name","github_custom_field_name","strava_custom_field_name","userFields","user_fields","undefined","map","field","siteUserField","site","find","f","socialLinkValue","href","RegExp","test","filter"],"mappings":"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"}