mirror of
https://github.com/nextcloud/server.git
synced 2026-06-08 16:26:59 -04:00
Merge pull request #56570 from nextcloud/artonge/debt/migrate_user_ldap_vu3
refactor(user_ldap): Migrate to Vue3
This commit is contained in:
commit
74351255db
262 changed files with 1240 additions and 1688 deletions
|
|
@ -45,8 +45,10 @@ use Psr\Container\ContainerInterface;
|
|||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class Application extends App implements IBootstrap {
|
||||
public const APP_ID = 'user_ldap';
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct('user_ldap');
|
||||
parent::__construct(self::APP_ID);
|
||||
$container = $this->getContainer();
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
namespace OCA\User_LDAP\Settings;
|
||||
|
||||
use OCA\User_LDAP\AppInfo\Application;
|
||||
use OCA\User_LDAP\Configuration;
|
||||
use OCA\User_LDAP\Helper;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
|
|
@ -59,7 +60,9 @@ class Admin implements IDelegatedSettings {
|
|||
$this->initialState->provideInitialState('ldapConfigs', $ldapConfigs);
|
||||
$this->initialState->provideInitialState('ldapModuleInstalled', function_exists('ldap_connect'));
|
||||
|
||||
return new TemplateResponse('user_ldap', 'settings', $parameters);
|
||||
\OCP\Util::addStyle(Application::APP_ID, 'settings-admin');
|
||||
\OCP\Util::addScript(Application::APP_ID, 'settings-admin');
|
||||
return new TemplateResponse(Application::APP_ID, 'settings', $parameters);
|
||||
}
|
||||
|
||||
public function getSection(): string {
|
||||
|
|
|
|||
|
|
@ -9,29 +9,29 @@
|
|||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label=" t('user_ldap', 'Backup (Replica) Host')"
|
||||
:label="t('user_ldap', 'Backup (Replica) Host')"
|
||||
:value="ldapConfigProxy.ldapBackupHost"
|
||||
:helper-text="t('user_ldap', 'Give an optional backup host. It must be a replica of the main LDAP/AD server.')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapBackupHost = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapBackupHost = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
type="number"
|
||||
:value="ldapConfigProxy.ldapBackupPort"
|
||||
:label="t('user_ldap', 'Backup (Replica) Port') "
|
||||
@change.native="(event) => ldapConfigProxy.ldapBackupPort = event.target.value" />
|
||||
:label="t('user_ldap', 'Backup (Replica) Port')"
|
||||
@change="(event) => ldapConfigProxy.ldapBackupPort = event.target.value" />
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="ldapConfigProxy.ldapOverrideMainServer === '1'"
|
||||
:model-value="ldapConfigProxy.ldapOverrideMainServer === '1'"
|
||||
type="switch"
|
||||
:aria-label="t('user_ldap', 'Only connect to the replica server.')"
|
||||
@update:checked="ldapConfigProxy.ldapOverrideMainServer = $event ? '1' : '0'">
|
||||
@update:model-value="ldapConfigProxy.ldapOverrideMainServer = $event ? '1' : '0'">
|
||||
{{ t('user_ldap', 'Disable Main Server') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="ldapConfigProxy.turnOffCertCheck === '1'"
|
||||
:model-value="ldapConfigProxy.turnOffCertCheck === '1'"
|
||||
:aria-label="t('user_ldap', 'Not recommended, use it for testing only! If connection only works with this option, import the LDAP server\'s SSL certificate in your {instanceName} server.', { instanceName })"
|
||||
@update:checked="ldapConfigProxy.turnOffCertCheck = $event ? '1' : '0'">
|
||||
@update:model-value="ldapConfigProxy.turnOffCertCheck = $event ? '1' : '0'">
|
||||
{{ t('user_ldap', 'Turn off SSL certificate validation.') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
:label="t('user_ldap', 'Cache Time-To-Live')"
|
||||
:value="ldapConfigProxy.ldapCacheTTL"
|
||||
:helper-text="t('user_ldap', 'in seconds. A change empties the cache.')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapCacheTTL = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapCacheTTL = event.target.value" />
|
||||
</details>
|
||||
|
||||
<details name="ldap-wizard__advanced__section" class="ldap-wizard__advanced__section">
|
||||
|
|
@ -51,31 +51,31 @@
|
|||
:value="ldapConfigProxy.ldapUserDisplayName"
|
||||
:label="t('user_ldap', 'User Display Name Field')"
|
||||
:helper-text="t('user_ldap', 'The LDAP attribute to use to generate the user\'s display name.')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapUserDisplayName = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapUserDisplayName = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:value="ldapConfigProxy.ldapUserDisplayName2"
|
||||
:label="t('user_ldap', '2nd User Display Name Field')"
|
||||
:helper-text="t('user_ldap', 'Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«.')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapUserDisplayName2 = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapUserDisplayName2 = event.target.value" />
|
||||
|
||||
<NcTextArea
|
||||
:value="ldapConfigProxy.ldapBaseUsers"
|
||||
:model-value="ldapConfigProxy.ldapBaseUsers"
|
||||
:placeholder="t('user_ldap', 'One User Base DN per line')"
|
||||
:label="t('user_ldap', 'Base User Tree')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapBaseUsers = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapBaseUsers = event.target.value" />
|
||||
|
||||
<NcTextArea
|
||||
:value="ldapConfigProxy.ldapAttributesForUserSearch"
|
||||
:model-value="ldapConfigProxy.ldapAttributesForUserSearch"
|
||||
:placeholder="t('user_ldap', 'Optional; one attribute per line')"
|
||||
:label="t('user_ldap', 'User Search Attributes')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributesForUserSearch = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributesForUserSearch = event.target.value" />
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="ldapConfigProxy.markRemnantsAsDisabled === '1'"
|
||||
:model-value="ldapConfigProxy.markRemnantsAsDisabled === '1'"
|
||||
:aria-label="t('user_ldap', 'When switched on, users imported from LDAP which are then missing will be disabled')"
|
||||
@update:checked="ldapConfigProxy.markRemnantsAsDisabled = $event ? '1' : '0'">
|
||||
@update:model-value="ldapConfigProxy.markRemnantsAsDisabled = $event ? '1' : '0'">
|
||||
{{ t('user_ldap', 'Disable users missing from LDAP') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
|
|
@ -84,19 +84,19 @@
|
|||
:value="ldapConfigProxy.ldapGroupDisplayName"
|
||||
:label="t('user_ldap', 'Group Display Name Field')"
|
||||
:title="t('user_ldap', 'The LDAP attribute to use to generate the groups\'s display name.')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapGroupDisplayName = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapGroupDisplayName = event.target.value" />
|
||||
|
||||
<NcTextArea
|
||||
:value="ldapConfigProxy.ldapBaseGroups"
|
||||
:model-value="ldapConfigProxy.ldapBaseGroups"
|
||||
:placeholder="t('user_ldap', 'One Group Base DN per line')"
|
||||
:label="t('user_ldap', 'Base Group Tree')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapBaseGroups = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapBaseGroups = event.target.value" />
|
||||
|
||||
<NcTextArea
|
||||
:value="ldapConfigProxy.ldapAttributesForGroupSearch"
|
||||
:model-value="ldapConfigProxy.ldapAttributesForGroupSearch"
|
||||
:placeholder="t('user_ldap', 'Optional; one attribute per line')"
|
||||
:label="t('user_ldap', 'Group Search Attributes')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributesForGroupSearch = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributesForGroupSearch = event.target.value" />
|
||||
|
||||
<NcSelect
|
||||
v-model="ldapConfigProxy.ldapGroupMemberAssocAttr"
|
||||
|
|
@ -115,12 +115,12 @@
|
|||
:label="t('user_ldap', 'Dynamic Group Member URL')"
|
||||
:value="ldapConfigProxy.ldapDynamicGroupMemberURL"
|
||||
:helper-text="t('user_ldap', 'The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapDynamicGroupMemberURL = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapDynamicGroupMemberURL = event.target.value" />
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="ldapConfigProxy.ldapNestedGroups === '1'"
|
||||
:model-value="ldapConfigProxy.ldapNestedGroups === '1'"
|
||||
:aria-label="t('user_ldap', 'When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)')"
|
||||
@update:checked="ldapConfigProxy.ldapNestedGroups = $event ? '1' : '0'">
|
||||
@update:model-value="ldapConfigProxy.ldapNestedGroups = $event ? '1' : '0'">
|
||||
{{ t('user_ldap', 'Nested Groups') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
|
|
@ -129,12 +129,12 @@
|
|||
:label="t('user_ldap', 'Paging chunksize')"
|
||||
:value="ldapConfigProxy.ldapPagingSize"
|
||||
:helper-text="t('user_ldap', 'Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapPagingSize = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapPagingSize = event.target.value" />
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="ldapConfigProxy.turnOnPasswordChange === '1'"
|
||||
:model-value="ldapConfigProxy.turnOnPasswordChange === '1'"
|
||||
:aria-label="t('user_ldap', 'Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server.')"
|
||||
@update:checked="ldapConfigProxy.turnOnPasswordChange = $event ? '1' : '0'">
|
||||
@update:model-value="ldapConfigProxy.turnOnPasswordChange = $event ? '1' : '0'">
|
||||
{{ t('user_ldap', 'Enable LDAP password changes per user') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
<span class="tablecell">
|
||||
|
|
@ -146,7 +146,7 @@
|
|||
:label="t('user_ldap', 'Default password policy DN')"
|
||||
:value="ldapConfigProxy.ldapDefaultPPolicyDN"
|
||||
:helper-text="t('user_ldap', 'The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling.')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapDefaultPPolicyDN = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapDefaultPPolicyDN = event.target.value" />
|
||||
</details>
|
||||
|
||||
<details name="ldap-wizard__advanced__section" class="ldap-wizard__advanced__section">
|
||||
|
|
@ -157,35 +157,35 @@
|
|||
:value="ldapConfigProxy.ldapQuotaAttribute"
|
||||
:label="t('user_ldap', 'Quota Field')"
|
||||
:helper-text="t('user_ldap', 'Leave empty for user\'s default quota. Otherwise, specify an LDAP/AD attribute.')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapQuotaAttribute = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapQuotaAttribute = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:value="ldapConfigProxy.ldapQuotaDefault"
|
||||
:label="t('user_ldap', 'Quota Default')"
|
||||
:helper-text="t('user_ldap', 'Override default quota for LDAP users who do not have a quota set in the Quota Field.')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapQuotaDefault = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapQuotaDefault = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:value="ldapConfigProxy.ldapEmailAttribute"
|
||||
:label="t('user_ldap', 'Email Field')"
|
||||
:helper-text="t('user_ldap', 'Set the user\'s email from their LDAP attribute. Leave it empty for default behaviour.')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapEmailAttribute = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapEmailAttribute = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'User Home Folder Naming Rule')"
|
||||
:value="ldapConfigProxy.homeFolderNamingRule"
|
||||
:helper-text="t('user_ldap', 'Leave empty for username (default). Otherwise, specify an LDAP/AD attribute.')"
|
||||
@change.native="(event) => ldapConfigProxy.homeFolderNamingRule = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.homeFolderNamingRule = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', '`$home` Placeholder Field')"
|
||||
:value="ldapConfigProxy.ldapExtStorageHomeAttribute"
|
||||
:helper-text="t('user_ldap', '$home in an external storage configuration will be replaced with the value of the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapExtStorageHomeAttribute = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapExtStorageHomeAttribute = event.target.value" />
|
||||
</details>
|
||||
|
||||
<details name="ldap-wizard__advanced__section" class="ldap-wizard__advanced__section">
|
||||
|
|
@ -196,70 +196,70 @@
|
|||
:label="t('user_ldap', 'Phone Field')"
|
||||
:value="ldapConfigProxy.ldapAttributePhone"
|
||||
:helper-text="t('user_ldap', 'User profile Phone will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributePhone = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributePhone = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Website Field')"
|
||||
:value="ldapConfigProxy.ldapAttributeWebsite"
|
||||
:helper-text="t('user_ldap', 'User profile Website will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributeWebsite = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributeWebsite = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Address Field')"
|
||||
:value="ldapConfigProxy.ldapAttributeAddress"
|
||||
:helper-text="t('user_ldap', 'User profile Address will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributeAddress = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributeAddress = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Twitter Field')"
|
||||
:value="ldapConfigProxy.ldapAttributeTwitter"
|
||||
:helper-text="t('user_ldap', 'User profile Twitter will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributeTwitter = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributeTwitter = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Fediverse Field')"
|
||||
:value="ldapConfigProxy.ldapAttributeFediverse"
|
||||
:helper-text="t('user_ldap', 'User profile Fediverse will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributeFediverse = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributeFediverse = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Organisation Field')"
|
||||
:value="ldapConfigProxy.ldapAttributeOrganisation"
|
||||
:helper-text="t('user_ldap', 'User profile Organisation will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributeOrganisation = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributeOrganisation = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Role Field')"
|
||||
:value="ldapConfigProxy.ldapAttributeRole"
|
||||
:helper-text="t('user_ldap', 'User profile Role will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributeRole = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributeRole = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Headline Field')"
|
||||
:value="ldapConfigProxy.ldapAttributeHeadline"
|
||||
:helper-text="t('user_ldap', 'User profile Headline will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributeHeadline = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributeHeadline = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Biography Field')"
|
||||
:value="ldapConfigProxy.ldapAttributeBiography"
|
||||
:helper-text="t('user_ldap', 'User profile Biography will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributeBiography = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributeBiography = event.target.value" />
|
||||
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Birthdate Field')"
|
||||
:value="ldapConfigProxy.ldapAttributeBirthDate"
|
||||
:helper-text="t('user_ldap', 'User profile Date of birth will be set from the specified attribute')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapAttributeBirthDate = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapAttributeBirthDate = event.target.value" />
|
||||
</details>
|
||||
</fieldset>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -14,8 +14,7 @@
|
|||
autocomplete="off"
|
||||
:label="t('user_ldap', 'Internal Username Attribute:')"
|
||||
:value="ldapConfigProxy.ldapExpertUsernameAttr"
|
||||
:label-outside="true"
|
||||
@change.native="(event) => ldapConfigProxy.ldapExpertUsernameAttr = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapExpertUsernameAttr = event.target.value" />
|
||||
</div>
|
||||
|
||||
<div class="ldap-wizard__expert__line">
|
||||
|
|
@ -28,12 +27,12 @@
|
|||
autocomplete="off"
|
||||
:label="t('user_ldap', 'UUID Attribute for Users')"
|
||||
:value="ldapConfigProxy.ldapExpertUUIDUserAttr"
|
||||
@change.native="(event) => ldapConfigProxy.ldapExpertUUIDUserAttr = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapExpertUUIDUserAttr = event.target.value" />
|
||||
<NcTextField
|
||||
autocomplete="off"
|
||||
:label="t('user_ldap', 'UUID Attribute for Groups')"
|
||||
:value="ldapConfigProxy.ldapExpertUUIDGroupAttr"
|
||||
@change.native="(event) => ldapConfigProxy.ldapExpertUUIDGroupAttr = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapExpertUUIDGroupAttr = event.target.value" />
|
||||
</div>
|
||||
</fieldset>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -28,14 +28,14 @@
|
|||
|
||||
<div class="ldap-wizard__groups__line ldap-wizard__groups__groups-filter">
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="ldapConfigProxy.ldapGroupFilterMode === '1'"
|
||||
@update:checked="toggleFilterMode">
|
||||
:model-value="ldapConfigProxy.ldapGroupFilterMode === '1'"
|
||||
@update:model-value="toggleFilterMode">
|
||||
{{ t('user_ldap', 'Edit LDAP Query') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
<div v-if="ldapConfigProxy.ldapGroupFilterMode === '1'">
|
||||
<NcTextArea
|
||||
:value.sync="ldapConfigProxy.ldapGroupFilter"
|
||||
v-model="ldapConfigProxy.ldapGroupFilter"
|
||||
:placeholder="t('user_ldap', 'Edit LDAP Query')"
|
||||
:helper-text="t('user_ldap', 'The filter specifies which LDAP groups shall have access to the {instanceName} instance.', { instanceName })" />
|
||||
</div>
|
||||
|
|
@ -96,10 +96,10 @@ const ldapGroupFilterGroups = computed({
|
|||
*/
|
||||
async function init() {
|
||||
const response1 = await callWizard('determineGroupObjectClasses', props.configId)
|
||||
groupObjectClasses.value = response1.options!.ldap_groupfilter_objectclass
|
||||
groupObjectClasses.value = response1.options?.ldap_groupfilter_objectclass ?? []
|
||||
|
||||
const response2 = await callWizard('determineGroupsForGroups', props.configId)
|
||||
groupGroups.value = response2.options!.ldap_groupfilter_groups
|
||||
groupGroups.value = response2.options?.ldap_groupfilter_groups ?? []
|
||||
}
|
||||
|
||||
init()
|
||||
|
|
@ -110,7 +110,7 @@ init()
|
|||
async function getGroupFilter() {
|
||||
const response = await callWizard('getGroupFilter', props.configId)
|
||||
// Not using ldapConfig to avoid triggering the save logic.
|
||||
ldapConfigs.value[props.configId].ldapGroupFilter = response.changes!.ldap_group_filter as string
|
||||
ldapConfigs.value[props.configId]!.ldapGroupFilter = (response.changes?.ldap_group_filter as string | undefined) ?? ''
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -21,16 +21,16 @@
|
|||
<div class="ldap-wizard__login__line ldap-wizard__login__user-login-filter">
|
||||
<NcCheckboxRadioSwitch
|
||||
:model-value="ldapLoginFilterMode"
|
||||
@update:checked="toggleFilterMode">
|
||||
@update:model-value="toggleFilterMode">
|
||||
{{ t('user_ldap', 'Edit LDAP Query') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
<NcTextArea
|
||||
v-if="ldapLoginFilterMode"
|
||||
:value="ldapConfigProxy.ldapLoginFilter"
|
||||
:model-value="ldapConfigProxy.ldapLoginFilter"
|
||||
:placeholder="t('user_ldap', 'Edit LDAP Query')"
|
||||
:helper-text="t('user_ldap', 'Defines the filter to apply, when login is attempted. `%%uid` replaces the username in the login action. Example: `uid=%%uid`')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapLoginFilter = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapLoginFilter = event.target.value" />
|
||||
<div v-else>
|
||||
<span>{{ t('user_ldap', 'LDAP Filter:') }}</span>
|
||||
<code>{{ ldapConfigProxy.ldapLoginFilter }}</code>
|
||||
|
|
@ -41,7 +41,7 @@
|
|||
<NcTextField
|
||||
v-model="testUsername"
|
||||
:helper-text="t('user_ldap', 'Attempts to receive a DN for the given login name and the current login filter')"
|
||||
:placeholder="t('user_ldap', 'Test Login name')"
|
||||
:label="t('user_ldap', 'Test Login name')"
|
||||
autocomplete="off" />
|
||||
|
||||
<NcButton
|
||||
|
|
@ -90,7 +90,7 @@ const filteredLoginFilterOptions = computed(() => loginFilterOptions.value.filte
|
|||
*/
|
||||
async function init() {
|
||||
const response = await callWizard('determineAttributes', props.configId)
|
||||
loginFilterOptions.value = response.options!.ldap_loginfilter_attributes
|
||||
loginFilterOptions.value = response.options?.ldap_loginfilter_attributes ?? []
|
||||
}
|
||||
|
||||
init()
|
||||
|
|
@ -102,7 +102,7 @@ async function getUserLoginFilter() {
|
|||
if (ldapConfigProxy.value.ldapLoginFilterMode === '0') {
|
||||
const response = await callWizard('getUserLoginFilter', props.configId)
|
||||
// Not using ldapConfig to avoid triggering the save logic.
|
||||
ldapConfigs.value[props.configId].ldapLoginFilter = response.changes!.ldap_login_filter as string
|
||||
ldapConfigs.value[props.configId]!.ldapLoginFilter = (response.changes?.ldap_login_filter as string | undefined) ?? ''
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@
|
|||
<fieldset class="ldap-wizard__server">
|
||||
<div class="ldap-wizard__server__line">
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="ldapConfigProxy.ldapConfigurationActive === '1'"
|
||||
:model-value="ldapConfigProxy.ldapConfigurationActive === '1'"
|
||||
type="switch"
|
||||
:aria-label="t('user_ldap', 'When unchecked, this configuration will be skipped.')"
|
||||
@update:checked="ldapConfigProxy.ldapConfigurationActive = $event ? '1' : '0'">
|
||||
@update:model-value="ldapConfigProxy.ldapConfigurationActive = $event ? '1' : '0'">
|
||||
{{ t('user_ldap', 'Configuration Active') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
|
|
@ -33,18 +33,20 @@
|
|||
|
||||
<div class="ldap-wizard__server__line">
|
||||
<NcTextField
|
||||
:value="ldapConfigProxy.ldapHost"
|
||||
:model-value="ldapConfigProxy.ldapHost"
|
||||
:helper-text="t('user_ldap', 'You can omit the protocol, unless you require SSL. If so, start with ldaps://')"
|
||||
:placeholder="t('user_ldap', 'Host')"
|
||||
:label="t('user_ldap', 'Host')"
|
||||
:placeholder="t('user_ldap', 'ldaps://localhost')"
|
||||
autocomplete="off"
|
||||
@change.native="(event) => ldapConfigProxy.ldapHost = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapHost = event.target.value" />
|
||||
<div class="ldap-wizard__server__host__port">
|
||||
<NcTextField
|
||||
:value="ldapConfigProxy.ldapPort"
|
||||
:placeholder="t('user_ldap', 'Port')"
|
||||
:model-value="ldapConfigProxy.ldapPort"
|
||||
:label="t('user_ldap', 'Port')"
|
||||
:placeholder="t('user_ldap', '389')"
|
||||
type="number"
|
||||
autocomplete="off"
|
||||
@change.native="(event) => ldapConfigProxy.ldapPort = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapPort = event.target.value" />
|
||||
<NcButton :disabled="loadingGuessPortAndTLS" @click="guessPortAndTLS">
|
||||
{{ t('user_ldap', 'Detect Port') }}
|
||||
</NcButton>
|
||||
|
|
@ -54,8 +56,9 @@
|
|||
<div class="ldap-wizard__server__line">
|
||||
<NcTextField
|
||||
v-model="localLdapAgentName"
|
||||
:helper-text="t('user_ldap', 'The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty.')"
|
||||
:placeholder="t('user_ldap', 'User DN')"
|
||||
:helper-text="t('user_ldap', 'The DN of the client user with which the bind shall be done. For anonymous access, leave DN and Password empty.')"
|
||||
:label="t('user_ldap', 'User DN')"
|
||||
:placeholder="t('user_ldap', 'uid=agent,dc=example,dc=com')"
|
||||
autocomplete="off" />
|
||||
</div>
|
||||
|
||||
|
|
@ -64,7 +67,7 @@
|
|||
v-model="localLdapAgentPassword"
|
||||
type="password"
|
||||
:helper-text="t('user_ldap', 'For anonymous access, leave DN and Password empty.')"
|
||||
:placeholder="t('user_ldap', 'Password')"
|
||||
:label="t('user_ldap', 'Password')"
|
||||
autocomplete="off" />
|
||||
|
||||
<NcButton :disabled="!needsToSaveCredentials" @click="updateCredentials">
|
||||
|
|
@ -75,10 +78,10 @@
|
|||
<div class="ldap-wizard__server__line">
|
||||
<NcTextArea
|
||||
:label="t('user_ldap', 'Base DN')"
|
||||
:value="ldapConfigProxy.ldapBase"
|
||||
:model-value="ldapConfigProxy.ldapBase"
|
||||
:placeholder="t('user_ldap', 'One Base DN per line')"
|
||||
:helper-text="t('user_ldap', 'You can specify Base DN for users and groups in the Advanced tab')"
|
||||
@change.native="(event) => ldapConfigProxy.ldapBase = event.target.value" />
|
||||
@change="(event) => ldapConfigProxy.ldapBase = event.target.value" />
|
||||
|
||||
<NcButton :disabled="loadingGuessBaseDN" @click="guessBaseDN">
|
||||
{{ t('user_ldap', 'Detect Base DN') }}
|
||||
|
|
|
|||
|
|
@ -29,14 +29,14 @@
|
|||
|
||||
<div class="ldap-wizard__users__line ldap-wizard__users__user-filter">
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="ldapConfigProxy.ldapUserFilterMode === '1'"
|
||||
@update:checked="toggleFilterMode">
|
||||
:model-value="ldapConfigProxy.ldapUserFilterMode === '1'"
|
||||
@update:model-value="toggleFilterMode">
|
||||
{{ t('user_ldap', 'Edit LDAP Query') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
<div v-if="ldapConfigProxy.ldapUserFilterMode === '1'">
|
||||
<NcTextArea
|
||||
:value.sync="ldapConfigProxy.ldapUserFilter"
|
||||
v-model="ldapConfigProxy.ldapUserFilter"
|
||||
:placeholder="t('user_ldap', 'Edit LDAP Query')"
|
||||
:helper-text="t('user_ldap', 'The filter specifies which LDAP users shall have access to the {instanceName} instance.', { instanceName })" />
|
||||
</div>
|
||||
|
|
@ -97,14 +97,14 @@ const ldapUserFilterGroups = computed({
|
|||
*/
|
||||
async function init() {
|
||||
const response1 = await callWizard('determineUserObjectClasses', props.configId)
|
||||
userObjectClasses.value = response1.options!.ldap_userfilter_objectclass
|
||||
userObjectClasses.value = response1.options?.ldap_userfilter_objectclass ?? []
|
||||
// Not using ldapConfig to avoid triggering the save logic.
|
||||
ldapConfigs.value[props.configId].ldapUserFilterObjectclass = response1.changes!.ldap_userfilter_objectclass?.join(';') ?? ''
|
||||
ldapConfigs.value[props.configId]!.ldapUserFilterObjectclass = (response1.changes?.ldap_userfilter_objectclass as string[] | undefined)?.join(';') ?? ''
|
||||
|
||||
const response2 = await callWizard('determineGroupsForUsers', props.configId)
|
||||
userGroups.value = response2.options!.ldap_userfilter_groups
|
||||
userGroups.value = response2.options?.ldap_userfilter_groups ?? []
|
||||
// Not using ldapConfig to avoid triggering the save logic.
|
||||
ldapConfigs.value[props.configId].ldapUserFilterGroups = response2.changes!.ldap_userfilter_groups?.join(';') ?? ''
|
||||
ldapConfigs.value[props.configId]!.ldapUserFilterGroups = (response2.changes?.ldap_userfilter_groups as string[] | undefined)?.join(';') ?? ''
|
||||
}
|
||||
|
||||
init()
|
||||
|
|
@ -116,11 +116,11 @@ async function reloadFilters() {
|
|||
if (ldapConfigProxy.value.ldapUserFilterMode === '0') {
|
||||
const response1 = await callWizard('getUserListFilter', props.configId)
|
||||
// Not using ldapConfig to avoid triggering the save logic.
|
||||
ldapConfigs.value[props.configId].ldapUserFilter = response1.changes!.ldap_userlist_filter as string
|
||||
ldapConfigs.value[props.configId]!.ldapUserFilter = (response1.changes?.ldap_userlist_filter as string | undefined) ?? ''
|
||||
|
||||
const response2 = await callWizard('getUserLoginFilter', props.configId)
|
||||
// Not using ldapConfig to avoid triggering the save logic.
|
||||
ldapConfigs.value[props.configId].ldapLoginFilter = response2.changes!.ldap_userlogin_filter as string
|
||||
ldapConfigs.value[props.configId]!.ldapLoginFilter = (response2.changes?.ldap_userlogin_filter as string | undefined) ?? ''
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
import { getCSPNonce } from '@nextcloud/auth'
|
||||
import { PiniaVuePlugin } from 'pinia'
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import Vue from 'vue'
|
||||
import LDAPSettingsApp from './LDAPSettingsApp.vue'
|
||||
import { pinia } from './store/index.ts'
|
||||
|
||||
__webpack_nonce__ = getCSPNonce()
|
||||
|
||||
// Init Pinia store
|
||||
Vue.use(PiniaVuePlugin)
|
||||
|
||||
const LDAPSettingsAppVue = Vue.extend(LDAPSettingsApp)
|
||||
new LDAPSettingsAppVue({
|
||||
name: 'LDAPSettingsApp',
|
||||
pinia,
|
||||
}).$mount('#content-ldap-settings')
|
||||
|
|
@ -74,7 +74,7 @@ export async function getConfig(configId: string): Promise<LDAPConfig> {
|
|||
* @param configId
|
||||
* @param config
|
||||
*/
|
||||
export async function updateConfig(configId: string, config: LDAPConfig): Promise<LDAPConfig> {
|
||||
export async function updateConfig(configId: string, config: Partial<LDAPConfig>): Promise<LDAPConfig> {
|
||||
const response = await axios.put(
|
||||
generateOcsUrl('apps/user_ldap/api/v1/config/{configId}', { configId }),
|
||||
{ configData: config },
|
||||
|
|
@ -142,7 +142,7 @@ export async function clearMapping(subject: 'user' | 'group') {
|
|||
{ subject },
|
||||
) as AxiosResponse<OCSResponse>
|
||||
|
||||
logger.debug('Cleared mapping', { subject, params, response })
|
||||
logger.debug('Cleared mapping', { subject, response })
|
||||
showSuccess(t('user_ldap', 'Mapping cleared'))
|
||||
return true
|
||||
} catch (error) {
|
||||
|
|
|
|||
11
apps/user_ldap/src/settings-admin.ts
Normal file
11
apps/user_ldap/src/settings-admin.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import { createApp } from 'vue'
|
||||
import LDAPSettingsApp from './LDAPSettingsApp.vue'
|
||||
import { pinia } from './store/index.ts'
|
||||
|
||||
const app = createApp(LDAPSettingsApp)
|
||||
app.use(pinia)
|
||||
app.mount('#content-ldap-settings')
|
||||
|
|
@ -7,13 +7,13 @@ import type { LDAPConfig } from '../models/index.ts'
|
|||
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
import { defineStore } from 'pinia'
|
||||
import Vue, { computed, ref } from 'vue'
|
||||
import { computed, ref } from 'vue'
|
||||
import { copyConfig, createConfig, deleteConfig, getConfig, updateConfig } from '../services/ldapConfigService.ts'
|
||||
|
||||
export const useLDAPConfigsStore = defineStore('ldap-configs', () => {
|
||||
const ldapConfigs = ref(loadState('user_ldap', 'ldapConfigs') as Record<string, LDAPConfig>)
|
||||
const selectedConfigId = ref<string>(Object.keys(ldapConfigs.value)[0])
|
||||
const selectedConfig = computed(() => ldapConfigs.value[selectedConfigId.value])
|
||||
const selectedConfigId = ref<string | undefined>(Object.keys(ldapConfigs.value)[0])
|
||||
const selectedConfig = computed(() => selectedConfigId.value === undefined ? undefined : ldapConfigs.value[selectedConfigId.value])
|
||||
const updatingConfig = ref(0)
|
||||
|
||||
/**
|
||||
|
|
@ -22,6 +22,10 @@ export const useLDAPConfigsStore = defineStore('ldap-configs', () => {
|
|||
* @param postSetHooks
|
||||
*/
|
||||
function getConfigProxy<J>(configId: string, postSetHooks: Partial<Record<keyof LDAPConfig, (value: J) => void>> = {}) {
|
||||
if (ldapConfigs.value[configId] === undefined) {
|
||||
throw new Error(`Config with id ${configId} does not exist`)
|
||||
}
|
||||
|
||||
return new Proxy(ldapConfigs.value[configId], {
|
||||
get(target, property) {
|
||||
return target[property]
|
||||
|
|
@ -49,7 +53,7 @@ export const useLDAPConfigsStore = defineStore('ldap-configs', () => {
|
|||
*/
|
||||
async function create() {
|
||||
const configId = await createConfig()
|
||||
Vue.set(ldapConfigs.value, configId, await getConfig(configId))
|
||||
ldapConfigs.value[configId] = await getConfig(configId)
|
||||
selectedConfigId.value = configId
|
||||
return configId
|
||||
}
|
||||
|
|
@ -59,8 +63,13 @@ export const useLDAPConfigsStore = defineStore('ldap-configs', () => {
|
|||
* @param fromConfigId
|
||||
*/
|
||||
async function _copyConfig(fromConfigId: string) {
|
||||
if (ldapConfigs.value[fromConfigId] === undefined) {
|
||||
throw new Error(`Config with id ${fromConfigId} does not exist`)
|
||||
}
|
||||
|
||||
const configId = await copyConfig(fromConfigId)
|
||||
Vue.set(ldapConfigs.value, configId, { ...ldapConfigs.value[fromConfigId] })
|
||||
|
||||
ldapConfigs.value[configId] = { ...ldapConfigs.value[fromConfigId] }
|
||||
selectedConfigId.value = configId
|
||||
return configId
|
||||
}
|
||||
|
|
@ -72,7 +81,7 @@ export const useLDAPConfigsStore = defineStore('ldap-configs', () => {
|
|||
async function removeConfig(configId: string) {
|
||||
const result = await deleteConfig(configId)
|
||||
if (result === true) {
|
||||
Vue.delete(ldapConfigs.value, configId)
|
||||
delete ldapConfigs.value[configId]
|
||||
}
|
||||
|
||||
selectedConfigId.value = Object.keys(ldapConfigs.value)[0] ?? await create()
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@
|
|||
<NcCheckboxRadioSwitch
|
||||
v-for="(tabLabel, tabId) in tabs"
|
||||
:key="tabId"
|
||||
v-model="selectedTab"
|
||||
:button-variant="true"
|
||||
:checked.sync="selectedTab"
|
||||
:value="tabId"
|
||||
type="radio"
|
||||
:disabled="tabId !== 'server' && !selectedConfigHasServerInfo"
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-FileCopyrightText: 2013-2017 ownCloud, Inc.
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
?>
|
||||
<div class="ldapSettingControls">
|
||||
<button type="button" class="ldap_action_test_connection" name="ldap_action_test_connection">
|
||||
<?php p($l->t('Test Configuration'));?>
|
||||
</button>
|
||||
<a href="<?php p(link_to_docs('admin-ldap')); ?>"
|
||||
target="_blank" rel="noreferrer noopener">
|
||||
<img src="<?php print_unescaped(image_path('core', 'actions/info.svg')); ?>"
|
||||
style="height:1.75ex" />
|
||||
<?php p($l->t('Help'));?>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-FileCopyrightText: 2013-2015 ownCloud, Inc.
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
?>
|
||||
<fieldset id="ldapWizard4">
|
||||
<div>
|
||||
<p>
|
||||
<?php p($l->t('Groups meeting these criteria are available in %s:', [$theme->getName()]));?>
|
||||
</p>
|
||||
<p>
|
||||
<label for="ldap_groupfilter_objectclass">
|
||||
<?php p($l->t('Only these object classes:'));?>
|
||||
</label>
|
||||
|
||||
<select id="ldap_groupfilter_objectclass" multiple="multiple"
|
||||
name="ldap_groupfilter_objectclass" class="multiSelectPlugin">
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<label for="ldap_groupfilter_groups">
|
||||
<?php p($l->t('Only from these groups:'));?>
|
||||
</label>
|
||||
|
||||
<input type="text" class="ldapManyGroupsSupport ldapManyGroupsSearch hidden" placeholder="<?php p($l->t('Search groups'));?>" />
|
||||
|
||||
<select id="ldap_groupfilter_groups" multiple="multiple"
|
||||
name="ldap_groupfilter_groups" class="multiSelectPlugin">
|
||||
</select>
|
||||
|
||||
</p>
|
||||
<p class="ldapManyGroupsSupport hidden">
|
||||
<label></label>
|
||||
<select class="ldapGroupList ldapGroupListAvailable" multiple="multiple"
|
||||
aria-describedby="ldapGroupListAvailable_instructions"
|
||||
title="<?php p($l->t('Available groups'));?>"></select>
|
||||
<p class="hidden-visually" id="ldapGroupListAvailable_instructions">
|
||||
<?php p($l->t('Available groups'));?>
|
||||
</p>
|
||||
<span class="buttonSpan">
|
||||
<button class="ldapGroupListSelect" type="button">></button><br/>
|
||||
<button class="ldapGroupListDeselect" type="button"><</button>
|
||||
</span>
|
||||
<select class="ldapGroupList ldapGroupListSelected" multiple="multiple"
|
||||
aria-describedby="ldapGroupListSelected_instructions"
|
||||
title="<?php p($l->t('Selected groups'));?>"></select>
|
||||
<p class="hidden-visually" id="ldapGroupListSelected_instructions">
|
||||
<?php p($l->t('Selected groups'));?>
|
||||
</p>
|
||||
</p>
|
||||
<p>
|
||||
<label><a id='toggleRawGroupFilter' class='ldapToggle'>↓ <?php p($l->t('Edit LDAP Query'));?></a></label>
|
||||
</p>
|
||||
<p id="ldapReadOnlyGroupFilterContainer" class="hidden ldapReadOnlyFilterContainer">
|
||||
<label><?php p($l->t('LDAP Filter:'));?></label>
|
||||
<span class="ldapFilterReadOnlyElement ldapInputColElement"></span>
|
||||
</p>
|
||||
<p id="rawGroupFilterContainer" class="invisible">
|
||||
<textarea type="text" id="ldap_group_filter" name="ldap_group_filter"
|
||||
placeholder="<?php p($l->t('Edit LDAP Query'));?>"
|
||||
aria-describedby="rawGroupFilterContainer_instructions"
|
||||
title="<?php p($l->t('The filter specifies which LDAP groups shall have access to the %s instance.', [$theme->getName()]));?>">
|
||||
</textarea>
|
||||
<p class="hidden-visually" id="rawGroupFilterContainer_instructions">
|
||||
<?php p($l->t('The filter specifies which LDAP groups shall have access to the %s instance.', [$theme->getName()]));?>
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
<div class="ldapWizardInfo invisible"> </div>
|
||||
</p>
|
||||
<p class="ldap_count">
|
||||
<button class="ldapGetEntryCount ldapGetGroupCount" name="ldapGetEntryCount" type="button">
|
||||
<?php p($l->t('Verify settings and count the groups'));?>
|
||||
</button>
|
||||
<span id="ldap_group_count"></span>
|
||||
</p>
|
||||
<?php print_unescaped($_['wizardControls']); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-FileCopyrightText: 2013-2017 ownCloud, Inc.
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
?>
|
||||
<fieldset id="ldapWizard3">
|
||||
<div>
|
||||
<p>
|
||||
<?php p($l->t('When logging in, %s will find the user based on the following attributes:', [$theme->getName()]));?>
|
||||
</p>
|
||||
<p>
|
||||
<label for="ldap_loginfilter_username">
|
||||
<?php p($l->t('LDAP/AD Username:'));?>
|
||||
</label>
|
||||
|
||||
<input type="checkbox" id="ldap_loginfilter_username"
|
||||
aria-describedby="ldap_loginfilter_username_instructions"
|
||||
title="<?php p($l->t('Allows login against the LDAP/AD username, which is either "uid" or "sAMAccountName" and will be detected.'));?>"
|
||||
name="ldap_loginfilter_username" value="1" />
|
||||
<p class="hidden-visually" id="ldap_loginfilter_username_instructions">
|
||||
<?php p($l->t('Allows login against the LDAP/AD username, which is either "uid" or "sAMAccountName" and will be detected.'));?>
|
||||
</p>
|
||||
</p>
|
||||
<p>
|
||||
<label for="ldap_loginfilter_email">
|
||||
<?php p($l->t('LDAP/AD Email Address:'));?>
|
||||
</label>
|
||||
|
||||
<input type="checkbox" id="ldap_loginfilter_email"
|
||||
title="<?php p($l->t('Allows login against an email attribute. "mail" and "mailPrimaryAddress" allowed.'));?>"
|
||||
aria-describedby="ldap_loginfilter_email_instructions"
|
||||
name="ldap_loginfilter_email" value="1" />
|
||||
<p class="hidden-visually" id="ldap_loginfilter_email_instructions">
|
||||
<?php p($l->t('Allows login against an email attribute. "mail" and "mailPrimaryAddress" allowed.'));?>
|
||||
</p>
|
||||
</p>
|
||||
<p>
|
||||
<label for="ldap_loginfilter_attributes">
|
||||
<?php p($l->t('Other Attributes:'));?>
|
||||
</label>
|
||||
|
||||
<select id="ldap_loginfilter_attributes" multiple="multiple"
|
||||
name="ldap_loginfilter_attributes" class="multiSelectPlugin">
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<label><a id='toggleRawLoginFilter' class='ldapToggle'>↓ <?php p($l->t('Edit LDAP Query'));?></a></label>
|
||||
</p>
|
||||
<p id="ldapReadOnlyLoginFilterContainer" class="hidden ldapReadOnlyFilterContainer">
|
||||
<label><?php p($l->t('LDAP Filter:'));?></label>
|
||||
<span class="ldapFilterReadOnlyElement ldapInputColElement"></span>
|
||||
</p>
|
||||
<p id="rawLoginFilterContainer" class="invisible">
|
||||
<textarea type="text" id="ldap_login_filter" name="ldap_login_filter"
|
||||
class="ldapFilterInputElement"
|
||||
placeholder="<?php p($l->t('Edit LDAP Query'));?>"
|
||||
aria-describedby="ldap_login_filter_instructions"
|
||||
title="<?php p($l->t('Defines the filter to apply, when login is attempted. "%%uid" replaces the username in the login action. Example: "uid=%%uid"'));?>">
|
||||
</textarea>
|
||||
<p class="hidden-visually" id="ldap_login_filter_instructions">
|
||||
<?php p($l->t('Defines the filter to apply, when login is attempted. "%%uid" replaces the username in the login action. Example: "uid=%%uid"'));?>
|
||||
</p>
|
||||
</p>
|
||||
<p>
|
||||
<div class="ldapWizardInfo invisible"> </div>
|
||||
</p>
|
||||
<p class="ldap_verify">
|
||||
<input type="text" id="ldap_test_loginname" name="ldap_test_loginname"
|
||||
placeholder="<?php p($l->t('Test Loginname'));?>"
|
||||
class="ldapVerifyInput"
|
||||
aria-describedby="ldap_test_loginname_instructions"
|
||||
title="<?php p($l->t('Attempts to receive a DN for the given loginname and the current login filter'));?>"/>
|
||||
<p class="hidden-visually" id="ldap_test_loginname_instructions">
|
||||
<?php p($l->t('Attempts to receive a DN for the given loginname and the current login filter'));?>
|
||||
</p>
|
||||
<button class="ldapVerifyLoginName" name="ldapTestLoginSettings" type="button" disabled="disabled">
|
||||
<?php p($l->t('Verify settings'));?>
|
||||
</button>
|
||||
</p>
|
||||
<?php print_unescaped($_['wizardControls']); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
@ -1,137 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-FileCopyrightText: 2013-2017 ownCloud, Inc.
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
?>
|
||||
<fieldset id="ldapWizard1">
|
||||
<p>
|
||||
<select id="ldap_serverconfig_chooser" name="ldap_serverconfig_chooser">
|
||||
<?php
|
||||
$i = 1;
|
||||
$sel = ' selected';
|
||||
foreach ($_['serverConfigurationPrefixes'] as $prefix) {
|
||||
?>
|
||||
<option value="<?php p($prefix); ?>"<?php p($sel);
|
||||
$sel = ''; ?>><?php p($l->t('%s. Server:', [$i++])); ?> <?php p(' ' . $_['serverConfigurationHosts'][$prefix]); ?></option>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<button type="button" id="ldap_action_add_configuration"
|
||||
aria-describedby="ldap_action_add_configuration_instructions"
|
||||
name="ldap_action_add_configuration" class="icon-add icon-default-style"
|
||||
title="<?php p($l->t('Add a new configuration'));?>"> </button>
|
||||
<p class="hidden-visually" id="ldap_action_add_configuration_instructions">
|
||||
<?php p($l->t('Add a new configuration'));?>
|
||||
</p>
|
||||
<button type="button" id="ldap_action_copy_configuration"
|
||||
name="ldap_action_copy_configuration"
|
||||
aria-describedby="ldap_action_copy_configuration_instructions"
|
||||
class="ldapIconCopy icon-default-style"
|
||||
title="<?php p($l->t('Copy current configuration into new directory binding'));?>"> </button>
|
||||
<p class="hidden-visually" id="ldap_action_copy_configuration_instructions">
|
||||
<?php p($l->t('Copy current configuration into new directory binding'));?>
|
||||
</p>
|
||||
<button type="button" id="ldap_action_delete_configuration"
|
||||
aria-describedby="ldap_action_delete_configuration_instructions"
|
||||
name="ldap_action_delete_configuration" class="icon-delete icon-default-style"
|
||||
title="<?php p($l->t('Delete the current configuration'));?>"> </button>
|
||||
<p class="hidden-visually" id="ldap_action_delete_configuration_instructions">
|
||||
<?php p($l->t('Delete the current configuration'));?>
|
||||
</p>
|
||||
</p>
|
||||
|
||||
<div class="hostPortCombinator">
|
||||
<div class="tablerow">
|
||||
<div class="tablecell">
|
||||
<div class="table">
|
||||
<input type="text" class="host" id="ldap_host"
|
||||
name="ldap_host"
|
||||
aria-describedby="ldap_host_instructions"
|
||||
placeholder="<?php p($l->t('Host'));?>"
|
||||
title="<?php p($l->t('You can omit the protocol, unless you require SSL. If so, start with ldaps://'));?>"
|
||||
/>
|
||||
<p class="hidden-visually" id="ldap_host_instructions">
|
||||
<?php p($l->t('You can omit the protocol, unless you require SSL. If so, start with ldaps://'));?>
|
||||
</p>
|
||||
<span class="hostPortCombinatorSpan">
|
||||
<input type="number" id="ldap_port" name="ldap_port"
|
||||
placeholder="<?php p($l->t('Port'));?>" />
|
||||
<button class="ldapDetectPort" name="ldapDetectPort" type="button">
|
||||
<?php p($l->t('Detect Port'));?>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tablerow"> </div>
|
||||
<div class="tablerow">
|
||||
<input type="text" id="ldap_dn" name="ldap_dn"
|
||||
class="tablecell"
|
||||
aria-describedby="ldap_dn_instructions"
|
||||
placeholder="<?php p($l->t('User DN'));?>" autocomplete="off"
|
||||
title="<?php p($l->t('The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty.'));?>"
|
||||
/>
|
||||
<p class="hidden-visually" id="ldap_dn_instructions">
|
||||
<?php p($l->t('The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty.'));?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="tablerow">
|
||||
<input type="password" id="ldap_agent_password"
|
||||
class="tablecell" name="ldap_agent_password"
|
||||
aria-describedby="ldap_agent_password_instructions"
|
||||
placeholder="<?php p($l->t('Password'));?>" autocomplete="off"
|
||||
title="<?php p($l->t('For anonymous access, leave DN and Password empty.'));?>"
|
||||
/>
|
||||
<p class="hidden-visually" id="ldap_agent_password_instructions">
|
||||
<?php p($l->t('For anonymous access, leave DN and Password empty.'));?>
|
||||
</p>
|
||||
<button class="ldapSaveAgentCredentials" name="ldapSaveAgentCredentials" type="button">
|
||||
<?php p($l->t('Save Credentials'));?>
|
||||
</button>
|
||||
</div>
|
||||
<div class="tablerow"> </div>
|
||||
|
||||
<div class="tablerow">
|
||||
<textarea id="ldap_base" name="ldap_base"
|
||||
class="tablecell"
|
||||
aria-describedby="ldap_base_instructions"
|
||||
placeholder="<?php p($l->t('One Base DN per line'));?>"
|
||||
title="<?php p($l->t('You can specify Base DN for users and groups in the Advanced tab'));?>">
|
||||
</textarea>
|
||||
<p class="hidden-visually" id="ldap_base_instructions">
|
||||
<?php p($l->t('You can specify Base DN for users and groups in the Advanced tab'));?>
|
||||
</p>
|
||||
<button class="ldapDetectBase" name="ldapDetectBase" type="button">
|
||||
<?php p($l->t('Detect Base DN'));?>
|
||||
</button>
|
||||
<button class="ldapTestBase" name="ldapTestBase" type="button">
|
||||
<?php p($l->t('Test Base DN'));?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="tablerow left">
|
||||
<input type="checkbox" id="ldap_experienced_admin" value="1"
|
||||
name="ldap_experienced_admin" class="tablecell"
|
||||
aria-describedby="ldap_experienced_admin_instructions"
|
||||
title="<?php p($l->t('Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge.'));?>"
|
||||
/>
|
||||
<p class="hidden-visually" id="ldap_experienced_admin_instructions">
|
||||
<?php p($l->t('Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge.'));?>
|
||||
</p>
|
||||
<label for="ldap_experienced_admin" class="tablecell">
|
||||
<?php p($l->t('Manually enter LDAP filters (recommended for large directories)'));?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="tablerow">
|
||||
<div class="tablecell ldapWizardInfo invisible">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php print_unescaped($_['wizardControls']); ?>
|
||||
</fieldset>
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-FileCopyrightText: 2013-2016 ownCloud, Inc.
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
?>
|
||||
<fieldset id="ldapWizard2">
|
||||
<div>
|
||||
<p>
|
||||
<?php p($l->t('Listing and searching for users is constrained by these criteria:'));?>
|
||||
</p>
|
||||
<p>
|
||||
<label for="ldap_userfilter_objectclass">
|
||||
<?php p($l->t('Only these object classes:'));?>
|
||||
</label>
|
||||
|
||||
<select id="ldap_userfilter_objectclass" multiple="multiple"
|
||||
name="ldap_userfilter_objectclass" class="multiSelectPlugin">
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<label></label>
|
||||
<span class="ldapInputColElement"><?php p($l->t('The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin.'));?></span>
|
||||
</p>
|
||||
<p>
|
||||
<label for="ldap_userfilter_groups">
|
||||
<?php p($l->t('Only from these groups:'));?>
|
||||
</label>
|
||||
|
||||
<input type="text" class="ldapManyGroupsSupport ldapManyGroupsSearch hidden" placeholder="<?php p($l->t('Search groups'));?>" />
|
||||
|
||||
<select id="ldap_userfilter_groups" multiple="multiple"
|
||||
name="ldap_userfilter_groups" class="multiSelectPlugin">
|
||||
</select>
|
||||
</p>
|
||||
<p class="ldapManyGroupsSupport hidden">
|
||||
<label></label>
|
||||
<select class="ldapGroupList ldapGroupListAvailable" multiple="multiple"
|
||||
aria-describedby="ldapGroupListAvailable_instructions"
|
||||
title="<?php p($l->t('Available groups'));?>"></select>
|
||||
<p class="hidden-visually" id="ldapGroupListAvailable_instructions">
|
||||
<?php p($l->t('Available groups'));?>
|
||||
</p>
|
||||
<span class="buttonSpan">
|
||||
<button class="ldapGroupListSelect" type="button">></button><br/>
|
||||
<button class="ldapGroupListDeselect" type="button"><</button>
|
||||
</span>
|
||||
<select class="ldapGroupList ldapGroupListSelected" multiple="multiple"
|
||||
aria-describedby="ldapGroupListSelected_instructions"
|
||||
title="<?php p($l->t('Selected groups'));?>"></select>
|
||||
<p class="hidden-visually" id="ldapGroupListSelected_instructions">
|
||||
<?php p($l->t('Selected groups'));?>
|
||||
</p>
|
||||
</p>
|
||||
<p>
|
||||
<label><a id='toggleRawUserFilter' class='ldapToggle'>↓ <?php p($l->t('Edit LDAP Query'));?></a></label>
|
||||
</p>
|
||||
<p id="ldapReadOnlyUserFilterContainer" class="hidden ldapReadOnlyFilterContainer">
|
||||
<label><?php p($l->t('LDAP Filter:'));?></label>
|
||||
<span class="ldapFilterReadOnlyElement ldapInputColElement"></span>
|
||||
</p>
|
||||
<p id="rawUserFilterContainer">
|
||||
<textarea type="text" id="ldap_userlist_filter" name="ldap_userlist_filter"
|
||||
class="ldapFilterInputElement"
|
||||
placeholder="<?php p($l->t('Edit LDAP Query'));?>"
|
||||
aria-describedby="ldap_userlist_filter_instructions"
|
||||
title="<?php p($l->t('The filter specifies which LDAP users shall have access to the %s instance.', [$theme->getName()]));?>">
|
||||
</textarea>
|
||||
<p class="hidden-visually" id="ldap_userlist_filter_instructions">
|
||||
<?php p($l->t('The filter specifies which LDAP users shall have access to the %s instance.', [$theme->getName()]));?>
|
||||
</p>
|
||||
</p>
|
||||
<p>
|
||||
<div class="ldapWizardInfo invisible"> </div>
|
||||
</p>
|
||||
<p class="ldap_count">
|
||||
<button class="ldapGetEntryCount ldapGetUserCount" name="ldapGetEntryCount" type="button">
|
||||
<?php p($l->t('Verify settings and count users'));?>
|
||||
</button>
|
||||
<span id="ldap_user_count"></span>
|
||||
</p>
|
||||
<?php print_unescaped($_['wizardControls']); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2017-2022 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-FileCopyrightText: 2013-2017 ownCloud, Inc.
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
?>
|
||||
<div class="ldapWizardControls">
|
||||
<span class="ldap_saving hidden"><?php p($l->t('Saving'));?> <img class="wizSpinner" src="<?php p(image_path('core', 'loading.gif')); ?>"/></span>
|
||||
<span class="ldap_config_state_indicator"></span> <span class="ldap_config_state_indicator_sign"></span>
|
||||
<button class="ldap_action_back invisible" name="ldap_action_back"
|
||||
type="button">
|
||||
<?php p($l->t('Back'));?>
|
||||
</button>
|
||||
<button class="ldap_action_continue primary" name="ldap_action_continue" type="button">
|
||||
<?php p($l->t('Continue'));?>
|
||||
</button>
|
||||
<a href="<?php p(link_to_docs('admin-ldap')); ?>"
|
||||
target="_blank" rel="noreferrer noopener">
|
||||
<img src="<?php print_unescaped(image_path('core', 'actions/info.svg')); ?>"
|
||||
style="height:1.75ex" />
|
||||
<span class="ldap_grey"><?php p($l->t('Help'));?></span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -6,7 +6,6 @@
|
|||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
\OCP\Util::addScript('user_ldap', 'main', 'core');
|
||||
?>
|
||||
|
||||
<div id="content-ldap-settings"></div>
|
||||
|
|
|
|||
|
|
@ -41,14 +41,6 @@ class AdminTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testGetForm(): void {
|
||||
$prefixes = ['s01'];
|
||||
$hosts = ['s01' => ''];
|
||||
|
||||
$wControls = $this->templateManager->getTemplate('user_ldap', 'part.wizardcontrols');
|
||||
$wControls = $wControls->fetchPage();
|
||||
$sControls = $this->templateManager->getTemplate('user_ldap', 'part.settingcontrols');
|
||||
$sControls = $sControls->fetchPage();
|
||||
|
||||
$parameters = [];
|
||||
|
||||
// assign default values
|
||||
|
|
|
|||
|
|
@ -100,9 +100,6 @@ module.exports = {
|
|||
updatenotification: path.join(__dirname, 'apps/updatenotification/src', 'updatenotification.js'),
|
||||
'update-notification-legacy': path.join(__dirname, 'apps/updatenotification/src', 'update-notification-legacy.ts'),
|
||||
},
|
||||
user_ldap: {
|
||||
main: path.join(__dirname, 'apps/user_ldap/src', 'main.js'),
|
||||
},
|
||||
user_status: {
|
||||
menu: path.join(__dirname, 'apps/user_status/src', 'menu.js'),
|
||||
},
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ const modules = {
|
|||
twofactor_backupcodes: {
|
||||
'settings-personal': resolve(import.meta.dirname, 'apps/twofactor_backupcodes/src', 'settings-personal.ts'),
|
||||
},
|
||||
user_ldap: {
|
||||
'settings-admin': resolve(import.meta.dirname, 'apps/user_ldap/src', 'settings-admin.ts'),
|
||||
},
|
||||
}
|
||||
|
||||
// convert modules to modules entries prefied with the app id
|
||||
|
|
|
|||
2
dist/1078-1078.js
vendored
Normal file
2
dist/1078-1078.js
vendored
Normal file
File diff suppressed because one or more lines are too long
159
dist/1078-1078.js.license
vendored
Normal file
159
dist/1078-1078.js.license
vendored
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-License-Identifier: ISC
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: BSD-3-Clause
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: debounce developers
|
||||
SPDX-FileCopyrightText: atomiks
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
|
||||
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
|
||||
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorb.de> (http://vorb.de)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Jacob Clevenger<https://github.com/wheatjs>
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com>
|
||||
SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris)
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
SPDX-FileCopyrightText: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
|
||||
SPDX-FileCopyrightText: Anthony Fu <anthonyfu117@hotmail.com>
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @floating-ui/core
|
||||
- version: 1.7.3
|
||||
- license: MIT
|
||||
- @floating-ui/dom
|
||||
- version: 1.7.4
|
||||
- license: MIT
|
||||
- @floating-ui/utils
|
||||
- version: 0.2.10
|
||||
- license: MIT
|
||||
- @nextcloud/auth
|
||||
- version: 2.5.3
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/axios
|
||||
- version: 2.5.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.5.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/capabilities
|
||||
- version: 1.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
- license: ISC
|
||||
- @nextcloud/event-bus
|
||||
- version: 3.3.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 3.0.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/l10n
|
||||
- version: 3.4.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/logger
|
||||
- version: 3.0.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/router
|
||||
- version: 3.0.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue-select
|
||||
- version: 3.26.0
|
||||
- license: MIT
|
||||
- @nextcloud/vue
|
||||
- version: 8.34.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/components
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/core
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- axios
|
||||
- version: 1.12.2
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- charenc
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- crypt
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 2.2.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- floating-vue
|
||||
- version: 1.0.0-beta.19
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.6
|
||||
- license: MIT
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- is-buffer
|
||||
- version: 1.1.6
|
||||
- license: MIT
|
||||
- md5
|
||||
- version: 2.3.0
|
||||
- license: BSD-3-Clause
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- license: MIT
|
||||
- striptags
|
||||
- version: 3.2.0
|
||||
- license: MIT
|
||||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- license: MIT
|
||||
- unist-builder
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- unist-util-is
|
||||
- version: 6.0.0
|
||||
- license: MIT
|
||||
- unist-util-visit-parents
|
||||
- version: 6.0.1
|
||||
- license: MIT
|
||||
- unist-util-visit
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- vue-demi
|
||||
- version: 0.14.10
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 2.7.16
|
||||
- license: MIT
|
||||
1
dist/1078-1078.js.map
vendored
Normal file
1
dist/1078-1078.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/1078-1078.js.map.license
vendored
Symbolic link
1
dist/1078-1078.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
1078-1078.js.license
|
||||
2
dist/23-23.js
vendored
2
dist/23-23.js
vendored
File diff suppressed because one or more lines are too long
1
dist/23-23.js.map
vendored
1
dist/23-23.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/23-23.js.map.license
vendored
1
dist/23-23.js.map.license
vendored
|
|
@ -1 +0,0 @@
|
|||
23-23.js.license
|
||||
2
dist/2562-2562.js
vendored
Normal file
2
dist/2562-2562.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/2562-2562.js.map
vendored
Normal file
1
dist/2562-2562.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/2562-2562.js.map.license
vendored
Symbolic link
1
dist/2562-2562.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
2562-2562.js.license
|
||||
2
dist/3334-3334.js
vendored
Normal file
2
dist/3334-3334.js
vendored
Normal file
File diff suppressed because one or more lines are too long
155
dist/3334-3334.js.license
vendored
Normal file
155
dist/3334-3334.js.license
vendored
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-License-Identifier: ISC
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: BSD-3-Clause
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: atomiks
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
|
||||
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
|
||||
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorb.de> (http://vorb.de)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Jacob Clevenger<https://github.com/wheatjs>
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com>
|
||||
SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris)
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
SPDX-FileCopyrightText: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
|
||||
SPDX-FileCopyrightText: Anthony Fu <anthonyfu117@hotmail.com>
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @floating-ui/core
|
||||
- version: 1.7.3
|
||||
- license: MIT
|
||||
- @floating-ui/dom
|
||||
- version: 1.7.4
|
||||
- license: MIT
|
||||
- @floating-ui/utils
|
||||
- version: 0.2.10
|
||||
- license: MIT
|
||||
- @nextcloud/auth
|
||||
- version: 2.5.3
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/axios
|
||||
- version: 2.5.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.5.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/capabilities
|
||||
- version: 1.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
- license: ISC
|
||||
- @nextcloud/event-bus
|
||||
- version: 3.3.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 3.0.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/l10n
|
||||
- version: 3.4.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/logger
|
||||
- version: 3.0.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/router
|
||||
- version: 3.0.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue-select
|
||||
- version: 3.26.0
|
||||
- license: MIT
|
||||
- @nextcloud/vue
|
||||
- version: 8.34.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/components
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/core
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- axios
|
||||
- version: 1.12.2
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- charenc
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- crypt
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- floating-vue
|
||||
- version: 1.0.0-beta.19
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.6
|
||||
- license: MIT
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- is-buffer
|
||||
- version: 1.1.6
|
||||
- license: MIT
|
||||
- md5
|
||||
- version: 2.3.0
|
||||
- license: BSD-3-Clause
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- license: MIT
|
||||
- striptags
|
||||
- version: 3.2.0
|
||||
- license: MIT
|
||||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- license: MIT
|
||||
- unist-builder
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- unist-util-is
|
||||
- version: 6.0.0
|
||||
- license: MIT
|
||||
- unist-util-visit-parents
|
||||
- version: 6.0.1
|
||||
- license: MIT
|
||||
- unist-util-visit
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- vue-demi
|
||||
- version: 0.14.10
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 2.7.16
|
||||
- license: MIT
|
||||
1
dist/3334-3334.js.map
vendored
Normal file
1
dist/3334-3334.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/3334-3334.js.map.license
vendored
Symbolic link
1
dist/3334-3334.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
3334-3334.js.license
|
||||
4
dist/4743-4743.js
vendored
4
dist/4743-4743.js
vendored
File diff suppressed because one or more lines are too long
2
dist/4743-4743.js.map
vendored
2
dist/4743-4743.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/5258-5258.js
vendored
4
dist/5258-5258.js
vendored
|
|
@ -1,2 +1,2 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[5258],{16343:(e,t,n)=>{n.d(t,{a:()=>r,e:()=>i});var c=n(80474),u=n(43850),a=n(24715);const l=(0,c.c0)("nextcloud-vue").persist(!0).build();let o;function i(e,t=10){o||(o=new u.EmojiIndex(a));const n=function(){const e=Number.parseInt(l.getItem("NcEmojiPicker::currentSkinTone")??"1");return Math.min(Math.max(e,1),6)}();let c;return e?(c=o.search(`:${e}`,t),c.length<t&&(c=c.concat(o.search(e,t-c.length)))):c=u.frequently.get(t).map(e=>o.emoji(e))||[],c.map(e=>e.getSkin(n))}function r(e){u.frequently.add(e)}},95528:(e,t,n)=>{n.r(t),n.d(t,{NcAutoCompleteResult:()=>u.N,NcMentionBubble:()=>c.N,default:()=>u.a});var c=n(36079),u=n(4943)}}]);
|
||||
//# sourceMappingURL=5258-5258.js.map?v=47cf0b0b84868571e578
|
||||
"use strict";(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[5258],{16343:(e,t,n)=>{n.d(t,{a:()=>r,e:()=>i});var c=n(80474),u=n(43850),a=n(24715);const l=(0,c.c0)("nextcloud-vue").persist(!0).build();let o;function i(e,t=10){o||(o=new u.EmojiIndex(a));const n=function(){const e=Number.parseInt(l.getItem("NcEmojiPicker::currentSkinTone")??"1");return Math.min(Math.max(e,1),6)}();let c;return e?(c=o.search(`:${e}`,t),c.length<t&&(c=c.concat(o.search(e,t-c.length)))):c=u.frequently.get(t).map(e=>o.emoji(e))||[],c.map(e=>e.getSkin(n))}function r(e){u.frequently.add(e)}},95528:(e,t,n)=>{n.r(t),n.d(t,{NcAutoCompleteResult:()=>u.N,NcMentionBubble:()=>c.N,default:()=>u.a});var c=n(36079),u=n(18154)}}]);
|
||||
//# sourceMappingURL=5258-5258.js.map?v=0f6571662152e8883015
|
||||
7
dist/5258-5258.js.license
vendored
7
dist/5258-5258.js.license
vendored
|
|
@ -16,7 +16,6 @@ SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
|
|||
SPDX-FileCopyrightText: Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)
|
||||
SPDX-FileCopyrightText: Sindre Sorhus
|
||||
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Richie Bendall
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorb.de> (http://vorb.de)
|
||||
SPDX-FileCopyrightText: OpenJS Foundation and other contributors
|
||||
|
|
@ -125,9 +124,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- char-regex
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- charenc
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
|
|
@ -302,9 +298,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- space-separated-tokens
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- strip-ansi
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- striptags
|
||||
- version: 3.2.0
|
||||
- license: MIT
|
||||
|
|
|
|||
2
dist/5258-5258.js.map
vendored
2
dist/5258-5258.js.map
vendored
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"5258-5258.js?v=47cf0b0b84868571e578","mappings":"qMAGA,MAAMA,GAAU,QAAW,iBAAiBC,SAAQ,GAAMC,QAC1D,IAAIC,EAUJ,SAASC,EAAYC,EAAOC,EAAa,IAClCH,IACHA,EAAa,IAAI,EAAAI,WAAW,IAE9B,MAAMC,EAeR,WACE,MAAMC,EAAWC,OAAOC,SAASX,EAAQY,QAAQ,mCAAqC,KACtF,OAAOC,KAAKC,IACVD,KAAKE,IACHN,EACA,GAGF,EAGJ,CA1B0BO,GACxB,IAAIC,EASJ,OARIZ,GACFY,EAAUd,EAAWe,OAAO,IAAIb,IAASC,GACrCW,EAAQE,OAASb,IACnBW,EAAUA,EAAQG,OAAOjB,EAAWe,OAAOb,EAAOC,EAAaW,EAAQE,WAGzEF,EAAU,EAAAI,WAAWC,IAAIhB,GAAYiB,IAAKC,GAAOrB,EAAWsB,MAAMD,KAAQ,GAErEP,EAAQM,IAAKE,GAAUA,EAAMC,QAAQlB,GAC9C,CACA,SAASmB,EAAeC,GACtB,EAAAP,WAAWQ,IAAID,EACjB,C","sources":["webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs"],"sourcesContent":["import { getBuilder } from \"@nextcloud/browser-storage\";\nimport { EmojiIndex, frequently } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nconst storage = getBuilder(\"nextcloud-vue\").persist(true).build();\nlet emojiIndex;\nvar EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => {\n EmojiSkinTone2[EmojiSkinTone2[\"Neutral\"] = 1] = \"Neutral\";\n EmojiSkinTone2[EmojiSkinTone2[\"Light\"] = 2] = \"Light\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumLight\"] = 3] = \"MediumLight\";\n EmojiSkinTone2[EmojiSkinTone2[\"Medium\"] = 4] = \"Medium\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumDark\"] = 5] = \"MediumDark\";\n EmojiSkinTone2[EmojiSkinTone2[\"Dark\"] = 6] = \"Dark\";\n return EmojiSkinTone2;\n})(EmojiSkinTone || {});\nfunction emojiSearch(query, maxResults = 10) {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n const currentSkinTone = getCurrentSkinTone();\n let results;\n if (query) {\n results = emojiIndex.search(`:${query}`, maxResults);\n if (results.length < maxResults) {\n results = results.concat(emojiIndex.search(query, maxResults - results.length));\n }\n } else {\n results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];\n }\n return results.map((emoji) => emoji.getSkin(currentSkinTone));\n}\nfunction emojiAddRecent(emojiData) {\n frequently.add(emojiData);\n}\nfunction getCurrentSkinTone() {\n const skinTone = Number.parseInt(storage.getItem(\"NcEmojiPicker::currentSkinTone\") ?? \"1\");\n return Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n}\nfunction setCurrentSkinTone(skinTone) {\n skinTone = Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n storage.setItem(\"NcEmojiPicker::currentSkinTone\", skinTone.toString());\n}\nexport {\n EmojiSkinTone as E,\n emojiAddRecent as a,\n emojiSearch as e,\n getCurrentSkinTone as g,\n setCurrentSkinTone as s\n};\n//# sourceMappingURL=emoji-BY_D0V5K.mjs.map\n"],"names":["storage","persist","build","emojiIndex","emojiSearch","query","maxResults","EmojiIndex","currentSkinTone","skinTone","Number","parseInt","getItem","Math","min","max","getCurrentSkinTone","results","search","length","concat","frequently","get","map","id","emoji","getSkin","emojiAddRecent","emojiData","add"],"sourceRoot":""}
|
||||
{"version":3,"file":"5258-5258.js?v=0f6571662152e8883015","mappings":"qMAGA,MAAMA,GAAU,QAAW,iBAAiBC,SAAQ,GAAMC,QAC1D,IAAIC,EAUJ,SAASC,EAAYC,EAAOC,EAAa,IAClCH,IACHA,EAAa,IAAI,EAAAI,WAAW,IAE9B,MAAMC,EAeR,WACE,MAAMC,EAAWC,OAAOC,SAASX,EAAQY,QAAQ,mCAAqC,KACtF,OAAOC,KAAKC,IACVD,KAAKE,IACHN,EACA,GAGF,EAGJ,CA1B0BO,GACxB,IAAIC,EASJ,OARIZ,GACFY,EAAUd,EAAWe,OAAO,IAAIb,IAASC,GACrCW,EAAQE,OAASb,IACnBW,EAAUA,EAAQG,OAAOjB,EAAWe,OAAOb,EAAOC,EAAaW,EAAQE,WAGzEF,EAAU,EAAAI,WAAWC,IAAIhB,GAAYiB,IAAKC,GAAOrB,EAAWsB,MAAMD,KAAQ,GAErEP,EAAQM,IAAKE,GAAUA,EAAMC,QAAQlB,GAC9C,CACA,SAASmB,EAAeC,GACtB,EAAAP,WAAWQ,IAAID,EACjB,C","sources":["webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs"],"sourcesContent":["import { getBuilder } from \"@nextcloud/browser-storage\";\nimport { EmojiIndex, frequently } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nconst storage = getBuilder(\"nextcloud-vue\").persist(true).build();\nlet emojiIndex;\nvar EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => {\n EmojiSkinTone2[EmojiSkinTone2[\"Neutral\"] = 1] = \"Neutral\";\n EmojiSkinTone2[EmojiSkinTone2[\"Light\"] = 2] = \"Light\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumLight\"] = 3] = \"MediumLight\";\n EmojiSkinTone2[EmojiSkinTone2[\"Medium\"] = 4] = \"Medium\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumDark\"] = 5] = \"MediumDark\";\n EmojiSkinTone2[EmojiSkinTone2[\"Dark\"] = 6] = \"Dark\";\n return EmojiSkinTone2;\n})(EmojiSkinTone || {});\nfunction emojiSearch(query, maxResults = 10) {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n const currentSkinTone = getCurrentSkinTone();\n let results;\n if (query) {\n results = emojiIndex.search(`:${query}`, maxResults);\n if (results.length < maxResults) {\n results = results.concat(emojiIndex.search(query, maxResults - results.length));\n }\n } else {\n results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];\n }\n return results.map((emoji) => emoji.getSkin(currentSkinTone));\n}\nfunction emojiAddRecent(emojiData) {\n frequently.add(emojiData);\n}\nfunction getCurrentSkinTone() {\n const skinTone = Number.parseInt(storage.getItem(\"NcEmojiPicker::currentSkinTone\") ?? \"1\");\n return Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n}\nfunction setCurrentSkinTone(skinTone) {\n skinTone = Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n storage.setItem(\"NcEmojiPicker::currentSkinTone\", skinTone.toString());\n}\nexport {\n EmojiSkinTone as E,\n emojiAddRecent as a,\n emojiSearch as e,\n getCurrentSkinTone as g,\n setCurrentSkinTone as s\n};\n//# sourceMappingURL=emoji-BY_D0V5K.mjs.map\n"],"names":["storage","persist","build","emojiIndex","emojiSearch","query","maxResults","EmojiIndex","currentSkinTone","skinTone","Number","parseInt","getItem","Math","min","max","getCurrentSkinTone","results","search","length","concat","frequently","get","map","id","emoji","getSkin","emojiAddRecent","emojiData","add"],"sourceRoot":""}
|
||||
2
dist/5660-5660.js
vendored
2
dist/5660-5660.js
vendored
File diff suppressed because one or more lines are too long
1
dist/5660-5660.js.map
vendored
1
dist/5660-5660.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/5660-5660.js.map.license
vendored
1
dist/5660-5660.js.map.license
vendored
|
|
@ -1 +0,0 @@
|
|||
5660-5660.js.license
|
||||
2
dist/570-570.js
vendored
Normal file
2
dist/570-570.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/570-570.js.map
vendored
Normal file
1
dist/570-570.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/570-570.js.map.license
vendored
Symbolic link
1
dist/570-570.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
570-570.js.license
|
||||
4
dist/6768-6768.js
vendored
4
dist/6768-6768.js
vendored
File diff suppressed because one or more lines are too long
2
dist/6768-6768.js.map
vendored
2
dist/6768-6768.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/7471-7471.js
vendored
1
dist/7471-7471.js
vendored
|
|
@ -1 +0,0 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[7471],{27514:e=>{e.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"},27518:e=>{e.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"},79722:e=>{e.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"},86886:e=>{e.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"}}]);
|
||||
2
dist/7471-7471.js.license
vendored
2
dist/7471-7471.js.license
vendored
|
|
@ -1,2 +0,0 @@
|
|||
SPDX-License-Identifier: Apache-2.0
|
||||
SPDX-FileCopyrightText: 2020 Google Inc.
|
||||
2
dist/8154-8154.js
vendored
Normal file
2
dist/8154-8154.js
vendored
Normal file
File diff suppressed because one or more lines are too long
360
dist/8154-8154.js.license
vendored
Normal file
360
dist/8154-8154.js.license
vendored
Normal file
|
|
@ -0,0 +1,360 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-License-Identifier: ISC
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: BSD-3-Clause
|
||||
SPDX-License-Identifier: BSD-2-Clause
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
|
||||
SPDX-FileCopyrightText: inline-style-parser developers
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: debounce developers
|
||||
SPDX-FileCopyrightText: atomiks
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
|
||||
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
|
||||
SPDX-FileCopyrightText: Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)
|
||||
SPDX-FileCopyrightText: Sindre Sorhus
|
||||
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorb.de> (http://vorb.de)
|
||||
SPDX-FileCopyrightText: OpenJS Foundation and other contributors
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Max <max@nextcloud.com>
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
|
||||
SPDX-FileCopyrightText: Mapbox
|
||||
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Jacob Clevenger<https://github.com/wheatjs>
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com>
|
||||
SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris)
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
SPDX-FileCopyrightText: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Borys Serebrov
|
||||
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
|
||||
SPDX-FileCopyrightText: Anthony Fu <anthonyfu117@hotmail.com>
|
||||
SPDX-FileCopyrightText: Andrea Giammarchi
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @floating-ui/core
|
||||
- version: 1.7.3
|
||||
- license: MIT
|
||||
- @floating-ui/dom
|
||||
- version: 1.7.4
|
||||
- license: MIT
|
||||
- @floating-ui/utils
|
||||
- version: 0.2.10
|
||||
- license: MIT
|
||||
- unist-util-is
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- unist-util-visit-parents
|
||||
- version: 2.1.2
|
||||
- license: MIT
|
||||
- unist-util-visit
|
||||
- version: 1.4.1
|
||||
- license: MIT
|
||||
- @mapbox/hast-util-table-cell-style
|
||||
- version: 0.2.1
|
||||
- license: BSD-2-Clause
|
||||
- @nextcloud/auth
|
||||
- version: 2.5.3
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/axios
|
||||
- version: 2.5.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.5.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/capabilities
|
||||
- version: 1.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
- license: ISC
|
||||
- @nextcloud/event-bus
|
||||
- version: 3.3.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 3.0.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/l10n
|
||||
- version: 3.4.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/logger
|
||||
- version: 3.0.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/router
|
||||
- version: 3.0.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/sharing
|
||||
- version: 0.3.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue-select
|
||||
- version: 3.26.0
|
||||
- license: MIT
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue
|
||||
- version: 8.34.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @ungap/structured-clone
|
||||
- version: 1.3.0
|
||||
- license: ISC
|
||||
- @vueuse/components
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/core
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- axios
|
||||
- version: 1.12.2
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- charenc
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- comma-separated-tokens
|
||||
- version: 2.0.3
|
||||
- license: MIT
|
||||
- crypt
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 2.2.0
|
||||
- license: MIT
|
||||
- decode-named-character-reference
|
||||
- version: 1.2.0
|
||||
- license: MIT
|
||||
- devlop
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
- license: BSD-3-Clause
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- extend
|
||||
- version: 3.0.2
|
||||
- license: MIT
|
||||
- floating-vue
|
||||
- version: 1.0.0-beta.19
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.6
|
||||
- license: MIT
|
||||
- hast-to-hyperscript
|
||||
- version: 10.0.3
|
||||
- license: MIT
|
||||
- hast-util-is-element
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- hast-util-whitespace
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- inline-style-parser
|
||||
- version: 0.1.1
|
||||
- license: MIT
|
||||
- is-absolute-url
|
||||
- version: 4.0.1
|
||||
- license: MIT
|
||||
- is-buffer
|
||||
- version: 1.1.6
|
||||
- license: MIT
|
||||
- jquery
|
||||
- version: 3.7.1
|
||||
- license: MIT
|
||||
- md5
|
||||
- version: 2.3.0
|
||||
- license: BSD-3-Clause
|
||||
- mdast-squeeze-paragraphs
|
||||
- version: 6.0.0
|
||||
- license: MIT
|
||||
- escape-string-regexp
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- mdast-util-find-and-replace
|
||||
- version: 3.0.2
|
||||
- license: MIT
|
||||
- mdast-util-from-markdown
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- mdast-util-newline-to-break
|
||||
- version: 2.0.0
|
||||
- license: MIT
|
||||
- mdast-util-to-hast
|
||||
- version: 13.2.0
|
||||
- license: MIT
|
||||
- mdast-util-to-string
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- micromark-core-commonmark
|
||||
- version: 2.0.3
|
||||
- license: MIT
|
||||
- micromark-factory-destination
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-factory-label
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-factory-space
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-factory-title
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-factory-whitespace
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-character
|
||||
- version: 2.1.1
|
||||
- license: MIT
|
||||
- micromark-util-chunked
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-classify-character
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-combine-extensions
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-decode-numeric-character-reference
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- micromark-util-decode-string
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-encode
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-html-tag-name
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-normalize-identifier
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-resolve-all
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-sanitize-uri
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-subtokenize
|
||||
- version: 2.1.0
|
||||
- license: MIT
|
||||
- micromark
|
||||
- version: 4.0.2
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- license: MIT
|
||||
- property-information
|
||||
- version: 6.5.0
|
||||
- license: MIT
|
||||
- rehype-external-links
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- rehype-react
|
||||
- version: 7.2.0
|
||||
- license: MIT
|
||||
- remark-breaks
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- remark-parse
|
||||
- version: 11.0.0
|
||||
- license: MIT
|
||||
- remark-rehype
|
||||
- version: 11.1.2
|
||||
- license: MIT
|
||||
- remark-unlink-protocols
|
||||
- version: 1.0.0
|
||||
- license: MIT
|
||||
- space-separated-tokens
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- striptags
|
||||
- version: 3.2.0
|
||||
- license: MIT
|
||||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- style-to-object
|
||||
- version: 0.4.4
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- license: MIT
|
||||
- tributejs
|
||||
- version: 5.1.3
|
||||
- license: MIT
|
||||
- trim-lines
|
||||
- version: 3.0.1
|
||||
- license: MIT
|
||||
- trough
|
||||
- version: 2.2.0
|
||||
- license: MIT
|
||||
- unified
|
||||
- version: 11.0.5
|
||||
- license: MIT
|
||||
- unist-builder
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- unist-util-is
|
||||
- version: 6.0.0
|
||||
- license: MIT
|
||||
- unist-util-position
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- unist-util-stringify-position
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- unist-util-visit-parents
|
||||
- version: 6.0.1
|
||||
- license: MIT
|
||||
- unist-util-visit
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
- vfile
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- vue-demi
|
||||
- version: 0.14.10
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 3.6.5
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 2.7.16
|
||||
- license: MIT
|
||||
- web-namespaces
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
1
dist/8154-8154.js.map
vendored
Normal file
1
dist/8154-8154.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/8154-8154.js.map.license
vendored
Symbolic link
1
dist/8154-8154.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
8154-8154.js.license
|
||||
2
dist/945-945.js
vendored
Normal file
2
dist/945-945.js
vendored
Normal file
File diff suppressed because one or more lines are too long
89
dist/945-945.js.license
vendored
Normal file
89
dist/945-945.js.license
vendored
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-License-Identifier: ISC
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: BSD-3-Clause
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: xiaokai <kexiaokai@gmail.com>
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
SPDX-FileCopyrightText: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Borys Serebrov
|
||||
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
|
||||
SPDX-FileCopyrightText: Anthony Fu <anthonyfu117@hotmail.com>
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @nextcloud/auth
|
||||
- version: 2.5.3
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.5.0
|
||||
- license: GPL-3.0-or-later
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
- license: ISC
|
||||
- @nextcloud/event-bus
|
||||
- version: 3.3.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/l10n
|
||||
- version: 3.4.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/logger
|
||||
- version: 3.0.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/router
|
||||
- version: 3.0.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue
|
||||
- version: 8.34.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/core
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
- license: BSD-3-Clause
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- floating-vue
|
||||
- version: 1.0.0-beta.19
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.6
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- license: MIT
|
||||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- license: MIT
|
||||
- vue-color
|
||||
- version: 2.8.2
|
||||
- license: MIT
|
||||
- vue-demi
|
||||
- version: 0.14.10
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 2.7.16
|
||||
- license: MIT
|
||||
1
dist/945-945.js.map
vendored
Normal file
1
dist/945-945.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/945-945.js.map.license
vendored
Symbolic link
1
dist/945-945.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
945-945.js.license
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/Plus-C6XG8pgz.chunk.mjs.map
vendored
Normal file
1
dist/Plus-C6XG8pgz.chunk.mjs.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/check-g1zTNiof.chunk.mjs.map
vendored
1
dist/check-g1zTNiof.chunk.mjs.map
vendored
File diff suppressed because one or more lines are too long
4
dist/comments-comments-app.js
vendored
4
dist/comments-comments-app.js
vendored
File diff suppressed because one or more lines are too long
2
dist/comments-comments-app.js.map
vendored
2
dist/comments-comments-app.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/comments-comments-tab.js
vendored
4
dist/comments-comments-tab.js
vendored
File diff suppressed because one or more lines are too long
2
dist/comments-comments-tab.js.map
vendored
2
dist/comments-comments-tab.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/comments-init.js
vendored
4
dist/comments-init.js
vendored
|
|
@ -1,2 +1,2 @@
|
|||
(()=>{"use strict";var e,r={84350:(e,r,t)=>{var n=t(35810),o=t(53334);const i=(0,t(35947).YK)().setApp("comments").detectUser().build(),a=new n.hY({id:"comments-unread",title(e){const r=e[0].attributes["comments-unread"];return r>=0?(0,o.n)("comments","1 new comment","{unread} new comments",r,{unread:r}):(0,o.t)("comments","Comment")},displayName:()=>"",iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-comment-processing" viewBox="0 0 24 24"><path d="M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M17,11V9H15V11H17M13,11V9H11V11H13M9,11V9H7V11H9Z" /></svg>',enabled(e){const r=e[0].attributes["comments-unread"];return"number"==typeof r&&r>0},async exec(e){try{return window.OCA.Files.Sidebar.setActiveTab("comments"),await window.OCA.Files.Sidebar.open(e.path),null}catch(e){return i.error("Error while opening sidebar",{error:e}),!1}},inline:()=>!0,order:-140});(0,n.Gg)(a)}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var i=t[e]={id:e,loaded:!1,exports:{}};return r[e].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.m=r,e=[],n.O=(r,t,o,i)=>{if(!t){var a=1/0;for(c=0;c<e.length;c++){for(var[t,o,i]=e[c],l=!0,s=0;s<t.length;s++)(!1&i||a>=i)&&Object.keys(n.O).every(e=>n.O[e](t[s]))?t.splice(s--,1):(l=!1,i<a&&(a=i));if(l){e.splice(c--,1);var d=o();void 0!==d&&(r=d)}}return r}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[t,o,i]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.e=()=>Promise.resolve(),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=3260,(()=>{n.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={3260:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,i,[a,l,s]=t,d=0;if(a.some(r=>0!==e[r])){for(o in l)n.o(l,o)&&(n.m[o]=l[o]);if(s)var c=s(n)}for(r&&r(t);d<a.length;d++)i=a[d],n.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return n.O(c)},t=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),n.nc=void 0;var o=n.O(void 0,[4208],()=>n(84350));o=n.O(o)})();
|
||||
//# sourceMappingURL=comments-init.js.map?v=865ac740429ad7a147bc
|
||||
(()=>{"use strict";var e,r={84350:(e,r,t)=>{var n=t(35810),o=t(53334);const i=(0,t(35947).YK)().setApp("comments").detectUser().build(),a=new n.hY({id:"comments-unread",title(e){const r=e[0].attributes["comments-unread"];return r>=0?(0,o.n)("comments","1 new comment","{unread} new comments",r,{unread:r}):(0,o.t)("comments","Comment")},displayName:()=>"",iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-comment-processing" viewBox="0 0 24 24"><path d="M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M17,11V9H15V11H17M13,11V9H11V11H13M9,11V9H7V11H9Z" /></svg>',enabled(e){const r=e[0].attributes["comments-unread"];return"number"==typeof r&&r>0},async exec(e){try{return window.OCA.Files.Sidebar.setActiveTab("comments"),await window.OCA.Files.Sidebar.open(e.path),null}catch(e){return i.error("Error while opening sidebar",{error:e}),!1}},inline:()=>!0,order:-140});(0,n.Gg)(a)}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var i=t[e]={id:e,loaded:!1,exports:{}};return r[e].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.m=r,e=[],n.O=(r,t,o,i)=>{if(!t){var a=1/0;for(c=0;c<e.length;c++){for(var[t,o,i]=e[c],l=!0,s=0;s<t.length;s++)(!1&i||a>=i)&&Object.keys(n.O).every(e=>n.O[e](t[s]))?t.splice(s--,1):(l=!1,i<a&&(a=i));if(l){e.splice(c--,1);var d=o();void 0!==d&&(r=d)}}return r}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[t,o,i]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.e=()=>Promise.resolve(),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=3260,(()=>{var e={3260:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,i,[a,l,s]=t,d=0;if(a.some(r=>0!==e[r])){for(o in l)n.o(l,o)&&(n.m[o]=l[o]);if(s)var c=s(n)}for(r&&r(t);d<a.length;d++)i=a[d],n.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return n.O(c)},t=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),n.nc=void 0;var o=n.O(void 0,[4208],()=>n(84350));o=n.O(o)})();
|
||||
//# sourceMappingURL=comments-init.js.map?v=2621e0fa161e58b3c744
|
||||
2
dist/comments-init.js.map
vendored
2
dist/comments-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-ajax-cron.js
vendored
4
dist/core-ajax-cron.js
vendored
|
|
@ -1,2 +1,2 @@
|
|||
(()=>{"use strict";var e,r={78038:(e,r,o)=>{var n=o(63814),t=o(21777),i=o(35947);const d=null===(l=(0,t.HW)())?(0,i.YK)().setApp("core").build():(0,i.YK)().setApp("core").setUid(l.uid).build();var l;(0,i.YK)().setApp("unified-search").detectUser().build(),window.addEventListener("DOMContentLoaded",async()=>{try{d.debug("Running web cron"),await window.fetch(`${(0,n.aU)()}/cron.php`),d.debug("Web cron successfull")}catch(e){d.debug("Running web cron failed",{error:e})}})}},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return r[e].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.m=r,e=[],n.O=(r,o,t,i)=>{if(!o){var d=1/0;for(c=0;c<e.length;c++){for(var[o,t,i]=e[c],l=!0,a=0;a<o.length;a++)(!1&i||d>=i)&&Object.keys(n.O).every(e=>n.O[e](o[a]))?o.splice(a--,1):(l=!1,i<d&&(d=i));if(l){e.splice(c--,1);var u=t();void 0!==u&&(r=u)}}return r}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[o,t,i]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var o in r)n.o(r,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},n.e=()=>Promise.resolve(),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=5438,(()=>{n.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={5438:0};n.O.j=r=>0===e[r];var r=(r,o)=>{var t,i,[d,l,a]=o,u=0;if(d.some(r=>0!==e[r])){for(t in l)n.o(l,t)&&(n.m[t]=l[t]);if(a)var c=a(n)}for(r&&r(o);u<d.length;u++)i=d[u],n.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return n.O(c)},o=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})(),n.nc=void 0;var t=n.O(void 0,[4208],()=>n(78038));t=n.O(t)})();
|
||||
//# sourceMappingURL=core-ajax-cron.js.map?v=17ffc0d5e614e04c033f
|
||||
(()=>{"use strict";var e,r={78038:(e,r,o)=>{var n=o(63814),t=o(21777),i=o(35947);const l=null===(a=(0,t.HW)())?(0,i.YK)().setApp("core").build():(0,i.YK)().setApp("core").setUid(a.uid).build();var a;(0,i.YK)().setApp("unified-search").detectUser().build(),window.addEventListener("DOMContentLoaded",async()=>{try{l.debug("Running web cron"),await window.fetch(`${(0,n.aU)()}/cron.php`),l.debug("Web cron successfull")}catch(e){l.debug("Running web cron failed",{error:e})}})}},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return r[e].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.m=r,e=[],n.O=(r,o,t,i)=>{if(!o){var l=1/0;for(c=0;c<e.length;c++){for(var[o,t,i]=e[c],a=!0,d=0;d<o.length;d++)(!1&i||l>=i)&&Object.keys(n.O).every(e=>n.O[e](o[d]))?o.splice(d--,1):(a=!1,i<l&&(l=i));if(a){e.splice(c--,1);var u=t();void 0!==u&&(r=u)}}return r}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[o,t,i]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var o in r)n.o(r,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},n.e=()=>Promise.resolve(),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=5438,(()=>{var e={5438:0};n.O.j=r=>0===e[r];var r=(r,o)=>{var t,i,[l,a,d]=o,u=0;if(l.some(r=>0!==e[r])){for(t in a)n.o(a,t)&&(n.m[t]=a[t]);if(d)var c=d(n)}for(r&&r(o);u<l.length;u++)i=l[u],n.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return n.O(c)},o=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})(),n.nc=void 0;var t=n.O(void 0,[4208],()=>n(78038));t=n.O(t)})();
|
||||
//# sourceMappingURL=core-ajax-cron.js.map?v=3cb2094139a6d7aaaa89
|
||||
2
dist/core-ajax-cron.js.map
vendored
2
dist/core-ajax-cron.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-common.js
vendored
4
dist/core-common.js
vendored
File diff suppressed because one or more lines are too long
11
dist/core-common.js.license
vendored
11
dist/core-common.js.license
vendored
|
|
@ -7,7 +7,6 @@ SPDX-License-Identifier: Apache-2.0
|
|||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-License-Identifier: (MIT AND BSD-3-Clause)
|
||||
SPDX-FileCopyrightText: xiemengxiong
|
||||
SPDX-FileCopyrightText: xiaokai <kexiaokai@gmail.com>
|
||||
SPDX-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: ripemd160 developers
|
||||
|
|
@ -39,7 +38,6 @@ SPDX-FileCopyrightText: Scott Cooper <scttcper@gmail.com>
|
|||
SPDX-FileCopyrightText: Rubén Norte <ruben.norte@softonic.com>
|
||||
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
SPDX-FileCopyrightText: Richie Bendall
|
||||
SPDX-FileCopyrightText: Raynos <raynos2@gmail.com>
|
||||
SPDX-FileCopyrightText: Perry Mitchell <perry@perrymitchell.net>
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)
|
||||
|
|
@ -374,9 +372,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- char-regex
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- charenc
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
|
|
@ -413,9 +408,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- date-fns
|
||||
- version: 4.1.0
|
||||
- license: MIT
|
||||
- date-format-parse
|
||||
- version: 0.2.7
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 2.2.0
|
||||
- license: MIT
|
||||
|
|
@ -863,9 +855,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- stream-http
|
||||
- version: 3.2.0
|
||||
- license: MIT
|
||||
- strip-ansi
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- string_decoder
|
||||
- version: 1.3.0
|
||||
- license: MIT
|
||||
|
|
|
|||
2
dist/core-common.js.map
vendored
2
dist/core-common.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-files_client.js
vendored
4
dist/core-files_client.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-files_client.js.map
vendored
2
dist/core-files_client.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-files_fileinfo.js
vendored
4
dist/core-files_fileinfo.js
vendored
|
|
@ -1,2 +1,2 @@
|
|||
(()=>{"use strict";var e,t={75681:(e,t,i)=>{var n=i(12111);!function(e){const t=function(e){const t=this;n.default.each(e,function(e,i){n.default.isFunction(e)||(t[i]=e)}),n.default.isUndefined(this.id)||(this.id=parseInt(e.id,10)),this.path=e.path||"","dir"===this.type?this.mimetype="httpd/unix-directory":this.mimetype=this.mimetype||"application/octet-stream",this.type||("httpd/unix-directory"===this.mimetype?this.type="dir":this.type="file")};t.prototype={id:null,name:null,path:null,mimetype:null,icon:null,type:null,permissions:null,mtime:null,etag:null,mountType:null,hasPreview:!0,sharePermissions:null,shareAttributes:[],quotaAvailableBytes:-1,canDownload:function(){for(const e in this.shareAttributes){const t=this.shareAttributes[e];if("permissions"===t.scope&&"download"===t.key)return!0===t.value}return!0}},e.Files||(e.Files={}),e.Files.FileInfo=t}(OC)}},i={};function n(e){var r=i[e];if(void 0!==r)return r.exports;var o=i[e]={id:e,loaded:!1,exports:{}};return t[e].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=t,e=[],n.O=(t,i,r,o)=>{if(!i){var l=1/0;for(d=0;d<e.length;d++){for(var[i,r,o]=e[d],s=!0,a=0;a<i.length;a++)(!1&o||l>=o)&&Object.keys(n.O).every(e=>n.O[e](i[a]))?i.splice(a--,1):(s=!1,o<l&&(l=o));if(s){e.splice(d--,1);var u=r();void 0!==u&&(t=u)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[i,r,o]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.e=()=>Promise.resolve(),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=4313,(()=>{n.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={4313:0};n.O.j=t=>0===e[t];var t=(t,i)=>{var r,o,[l,s,a]=i,u=0;if(l.some(t=>0!==e[t])){for(r in s)n.o(s,r)&&(n.m[r]=s[r]);if(a)var d=a(n)}for(t&&t(i);u<l.length;u++)o=l[u],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return n.O(d)},i=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))})(),n.nc=void 0;var r=n.O(void 0,[4208],()=>n(75681));r=n.O(r)})();
|
||||
//# sourceMappingURL=core-files_fileinfo.js.map?v=fd4d8021f99278756f60
|
||||
(()=>{"use strict";var e,t={75681:(e,t,i)=>{var n=i(12111);!function(e){const t=function(e){const t=this;n.default.each(e,function(e,i){n.default.isFunction(e)||(t[i]=e)}),n.default.isUndefined(this.id)||(this.id=parseInt(e.id,10)),this.path=e.path||"","dir"===this.type?this.mimetype="httpd/unix-directory":this.mimetype=this.mimetype||"application/octet-stream",this.type||("httpd/unix-directory"===this.mimetype?this.type="dir":this.type="file")};t.prototype={id:null,name:null,path:null,mimetype:null,icon:null,type:null,permissions:null,mtime:null,etag:null,mountType:null,hasPreview:!0,sharePermissions:null,shareAttributes:[],quotaAvailableBytes:-1,canDownload:function(){for(const e in this.shareAttributes){const t=this.shareAttributes[e];if("permissions"===t.scope&&"download"===t.key)return!0===t.value}return!0}},e.Files||(e.Files={}),e.Files.FileInfo=t}(OC)}},i={};function n(e){var r=i[e];if(void 0!==r)return r.exports;var o=i[e]={id:e,loaded:!1,exports:{}};return t[e].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=t,e=[],n.O=(t,i,r,o)=>{if(!i){var l=1/0;for(d=0;d<e.length;d++){for(var[i,r,o]=e[d],s=!0,a=0;a<i.length;a++)(!1&o||l>=o)&&Object.keys(n.O).every(e=>n.O[e](i[a]))?i.splice(a--,1):(s=!1,o<l&&(l=o));if(s){e.splice(d--,1);var u=r();void 0!==u&&(t=u)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[i,r,o]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.e=()=>Promise.resolve(),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=4313,(()=>{var e={4313:0};n.O.j=t=>0===e[t];var t=(t,i)=>{var r,o,[l,s,a]=i,u=0;if(l.some(t=>0!==e[t])){for(r in s)n.o(s,r)&&(n.m[r]=s[r]);if(a)var d=a(n)}for(t&&t(i);u<l.length;u++)o=l[u],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return n.O(d)},i=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))})(),n.nc=void 0;var r=n.O(void 0,[4208],()=>n(75681));r=n.O(r)})();
|
||||
//# sourceMappingURL=core-files_fileinfo.js.map?v=64159113a266c7cf9a52
|
||||
2
dist/core-files_fileinfo.js.map
vendored
2
dist/core-files_fileinfo.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-install.js
vendored
4
dist/core-install.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-install.js.map
vendored
2
dist/core-install.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-legacy-unified-search.js
vendored
4
dist/core-legacy-unified-search.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-legacy-unified-search.js.map
vendored
2
dist/core-legacy-unified-search.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-login.js
vendored
4
dist/core-login.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-login.js.map
vendored
2
dist/core-login.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-maintenance.js
vendored
4
dist/core-maintenance.js
vendored
|
|
@ -1,2 +1,2 @@
|
|||
(()=>{"use strict";var e,t={22485:(e,t,n)=>{var o=n(19051),r=n(63814),i=n(21777),a=n(35947);const l=null===(d=(0,i.HW)())?(0,a.YK)().setApp("core").build():(0,a.YK)().setApp("core").setUid(d.uid).build();var d;(0,a.YK)().setApp("unified-search").detectUser().build();const c=(0,r.aU)()+"/status.php";!function e(){l.info("checking the Nextcloud maintenance status"),o.Ay.get(c).then(e=>e.data).then(t=>{if(!1===t.maintenance)return l.info("Nextcloud is not in maintenance mode anymore -> reloading"),void window.location.reload();l.info("Nextcloud is still in maintenance mode"),setTimeout(e,2e4)}).catch(l.error.bind(this))}()}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={id:e,loaded:!1,exports:{}};return t[e].call(i.exports,i,i.exports,o),i.loaded=!0,i.exports}o.m=t,e=[],o.O=(t,n,r,i)=>{if(!n){var a=1/0;for(u=0;u<e.length;u++){for(var[n,r,i]=e[u],l=!0,d=0;d<n.length;d++)(!1&i||a>=i)&&Object.keys(o.O).every(e=>o.O[e](n[d]))?n.splice(d--,1):(l=!1,i<a&&(a=i));if(l){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}i=i||0;for(var u=e.length;u>0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,r,i]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.e=()=>Promise.resolve(),o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=2076,(()=>{o.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2076:0};o.O.j=t=>0===e[t];var t=(t,n)=>{var r,i,[a,l,d]=n,c=0;if(a.some(t=>0!==e[t])){for(r in l)o.o(l,r)&&(o.m[r]=l[r]);if(d)var u=d(o)}for(t&&t(n);c<a.length;c++)i=a[c],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return o.O(u)},n=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),o.nc=void 0;var r=o.O(void 0,[4208],()=>o(22485));r=o.O(r)})();
|
||||
//# sourceMappingURL=core-maintenance.js.map?v=b996a57431fdf3bd4732
|
||||
(()=>{"use strict";var e,t={22485:(e,t,n)=>{var o=n(19051),r=n(63814),i=n(21777),a=n(35947);const l=null===(d=(0,i.HW)())?(0,a.YK)().setApp("core").build():(0,a.YK)().setApp("core").setUid(d.uid).build();var d;(0,a.YK)().setApp("unified-search").detectUser().build();const c=(0,r.aU)()+"/status.php";!function e(){l.info("checking the Nextcloud maintenance status"),o.Ay.get(c).then(e=>e.data).then(t=>{if(!1===t.maintenance)return l.info("Nextcloud is not in maintenance mode anymore -> reloading"),void window.location.reload();l.info("Nextcloud is still in maintenance mode"),setTimeout(e,2e4)}).catch(l.error.bind(this))}()}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={id:e,loaded:!1,exports:{}};return t[e].call(i.exports,i,i.exports,o),i.loaded=!0,i.exports}o.m=t,e=[],o.O=(t,n,r,i)=>{if(!n){var a=1/0;for(u=0;u<e.length;u++){for(var[n,r,i]=e[u],l=!0,d=0;d<n.length;d++)(!1&i||a>=i)&&Object.keys(o.O).every(e=>o.O[e](n[d]))?n.splice(d--,1):(l=!1,i<a&&(a=i));if(l){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}i=i||0;for(var u=e.length;u>0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,r,i]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.e=()=>Promise.resolve(),o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=2076,(()=>{var e={2076:0};o.O.j=t=>0===e[t];var t=(t,n)=>{var r,i,[a,l,d]=n,c=0;if(a.some(t=>0!==e[t])){for(r in l)o.o(l,r)&&(o.m[r]=l[r]);if(d)var u=d(o)}for(t&&t(n);c<a.length;c++)i=a[c],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return o.O(u)},n=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),o.nc=void 0;var r=o.O(void 0,[4208],()=>o(22485));r=o.O(r)})();
|
||||
//# sourceMappingURL=core-maintenance.js.map?v=7710353ead9be174749f
|
||||
2
dist/core-maintenance.js.map
vendored
2
dist/core-maintenance.js.map
vendored
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue