// Metro module 8277 (f8278). import { isGuildVocalChannelType } from "../../records/ChannelRecord"; import { isGuildOwner } from "../../records/GuildRecord"; import { hasPermission, isEveryoneRole } from "../../records/GuildRoleRecord"; import GuildMemberStore from "../../stores/GuildMemberStore"; import UserStore from "../../stores/UserStore"; import { RowType } from "./ChannelPermissionsConstants"; import { Permissions, DEFAULT_ROLE_COLOR_HEX, ChannelTypes } from "../../Constants"; import { compareGuildRoles } from "../../utils/GuildRoleUtils"; import { intl, t } from "../../intl/index.native"; import { has, remove, add } from "../../_bundle/HighLow"; import SnowflakeUtils from "../../utils/SnowflakeUtils"; import UserUtils from "../../utils/UserUtils"; import { isNotNullish } from "../../utils/GlobalUtils"; import { makeEveryoneOverwrite, NONE } from "../../utils/PermissionUtils"; import { updatePermission, savePermissionUpdates } from "../../actions/ChannelSettingsPermissionsActionCreators"; import { PermissionOverwriteType } from "../../flow/Server"; import { permissionOverwriteForRole, permissionOverwriteForUser } from "../../utils/ChannelUtils"; function $mk80289($env) { return (a0) => { const r5 = $env.$parent; let r14 = (0, r5[6])(a0, r5[11].ADMINISTRATOR); if (!r14) { const r15 = $env; const r9 = r15[0]; const id = a0.id; const r12 = r15[1]; const r10 = r15[2]; const currentUser = r5[9].getCurrentUser(); const r3 = currentUser == null; let r1 = false; if (!r3) { if (r9 == null) { r1 = currentUser.id !== id; } else { let r19 = r9.permissionOverwrites[id]; if ((r10 == null ? void 0 : r10[id]) != null) { r19 = r10[id]; } r1 = r19 == null || !(0, r5[2])(r5[3][9]).has(r19.allow, r12); } } r14 = r1 ? !r1 : !(0, r5[7])(a0); } return r14; }; } function $mk80290($env) { return (a0) => { const r5 = $env; const r7 = $env.$parent; let r15 = (0, r7[6])(a0, r7[11].ADMINISTRATOR); if (!r15) { const r10 = r5[0]; const id = a0.id; const r13 = r5[1]; const r11 = r5[2]; const currentUser = r7[9].getCurrentUser(); const r3 = currentUser == null; let r1 = false; if (!r3) { if (r10 == null) { r1 = currentUser.id !== id; } else { let r19 = r10.permissionOverwrites[id]; if ((r11 == null ? void 0 : r11[id]) != null) { r19 = r11[id]; } r1 = r19 == null || !(0, r7[2])(r7[3][9]).has(r19.allow, r13); } } r15 = r1 ? !r1 : !(0, r7[7])(a0); } if (!r15) { const r34 = r7[2]; const r35 = r7[3]; r15 = r34(r35[9]).has(r34(r35[9]).combine(a0.permissions, r5[0].permissionOverwrites[a0.id]?.allow), r5[1]); } return r15; }; } function $mk80291($env) { return (a0) => { const r6 = $env; const r5 = $env.$parent; const r9 = r6[0]; const id = a0.id; const r12 = r6[2]; const r10 = r6[3]; const currentUser = r5[9].getCurrentUser(); const r2 = currentUser == null; let r0 = false; if (!r2) { if (r9 == null) { r0 = currentUser.id !== id; } else { let r15 = r9.permissionOverwrites[id]; if ((r10 == null ? void 0 : r10[id]) != null) { r15 = r10[id]; } r0 = r15 == null || !(0, r5[2])(r5[3][9]).has(r15.allow, r12); } } return r0 ? (0, r5[5])(r6[1], a0) : !r0; }; } let sortRoles, getMemberRowData, sortMembers; let env5272 = {}; export function getRoleRowData(a0, r5 = false) { const rowType = hasPermission(a0, Permissions.ADMINISTRATOR) ? RowType.ADMINISTRATOR : RowType.ROLE; let colorString = a0.colorString; if (colorString == null) { colorString = DEFAULT_ROLE_COLOR_HEX; } return { rowType, colorString, name: a0.name, id: a0.id, disabled: hasPermission(a0, Permissions.ADMINISTRATOR) || r5, key: `${rowType}:${a0.id}`, tags: a0.tags }; } sortRoles = function sortRoles(a0, a1) { const hasPermission2 = hasPermission(a0, Permissions.ADMINISTRATOR); let r0 = 1; const r1 = hasPermission2 ? 0 : 1; if (hasPermission(a1, Permissions.ADMINISTRATOR)) { r0 = 0; } return r1 !== r0 ? r1 - r0 : compareGuildRoles(a0, a1); }; getMemberRowData = function getMemberRowData(a0, a1) { const rowType = isGuildOwner(a1, a0) ? RowType.OWNER : RowType.MEMBER; let name = GuildMemberStore.getNick(a1.id, a0.id); if (name == null) { name = UserUtils.getName(a0); } return { rowType, name, username: UserUtils.getUserTag(a0), id: a0.id, avatarURL: a0.getAvatarURL(a1.id, 24), bot: a0.bot, verifiedBot: a0.isVerifiedBot(), disabled: isGuildOwner(a1, a0), key: `${rowType}:${a0.id}` }; }; sortMembers = function sortMembers(a0, a1) { return a0.rowType !== a1.rowType ? a0.rowType - a1.rowType : a0.name.toLocaleLowerCase().localeCompare(a1.name.toLocaleLowerCase()); }; export { sortRoles }; export function getNoRolesRow(name = intl.string(t["gnsna/"])) { return [{ rowType: RowType.EMPTY_STATE, colorString: DEFAULT_ROLE_COLOR_HEX, name, disabled: true, id: "EMPTY_STATE" }]; } export function isEveryoneRoleId(a0, a1) { return SnowflakeUtils.castGuildIdAsEveryoneGuildRoleId(a0) === a1; } export function getRolesRows(a0, a1, c16444_0, c16444_1, r3 = () => true) { let c16444_2; c16444_2 = r3; return a1.filter((item) => { const r15 = (0, hasPermission)(item, Permissions.ADMINISTRATOR); let r16 = !r15; if (!r15) { const id = item.id; const currentUser = UserStore.getCurrentUser(); const r3 = currentUser == null; let r1 = false; if (!r3) { if (c16444_0 == null) { r1 = currentUser.id !== id; } else { const r20 = c16444_0.permissionOverwrites[id]; r1 = r20 == null || !has(r20.allow, c16444_1); } } r16 = r1; } if (r16) { r16 = !(0, isEveryoneRole)(item); } if (r16) { r16 = c16444_2(item.name); } return r16; }).sort(sortRoles).map((item) => getRoleRowData(item)); } export function getRolesRowsWithPermissionDisabled(a0, a1, c16445_0, c16445_1, r3 = () => true) { let c16445_2; c16445_2 = r3; return a1.filter((item) => { const r15 = (0, hasPermission)(item, Permissions.ADMINISTRATOR); let r16 = !r15; if (!r15) { const id = item.id; const currentUser = UserStore.getCurrentUser(); const r3 = currentUser == null; let r1 = false; if (!r3) { if (c16445_0 == null) { r1 = currentUser.id !== id; } else { const r20 = c16445_0.permissionOverwrites[id]; r1 = r20 == null || !has(r20.allow, c16445_1); } } r16 = r1; } if (r16) { r16 = !(0, isEveryoneRole)(item); } if (r16) { r16 = c16445_2(item.name); } return r16; }).sort(sortRoles).map((item) => getRoleRowData(item, (0, hasPermission)(item, c16445_1))); } export function getExistingRoles(a0, a1, a2, a3, a4) { let env16441; const r0 = env16441 = { $parent: env5272 }; env16441[0] = a2; env16441[1] = a3; env16441[2] = a4; return a1.filter($mk80289(r0)); } export function getAllExistingRolesWithPermission(a0, a1, a2, a3, a4) { let env16442; const r0 = env16442 = { $parent: env5272 }; env16442[0] = a2; env16442[1] = a3; env16442[2] = a4; return a1.filter($mk80290(r0)); } export function getExistingRolesRows(a0, a1, a2, a3, a4) { let env16446; const r2 = env16446 = { $parent: env5272 }; env16446[0] = a2; env16446[1] = a3; env16446[2] = a4; let r19 = a1.filter($mk80289(r2)).sort(sortRoles).map((item) => getRoleRowData(item)); if (r19.length === 0) { let name = intl.string(t.nZfHsf); if (name === void 0) { name = intl.string(t["gnsna/"]); } r19 = [{ rowType: RowType.EMPTY_STATE, colorString: DEFAULT_ROLE_COLOR_HEX, name, disabled: true, id: "EMPTY_STATE" }]; } return r19; } export function getExistingRolesRowWithPermissionDisabled(a0, a1, a2, a3, a4) { let env16448; const r3 = env16448 = { $parent: env5272 }; env16448[0] = a2; env16448[1] = a3; env16448[2] = a4; let r18 = a1.filter($mk80290(r3)).sort(sortRoles).map((item) => getRoleRowData(item, (0, hasPermission)(item, a3))); if (r18.length === 0) { let name = intl.string(t.nZfHsf); if (name === void 0) { name = intl.string(t["gnsna/"]); } r18 = [{ rowType: RowType.EMPTY_STATE, colorString: DEFAULT_ROLE_COLOR_HEX, name, disabled: true, id: "EMPTY_STATE" }]; } return r18; } export function getMembersRows(a0, c16449_0, c16449_1, c16449_2, r3 = () => true) { let c16449_3; c16449_3 = r3; return a0.map(UserStore.getUser).filter(isNotNullish).filter((item) => { const isGuildOwner2 = isGuildOwner(c16449_1, item); let r15 = !isGuildOwner2; if (!isGuildOwner2) { const id = item.id; const currentUser = UserStore.getCurrentUser(); const r3 = currentUser == null; let r1 = false; if (!r3) { if (c16449_0 == null) { r1 = currentUser.id !== id; } else { const r19 = c16449_0.permissionOverwrites[id]; r1 = r19 == null || !has(r19.allow, c16449_2); } } r15 = r1; } if (r15) { let r33 = GuildMemberStore.getNick(c16449_1.id, item.id); if (r33 == null) { r33 = UserUtils.getName(item); } r15 = c16449_3(r33) || c16449_3(item.username) || c16449_3(item.discriminator); } return r15; }).map((item) => getMemberRowData(item, c16449_1)).sort(sortMembers); } export function getExistingMembers(a0, a1, a2, a3, a4) { let env16443; const r1 = env16443 = { $parent: env5272 }; env16443[0] = a1; env16443[1] = a2; env16443[2] = a3; env16443[3] = a4; return a0.map(UserStore.getUser).filter(isNotNullish).filter($mk80291(r1)); } export function getExistingMembersRows(a0, a1, a2, a3, a4) { let env16451; const r3 = env16451 = { $parent: env5272 }; env16451[0] = a1; env16451[1] = a2; env16451[2] = a3; env16451[3] = a4; return a0.map(UserStore.getUser).filter(isNotNullish).filter($mk80291(r3)).map((item) => getMemberRowData(item, a2)).sort(sortMembers); } export function getRowTypeLabel(a0, a1) { if (RowType.ROLE === a0) { return intl.string(t.ZxoFOG); } if (RowType.OWNER === a0) { return intl.string(t.NWhYJg); } if (RowType.ADMINISTRATOR === a0) { return intl.string(t["dwlcc+"]); } if (RowType.MEMBER === a0) { return a1 ? intl.string(t.UAJxZi) : null; } if (RowType.USER === a0) { return intl.string(t.KD6OJJ); } if (RowType.GUILD === a0) { return intl.string(t["5qyruI"]); } if (RowType.EMPTY_STATE === a0) { return null; } } export function getRemoveTooltipHint(a0) { if (RowType.ROLE === a0) { return intl.string(t["Gzc/a8"]); } if (RowType.OWNER === a0) { return intl.string(t.icuNBM); } if (RowType.ADMINISTRATOR === a0) { return intl.string(t.eTmN5a); } if (RowType.MEMBER === a0) { return intl.string(t["Gzc/a8"]); } RowType.EMPTY_STATE; return null; } export function flipEveryonePermission(a0, a1, a2) { let r11 = a0.permissionOverwrites[a0.guild_id]; if (r11 == null) { r11 = makeEveryoneOverwrite(a0.guild_id); } const r20 = { ...r11 }; r20.deny = remove(r20.deny, a1); r20.allow = remove(r20.allow, a1); if (!a2) { r20.deny = add(r20.deny, a1); } return r20; } export function toggleChannelEveryonePermission(a0, a1, a2) { let r16 = a0.permissionOverwrites[a0.guild_id]; if (r16 == null) { r16 = makeEveryoneOverwrite(a0.guild_id); } const r23 = { ...r16 }; r23.deny = remove(r23.deny, a1); r23.allow = remove(r23.allow, a1); if (!a2) { r23.deny = add(r23.deny, a1); } updatePermission(a0, r23.id, r23.allow, r23.deny); } export function grantUserChannelAccess(a0, a1) { const currentUser = UserStore.getCurrentUser(); if (currentUser != null) { const r19 = a0.permissionOverwrites[currentUser.id]; if (r19 == null) { return savePermissionUpdates(a0.id, [{ id: currentUser.id, type: PermissionOverwriteType.MEMBER, allow: add(NONE, a1), deny: NONE }], true); } const { allow, deny } = r19; return updatePermission(a0, r19.id, add(allow, a1), deny); } } export function isPrivateGuildChannel(a0, a1) { if (a0 == null) { return false; } let r8 = a0.permissionOverwrites[a0.guild_id]; if ((a1 == null ? void 0 : a1[a0.guild_id]) != null) { r8 = a1[a0.guild_id]; } return r8 != null && has(r8.deny, a0.accessPermissions); } export function isPrivateTextChannel(a0) { const r6 = a0.permissionOverwrites[a0.guild_id]; return r6 != null && a0.type === ChannelTypes.GUILD_TEXT && has(r6.deny, Permissions.VIEW_CHANNEL); } export function canCreatePrivateChannel(a0, a1, a2) { const GUILD_TEXT = ChannelTypes.GUILD_TEXT; let r1 = a1; if (a0 !== GUILD_TEXT) { const GUILD_ANNOUNCEMENT = ChannelTypes.GUILD_ANNOUNCEMENT; r1 = a1; if (a0 !== GUILD_ANNOUNCEMENT) { const r9 = (0, isGuildVocalChannelType)(a0); r1 = (r9 ? !r9 : a0 !== ChannelTypes.GUILD_CATEGORY) || (a1 ? a2 : a1); } } return r1; } export function getPrivateChannelHintText(a0) { if (ChannelTypes.GUILD_TEXT !== a0 && ChannelTypes.GUILD_ANNOUNCEMENT !== a0) { if (ChannelTypes.GUILD_VOICE === a0) { return intl.format(t.iZAMty, {}); } if (ChannelTypes.GUILD_CATEGORY === a0) { return intl.format(t.PhnARV, {}); } return null; } return intl.format(t.ZDtA0T, {}); } export function extractPermissionOverwrites(a0, c16452_0) { const r5 = []; let c16452_1 = r5; Object.values(a0).forEach(({ row }) => { if (row.id != null && row.id !== "") { if (row.rowType === RowType.ROLE) { c16452_1.push(permissionOverwriteForRole(row.id, c16452_0)); } else if (row.rowType === RowType.MEMBER) { c16452_1.push(permissionOverwriteForUser(row.id, c16452_0)); } } }); return r5; }