{$i18n.t('Visibility')}
{#if accessControl !== null}
{:else}
{/if}
{ if (e.target.value === 'public') { accessControl = null; } else { accessControl = { read: { group_ids: [], user_ids: [] }, write: { group_ids: [], user_ids: [] } }; } onChange(accessControl); }} >
{$i18n.t('Private')}
{#if allowPublic}
{$i18n.t('Public')}
{/if}
{#if accessControl !== null} {$i18n.t('Only select users and groups with permission can access')} {:else} {$i18n.t('Accessible to all users')} {/if}
{#if accessControl !== null} {@const accessGroups = groups.filter((group) => (accessControl?.read?.group_ids ?? []).includes(group.id) )}
{$i18n.t('Groups')}
{ if (selectedGroupId !== '') { accessControl.read.group_ids = [ ...(accessControl?.read?.group_ids ?? []), selectedGroupId ]; selectedGroupId = ''; onChange(accessControl); } }} >
{$i18n.t('Select a group')}
{#each groups.filter((group) => !(accessControl?.read?.group_ids ?? []).includes(group.id)) as group}
{group.name}
{/each}
{#if accessGroups.length > 0} {#each accessGroups as group}
{group.name}
{ if (accessRoles.includes('write')) { if ((accessControl?.write?.group_ids ?? []).includes(group.id)) { accessControl.write.group_ids = ( accessControl?.write?.group_ids ?? [] ).filter((group_id) => group_id !== group.id); } else { accessControl.write.group_ids = [ ...(accessControl?.write?.group_ids ?? []), group.id ]; } onChange(accessControl); } }} > {#if (accessControl?.write?.group_ids ?? []).includes(group.id)}
{:else}
{/if}
{ accessControl.read.group_ids = (accessControl?.read?.group_ids ?? []).filter( (id) => id !== group.id ); accessControl.write.group_ids = ( accessControl?.write?.group_ids ?? [] ).filter((id) => id !== group.id); onChange(accessControl); }} >
{/each} {:else}
{$i18n.t('No groups with access, add a group to grant access')}
{/if}
{/if}