PageSourceSearch

https://stackmorelayers.ai/_next/static/chunks/8744-6fc6dedea3a25e8d.js

js stackmorelayers.ai collected 2026-10-05 12:43:00 UTC 24,336 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8744],{10269:(e,t,n)=>{n.d(t,{_v:()=>a,go:()=>l});var i=n(62954);n(62196);let o={active:"studio.editor.inviteLinks.statusActive",paused:"studio.editor.inviteLinks.statusPaused",revoked:"studio.editor.inviteLinks.statusRevoked"};function r(e){return"string"==typeof e?e.trim().toLowerCase():""}function s(e){let t=r(e),n=Object.prototype.hasOwnProperty.call(o,t)?o[t]:null;return{kind:n?"known":"unknown",label:n??"studio.editor.inviteLinks.statusUnknown",tone:(0,i.si)(t).status}}function a(e,t=Date.now()){return"active"!==r(e.status)?s(e.status):!function(e,t=Date.now()){if(!e)return!1;let n=new Date(e).getTime();return Number.isFinite(n)&&n<=t}(e.expires_at,t)?!0===e.is_full?{kind:"known",label:"studio.editor.inviteLinks.statusFull",tone:(0,i.si)("full").status}:s(e.status):{kind:"known",label:"studio.editor.inviteLinks.statusExpired",tone:(0,i.si)("expired").status}}function l(e){return"revoked"===r(e)}},13573:(e,t,n)=>{(0,n(19156).pf)("collections/invite-links",{ru:{invites:{nameRequired:"Назовите ссылку.",rolePlaceholder:"Выберите роль",rolesLoading:"Загружаем доступные роли…",rolesUnavailable:"Не удалось получить доступные роли. Обновите список и попробуйте снова.",roleNone:"Роль не указана в ссылке",roleUnnamed:"Роль, которую эта версия назвать не может",nameTooLong:"Название — до 255 символов.",seatsInvalid:"Укажите целое число от 1 до 100000 или оставьте поле пустым.",createdInert:"Ссылка работает, но роль не действует, пока подборка в черновике.",expiresInvalid:"Укажите дату и время или оставьте поле пустым.",expiresPast:"Срок должен быть в будущем."}},en:{invites:{nameRequired:"Name this link.",rolePlaceholder:"Choose a role",rolesLoading:"Loading available roles…",rolesUnavailable:"Available roles could not be loaded. Refresh the list and try again.",roleNone:"Role not specified in the link",roleUnnamed:"A role this version cannot name",nameTooLong:"Use at most 255 characters for the name.",seatsInvalid:"Enter a whole number between 1 and 100000, or leave it empty.",createdInert:"The link works, but its role reaches nobody while the collection is a draft.",expiresInvalid:"Give a date and time, or leave the field empty.",expiresPast:"An expiry must be in the future."}}})},35096:(e,t,n)=>{n.d(t,{$J:()=>c,CY:()=>l,DL:()=>v,Er:()=>k,GQ:()=>o,IX:()=>a,No:()=>s,Se:()=>S,VR:()=>f,X_:()=>r,_B:()=>w,g5:()=>g,hE:()=>u,i7:()=>y,o4:()=>p,qR:()=>b,r$:()=>h,tf:()=>d,w4:()=>m});var i=n(48555);async function o(e,t,n){return(0,i.SS)("GET",`/collections${(0,i.Qz)({item_kind:e,item_ref:String(t)})}`,{cookieHeader:n})}async function r(e,t){return(0,i.SS)("GET",`/collections/${encodeURIComponent(e)}`,{cookieHeader:t})}async function s(e){return(0,i.SS)("POST","/host/collections",{payload:e})}async function a(e,t){return(0,i.SS)("PATCH",`/host/collections/${encodeURIComponent(e)}`,{payload:t})}async function l(e,t={},n={}){let o="deep"===t.mode;return(0,i.SS)("POST",`/host/collections/${encodeURIComponent(e)}/copy`,{payload:t,headers:n.idempotencyKey?{"Idempotency-Key":n.idempotencyKey}:void 0,timeoutMs:o?24e4:3e4})}async function c(e,t,n){return(0,i.SS)("PUT",`/host/collections/${encodeURIComponent(e)}/items`,{payload:{items:t,..."number"==typeof n?{expected_items_version:n}:{}}})}async function d(e,t){return(0,i.CK)("POST",`/host/collections/${encodeURIComponent(e)}/cover`,t,{timeoutMs:45e3})}async function u(e){return(0,i.SS)("DELETE",`/host/collections/${encodeURIComponent(e)}/cover`)}async function p(e){return(0,i.SS)("DELETE",`/host/collections/${encodeURIComponent(e)}`)}async function m(e,t={},n){return(0,i.SS)("GET",`/host/collections/${encodeURIComponent(e)}/members${(0,i.Qz)({subject_type:t.subjectType,limit:t.limit,after:t.after})}`,{cookieHeader:n,timeoutMs:1e4})}async function k(e,t){return(0,i.SS)("PUT",`/host/collections/${encodeURIComponent(e)}/members`,{payload:t})}async function h(e,t,n){return(0,i.SS)("DELETE",`/host/collections/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}/${encodeURIComponent(n)}`)}async function v(e){return(0,i.SS)("GET","/host/delegated-collections",{cookieHeader:e,timeoutMs:1e4})}async function f(e,t){return(0,i.SS)("GET",`/host/collections/${encodeURIComponent(e)}/invite-links`,{cookieHeader:t,timeoutMs:1e4})}async function g(e,t){return(0,i.SS)("POST",`/host/collections/${encodeURIComponent(e)}/invite-links`,{payload:t})}async function y(e,t){return(0,i.SS)("DELETE",`/host/collections/${encodeURIComponent(e)}/invite-links/${encodeURIComponent(t)}`)}async function w(e){return(0,i.SS)("GET",`/host/collections/${encodeURIComponent(e)}/submission-scoping`)}async function b(e,t){return(0,i.SS)("PUT",`/host/collections/${encodeURIComponent(e)}/submission-scoping`,{payload:t})}async function S(e,t){return(0,i.SS)("POST",`/collections/${encodeURIComponent(e)}/invite-links/redeem`,{payload:{token:t}})}}
1,36889:(e,t,n)=>{n.d(t,{DQ:()=>o,S7:()=>s,U:()=>r});let i=["close","withdraw"];function o(e){let t="string"==typeof e.default_revoke_mode?e.default_revoke_mode.trim():"";return i.includes(t)?t:"close"}function r(e){let t=Number(e.redemptions_count??0),n=String(e.cohort_group_ref??"").trim();return Number.isFinite(t)&&t>0&&n.length>0}function s(e){if(!e||"object"!=typeof e)return null;let t="string"==typeof e.mode?e.mode.trim():"";if(!i.includes(t))return null;let n=a(e.cohort_failed),o=a(e.cohort_unaccounted),r=!0===e.cohort_sealed;return{mode:t,people:a(e.withdrawn_redemptions),grants:a(e.withdrawn_grants),cohortRemoved:a(e.cohort_removed),cohortFailed:n,cohortUnaccounted:o,cohortSealed:r,complete:"withdraw"!==t||0===n&&0===o&&r}}function a(e){let t=Number(e??0);return Number.isFinite(t)&&t>0?Math.trunc(t):0}},62196:(e,t,n)=>{(0,n(19156).pf)("studio/invite-links",{ru:{editor:{inviteLinks:{error:"Не удалось загрузить ссылки.",drawerTitle:"Создать ссылку-приглашение",drawerSubtitle:"Сгенерируйте приватную ссылку, дающую доступ и помечающую пришедших когортой.",closeAria:"Закрыть",cancel:"Отмена",submit:"Создать ссылку",submitting:"Создаём…",fieldName:"Название ссылки",fieldNamePlaceholder:"Напр., доступ для осеннего потока",fieldNameHelp:"Видно только вам и другим организаторам.",additionalOptions:"Дополнительные параметры",lmsScoped:"Показывать только студентов их курсов в LMS",lmsScopedHint:"Все, кто перейдёт по ссылке, будут видеть и проверять только тех студентов, которые числятся у них в курсе ЦУ. Настройка действует на всю ссылку целиком; отдельным людям её можно менять во вкладке \xabДоступ\xbb.",fieldSigninRoute:"Какой вход предложить первым",fieldSigninRouteNone:"Не указывать — человек выберет сам",fieldSigninRouteHelp:"Подсказка для страницы входа: этот способ будет предложен первым. Войти можно любым доступным, на доступ по ссылке выбор не влияет.",fieldGrants:"Что даёт ссылка",presetParticipant:"Участник",presetParticipantDesc:"Может участвовать и отправлять решения.",presetObserver:"Наблюдатель",presetObserverDesc:"Может читать материалы и решения.",presetOrganizer:"Организатор",presetOrganizerDesc:"Может менять настройки и управлять доступом.",presetOrganizerParticipant:"Организатор и участник",presetOrganizerParticipantDesc:"Может менять настройки и при этом отправлять решения.",presetLegacy:"Участник \xb7 старая ссылка",presetLegacyDesc:"Ссылка выпущена до выбора ролей. При принятии сейчас выдаёт права участника.",presetUnknown:"Роль, которую эта версия назвать не может",presetUnknownDesc:"Платформа вернула роль, неизвестную этой сборке. Проверьте права на вкладке \xabДоступ\xbb.",grantsCreatedLabel:"Ссылка даёт",rosterTitle:"Выданные ссылки",rosterLoading:"Загружаем ссылки…",rosterEmpty:"Ссылок-приглашений пока нет.",rosterEmptyHint:"Созданная ссылка появится здесь — вместе с тем, что она даёт.",rosterForbidden:"У вас нет прав управлять ссылками-приглашениями здесь.",rosterRetry:"Повторить",rosterColumnName:"Ссылка",rosterColumnSeats:"Переходов",rosterColumnExpires:"Действует до",rosterColumnState:"Состояние",rosterColumnNarrowing:"Только свои курсы",rosterNarrowingAria:"Сужать отправки по курсам ЦУ — \xab{name}\xbb",rosterNarrowingFailed:"Не удалось изменить сужение по курсам.",rosterSeatsOf:"{used} из {max}",rosterSeatsUnlimited:"{used}",rosterExpiresNever:"Без срока",statusActive:"Действует",statusPaused:"Приостановлена",statusRevoked:"Отозвана",statusExpired:"Срок истёк",statusFull:"Лимит исчерпан",statusUnknown:"Состояние, которое эта версия назвать не может",revoke:"Отозвать",revokeAria:"Отозвать \xab{name}\xbb — {effect}",revokeEffectClose:"новые переходы прекратятся",revokeEffectWithdraw:"новые переходы прекратятся и выданный доступ будет забран",revokeTitle:"Отозвать \xab{name}\xbb?",revokeConfirm:"Отозвать ссылку",revokeCancel:"Отмена",revokeWorking:"Отзываем…",revokeModeLegend:"Насколько отозвать",revokeModeClose:"Остановить новые переходы",revokeModeCloseDesc:"Ссылка перестанет работать. Те, кто уже перешёл, сохранят выданный ею доступ.",revokeModeWithdraw:"Остановить переходы и забрать доступ",revokeModeWithdrawDesc:"Ссылка перестанет работать, и все, кто перешёл по Ð
1½ÐµÐ¹, потеряют выданный ею доступ.",revokeNothingGranted:"По этой ссылке ещё никто не перешёл — нечего забирать, отзыв просто закроет её.",revokeDoneClose:"Ссылка отозвана. Новые переходы невозможны, ранее выданный доступ не изменился.",revokeDoneWithdraw:"Ссылка отозвана. Доступ забран у стольких участников: {people}.",revokeDonePartial:"Доступ в ядре забран, но места в когорте остались у стольких участников: {failed}. Уберите их вручную в списке участников когорты.",revokeDoneUnaccounted:"Стольких участников платформа отозвала, но не нашла в списке когорты: {unaccounted}. Их места убрать не пытались — проверьте список участников когорты.",revokeDoneUnsealed:"Когорту ссылки не удалось закрыть. Тот, чей переход по ссылке уже шёл в момент отзыва, ещё может в неё попасть — проверьте список участников когорты.",revokeError:"Не удалось отозвать ссылку. Попробуйте ещё раз.",revokeRefusedTitle:"Ссылка не отозвана",createRefusedTitle:"Ссылка не создана",fieldAudience:"Кто может воспользоваться ссылкой",audienceAnyone:"Все вошедшие",audienceDomains:"Домены почты",audienceEmails:"Адреса почты",audienceAnyoneHelp:"Перейти по ссылке сможет любой вошедший пользователь.",audienceDomainsHelp:"Только подтверждённые адреса на этих доменах. Указано: {count}.",audienceEmailsHelp:"Только эти подтверждённые адреса. Указано: {count}.",audienceDomainsPlaceholder:"univ.edu, lab.org — через запятую или с новой строки",audienceEmailsPlaceholder:"[email protected], [email protected] — через запятую или с новой строки",errorAudienceEmpty:"Добавьте хотя бы одну запись или выберите \xabВсе вошедшие\xbb.",errorAudienceTooMany:"Слишком много записей — не более {max}.",errorAudienceInvalid:"\xab{entry}\xbb не похоже на домен или email-адрес. Примеры: univ.edu, [email protected]",fieldMaxRedemptions:"Максимум переходов",fieldMaxRedemptionsPlaceholder:"Без ограничения",fieldMaxRedemptionsHelp:"Оставьте пустым — без ограничения. Минимум 1.",fieldStartsAt:"Начало",fieldStartsAtHelp:"Необязательно. До этого времени ссылка неактивна.",fieldExpiresAt:"Окончание",fieldExpiresAtHelp:"Необязательно. После этого времени ссылка перестаёт работать.",errorNameRequired:"Укажите название ссылки.",errorNameTooLong:"Название — до 120 символов.",errorMaxRedemptions:"Введите целое число от 1 или оставьте пустым.",errorExpiresBeforeStarts:"Окончание должно быть позже начала.",createErrorUnavailable:"Ссылки-приглашения сейчас недоступны. Попробуйте позже.",createOutcomeUnknown:"Результат создания неизвестен. Закройте форму и проверьте список ссылок перед созданием новой.",createErrorGeneric:"Не удалось создать ссылку. Проверьте форму и попробуйте снова.",successTitle:"Ссылка создана",successDesc:"Поделитесь этой ссылкой с теми, кого приглашаете.",successUrlLabel:"URL приглашения",copyUrl:"Скопировать URL",createdTokenHint:"Скопируйте ссылку сейчас — из соображений безопасности она больше не будет показана.",done:"Готово",closeConfirmTitle:"Отменить создание ссылки?",closeConfirmBody:"Введённые данные будут потеряны, ссылка не будет создана.",closeConfirmStay:"Продолжить редактирование",closeConfirmDiscard:"Отменить"}}},en:{editor:{inviteLinks:{error:"Could not load invite links.",drawerTitle:"Create invite link",drawerSubtitle:"Generate a private link that grants access and tags everyone who joins with a cohort.",closeAria:"Close",cancel:"Cancel",submit:"Create link",submitting:"Creating…",fieldName:"Link name",fieldNamePlaceholder:"e.g. Spring cohort access",fieldNameHelp:"Shown only to you and other organizers.",additionalOptions:"Additional options",lmsScoped:"Show only students from their own LMS courses",lmsScopedHint:"Everyone who opens this link will see and review only the students enrolled in their own LMS course. It applies to the whole link; individual people can be changed on the Access tab.",fieldSigninRoute:"Which sign-in method to suggest first",fieldSigninRouteNone:"No preference — let them choose",fieldSigninRouteHelp:"A hint for the sign-in page: this route is offered first. Anyone may still sign in another way, and this never affects who the link admits.",fieldGrants:"What this link grants",presetParticipant:"Participant",presetParticipantDesc:"Can take part and make submissions.",presetObserver:"Observer",presetObserverDesc:"Can read materials and submissions.",presetOrganizer:"Organizer",presetOrganizerDesc:"Can change the settings and manage access.",presetOrganizerParticipant:"Organizer and participant",presetOrganizerParticipantDesc:"Can change the settings and still make submissions.",presetLegacy:"Participant \xb7 legacy link",presetLegacyDesc:"Issued before role selection was available. Accepting it now grants Participant access.",presetUnknown:"A role this version cannot name",presetUnknownDesc:"The platform reported a role this build does not know. Check the rights on the Access tab.",grantsCreatedLabel:"This link grants",rosterTitle:"Issued links",rosterLoading:"Loading invite links…",rosterEmpty:"No invite links yet.",rosterEmptyHint:"A link y
1ou create appears here, together with what it grants.",rosterForbidden:"You are not allowed to manage invite links here.",rosterRetry:"Retry",rosterColumnName:"Link",rosterColumnSeats:"Redemptions",rosterColumnExpires:"Expires",rosterColumnState:"State",rosterColumnNarrowing:"Own courses only",rosterNarrowingAria:"Narrow submissions to LMS courses — “{name}”",rosterNarrowingFailed:"Could not change the course narrowing.",rosterSeatsOf:"{used} of {max}",rosterSeatsUnlimited:"{used}",rosterExpiresNever:"No expiry",statusActive:"Active",statusPaused:"Paused",statusRevoked:"Revoked",statusExpired:"Expired",statusFull:"No seats left",statusUnknown:"A state this build cannot name",revoke:"Revoke",revokeAria:"Revoke “{name}” — {effect}",revokeEffectClose:"stops new sign-ups",revokeEffectWithdraw:"stops new sign-ups and takes back the access it gave",revokeTitle:"Revoke “{name}”?",revokeConfirm:"Revoke link",revokeCancel:"Cancel",revokeWorking:"Revoking…",revokeModeLegend:"How much to revoke",revokeModeClose:"Stop new sign-ups",revokeModeCloseDesc:"The link stops working. Everyone who already joined keeps the access it gave them.",revokeModeWithdraw:"Stop new sign-ups and take back access",revokeModeWithdrawDesc:"The link stops working, and everyone who joined through it loses the access it granted.",revokeNothingGranted:"Nobody has redeemed this link yet, so there is no access to take back — revoking just closes it.",revokeDoneClose:"The link is revoked. Nobody new can join, and access already granted is unchanged.",revokeDoneWithdraw:"The link is revoked. {people} people lost the access it granted.",revokeDonePartial:"The grants are withdrawn, but {failed} people still hold their cohort seat. Remove them from the cohort members list.",revokeDoneUnaccounted:"{unaccounted} people the platform withdrew were not in the cohort list, so nothing tried to take their seat back. Check the cohort members list.",revokeDoneUnsealed:"The link's cohort could not be closed. Someone whose sign-up was already under way when you revoked may still land in it — check the cohort members list.",revokeError:"Could not revoke the link. Please try again.",revokeRefusedTitle:"Link not revoked",createRefusedTitle:"Link not created",fieldAudience:"Who can use this link",audienceAnyone:"Anyone signed in",audienceDomains:"Email domains",audienceEmails:"Email addresses",audienceAnyoneHelp:"Any authenticated user can redeem this link.",audienceDomainsHelp:"Only verified addresses on these domains. Listed: {count}.",audienceEmailsHelp:"Only these verified addresses. Listed: {count}.",audienceDomainsPlaceholder:"univ.edu, lab.org — commas or new lines",audienceEmailsPlaceholder:"[email protected], [email protected] — commas or new lines",errorAudienceEmpty:'Add at least one entry or choose "Anyone signed in".',errorAudienceTooMany:"Too many entries — at most {max}.",errorAudienceInvalid:'"{entry}" doesn\'t look like a domain or email. Examples: univ.edu, [email protected]',fieldMaxRedemptions:"Max redemptions",fieldMaxRedemptionsPlaceholder:"Unlimited",fieldMaxRedemptionsHelp:"Leave blank for unlimited. Minimum 1.",fieldStartsAt:"Starts at",fieldStartsAtHelp:"Optional. The link stays inactive until this time.",fieldExpiresAt:"Expires at",fieldExpiresAtHelp:"Optional. The link stops working after this time.",errorNameRequired:"Enter a link name.",errorNameTooLong:"Keep the name under 120 characters.",errorMaxRedemptions:"Enter a whole number of 1 or more, or leave it blank.",errorExpiresBeforeStarts:"The expiry must be after the start time.",createErrorUnavailable:"Invite links are currently unavailable. Try again later.",createOutcomeUnknown:"The creation result is unknown. Close this form and check the link list before creating another.",createErrorGeneric:"The invite link couldn't be created. Check the form and try again.",successTitle:"Invite link created",successDesc:"Share this link with the people you want to invite.",successUrlLabel:"Invite URL",copyUrl:"Copy invite URL",createdTokenHint:"Copy this link now — for security it won't be shown again.",done:"Done",closeConfirmTitle:"Discard this invite link?",closeConfirmBody:"Your entries will be lost and no link will be created.",closeConfirmStay:"Keep editing",closeConfirmDiscard:"Discard"}}}})},88744:(e,t,n)=>{n.d(t,{V4:()=>u,p0:()=>d,wl:()=>p});var i=n(35096),o=n(20542),r=n(53100),s=n(97840),a=n(36889),l=n(10269);function c(e,t){if(!e||e.public_id!==t||!(0,l.go)(e.status))throw Error("Invite closure acknowledgement is incomplete")}n(13573),n(62196);let d={kind:"competition",describeGrant:s.j1,async revoke(e,t,n){let i=await (0,r.DX)(e,t,{status:"revoked",revoke_mode:n}),o=(0,a.S7)(i?.revoke);if(!o)throw Error("Invite revoke report is incomplete");return{kind:"reported",report:o}}},u={kind:"close-only",describeGrant:e=>(0,s.j1)(e||"participant"),async revoke(e,t){let n=await (0,o.OW)(String(e),t,{status:"revoked"});return c(n?.invite_link,t),{kind:"closed"}}},p={kind:"close-only",describeGrant:e=>e?"reviewer"===e?(0,s.j1)("observer"):"participant"===e||"organizer"===e?(0,s.j1)(e):{kind:"unknown",label:"collections.invites.roleUnnamed",description:"studio.editor.inviteLinks.presetUnknownDesc"}:{kind:"legacy",label:"collections.invites.roleNone",description:""},async revoke(e,t){let n=await (0,i.i7)(String(e),t);if(n?.revoked!==!0)throw Error("Invite closure was not acknowledged");return c(n.invite_link,t),{kind:"closed"}}}},97840:(e,t,n)=>{n.d(t,{VB:()=>o,j1:()=>a}),n(62196);let i=[{value:"participant",label:"studio.editor.inviteLinks.presetParticipant",description:"studio.editor.inviteLinks.presetParticipantDesc",grantable:!0},{value:"observer",label:"studio.editor.inviteLinks.presetObserver",description:"studio.editor.inviteLinks.presetObserverDesc",grantable:!0},{value:"organizer",label:"studio.editor.inviteLinks.presetOrganizer",description:"studio.editor.inviteLinks.presetOrganizerDesc",grantable:!0},{value:"organizer_participant",label:"studio.editor.inviteLinks.presetOrganizerParticipant",description:"studio.editor.inviteLinks.presetOrganizerParticipantDesc",grantable:!1}],o=i.filter(e=>e.grantable),r={kind:"legacy",label:"studio.editor.inviteLinks.presetLegacy",description:"studio.editor.inviteLinks.presetLegacyDesc"},s={kind:"unknown",label:"studio.editor.inviteLinks.presetUnknown",de
1scription:"studio.editor.inviteLinks.presetUnknownDesc"};function a(e){if(null==e||""===e)return r;let t=i.find(t=>t.value===e);return t?{kind:"preset",label:t.label,description:t.description}:s}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.