diff --git a/apps/files_sharing/src/views/SharingDetailsTab.vue b/apps/files_sharing/src/views/SharingDetailsTab.vue index 42b7a14538e90..29616d1829be1 100644 --- a/apps/files_sharing/src/views/SharingDetailsTab.vue +++ b/apps/files_sharing/src/views/SharingDetailsTab.vue @@ -166,6 +166,7 @@ + @update:model-value="onExpirationChange" + @change="checkExpirationDateValidity" /> diff --git a/apps/settings/src/components/Users/UserFormFields.vue b/apps/settings/src/components/Users/UserFormFields.vue index 85f44a922b28f..c428909e33a82 100644 --- a/apps/settings/src/components/Users/UserFormFields.vue +++ b/apps/settings/src/components/Users/UserFormFields.vue @@ -30,7 +30,9 @@ autocomplete="off" spellcheck="false" pattern="[a-zA-Z0-9 _\.@\-']+" - :required="fieldConfig.username?.required" /> + :required="fieldConfig.username?.required" + @input="updateUsernameValidity" + @blur="updateUsernameValidity" /> @@ -241,6 +241,10 @@ export default { || this.throttleDelay > 5000 }, + userNameError() { + return this.isError || this.userNameInputLengthIs255 + }, + errorLabel() { if (this.invalidPassword) { return t('core', 'Wrong login or password.') diff --git a/core/src/tests/components/Login/LoginForm.spec.ts b/core/src/tests/components/Login/LoginForm.spec.ts index b471c9bdf81df..9c6299bd2d40f 100644 --- a/core/src/tests/components/Login/LoginForm.spec.ts +++ b/core/src/tests/components/Login/LoginForm.spec.ts @@ -66,6 +66,18 @@ describe('core: LoginForm', () => { expect(input.value).toBe('test-user') }) + it('marks username field as error when login credentials are invalid', () => { + const page = render(LoginForm, { + props: { + errors: ['invalidpassword'], + username: 'wrong-user', + }, + }) + + const input = page.getByRole('textbox', { name: /Account name or email/ }) + expect(input.closest('.input-field--error')).not.toBeNull() + }) + describe('', () => { beforeAll(() => { vi.useFakeTimers() diff --git a/dist/1458-1458.js b/dist/1458-1458.js deleted file mode 100644 index 489552b83493d..0000000000000 --- a/dist/1458-1458.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunknextcloud_ui_legacy||=[]).push([[1458],{28069(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".share-expiry-time[data-v-c9199db0]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-c9199db0]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-c9199db0]{text-align:center;font-size:1rem;margin-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--color-border)}.hint-body[data-v-c9199db0]{padding:var(--border-radius-element);max-width:300px}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/ShareExpiryTime.vue"],names:[],mappings:"AACA,oCACI,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACI,SAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CAIR,+BACI,iBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,2CAAA,CAGJ,4BACI,oCAAA,CACA,eAAA",sourcesContent:["\n.share-expiry-time {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n .hint-icon {\n padding: 0;\n margin: 0;\n width: 24px;\n height: 24px;\n }\n}\n\n.hint-heading {\n text-align: center;\n font-size: 1rem;\n margin-top: 8px;\n padding-bottom: 8px;\n margin-bottom: 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.hint-body {\n padding: var(--border-radius-element);\n max-width: 300px;\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},40749(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-fa3f3612]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-fa3f3612]{padding:8px;padding-inline-start:10px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-fa3f3612]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-fa3f3612],.sharing-entry__summary__desc small[data-v-fa3f3612]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-fa3f3612]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntry.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: flex-start;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},29199(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-731a9650]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-731a9650]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-731a9650]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-731a9650]{margin-inline-start:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},76459(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry__internal .avatar-external[data-v-6c4cb23b]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-6c4cb23b]{opacity:1;color:var(--color-border-success)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue"],names:[],mappings:"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA,CACA,iCAAA",sourcesContent:["\n.sharing-entry__internal {\n\t.avatar-external {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-border-success);\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},91950(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-7a5c0ee5]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-7a5c0ee5]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-7a5c0ee5]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-7a5c0ee5]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-7a5c0ee5]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-7a5c0ee5]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-7a5c0ee5]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-7a5c0ee5] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-7a5c0ee5]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-7a5c0ee5]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-7a5c0ee5],.sharing-entry .action-item~.sharing-entry__loading[data-v-7a5c0ee5]{margin-inline-start:0}.sharing-entry__copy-icon--success[data-v-7a5c0ee5]{color:var(--color-border-success)}.qr-code-dialog[data-v-7a5c0ee5]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-7a5c0ee5]{width:100%;height:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryLink.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAIF,yCACC,YAAA,CACA,kBAAA,CACA,wBAAA,CAID,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,oDACC,iCAAA,CAKF,iCACC,YAAA,CACA,UAAA,CACA,sBAAA,CAEA,sCACC,UAAA,CACA,WAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\t}\n\n\t\t&__desc {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tline-height: 1.2em;\n\n\t\t\tp {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&__title {\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t:deep(.avatar-link-share) {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-inline-start: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-inline-start: 0;\n\t\t}\n\t}\n\n\t&__copy-icon--success {\n\t\tcolor: var(--color-border-success);\n\t}\n}\n\n// styling for the qr-code container\n.qr-code-dialog {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n\n\t&__img {\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},20569(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".share-select[data-v-839566a2]{display:block}.share-select[data-v-839566a2] .action-item__menutoggle{color:var(--color-primary-element) !important;font-size:12.5px !important;height:auto !important;min-height:auto !important}.share-select[data-v-839566a2] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-839566a2] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-839566a2] .action-item__menutoggle .button-vue__wrapper{flex-direction:row-reverse !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue"],names:[],mappings:"AACA,+BACC,aAAA,CAIA,wDACC,6CAAA,CACA,2BAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0EACC,6BAAA,CAGD,0EACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAGD,6EAEC,qCAAA",sourcesContent:["\n.share-select {\n\tdisplay: block;\n\n\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\n\t// Overrider NcActionms button to make it small\n\t:deep(.action-item__menutoggle) {\n\t\tcolor: var(--color-primary-element) !important;\n\t\tfont-size: 12.5px !important;\n\t\theight: auto !important;\n\t\tmin-height: auto !important;\n\n\t\t.button-vue__text {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\n\t\t.button-vue__icon {\n\t\t\theight: 24px !important;\n\t\t\tmin-height: 24px !important;\n\t\t\twidth: 24px !important;\n\t\t\tmin-width: 24px !important;\n\t\t}\n\n\t\t.button-vue__wrapper {\n\t\t\t// Emulate NcButton's alignment=center-reverse\n\t\t\tflex-direction: row-reverse !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},33176(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-13d4a0bb]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-13d4a0bb]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-13d4a0bb]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-13d4a0bb]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-13d4a0bb]{margin-inline-start:auto !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},24992(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingInput.vue"],names:[],mappings:"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA",sourcesContent:['\n.sharing-search {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 4px;\n\n\tlabel[for="sharing-search-input"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__input {\n\t\twidth: 100%;\n\t\tmargin: 10px 0;\n\t}\n}\n\n.vs__dropdown-menu {\n\t// properly style the lookup entry\n\tspan[lookup] {\n\t\t.avatardiv {\n\t\t\tbackground-image: var(--icon-search-white);\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-color: var(--color-text-maxcontrast) !important;\n\t\t\t.avatardiv__initials-wrapper {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},96037(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharingTabDetailsView[data-v-6dfa5504]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-6dfa5504]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-6dfa5504]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-6dfa5504]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-6dfa5504]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-6dfa5504]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-6dfa5504]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-6dfa5504]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-6dfa5504]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-6dfa5504] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-6dfa5504] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-6dfa5504] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-6dfa5504]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-6dfa5504]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-6dfa5504]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-6dfa5504],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-6dfa5504]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-6dfa5504]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-6dfa5504] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-6dfa5504]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-6dfa5504]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-6dfa5504]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-6dfa5504]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-6dfa5504]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-6dfa5504]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-6dfa5504]:first-child{margin-inline-start:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue"],names:[],mappings:"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,yBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,uBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,YAAA,CAGD,+EACC,YAAA,CACA,qBAAA,CAID,4HACC,cAAA,CAEA,qIACC,aAAA,CACA,eAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,sBAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAYD,qEACC,iCAAA,CACA,mCAAA,CACA,sBAAA,CAGD,2FACC,0BAAA,CAKH,+CACC,qBAAA,CAIA,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,wBAAA,CAEA,iFACC,qBAAA",sourcesContent:["\n.sharingTabDetailsView {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0.2em;\n\n\t\tspan {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\th1 {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tpadding-inline-start: 0.3em;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__wrapper {\n\t\tposition: relative;\n\t\toverflow: scroll;\n\t\tflex-shrink: 1;\n\t\tpadding: 4px;\n\t\tpadding-inline-end: 12px;\n\t}\n\n\t&__quick-permissions {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\tmargin: 0 auto;\n\t\tborder-radius: 0;\n\n\t\tdiv {\n\t\t\twidth: 100%;\n\n\t\t\tspan {\n\t\t\t\twidth: 100%;\n\n\t\t\t\tspan:nth-child(1) {\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tpadding: 0.1em;\n\t\t\t\t}\n\n\t\t\t\t:deep(label span) {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t}\n\n\t\t\t\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\n\t\t\t\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\n\t\t\t\t\tflex-wrap: wrap;\n\n\t\t\t\t\t.subline {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tflex-basis: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__advanced-control {\n\t\twidth: 100%;\n\n\t\tbutton {\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\n\t}\n\n\t&__advanced {\n\t\twidth: 100%;\n\t\tmargin-bottom: 0.5em;\n\t\ttext-align: start;\n\t\tpadding-inline-start: 0;\n\n\t\tsection {\n\n\t\t\ttextarea,\n\t\t\tdiv.mx-datepicker {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\ttextarea {\n\t\t\t\theight: 80px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t The following style is applied out of the component's scope\n\t\t\t to remove padding from the label.checkbox-radio-switch__label,\n\t\t\t which is used to group radio checkbox items. The use of ::v-deep\n\t\t\t ensures that the padding is modified without being affected by\n\t\t\t the component's scoping.\n\t\t\t Without this achieving left alignment for the checkboxes would not\n\t\t\t be possible.\n\t\t\t*/\n\t\t\tspan :deep(label) {\n\t\t\t\tpadding-inline-start: 0 !important;\n\t\t\t\tbackground-color: initial !important;\n\t\t\t\tborder: none !important;\n\t\t\t}\n\n\t\t\tsection.custom-permissions-group {\n\t\t\t\tpadding-inline-start: 1.5em;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__label {\n\t\tpadding-block-end: 6px;\n\t}\n\n\t&__delete {\n\t\t> button:first-child {\n\t\t\tcolor: rgb(223, 7, 7);\n\t\t}\n\t}\n\n\t&__footer {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n\t\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\n\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmargin-top: 16px;\n\n\t\t\tbutton {\n\t\t\t\tmargin-inline-start: 16px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tmargin-inline-start: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},19353(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry__inherited .avatar-shared[data-v-cedf3238]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingInherited.vue"],names:[],mappings:"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA",sourcesContent:["\n.sharing-entry__inherited {\n\t.avatar-shared {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},41253(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".emptyContentWithSections[data-v-cd6ad9ee]{margin:1rem auto}.sharingTab[data-v-cd6ad9ee]{position:relative;height:100%}.sharingTab__content[data-v-cd6ad9ee]{padding:0 6px}.sharingTab__content section[data-v-cd6ad9ee]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-cd6ad9ee]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-cd6ad9ee]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-cd6ad9ee]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-cd6ad9ee]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-cd6ad9ee]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-cd6ad9ee]{margin:var(--default-clickable-area) 0}.hint-body[data-v-cd6ad9ee]{max-width:300px;padding:var(--border-radius-element)}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingTab.vue"],names:[],mappings:"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAEA,8CACC,mBAAA,CAEA,8DACC,cAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,iEACC,QAAA,CACA,cAAA,CAGD,+EACC,YAAA,CAGD,yEACC,kCAAA,CAOH,+DACC,2CAAA,CAKF,gDACC,sCAAA,CAIF,4BACC,eAAA,CACA,oCAAA",sourcesContent:["\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\n\t\tsection {\n\t\t\tpadding-bottom: 16px;\n\n\t\t\t.section-header {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tmargin-bottom: 2px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding-bottom: 4px;\n\n\t\t\t\th4 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t.visually-hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.hint-icon {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t& > section:not(:last-child) {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\n\t}\n\n\t&__additionalContent {\n\t\tmargin: var(--default-clickable-area) 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},28280(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,"\n.sharing-tab-external-section-legacy[data-v-67cb6ff2] {\n\twidth: 100%;\n}\n","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SidebarTabExternal/SidebarTabExternalSectionLegacy.vue"],names:[],mappings:";AAiCA;CACA,WAAA;AACA",sourcesContent:['\x3c!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.fileInfo)?_c(_setup.SharingTab,{attrs:{\"file-info\":_setup.fileInfo}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ContentCopy.vue?vue&type=template&id=0e8bd3c4\"\nimport script from \"./ContentCopy.vue?vue&type=script&lang=js\"\nexport * from \"./ContentCopy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon content-copy-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_vm._t(\"avatar\"),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=13d4a0bb&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13d4a0bb\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { generateUrl, getBaseUrl } from '@nextcloud/router';\n/**\n * @param fileid - The file ID to generate the direct file link for\n */\nexport function generateFileUrl(fileid) {\n const baseURL = getBaseUrl();\n const { globalscale } = getCapabilities();\n if (globalscale?.token) {\n return generateUrl('/gf/{token}/{fileid}', {\n token: globalscale.token,\n fileid,\n }, { baseURL });\n }\n return generateUrl('/f/{fileid}', {\n fileid,\n }, {\n baseURL,\n });\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInternal.vue?vue&type=template&id=6c4cb23b&scoped=true\"\nimport script from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c4cb23b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('SharingEntrySimple',{ref:\"shareEntrySimple\",staticClass:\"sharing-entry__internal\",attrs:{\"title\":_vm.t('files_sharing', 'Internal link'),\"subtitle\":_vm.internalLinkSubtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-external icon-external-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"title\":_vm.copyLinkTooltip,\"aria-label\":_vm.copyLinkTooltip},on:{\"click\":_vm.copyLink},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.copied && _vm.copySuccess)?_c('CheckIcon',{staticClass:\"icon-checkmark-color\",attrs:{\"size\":20}}):_c('ClipboardIcon',{attrs:{\"size\":20}})]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharing-search\"},[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":_vm.shareInputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.isExternal\n\t\t\t? _vm.t('files_sharing', 'Enter external recipients')\n\t\t\t: _vm.t('files_sharing', 'Search for internal recipients'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{ref:\"select\",staticClass:\"sharing-search__input\",attrs:{\"input-id\":_vm.shareInputId,\"disabled\":!_vm.canReshare,\"loading\":_vm.loading,\"filterable\":false,\"placeholder\":_vm.inputPlaceholder,\"clear-search-on-blur\":() => false,\"user-select\":true,\"options\":_vm.options,\"label-outside\":true},on:{\"search\":_vm.asyncFind,\"option:selected\":_vm.onSelected},scopedSlots:_vm._u([{key:\"no-options\",fn:function({ search }){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(search ? _vm.noResultText : _vm.placeholder)+\"\\n\\t\\t\")]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const ATOMIC_PERMISSIONS = {\n\tNONE: 0,\n\tREAD: 1,\n\tUPDATE: 2,\n\tCREATE: 4,\n\tDELETE: 8,\n\tSHARE: 16,\n}\n\nconst BUNDLED_PERMISSIONS = {\n\tREAD_ONLY: ATOMIC_PERMISSIONS.READ,\n\tUPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE,\n\tFILE_DROP: ATOMIC_PERMISSIONS.CREATE,\n\tALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE | ATOMIC_PERMISSIONS.SHARE,\n\tALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.SHARE,\n}\n\n/**\n * Get bundled permissions based on config.\n *\n * @param {boolean} excludeShare - Whether to exclude SHARE permission from ALL and ALL_FILE bundles.\n * @return {object}\n */\nexport function getBundledPermissions(excludeShare = false) {\n\tif (excludeShare) {\n\t\treturn {\n\t\t\t...BUNDLED_PERMISSIONS,\n\t\t\tALL: BUNDLED_PERMISSIONS.ALL & ~ATOMIC_PERMISSIONS.SHARE,\n\t\t\tALL_FILE: BUNDLED_PERMISSIONS.ALL_FILE & ~ATOMIC_PERMISSIONS.SHARE,\n\t\t}\n\t}\n\treturn BUNDLED_PERMISSIONS\n}\n\n/**\n * Return whether a given permissions set contains some permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToCheck - the permissions to check.\n * @return {boolean}\n */\nexport function hasPermissions(initialPermissionSet, permissionsToCheck) {\n\treturn initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck\n}\n\n/**\n * Return whether a given permissions set is valid.\n *\n * @param {number} permissionsSet - the permissions set.\n *\n * @return {boolean}\n */\nexport function permissionsSetIsValid(permissionsSet) {\n\t// Must have at least READ or CREATE permission.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) {\n\t\treturn false\n\t}\n\n\t// Must have READ permission if have UPDATE or DELETE.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (\n\t\thasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE)\n\t)) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Add some permissions to an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToAdd - the permissions to add.\n *\n * @return {number}\n */\nexport function addPermissions(initialPermissionSet, permissionsToAdd) {\n\treturn initialPermissionSet | permissionsToAdd\n}\n\n/**\n * Remove some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToSubtract - the permissions to remove.\n *\n * @return {number}\n */\nexport function subtractPermissions(initialPermissionSet, permissionsToSubtract) {\n\treturn initialPermissionSet & ~permissionsToSubtract\n}\n\n/**\n * Toggle some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {number}\n */\nexport function togglePermissions(initialPermissionSet, permissionsToToggle) {\n\tif (hasPermissions(initialPermissionSet, permissionsToToggle)) {\n\t\treturn subtractPermissions(initialPermissionSet, permissionsToToggle)\n\t} else {\n\t\treturn addPermissions(initialPermissionSet, permissionsToToggle)\n\t}\n}\n\n/**\n * Return whether some given permissions can be toggled from a permission set.\n *\n * @param {number} permissionSet - the initial permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {boolean}\n */\nexport function canTogglePermissions(permissionSet, permissionsToToggle) {\n\treturn permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle))\n}\n\n/**\n * The permission bundles the share editor offers, in the order they are matched.\n *\n * @type {string[]}\n */\nconst EDITOR_BUNDLES = ['READ_ONLY', 'ALL', 'ALL_FILE', 'FILE_DROP']\n\n/**\n * Find the permission bundle a share's permissions correspond to.\n *\n * Link and email shares carry the SHARE permission whenever federation on\n * public shares is enabled: the server adds it on top of whatever bundle was\n * picked, so it must be ignored when matching those shares against a bundle.\n *\n * @param {number} permissions - the share permissions.\n * @param {object} [options] - matching options.\n * @param {boolean} [options.isPublicShare] - whether the share is a link or email share.\n * @param {boolean} [options.excludeReshareFromEdit] - whether SHARE is excluded from the editing bundles.\n *\n * @return {string|null} the name of the matching bundle, or `null` for custom permissions.\n */\nexport function matchBundledPermissions(permissions, { isPublicShare = false, excludeReshareFromEdit = false } = {}) {\n\tconst bundles = getBundledPermissions(isPublicShare || excludeReshareFromEdit)\n\tconst comparablePermissions = isPublicShare\n\t\t? subtractPermissions(permissions, ATOMIC_PERMISSIONS.SHARE)\n\t\t: permissions\n\n\treturn EDITOR_BUNDLES.find((bundle) => bundles[bundle] === comparablePermissions) ?? null\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport logger from '../services/logger.ts';\nimport { isFileRequest } from '../services/SharingService.ts';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param ocsData ocs request response\n */\n constructor(ocsData) {\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n // string to int\n if (typeof ocsData.id === 'string') {\n ocsData.id = Number.parseInt(ocsData.id);\n }\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n }\n catch {\n logger.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\n // Pre-declared so Vue 2 makes newPassword reactive at observation time,\n // avoiding $set's property-addition path which races with async setters.\n ocsData.newPassword = ocsData.newPassword ?? undefined;\n // store state\n this._share = ocsData;\n }\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return the share raw state\n */\n get state() {\n return this._share;\n }\n /**\n * get the share id\n */\n get id() {\n return this._share.id;\n }\n /**\n * Get the share type\n */\n get type() {\n return this._share.share_type;\n }\n /**\n * Get the share permissions\n * See window.OC.PERMISSION_* variables\n */\n get permissions() {\n return this._share.permissions;\n }\n /**\n * Get the share attributes\n */\n get attributes() {\n return this._share.attributes || [];\n }\n /**\n * Set the share permissions\n * See window.OC.PERMISSION_* variables\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n */\n get owner() {\n return this._share.uid_owner;\n }\n /**\n * Get the share owner's display name\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n */\n get shareWith() {\n return this._share.share_with;\n }\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname\n || this._share.share_with;\n }\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique\n || this._share.share_with;\n }\n /**\n * Get the share with entity link\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n /**\n * Get the share with avatar if any\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n /**\n * Get the shared item display name\n * fallback to its uid if none\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner\n || this._share.uid_file_owner;\n }\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n */\n get createdTime() {\n return this._share.stime;\n }\n /**\n * Get the expiration date\n *\n * @return date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n *\n * @param date the share expiration date with YYYY-MM-DD format\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n */\n get token() {\n return this._share.token;\n }\n /**\n * Set the public share token\n */\n set token(token) {\n this._share.token = token;\n }\n /**\n * Get the share note if any\n */\n get note() {\n return this._share.note;\n }\n /**\n * Set the share note if any\n */\n set note(note) {\n this._share.note = note;\n }\n /**\n * Get the share label if any\n * Should only exist on link shares\n */\n get label() {\n return this._share.label ?? '';\n }\n /**\n * Set the share label if any\n * Should only be set on link shares\n */\n set label(label) {\n this._share.label = label;\n }\n /**\n * Have a mail been sent\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n /**\n * Hide the download button on public page\n */\n get hideDownload() {\n return this._share.hide_download === true\n || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined;\n }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\n // disabling hide-download also enables the download permission\n // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3\n if (!state) {\n const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions');\n if (attribute) {\n attribute.value = true;\n }\n }\n this._share.hide_download = state === true;\n }\n /**\n * Password protection of the share\n */\n get password() {\n return this._share.password;\n }\n /**\n * Password protection of the share\n */\n set password(password) {\n this._share.password = password;\n }\n /**\n * Unsaved password (set during share creation or editing).\n * Delegates to _share so reads/writes go through the reactive state.\n */\n get newPassword() {\n return this._share.newPassword;\n }\n set newPassword(value) {\n this._share.newPassword = value;\n }\n /**\n * Password expiration time\n *\n * @return date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n *\n * @param passwordExpirationTime date with YYYY-MM-DD format\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n /**\n * Password protection by Talk of the share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n /**\n * Password protection by Talk of the share\n *\n * @param sendPasswordByTalk whether to send the password by Talk or not\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n */\n get path() {\n return this._share.path;\n }\n /**\n * Return the item type: file or folder\n *\n * @return 'folder' | 'file'\n */\n get itemType() {\n return this._share.item_type;\n }\n /**\n * Get the shared item mimetype\n */\n get mimetype() {\n return this._share.mimetype;\n }\n /**\n * Get the shared item id\n */\n get fileSource() {\n return this._share.file_source;\n }\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n */\n get fileTarget() {\n return this._share.file_target;\n }\n /**\n * Get the parent folder id if any\n */\n get fileParent() {\n return this._share.file_parent;\n }\n // PERMISSIONS Shortcuts\n /**\n * Does this share have READ permissions\n */\n get hasReadPermission() {\n return !!((this.permissions & window.OC.PERMISSION_READ));\n }\n /**\n * Does this share have CREATE permissions\n */\n get hasCreatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_CREATE));\n }\n /**\n * Does this share have DELETE permissions\n */\n get hasDeletePermission() {\n return !!((this.permissions & window.OC.PERMISSION_DELETE));\n }\n /**\n * Does this share have UPDATE permissions\n */\n get hasUpdatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_UPDATE));\n }\n /**\n * Does this share have SHARE permissions\n */\n get hasSharePermission() {\n return !!((this.permissions & window.OC.PERMISSION_SHARE));\n }\n /**\n * Does this share have download permissions\n */\n get hasDownloadPermission() {\n const hasDisabledDownload = (attribute) => {\n return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false;\n };\n return !this.attributes.some(hasDisabledDownload);\n }\n /**\n * Is this mail share a file request ?\n */\n get isFileRequest() {\n return isFileRequest(JSON.stringify(this.attributes));\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, value) {\n const attrUpdate = {\n scope,\n key,\n value,\n };\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n /**\n * Can the current user DELETE this share ?\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n /**\n * Top level accessible shared folder fileid for the current user\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n /**\n * Top level accessible shared folder path for the current user\n */\n get viaPath() {\n return this._share.via_path;\n }\n // TODO: SORT THOSE PROPERTIES\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n /**\n * Is the share from a trusted server\n */\n get isTrustedServer() {\n return !!this._share.is_trusted_server;\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// TODO: Fix this instead of disabling ESLint!!!\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { File, Folder, Permission } from '@nextcloud/files';\nimport { getRemoteURL, getRootPath } from '@nextcloud/files/dav';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport logger from './logger.ts';\nconst headers = {\n 'Content-Type': 'application/json',\n};\n/**\n *\n * @param ocsEntry\n * @param unmounted whether the share is not mounted into the filesystem (pending or deleted)\n */\nasync function ocsEntryToNode(ocsEntry, unmounted = false) {\n try {\n // Federated share handling\n if (ocsEntry?.remote_id !== undefined) {\n if (!ocsEntry.mimetype) {\n const mime = (await import('mime')).default;\n // This won't catch files without an extension, but this is the best we can do\n ocsEntry.mimetype = mime.getType(ocsEntry.name);\n }\n const type = ocsEntry.type === 'dir' ? 'folder' : ocsEntry.type;\n ocsEntry.item_type = type || (ocsEntry.mimetype ? 'file' : 'folder');\n // different naming for remote shares\n ocsEntry.item_mtime = ocsEntry.mtime;\n ocsEntry.file_target = ocsEntry.file_target || ocsEntry.mountpoint;\n if (ocsEntry.file_target.includes('TemporaryMountPointName')) {\n ocsEntry.file_target = ocsEntry.name;\n }\n // If the share is not accepted yet we don't know which permissions it will have\n if (!ocsEntry.accepted) {\n // Need to set permissions to NONE for federated shares\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n ocsEntry.uid_owner = ocsEntry.owner;\n // TODO: have the real display name stored somewhere\n ocsEntry.displayname_owner = ocsEntry.owner;\n }\n // Pending and deleted shares are not mounted into the user's filesystem,\n // so no file operation can act on them until they are accepted or restored.\n if (unmounted) {\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n const isFolder = ocsEntry?.item_type === 'folder';\n const hasPreview = ocsEntry?.has_preview === true;\n const Node = isFolder ? Folder : File;\n // If this is an external share that is not yet accepted,\n // we don't have an id. We can fallback to the row id temporarily\n // local shares (this server) use `file_source`, but remote shares (federated) use `file_id`\n const fileid = ocsEntry.file_source || ocsEntry.file_id || ocsEntry.id;\n // Generate path and strip double slashes\n const path = ocsEntry.path || ocsEntry.file_target || ocsEntry.name;\n const source = `${getRemoteURL()}${getRootPath()}/${path.replace(/^\\/+/, '')}`;\n let mtime = ocsEntry.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined;\n // Prefer share time if more recent than item mtime\n if (ocsEntry?.stime > (ocsEntry?.item_mtime || 0)) {\n mtime = new Date((ocsEntry.stime) * 1000);\n }\n let sharees;\n if ('share_with' in ocsEntry) {\n sharees = {\n sharee: {\n id: ocsEntry.share_with,\n 'display-name': ocsEntry.share_with_displayname || ocsEntry.share_with,\n type: ocsEntry.share_type,\n },\n };\n }\n return new Node({\n id: fileid,\n source,\n owner: ocsEntry?.uid_owner,\n mime: ocsEntry?.mimetype || 'application/octet-stream',\n mtime,\n size: ocsEntry?.item_size ?? undefined,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: getRootPath(),\n attributes: {\n ...ocsEntry,\n 'has-preview': hasPreview,\n 'hide-download': ocsEntry?.hide_download === 1,\n // Also check the sharingStatusAction.ts code\n 'owner-id': ocsEntry?.uid_owner,\n 'owner-display-name': ocsEntry?.displayname_owner,\n 'share-types': ocsEntry?.share_type,\n 'share-attributes': ocsEntry?.attributes || '[]',\n sharees,\n favorite: ocsEntry?.tags?.includes(window.OC.TAG_FAVORITE) ? 1 : 0,\n },\n });\n }\n catch (error) {\n logger.error('Error while parsing OCS entry', { error });\n return null;\n }\n}\n/**\n *\n * @param shareWithMe\n */\nfunction getShares(shareWithMe = false) {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares');\n return axios.get(url, {\n headers,\n params: {\n shared_with_me: shareWithMe,\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getSharedWithYou() {\n return getShares(true);\n}\n/**\n *\n */\nfunction getSharedWithOthers() {\n return getShares();\n}\n/**\n *\n */\nfunction getRemoteShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getPendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getRemotePendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getDeletedShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/deletedshares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n * Check if a file request is enabled\n *\n * @param attributes the share attributes json-encoded array\n */\nexport function isFileRequest(attributes = '[]') {\n const isFileRequest = (attribute) => {\n return attribute.scope === 'fileRequest' && attribute.key === 'enabled' && attribute.value === true;\n };\n try {\n const attributesArray = JSON.parse(attributes);\n return attributesArray.some(isFileRequest);\n }\n catch (error) {\n logger.error('Error while parsing share attributes', { error });\n return false;\n }\n}\n/**\n * Group an array of objects (here Nodes) by a key\n * and return an array of arrays of them.\n *\n * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nfunction groupBy(nodes, key) {\n return Object.values(nodes.reduce(function (acc, curr) {\n (acc[curr[key]] = acc[curr[key]] || []).push(curr);\n return acc;\n }, {}));\n}\n/**\n *\n * @param sharedWithYou\n * @param sharedWithOthers\n * @param pendingShares\n * @param deletedshares\n * @param filterTypes\n */\nexport async function getContents(sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) {\n const requests = [];\n if (sharedWithYou) {\n requests.push({ promise: getSharedWithYou(), unmounted: false }, { promise: getRemoteShares(), unmounted: false });\n }\n if (sharedWithOthers) {\n requests.push({ promise: getSharedWithOthers(), unmounted: false });\n }\n if (pendingShares) {\n requests.push({ promise: getPendingShares(), unmounted: true }, { promise: getRemotePendingShares(), unmounted: true });\n }\n if (deletedshares) {\n requests.push({ promise: getDeletedShares(), unmounted: true });\n }\n const responses = await Promise.all(requests.map(({ promise }) => promise));\n const data = responses.flatMap((response, index) => response.data.ocs.data\n .map((entry) => ({ entry, unmounted: requests[index].unmounted })));\n let contents = (await Promise.all(data.map(({ entry, unmounted }) => ocsEntryToNode(entry, unmounted))))\n .filter((node) => node !== null);\n if (filterTypes.length > 0) {\n contents = contents.filter((node) => filterTypes.includes(node.attributes?.share_type));\n }\n // Merge duplicate shares and group their attributes\n // Also check the sharingStatusAction.ts code\n contents = groupBy(contents, 'source').map((nodes) => {\n const node = nodes[0];\n node.attributes['share-types'] = nodes.map((node) => node.attributes['share-types']);\n return node;\n });\n return {\n folder: new Folder({\n id: 0,\n source: `${getRemoteURL()}${getRootPath()}`,\n owner: getCurrentUser()?.uid || null,\n root: getRootPath(),\n }),\n contents,\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { loadState } from '@nextcloud/initial-state';\nexport default class Config {\n _capabilities;\n constructor() {\n this._capabilities = getCapabilities();\n }\n /**\n * Get default share permissions, if any\n */\n get defaultPermissions() {\n return this._capabilities.files_sharing?.default_permissions;\n }\n /**\n * Should SHARE permission be excluded from \"Allow editing\" bundled permissions\n */\n get excludeReshareFromEdit() {\n return this._capabilities.files_sharing?.exclude_reshare_from_edit === true;\n }\n /**\n * Is public upload allowed on link shares ?\n * This covers File request and Full upload/edit option.\n */\n get isPublicUploadEnabled() {\n return this._capabilities.files_sharing?.public?.upload === true;\n }\n /**\n * Get the federated sharing documentation link\n */\n get federatedShareDocLink() {\n return window.OC.appConfig.core.federatedCloudShareDoc;\n }\n /**\n * Get the default link share expiration date\n */\n get defaultExpirationDate() {\n if (this.isDefaultExpireDateEnabled) {\n const days = this.linkDefaultExpDays ?? this.defaultExpireDate;\n if (days !== null) {\n return new Date(new Date().setDate(new Date().getDate() + days));\n }\n }\n return null;\n }\n /**\n * Get the maximum link share expiration date\n */\n get maxExpirationDate() {\n if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate));\n }\n return null;\n }\n /**\n * Get the default internal expiration date\n */\n get defaultInternalExpirationDate() {\n if (this.isDefaultInternalExpireDateEnabled && this.defaultInternalExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate));\n }\n return null;\n }\n /**\n * Get the default remote expiration date\n */\n get defaultRemoteExpirationDateString() {\n if (this.isDefaultRemoteExpireDateEnabled && this.defaultRemoteExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate));\n }\n return null;\n }\n /**\n * Are link shares password-enforced ?\n */\n get enforcePasswordForPublicLink() {\n return window.OC.appConfig.core.enforcePasswordForPublicLink === true;\n }\n /**\n * Is password asked by default on link shares ?\n */\n get enableLinkPasswordByDefault() {\n return window.OC.appConfig.core.enableLinkPasswordByDefault === true;\n }\n /**\n * Is link shares expiration enforced ?\n */\n get isDefaultExpireDateEnforced() {\n return window.OC.appConfig.core.defaultExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new link shares ?\n */\n get isDefaultExpireDateEnabled() {\n return window.OC.appConfig.core.defaultExpireDateEnabled === true;\n }\n /**\n * Is internal shares expiration enforced ?\n */\n get isDefaultInternalExpireDateEnforced() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new internal shares ?\n */\n get isDefaultInternalExpireDateEnabled() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnabled === true;\n }\n /**\n * Is remote shares expiration enforced ?\n */\n get isDefaultRemoteExpireDateEnforced() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new remote shares ?\n */\n get isDefaultRemoteExpireDateEnabled() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnabled === true;\n }\n /**\n * Are users on this server allowed to send shares to other servers ?\n */\n get isRemoteShareAllowed() {\n return window.OC.appConfig.core.remoteShareAllowed === true;\n }\n /**\n * Is federation enabled ?\n */\n get isFederationEnabled() {\n return this._capabilities?.files_sharing?.federation?.outgoing === true;\n }\n /**\n * Is public sharing enabled ?\n */\n get isPublicShareAllowed() {\n return this._capabilities?.files_sharing?.public?.enabled === true;\n }\n /**\n * Is sharing my mail (link share) enabled ?\n */\n get isMailShareAllowed() {\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n && this.isPublicShareAllowed === true;\n }\n /**\n * Get the maximum days to link shares expiration\n */\n get defaultExpireDate() {\n return window.OC.appConfig.core.defaultExpireDate;\n }\n /**\n * Get the default days to link shares expiration\n */\n get linkDefaultExpDays() {\n return this._capabilities?.files_sharing?.public?.expire_date?.default_days ?? null;\n }\n /**\n * Get the default days to internal shares expiration\n */\n get defaultInternalExpireDate() {\n return window.OC.appConfig.core.defaultInternalExpireDate;\n }\n /**\n * Get the default days to remote shares expiration\n */\n get defaultRemoteExpireDate() {\n return window.OC.appConfig.core.defaultRemoteExpireDate;\n }\n /**\n * Is resharing allowed ?\n */\n get isResharingAllowed() {\n return window.OC.appConfig.core.resharingAllowed === true;\n }\n /**\n * Is password enforced for mail shares ?\n */\n get isPasswordForMailSharesRequired() {\n return this._capabilities.files_sharing?.sharebymail?.password?.enforced === true;\n }\n /**\n * Always show the email or userid unique sharee label if enabled by the admin\n */\n get shouldAlwaysShowUnique() {\n return this._capabilities.files_sharing?.sharee?.always_show_unique === true;\n }\n /**\n * Is sharing with groups allowed ?\n */\n get allowGroupSharing() {\n return window.OC.appConfig.core.allowGroupSharing === true;\n }\n /**\n * Get the maximum results of a share search\n */\n get maxAutocompleteResults() {\n return parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25;\n }\n /**\n * Get the minimal string length\n * to initiate a share search\n */\n get minSearchStringLength() {\n return parseInt(window.OC.config['sharing.minSearchStringLength'], 10) || 0;\n }\n /**\n * Get the password policy configuration\n */\n get passwordPolicy() {\n return this._capabilities?.password_policy || {};\n }\n /**\n * Returns true if custom tokens are allowed\n */\n get allowCustomTokens() {\n return this._capabilities?.files_sharing?.public?.custom_tokens;\n }\n /**\n * Show federated shares as internal shares\n *\n * @return\n */\n get showFederatedSharesAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesAsInternal', false);\n }\n /**\n * Show federated shares to trusted servers as internal shares\n *\n * @return\n */\n get showFederatedSharesToTrustedServersAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesToTrustedServersAsInternal', false);\n }\n /**\n * Show the external share ui\n */\n get showExternalSharing() {\n return loadState('files_sharing', 'showExternalSharing', true);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ATOMIC_PERMISSIONS } from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\n\nexport default {\n\tmethods: {\n\t\tasync openSharingDetails(shareRequestObject) {\n\t\t\tlet share\n\t\t\t// handle externalResults from OCA.Sharing.ShareSearch\n\t\t\t// TODO : Better name/interface for handler required\n\t\t\t// For example `externalAppCreateShareHook` with proper documentation\n\t\t\tif (shareRequestObject.handler) {\n\t\t\t\tconst handlerInput = {}\n\t\t\t\tif (this.suggestions) {\n\t\t\t\t\thandlerInput.suggestions = this.suggestions\n\t\t\t\t\thandlerInput.fileInfo = this.fileInfo\n\t\t\t\t\thandlerInput.query = this.query\n\t\t\t\t}\n\t\t\t\tconst externalShareRequestObject = await shareRequestObject.handler(handlerInput)\n\t\t\t\tshare = this.mapShareRequestToShareObject(externalShareRequestObject)\n\t\t\t} else {\n\t\t\t\tshare = this.mapShareRequestToShareObject(shareRequestObject)\n\t\t\t}\n\n\t\t\tif (this.fileInfo.type !== 'dir') {\n\t\t\t\tconst originalPermissions = share.permissions\n\t\t\t\tconst strippedPermissions = originalPermissions\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.CREATE\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.DELETE\n\n\t\t\t\tif (originalPermissions !== strippedPermissions) {\n\t\t\t\t\tlogger.debug('Removed create/delete permissions from file share (only valid for folders)')\n\t\t\t\t\tshare.permissions = strippedPermissions\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst shareDetails = {\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tshare,\n\t\t\t}\n\n\t\t\tthis.$emit('open-sharing-details', shareDetails)\n\t\t},\n\t\topenShareDetailsForCustomSettings(share) {\n\t\t\tshare.setCustomPermissions = true\n\t\t\tthis.openSharingDetails(share)\n\t\t},\n\t\tmapShareRequestToShareObject(shareRequestObject) {\n\t\t\tif (shareRequestObject.id) {\n\t\t\t\treturn shareRequestObject\n\t\t\t}\n\n\t\t\tconst share = {\n\t\t\t\tattributes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\tscope: 'permissions',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\thideDownload: false,\n\t\t\t\tshare_type: shareRequestObject.shareType,\n\t\t\t\tshare_with: shareRequestObject.shareWith,\n\t\t\t\tis_no_user: shareRequestObject.isNoUser,\n\t\t\t\tuser: shareRequestObject.shareWith,\n\t\t\t\tshare_with_displayname: shareRequestObject.displayName,\n\t\t\t\tsubtitle: shareRequestObject.subtitle,\n\t\t\t\tpermissions: shareRequestObject.permissions ?? new Config().defaultPermissions,\n\t\t\t\texpiration: '',\n\t\t\t}\n\n\t\t\treturn new Share(share)\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport Share from '../models/Share.ts'\nimport logger from '../services/logger.ts'\n\nconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\nexport default {\n\tmethods: {\n\t\t/**\n\t\t * Create a new share\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.path path to the file/folder which should be shared\n\t\t * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share\n\t\t * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1)\n\t\t * @param {boolean} [data.publicUpload] allow public upload to a public shared folder\n\t\t * @param {string} [data.password] password to protect public link Share with\n\t\t * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)\n\t\t * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation\n\t\t * @param {string} [data.expireDate] expire the share automatically after\n\t\t * @param {string} [data.label] custom label\n\t\t * @param {string} [data.attributes] Share attributes encoded as json\n\t\t * @param {string} data.note custom note to recipient\n\t\t * @return {Share} the new share\n\t\t * @throws {Error}\n\t\t */\n\t\tasync createShare({ path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes }) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.post(shareUrl, { path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\tconst share = new Share(request.data.ocs.data)\n\t\t\t\temit('files_sharing:share:created', { share })\n\t\t\t\treturn share\n\t\t\t} catch (error) {\n\t\t\t\tconst errorMessage = getErrorMessage(error) ?? t('files_sharing', 'Error creating the share')\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tthrow new Error(errorMessage, { cause: error })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @throws {Error}\n\t\t */\n\t\tasync deleteShare(id) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.delete(shareUrl + `/${id}`)\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\temit('files_sharing:share:deleted', { id })\n\t\t\t\treturn true\n\t\t\t} catch (error) {\n\t\t\t\tconst errorMessage = getErrorMessage(error) ?? t('files_sharing', 'Error deleting the share')\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tthrow new Error(errorMessage, { cause: error })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @param {object} properties key-value object of the properties to update\n\t\t */\n\t\tasync updateShare(id, properties) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.put(shareUrl + `/${id}`, properties)\n\t\t\t\temit('files_sharing:share:updated', { id })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t} else {\n\t\t\t\t\treturn request.data.ocs.data\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while updating share', { error })\n\t\t\t\tconst errorMessage = getErrorMessage(error) ?? t('files_sharing', 'Error updating the share')\n\t\t\t\t// the error will be shown in apps/files_sharing/src/mixins/SharesMixin.js\n\t\t\t\tthrow new Error(errorMessage, { cause: error })\n\t\t\t}\n\t\t},\n\t},\n}\n\n/**\n * Handle an error response from the server and show a notification with the error message if possible\n *\n * @param {unknown} error - The received error\n * @return {string|undefined} the error message if it could be extracted from the response, otherwise undefined\n */\nfunction getErrorMessage(error) {\n\tif (isAxiosError(error) && error.response.data?.ocs) {\n\t\t/** @type {import('@nextcloud/typings/ocs').OCSResponse} */\n\t\tconst response = error.response.data\n\t\tif (response.ocs.meta?.message) {\n\t\t\treturn response.ocs.meta.message\n\t\t}\n\t}\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=0b151499&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=0b151499&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=0b151499\"\nimport script from \"./SharingInput.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInput.vue?vue&type=style&index=0&id=0b151499&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.section.element,{ref:\"sectionElement\",tag:\"component\",domProps:{\"node\":_vm.node}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalSection.vue?vue&type=template&id=9785f99e\"\nimport script from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"sharing-tab-external-section-legacy\"},[_c(_setup.component,{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=67cb6ff2&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=67cb6ff2&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SidebarTabExternalSectionLegacy.vue?vue&type=template&id=67cb6ff2&scoped=true\"\nimport script from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nimport style0 from \"./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=67cb6ff2&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67cb6ff2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTabDetailsView\"},[_c('div',{staticClass:\"sharingTabDetailsView__header\"},[_c('span',[(_vm.isUserShare)?_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.shareType !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}):_vm._e(),_vm._v(\" \"),_c(_vm.getShareTypeIcon(_vm.share.type),{tag:\"component\",attrs:{\"size\":32}})],1),_vm._v(\" \"),_c('span',[_c('h1',[_vm._v(_vm._s(_vm.title))])])]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__wrapper\"},[_c('div',{ref:\"quickPermissions\",staticClass:\"sharingTabDetailsView__quick-permissions\"},[_c('div',[_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"read-only\",\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'View only'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"upload-edit\",\"value\":_vm.allPermissions,\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[(_vm.allowsFileDrop)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow upload and editing'))+\"\\n\\t\\t\\t\\t\\t\")]:[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow editing'))+\"\\n\\t\\t\\t\\t\\t\")]],2),_vm._v(\" \"),(_vm.allowsFileDrop)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-sharing-share-permissions-bundle\":\"file-drop\",\"button-variant\":true,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'File request'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.t('files_sharing', 'Upload only')))])]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"custom\",\"value\":\"custom\",\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.expandCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.customPermissionsList))])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__advanced-control\"},[_c('NcButton',{attrs:{\"id\":\"advancedSectionAccordionAdvancedControl\",\"variant\":\"tertiary\",\"alignment\":\"end-reverse\",\"aria-controls\":\"advancedSectionAccordionAdvanced\",\"aria-expanded\":_vm.advancedControlExpandedValue},on:{\"click\":function($event){_vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.advancedSectionAccordionExpanded)?_c('MenuDownIcon'):_c('MenuUpIcon')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Advanced settings'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.advancedSectionAccordionExpanded)?_c('div',{staticClass:\"sharingTabDetailsView__advanced\",attrs:{\"id\":\"advancedSectionAccordionAdvanced\",\"aria-labelledby\":\"advancedSectionAccordionAdvancedControl\",\"role\":\"region\"}},[_c('section',[(_vm.isPublicShare)?_c('NcInputField',{staticClass:\"sharingTabDetailsView__label\",attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share label')},model:{value:(_vm.share.label),callback:function ($$v) {_vm.$set(_vm.share, \"label\", $$v)},expression:\"share.label\"}}):_vm._e(),_vm._v(\" \"),(_vm.config.allowCustomTokens && _vm.isPublicShare && !_vm.isNewShare)?_c('NcInputField',{attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share link token'),\"helper-text\":_vm.t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.'),\"show-trailing-button\":\"\",\"trailing-button-label\":_vm.loadingToken ? _vm.t('files_sharing', 'Generating…') : _vm.t('files_sharing', 'Generate new token')},on:{\"trailing-button-click\":_vm.generateNewToken},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [(_vm.loadingToken)?_c('NcLoadingIcon'):_c('Refresh',{attrs:{\"size\":20}})]},proxy:true}],null,false,4228062821),model:{value:(_vm.share.token),callback:function ($$v) {_vm.$set(_vm.share, \"token\", $$v)},expression:\"share.token\"}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isPasswordEnforced},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set password'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isPasswordProtected)?_c('NcPasswordField',{attrs:{\"autocomplete\":\"new-password\",\"model-value\":_vm.share.newPassword ?? '',\"error\":_vm.passwordError,\"helper-text\":_vm.errorPasswordLabel || _vm.passwordHint,\"required\":_vm.isPasswordEnforced && _vm.isNewShare,\"label\":_vm.t('files_sharing', 'Password')},on:{\"update:value\":_vm.onPasswordChange}}):_vm._e(),_vm._v(\" \"),(_vm.isEmailShareType && _vm.passwordExpirationTime)?_c('span',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime: _vm.passwordExpirationTime }))+\"\\n\\t\\t\\t\\t\\t\")]):(_vm.isEmailShareType && _vm.passwordExpirationTime !== null)?_c('span',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expired'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.canTogglePasswordProtectedByTalkAvailable)?_c('NcCheckboxRadioSwitch',{model:{value:(_vm.isPasswordProtectedByTalk),callback:function ($$v) {_vm.isPasswordProtectedByTalk=$$v},expression:\"isPasswordProtectedByTalk\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Video verification'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isExpiryDateEnforced},model:{value:(_vm.hasExpirationDate),callback:function ($$v) {_vm.hasExpirationDate=$$v},expression:\"hasExpirationDate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.isExpiryDateEnforced\n\t\t\t\t\t\t? _vm.t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t: _vm.t('files_sharing', 'Set expiration date'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.hasExpirationDate)?_c('NcDateTimePickerNative',{attrs:{\"id\":\"share-date-picker\",\"model-value\":new Date(_vm.share.expireDate ?? _vm.dateTomorrow),\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced,\"hide-label\":\"\",\"label\":_vm.t('files_sharing', 'Expiration date'),\"placeholder\":_vm.t('files_sharing', 'Expiration date'),\"type\":\"date\"},on:{\"input\":_vm.onExpirationChange}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.canChangeHideDownload},model:{value:(_vm.share.hideDownload),callback:function ($$v) {_vm.$set(_vm.share, \"hideDownload\", $$v)},expression:\"share.hideDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Hide download'))+\"\\n\\t\\t\\t\\t\")]):(_vm.canShowDownloadPermission)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDownload,\"data-cy-files-sharing-share-permissions-checkbox\":\"download\"},model:{value:(_vm.canDownload),callback:function ($$v) {_vm.canDownload=$$v},expression:\"canDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow download and sync'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.writeNoteToRecipientIsChecked),callback:function ($$v) {_vm.writeNoteToRecipientIsChecked=$$v},expression:\"writeNoteToRecipientIsChecked\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Note to recipient'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.writeNoteToRecipientIsChecked)?[_c('NcTextArea',{attrs:{\"label\":_vm.t('files_sharing', 'Note to recipient'),\"placeholder\":_vm.t('files_sharing', 'Enter a note for the share recipient')},model:{value:(_vm.share.note),callback:function ($$v) {_vm.$set(_vm.share, \"note\", $$v)},expression:\"share.note\"}})]:_vm._e(),_vm._v(\" \"),(_vm.isPublicShare && _vm.isFolder)?_c('NcCheckboxRadioSwitch',{model:{value:(_vm.showInGridView),callback:function ($$v) {_vm.showInGridView=$$v},expression:\"showInGridView\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Show files in grid view'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('SidebarTabExternalAction',{key:action.id,ref:\"externalShareActions\",refInFor:true,attrs:{\"action\":action,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,ref:\"externalLinkActions\",refInFor:true,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.setCustomPermissions),callback:function ($$v) {_vm.setCustomPermissions=$$v},expression:\"setCustomPermissions\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.setCustomPermissions)?_c('section',{staticClass:\"custom-permissions-group\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canRemoveReadPermission,\"data-cy-files-sharing-share-permissions-checkbox\":\"read\"},model:{value:(_vm.hasRead),callback:function ($$v) {_vm.hasRead=$$v},expression:\"hasRead\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Read'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetCreate,\"data-cy-files-sharing-share-permissions-checkbox\":\"create\"},model:{value:(_vm.canCreate),callback:function ($$v) {_vm.canCreate=$$v},expression:\"canCreate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetEdit,\"data-cy-files-sharing-share-permissions-checkbox\":\"update\"},model:{value:(_vm.canEdit),callback:function ($$v) {_vm.canEdit=$$v},expression:\"canEdit\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Edit'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.resharingIsPossible)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetReshare,\"data-cy-files-sharing-share-permissions-checkbox\":\"share\"},model:{value:(_vm.canReshare),callback:function ($$v) {_vm.canReshare=$$v},expression:\"canReshare\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDelete,\"data-cy-files-sharing-share-permissions-checkbox\":\"delete\"},model:{value:(_vm.canDelete),callback:function ($$v) {_vm.canDelete=$$v},expression:\"canDelete\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete'))+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],2)]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__footer\"},[_c('div',{staticClass:\"button-group\"},[_c('NcButton',{attrs:{\"data-cy-files-sharing-share-editor-action\":\"cancel\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"variant\":\"tertiary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\",\"data-cy-files-sharing-share-editor-action\":\"save\",\"disabled\":_vm.creating},on:{\"click\":_vm.saveShare},scopedSlots:_vm._u([(_vm.creating)?{key:\"icon\",fn:function(){return [_c('NcLoadingIcon')]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.shareButtonText)+\"\\n\\t\\t\\t\\t\")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountCircleOutline.vue?vue&type=template&id=5b2fe1de\"\nimport script from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./AccountGroup.vue?vue&type=template&id=fa2b1464\"\nimport script from \"./AccountGroup.vue?vue&type=script&lang=js\"\nexport * from \"./AccountGroup.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-group-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./CircleOutline.vue?vue&type=template&id=c013567c\"\nimport script from \"./CircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Close.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Close.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Close.vue?vue&type=template&id=55ecc995\"\nimport script from \"./Close.vue?vue&type=script&lang=js\"\nexport * from \"./Close.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon close-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=7dd7f6aa\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon email-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=4ae2345c\"\nimport script from \"./Eye.vue?vue&type=script&lang=js\"\nexport * from \"./Eye.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Refresh.vue?vue&type=template&id=2864f909\"\nimport script from \"./Refresh.vue?vue&type=script&lang=js\"\nexport * from \"./Refresh.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon refresh-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ShareCircle.vue?vue&type=template&id=0e958886\"\nimport script from \"./ShareCircle.vue?vue&type=script&lang=js\"\nexport * from \"./ShareCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon share-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./TrayArrowUp.vue?vue&type=template&id=ae55bf4e\"\nimport script from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tray-arrow-up-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.action.element,{key:_vm.action.id,ref:\"actionElement\",tag:\"component\",domProps:{\"share\":_vm.share,\"node\":_vm.node,\"onSave\":_setup.onSave}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalAction.vue?vue&type=template&id=5ea2e6c7\"\nimport script from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SidebarTabExternalActionLegacy.vue?vue&type=template&id=50e2cb04\"\nimport script from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\nexport * from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.data.is,_vm._g(_vm._b({tag:\"component\"},'component',_vm.data,false),_vm.action.handlers),[_vm._v(\"\\n\\t\"+_vm._s(_vm.data.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\n/**\n * Fetches a node from the given path\n *\n * @param path - The path to fetch the node from\n */\nexport async function fetchNode(path) {\n const propfindPayload = getDefaultPropfind();\n const result = await client.stat(`${getRootPath()}${path}`, {\n details: true,\n data: propfindPayload,\n });\n return resultToNode(result.data);\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Config from '../services/ConfigService.ts';\nimport logger from '../services/logger.ts';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n/**\n * Generate a valid policy password or request a valid password if password_policy is enabled\n *\n * @param verbose If enabled the the status is shown to the user via toast\n */\nexport default async function (verbose = false) {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate, {\n params: { context: 'sharing' },\n });\n if (request.data.ocs.data.password) {\n if (verbose) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n }\n return request.data.ocs.data.password;\n }\n }\n catch (error) {\n logger.info('Error generating password from password_policy', { error });\n if (verbose) {\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}\n/**\n * Fills the given array with cryptographically secure random values.\n * If the crypto API is not available, it falls back to less secure Math.random().\n * Crypto API is available in modern browsers on secure contexts (HTTPS).\n *\n * @param array - The array to fill with random values.\n */\nfunction getRandomValues(array) {\n if (self?.crypto?.getRandomValues) {\n self.crypto.getRandomValues(array);\n return;\n }\n let len = array.length;\n while (len--) {\n array[len] = Math.floor(Math.random() * 256);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { ShareType } from '@nextcloud/sharing'\nimport debounce from 'debounce'\nimport PQueue from 'p-queue'\nimport { fetchNode } from '../../../files/src/services/WebdavClient.ts'\nimport { matchBundledPermissions } from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport SharesRequests from './ShareRequests.js'\n\nexport default {\n\tmixins: [SharesRequests],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tnode: null,\n\t\t\tShareType,\n\n\t\t\t// errors helpers\n\t\t\terrors: {},\n\n\t\t\t// component status toggles\n\t\t\tloading: false,\n\t\t\tsaving: false,\n\t\t\topen: false,\n\n\t\t\t/** @type {boolean | undefined} */\n\t\t\tpasswordProtectedState: undefined,\n\n\t\t\t// concurrency management queue\n\t\t\t// we want one queue per share\n\t\t\tupdateQueue: new PQueue({ concurrency: 1 }),\n\n\t\t\t/**\n\t\t\t * ! This allow vue to make the Share class state reactive\n\t\t\t * ! do not remove it ot you'll lose all reactivity here\n\t\t\t */\n\t\t\treactiveState: this.share?.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpath() {\n\t\t\treturn (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t},\n\t\t/**\n\t\t * Does the current share have a note\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasNote: {\n\t\t\tget() {\n\t\t\t\treturn this.share.note !== ''\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.note = enabled\n\t\t\t\t\t? null // enabled but user did not changed the content yet\n\t\t\t\t\t: '' // empty = no note = disabled\n\t\t\t},\n\t\t},\n\n\t\tdateTomorrow() {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\n\t\t// Datepicker language\n\t\tlang() {\n\t\t\tconst weekdaysShort = window.dayNamesShort\n\t\t\t\t? window.dayNamesShort // provided by Nextcloud\n\t\t\t\t: ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']\n\t\t\tconst monthsShort = window.monthNamesShort\n\t\t\t\t? window.monthNamesShort // provided by Nextcloud\n\t\t\t\t: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']\n\t\t\tconst firstDayOfWeek = window.firstDay ? window.firstDay : 0\n\n\t\t\treturn {\n\t\t\t\tformatLocale: {\n\t\t\t\t\tfirstDayOfWeek,\n\t\t\t\t\tmonthsShort,\n\t\t\t\t\tweekdaysMin: weekdaysShort,\n\t\t\t\t\tweekdaysShort,\n\t\t\t\t},\n\t\t\t\tmonthFormat: 'MMM',\n\t\t\t}\n\t\t},\n\t\tisNewShare() {\n\t\t\treturn !this.share.id\n\t\t},\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\tisPublicShare() {\n\t\t\tconst shareType = this.share.shareType ?? this.share.type\n\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t},\n\t\tisRemoteShare() {\n\t\t\treturn this.share.type === ShareType.RemoteGroup || this.share.type === ShareType.Remote\n\t\t},\n\t\tisShareOwner() {\n\t\t\treturn this.share && this.share.owner === getCurrentUser().uid\n\t\t},\n\t\tisExpiryDateEnforced() {\n\t\t\tif (this.isPublicShare) {\n\t\t\t\treturn this.config.isDefaultExpireDateEnforced\n\t\t\t}\n\t\t\tif (this.isRemoteShare) {\n\t\t\t\treturn this.config.isDefaultRemoteExpireDateEnforced\n\t\t\t}\n\t\t\treturn this.config.isDefaultInternalExpireDateEnforced\n\t\t},\n\t\tpermissionsBundle() {\n\t\t\treturn matchBundledPermissions(this.share.permissions, {\n\t\t\t\tisPublicShare: this.isPublicShare,\n\t\t\t\texcludeReshareFromEdit: this.config.excludeReshareFromEdit,\n\t\t\t})\n\t\t},\n\t\thasCustomPermissions() {\n\t\t\treturn this.permissionsBundle === null\n\t\t},\n\t\tmaxExpirationDateEnforced() {\n\t\t\tif (this.isExpiryDateEnforced) {\n\t\t\t\tif (this.isPublicShare) {\n\t\t\t\t\treturn this.config.maxExpirationDate\n\t\t\t\t}\n\t\t\t\tif (this.isRemoteShare) {\n\t\t\t\t\treturn this.config.defaultRemoteExpirationDateString\n\t\t\t\t}\n\t\t\t\t// If it get's here then it must be an internal share\n\t\t\t\treturn this.config.defaultInternalExpirationDate\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtected: {\n\t\t\tget() {\n\t\t\t\tif (this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tif (this.passwordProtectedState !== undefined) {\n\t\t\t\t\treturn this.passwordProtectedState\n\t\t\t\t}\n\t\t\t\treturn typeof this.share.newPassword === 'string'\n\t\t\t\t\t|| typeof this.share.password === 'string'\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.passwordProtectedState = true\n\t\t\t\t\tconst generatedPassword = await GeneratePassword(true)\n\t\t\t\t\tif (!this.share.newPassword) {\n\t\t\t\t\t\tthis.$set(this.share, 'newPassword', generatedPassword)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.passwordProtectedState = false\n\t\t\t\t\tthis.$set(this.share, 'newPassword', '')\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Fetch WebDAV node\n\t\t *\n\t\t * @return {Node}\n\t\t */\n\t\tasync getNode() {\n\t\t\tconst node = { path: this.path }\n\t\t\ttry {\n\t\t\t\tthis.node = await fetchNode(node.path)\n\t\t\t\tlogger.info('Fetched node:', { node: this.node })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error:', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if a share is valid before\n\t\t * firing the request\n\t\t *\n\t\t * @param {Share} share the share to check\n\t\t * @return {boolean}\n\t\t */\n\t\tcheckShare(share) {\n\t\t\tif (share.password) {\n\t\t\t\tif (typeof share.password !== 'string' || share.password.trim() === '') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.newPassword) {\n\t\t\t\tif (typeof share.newPassword !== 'string') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.expirationDate) {\n\t\t\t\tconst date = share.expirationDate\n\t\t\t\tif (!date.isValid()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * @param {Date} date the date to format\n\t\t * @return {string} date a date with YYYY-MM-DD format\n\t\t */\n\t\tformatDateToString(date) {\n\t\t\t// Force utc time. Drop time information to be timezone-less\n\t\t\tconst utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n\t\t\t// Format to YYYY-MM-DD\n\t\t\treturn utcDate.toISOString().split('T')[0]\n\t\t},\n\n\t\t/**\n\t\t * Save given value to expireDate and trigger queueUpdate\n\t\t *\n\t\t * @param {Date} date\n\t\t */\n\t\tonExpirationChange(date) {\n\t\t\tif (!date) {\n\t\t\t\tthis.share.expireDate = null\n\t\t\t\tthis.$set(this.share, 'expireDate', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst parsedDate = (date instanceof Date) ? date : new Date(date)\n\t\t\tthis.share.expireDate = this.formatDateToString(parsedDate)\n\t\t},\n\n\t\t/**\n\t\t * Delete share button handler\n\t\t */\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.open = false\n\t\t\t\tawait this.deleteShare(this.share.id)\n\t\t\t\tlogger.debug('Share deleted', { shareId: this.share.id })\n\t\t\t\tconst path = this.share.path.replace(/^\\//, '')\n\t\t\t\tconst message = this.share.itemType === 'file'\n\t\t\t\t\t? t('files_sharing', 'File \"{path}\" has been unshared', { path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path })\n\t\t\t\tshowSuccess(message)\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\t\t\t} catch {\n\t\t\t\t// re-open menu if error\n\t\t\t\tthis.open = true\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Send an update of the share to the queue\n\t\t *\n\t\t * @param {Array} propertyNames the properties to sync\n\t\t */\n\t\tqueueUpdate(...propertyNames) {\n\t\t\tif (propertyNames.length === 0) {\n\t\t\t\t// Nothing to update\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.share.id) {\n\t\t\t\tconst properties = {}\n\t\t\t\t// force value to string because that is what our\n\t\t\t\t// share api controller accepts\n\t\t\t\tfor (const name of propertyNames) {\n\t\t\t\t\tif (name === 'password') {\n\t\t\t\t\t\tif (this.share.newPassword !== undefined) {\n\t\t\t\t\t\t\tproperties[name] = this.share.newPassword\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.share[name] === null || this.share[name] === undefined) {\n\t\t\t\t\t\tproperties[name] = ''\n\t\t\t\t\t} else if ((typeof this.share[name]) === 'object') {\n\t\t\t\t\t\tproperties[name] = JSON.stringify(this.share[name])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties[name] = this.share[name].toString()\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.updateQueue.add(async () => {\n\t\t\t\t\tthis.saving = true\n\t\t\t\t\tthis.errors = {}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst updatedShare = await this.updateShare(this.share.id, properties)\n\n\t\t\t\t\t\tif (propertyNames.includes('password')) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.share.password = this.share.newPassword || undefined\n\t\t\t\t\t\t\tthis.$set(this.share, 'newPassword', undefined)\n\n\t\t\t\t\t\t\t// updates password expiration time after sync\n\t\t\t\t\t\t\tthis.share.passwordExpirationTime = updatedShare.password_expiration_time\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// clear any previous errors\n\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\tthis.$delete(this.errors, property)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowSuccess(this.updateSuccessMessage(propertyNames))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tlogger.error('Could not update share', { error, share: this.share, propertyNames })\n\n\t\t\t\t\t\tconst { message } = error\n\t\t\t\t\t\tif (message && message !== '') {\n\t\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\t\tthis.onSyncError(property, message)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowError(message)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We do not have information what happened, but we should still inform the user\n\t\t\t\t\t\t\tshowError(t('files_sharing', 'Could not update share'))\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.saving = false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tlogger.debug('Updated local share', { share: this.share })\n\t\t},\n\n\t\t/**\n\t\t * @param {string[]} names Properties changed\n\t\t */\n\t\tupdateSuccessMessage(names) {\n\t\t\tif (names.length !== 1) {\n\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\n\t\t\tswitch (names[0]) {\n\t\t\t\tcase 'expireDate':\n\t\t\t\t\treturn t('files_sharing', 'Share expiry date saved')\n\t\t\t\tcase 'hideDownload':\n\t\t\t\t\treturn t('files_sharing', 'Share hide-download state saved')\n\t\t\t\tcase 'label':\n\t\t\t\t\treturn t('files_sharing', 'Share label saved')\n\t\t\t\tcase 'note':\n\t\t\t\t\treturn t('files_sharing', 'Share note for recipient saved')\n\t\t\t\tcase 'password':\n\t\t\t\t\treturn t('files_sharing', 'Share password saved')\n\t\t\t\tcase 'permissions':\n\t\t\t\t\treturn t('files_sharing', 'Share permissions saved')\n\t\t\t\tdefault:\n\t\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Manage sync errors\n\t\t *\n\t\t * @param {string} property the errored property, e.g. 'password'\n\t\t * @param {string} message the error message\n\t\t */\n\t\tonSyncError(property, message) {\n\t\t\tif (property === 'password' && this.share.newPassword !== undefined) {\n\t\t\t\tif (this.share.newPassword === this.share.password) {\n\t\t\t\t\tthis.share.password = ''\n\t\t\t\t}\n\t\t\t\tthis.$set(this.share, 'newPassword', undefined)\n\t\t\t}\n\n\t\t\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\t\tcase 'password':\n\t\t\t\tcase 'pending':\n\t\t\t\tcase 'expireDate':\n\t\t\t\tcase 'label':\n\t\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\t\tif (propertyEl) {\n\t\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\t// Restore previous state\n\t\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Debounce queueUpdate to avoid requests spamming\n\t\t * more importantly for text data\n\t\t *\n\t\t * @param {string} property the property to sync\n\t\t */\n\t\tdebounceQueueUpdate: debounce(function(property) {\n\t\t\tthis.queueUpdate(property)\n\t\t}, 500),\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport isSvg from 'is-svg';\n/**\n * Register a new sidebar action\n *\n * @param action - The action to register\n */\nexport function registerSidebarAction(action) {\n if (!action.id) {\n throw new Error('Sidebar actions must have an id');\n }\n if (!action.element || !action.element.startsWith('oca_') || !window.customElements.get(action.element)) {\n throw new Error('Sidebar actions must provide a registered custom web component identifier');\n }\n if (typeof action.order !== 'number') {\n throw new Error('Sidebar actions must have the order property');\n }\n if (typeof action.enabled !== 'function') {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_actions ??= new Map();\n if (window._nc_files_sharing_sidebar_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_actions.set(action.id, action);\n}\n/**\n * Register a new sidebar action\n *\n * @param action - The action to register\n */\nexport function registerSidebarInlineAction(action) {\n if (!action.id) {\n throw new Error('Sidebar actions must have an id');\n }\n if (typeof action.order !== 'number') {\n throw new Error('Sidebar actions must have the \"order\" property');\n }\n if (typeof action.iconSvg !== 'string' || !isSvg(action.iconSvg)) {\n throw new Error('Sidebar actions must have the \"iconSvg\" property');\n }\n if (typeof action.label !== 'function') {\n throw new Error('Sidebar actions must implement the \"label\" method');\n }\n if (typeof action.exec !== 'function') {\n throw new Error('Sidebar actions must implement the \"exec\" method');\n }\n if (typeof action.enabled !== 'function') {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_inline_actions ??= new Map();\n if (window._nc_files_sharing_sidebar_inline_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_inline_actions.set(action.id, action);\n}\n/**\n * Get all registered sidebar actions\n */\nexport function getSidebarActions() {\n return [...(window._nc_files_sharing_sidebar_actions?.values() ?? [])];\n}\n/**\n * Get all registered sidebar inline actions\n */\nexport function getSidebarInlineActions() {\n return [...(window._nc_files_sharing_sidebar_inline_actions?.values() ?? [])];\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\n/**\n *\n */\nexport async function generateToken() {\n const { data } = await axios.get(generateOcsUrl('/apps/files_sharing/api/v1/token'));\n return data.ocs.data.token;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=6dfa5504&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=6dfa5504&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingDetailsTab.vue?vue&type=template&id=6dfa5504&scoped=true\"\nimport script from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingDetailsTab.vue?vue&type=style&index=0&id=6dfa5504&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6dfa5504\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{attrs:{\"id\":\"sharing-inherited-shares\"}},[_c('SharingEntrySimple',{staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.mainTitle,\"subtitle\":_vm.subTitle,\"aria-expanded\":_vm.showInheritedShares},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-shared icon-more-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":_vm.showInheritedSharesIcon,\"aria-label\":_vm.toggleTooltip,\"title\":_vm.toggleTooltip},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleInheritedShares.apply(null, arguments)}}})],1),_vm._v(\" \"),_vm._l((_vm.shares),function(share){return _c('SharingEntryInherited',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share},on:{\"remove:share\":_vm.removeShare}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInherited.vue?vue&type=template&id=731a9650&scoped=true\"\nimport script from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"731a9650\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SharingEntrySimple',{key:_vm.share.id,staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.share.shareWithDisplayName},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionText',{attrs:{\"icon\":\"icon-user\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Added by {initiator}', { initiator: _vm.share.ownerDisplayName }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.share.viaPath && _vm.share.viaFileid)?_c('NcActionLink',{attrs:{\"icon\":\"icon-folder\",\"href\":_vm.viaFileTargetUrl}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Via “{folder}”', { folder: _vm.viaFolderName }))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInherited.vue?vue&type=template&id=cedf3238&scoped=true\"\nimport script from \"./SharingInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cedf3238\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.canLinkShare)?_c('ul',{staticClass:\"sharing-link-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Link shares')}},[(_vm.hasShares)?_vm._l((_vm.shares),function(share,index){return _c('SharingEntryLink',{key:share.id,attrs:{\"index\":_vm.shares.length > 1 ? index + 1 : null,\"can-reshare\":_vm.canReshare,\"share\":_vm.shares[index],\"file-info\":_vm.fileInfo},on:{\"update:share\":[function($event){return _vm.$set(_vm.shares, index, $event)},function($event){return _vm.awaitForShare(...arguments)}],\"add:share\":function($event){return _vm.addShare(...arguments)},\"remove:share\":_vm.removeShare,\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}):_vm._e(),_vm._v(\" \"),(!_vm.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarBlankOutline.vue?vue&type=template&id=784b59e6\"\nimport script from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./CheckBold.vue?vue&type=template&id=5603f41f\"\nimport script from \"./CheckBold.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBold.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-bold-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Exclamation.vue?vue&type=template&id=03239926\"\nimport script from \"./Exclamation.vue?vue&type=script&lang=js\"\nexport * from \"./Exclamation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon exclamation-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./LockOutline.vue?vue&type=template&id=54353a96\"\nimport script from \"./LockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./LockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Plus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Plus.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Plus.vue?vue&type=template&id=055261ec\"\nimport script from \"./Plus.vue?vue&type=script&lang=js\"\nexport * from \"./Plus.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon plus-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Qrcode.vue?vue&type=template&id=aba87788\"\nimport script from \"./Qrcode.vue?vue&type=script&lang=js\"\nexport * from \"./Qrcode.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon qrcode-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Tune.vue?vue&type=template&id=18d04e6a\"\nimport script from \"./Tune.vue?vue&type=script&lang=js\"\nexport * from \"./Tune.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tune-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share-expiry-time\"},[_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [(_vm.expiryTime)?_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('files_sharing', 'Share expiration: {date}', { date: new Date(_vm.expiryTime).toLocaleString() })},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ClockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3754271979)}):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_c('h3',{staticClass:\"hint-heading\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share Expiration'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.expiryTime)?_c('p',{staticClass:\"hint-body\"},[_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime,\"format\":_vm.timeFormat,\"relative-time\":false}}),_vm._v(\" (\"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime}}),_vm._v(\")\\n\\t\\t\")],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ClockOutline.vue?vue&type=template&id=1a84e403\"\nimport script from \"./ClockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ClockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon clock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ShareExpiryTime.vue?vue&type=template&id=c9199db0&scoped=true\"\nimport script from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nexport * from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nimport style0 from \"./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c9199db0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./EyeOutline.vue?vue&type=template&id=e26de6f6\"\nimport script from \"./EyeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"","\n\n","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TriangleSmallDown.vue?vue&type=template&id=1eed3dd9\"\nimport script from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\nexport * from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon triangle-small-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8 9H16L12 16\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=839566a2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=839566a2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryQuickShareSelect.vue?vue&type=template&id=839566a2&scoped=true\"\nimport script from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=839566a2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"839566a2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{ref:\"quickShareActions\",staticClass:\"share-select\",attrs:{\"menu-name\":_vm.selectedOption,\"aria-label\":_vm.ariaLabel,\"variant\":\"tertiary-no-background\",\"disabled\":!_vm.share.canEdit,\"force-name\":\"\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DropdownIcon',{attrs:{\"size\":15}})]},proxy:true}])},[_vm._v(\" \"),_vm._l((_vm.options),function(option){return _c('NcActionButton',{key:option.label,attrs:{\"type\":\"radio\",\"model-value\":option.label === _vm.selectedOption,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.selectOption(option.label)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(option.icon,{tag:\"component\"})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(option.label)+\"\\n\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=7a5c0ee5&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=7a5c0ee5&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryLink.vue?vue&type=template&id=7a5c0ee5&scoped=true\"\nimport script from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryLink.vue?vue&type=style&index=0&id=7a5c0ee5&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a5c0ee5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry sharing-entry__link\",class:{ 'sharing-entry--share': _vm.share }},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":true,\"icon-class\":_vm.isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\",attrs:{\"title\":_vm.title}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share && _vm.share.permissions !== undefined)?_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__actions\"},[(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),_c('div',[(_vm.share && (!_vm.isEmailShareType || _vm.isFileRequest) && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.copyLinkLabel,\"title\":_vm.copySuccess ? _vm.t('files_sharing', 'Successfully copied public link') : undefined,\"href\":_vm.shareLink},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{staticClass:\"sharing-entry__copy-icon\",class:{ 'sharing-entry__copy-icon--success': _vm.copySuccess },attrs:{\"path\":_vm.copySuccess ? _vm.mdiCheck : _vm.mdiContentCopy}})]},proxy:true}],null,false,1728815133)})],1):_vm._e()],1)],1)]),_vm._v(\" \"),(!_vm.pending && _vm.pendingDataIsMissing)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onCancel}},[(_vm.errors.pending)?_c('NcActionText',{staticClass:\"error\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ErrorIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1966124155)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.errors.pending)+\"\\n\\t\\t\")]):_c('NcActionText',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Please enter the following required information before creating the share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.pendingPassword)?_c('NcActionCheckbox',{staticClass:\"share-link-password-checkbox\",attrs:{\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"uncheck\":_vm.onPasswordDisable},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.enforcePasswordForPublicLink ? _vm.t('files_sharing', 'Password protection (enforced)') : _vm.t('files_sharing', 'Password protection'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingEnforcedPassword || _vm.isPasswordProtected)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"label\":_vm.t('files_sharing', 'Enter a password'),\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.minPasswordLength,\"autocomplete\":\"new-password\"},on:{\"submit\":function($event){return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2056568168),model:{value:(_vm.share.newPassword),callback:function ($$v) {_vm.$set(_vm.share, \"newPassword\", $$v)},expression:\"share.newPassword\"}}):_vm._e(),_vm._v(\" \"),(_vm.pendingDefaultExpirationDate)?_c('NcActionCheckbox',{staticClass:\"share-link-expiration-date-checkbox\",attrs:{\"disabled\":_vm.pendingEnforcedExpirationDate || _vm.saving},on:{\"update:model-value\":_vm.onExpirationDateToggleUpdate},model:{value:(_vm.defaultExpirationDateEnabled),callback:function ($$v) {_vm.defaultExpirationDateEnabled=$$v},expression:\"defaultExpirationDateEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.isDefaultExpireDateEnforced ? _vm.t('files_sharing', 'Enable link expiration (enforced)') : _vm.t('files_sharing', 'Enable link expiration'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),((_vm.pendingDefaultExpirationDate || _vm.pendingEnforcedExpirationDate) && _vm.defaultExpirationDateEnabled)?_c('NcActionInput',{staticClass:\"share-link-expire-date\",attrs:{\"data-cy-files-sharing-expiration-date-input\":\"\",\"label\":_vm.pendingEnforcedExpirationDate ? _vm.t('files_sharing', 'Enter expiration date (enforced)') : _vm.t('files_sharing', 'Enter expiration date'),\"disabled\":_vm.saving,\"is-native-picker\":true,\"hide-label\":true,\"model-value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced},on:{\"update:model-value\":_vm.onExpirationChange,\"change\":_vm.expirationDateChanged},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlank',{attrs:{\"size\":20}})]},proxy:true}],null,false,3418578971)}):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"disabled\":_vm.pendingEnforcedPassword && !_vm.share.newPassword},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CheckIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2630571749)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onCancel.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")])],1):(!_vm.loading)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event}}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[_c('NcActionButton',{attrs:{\"disabled\":_vm.saving,\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();return _vm.openSharingDetails.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Tune',{attrs:{\"size\":20}})]},proxy:true}],null,false,1300586850)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Customize link'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();_vm.showQRCode = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconQr',{attrs:{\"size\":20}})]},proxy:true}],null,false,1082198240)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Generate QR code'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('NcActionButton',{key:action.id,on:{\"click\":function($event){return action.exec(_vm.share, _vm.fileInfo.node)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvg}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.label(_vm.share, _vm.fileInfo.node))+\"\\n\\t\\t\\t\")])}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),(!_vm.isEmailShareType && _vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('PlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2953566425)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add another link'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",attrs:{\"title\":_vm.t('files_sharing', 'Create a new share link'),\"aria-label\":_vm.t('files_sharing', 'Create a new share link'),\"icon\":_vm.loading ? 'icon-loading-small' : 'icon-add'},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}}):_vm._e()],2):_c('NcLoadingIcon',{staticClass:\"sharing-entry__loading\"}),_vm._v(\" \"),(_vm.showQRCode)?_c('NcDialog',{attrs:{\"size\":\"normal\",\"open\":_vm.showQRCode,\"name\":_vm.title,\"close-on-click-outside\":true},on:{\"update:open\":function($event){_vm.showQRCode=$event},\"close\":function($event){_vm.showQRCode = false}}},[_c('div',{staticClass:\"qr-code-dialog\"},[_c('VueQrcode',{staticClass:\"qr-code-dialog__img\",attrs:{\"tag\":\"img\",\"value\":_vm.shareLink}})],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=708b3104\"\nimport script from \"./SharingLinkList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingLinkList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=fa3f3612&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=fa3f3612&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntry.vue?vue&type=template&id=fa3f3612&scoped=true\"\nimport script from \"./SharingEntry.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntry.vue?vue&type=style&index=0&id=fa3f3612&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fa3f3612\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.type !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c(_vm.share.shareWithLink ? 'a' : 'div',{tag:\"component\",staticClass:\"sharing-entry__summary__desc\",attrs:{\"title\":_vm.tooltip,\"aria-label\":_vm.tooltip,\"href\":_vm.share.shareWithLink}},[_c('span',[_vm._v(_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\"),(!_vm.isUnique)?_c('span',{staticClass:\"sharing-entry__summary__desc-unique\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t(\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasStatus && _vm.share.status.message)?_c('small',[_vm._v(\"(\"+_vm._s(_vm.share.status.message)+\")\")]):_vm._e()])]),_vm._v(\" \"),_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}})],1),_vm._v(\" \"),(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),(_vm.share.canEdit)?_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"data-cy-files-sharing-share-actions\":\"\",\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"variant\":\"tertiary\"},on:{\"click\":function($event){return _vm.openSharingDetails(_vm.share)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1700783217)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingList.vue?vue&type=template&id=7e1141c6\"\nimport script from \"./SharingList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"sharing-sharee-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Shares')}},_vm._l((_vm.shares),function(share){return _c('SharingEntry',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share,\"is-unique\":_vm.isUnique(share)},on:{\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n/**\n * Register a new sidebar section inside the files sharing sidebar tab.\n *\n * @param section - The section to register\n */\nexport function registerSidebarSection(section) {\n if (!section.id) {\n throw new Error('Sidebar sections must have an id');\n }\n if (!section.element || !section.element.startsWith('oca_') || !window.customElements.get(section.element)) {\n throw new Error('Sidebar sections must provide a registered custom web component identifier');\n }\n if (typeof section.order !== 'number') {\n throw new Error('Sidebar sections must have the order property');\n }\n if (typeof section.enabled !== 'function') {\n throw new Error('Sidebar sections must implement the enabled method');\n }\n window._nc_files_sharing_sidebar_sections ??= new Map();\n if (window._nc_files_sharing_sidebar_sections.has(section.id)) {\n throw new Error(`Sidebar section with id \"${section.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_sections.set(section.id, section);\n}\n/**\n * Get all registered sidebar sections for the files sharing sidebar tab.\n */\nexport function getSidebarSections() {\n return [...(window._nc_files_sharing_sidebar_sections?.values() ?? [])];\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ShareType } from '@nextcloud/sharing'\n\n/**\n *\n * @param share\n */\nfunction shareWithTitle(share) {\n\tif (share.type === ShareType.Group) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t{\n\t\t\t\tgroup: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Team) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t{\n\t\t\t\tcircle: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Room) {\n\t\tif (share.shareWithDisplayName) {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t{\n\t\t\t\t\tconversation: share.shareWithDisplayName,\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t} else {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t{\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t}\n\t} else {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you by {owner}',\n\t\t\t{ owner: share.ownerDisplayName },\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t}\n}\n\nexport { shareWithTitle }\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=cd6ad9ee&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=cd6ad9ee&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingTab.vue?vue&type=template&id=cd6ad9ee&scoped=true\"\nimport script from \"./SharingTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingTab.vue?vue&type=style&index=0&id=cd6ad9ee&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cd6ad9ee\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.hasExternalSections }},[_c('div',{staticClass:\"icon icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.error))])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView),expression:\"!showSharingDetailsView\"}],staticClass:\"sharingTab__content\"},[(_vm.isSharedWithMe)?_c('ul',[_c('SharingEntrySimple',_vm._b({staticClass:\"sharing-entry__reshare\",scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.sharedWithMe.user,\"display-name\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3197855346)},'SharingEntrySimple',_vm.sharedWithMe,false))],1):_vm._e(),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Internal shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Internal shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}])})]},proxy:true}])},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.internalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares,\"placeholder\":_vm.internalShareInputPlaceholder},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"file-info\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"file-info\":_vm.fileInfo}})],1),_vm._v(\" \"),(_vm.config.showExternalSharing)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'External shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'External shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,4045083138)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.externalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"is-external\":true,\"placeholder\":_vm.externalShareInputPlaceholder,\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{attrs:{\"shares\":_vm.externalShares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading && _vm.isLinkSharingAllowed)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.hasExternalSections && !_vm.showSharingDetailsView)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Additional shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Additional shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,880248230)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.additionalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),_vm._l((_vm.sortedExternalSections),function(section){return _c('SidebarTabExternalSection',{key:section.id,staticClass:\"sharingTab__additionalContent\",attrs:{\"section\":section,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */}})}),_vm._v(\" \"),_vm._l((_vm.legacySections),function(section,index){return _c('SidebarTabExternalSectionLegacy',{key:index,staticClass:\"sharingTab__additionalContent\",attrs:{\"file-info\":_vm.fileInfo,\"section-callback\":section}})}),_vm._v(\" \"),(_vm.projectsEnabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView && _vm.fileInfo),expression:\"!showSharingDetailsView && fileInfo\"}],staticClass:\"sharingTab__additionalContent\"},[_c('NcCollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}})],1):_vm._e()],2):_vm._e()]),_vm._v(\" \"),(_vm.showSharingDetailsView)?_c('SharingDetailsTab',{attrs:{\"file-info\":_vm.shareDetailsData.fileInfo,\"share\":_vm.shareDetailsData.share},on:{\"close-sharing-details\":_vm.toggleShareDetailsView,\"add:share\":_vm.addShare,\"remove:share\":_vm.removeShare}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\n/**\n * Convert Node to legacy file info\n *\n * @param node - The Node to convert\n */\nexport default function (node) {\n const rawFileInfo = {\n id: node.fileid,\n path: node.dirname,\n name: node.basename,\n mtime: node.mtime?.getTime(),\n etag: node.attributes.etag,\n size: node.size,\n hasPreview: node.attributes.hasPreview,\n isEncrypted: node.attributes.isEncrypted === 1,\n isFavourited: node.attributes.favorite === 1,\n mimetype: node.mime,\n permissions: node.permissions,\n mountType: node.attributes['mount-type'],\n sharePermissions: node.attributes['share-permissions'],\n shareAttributes: JSON.parse(node.attributes['share-attributes'] || '[]'),\n type: node.type === 'file' ? 'file' : 'dir',\n attributes: node.attributes,\n };\n // TODO remove when no more legacy backbone is used\n const fileInfo = {\n ...rawFileInfo,\n node,\n get(key) {\n return this[key];\n },\n isDirectory() {\n return this.mimetype === 'httpd/unix-directory';\n },\n canEdit() {\n return Boolean(this.permissions & Permission.UPDATE);\n },\n canDownload() {\n for (const i in this.shareAttributes) {\n const attr = this.shareAttributes[i];\n if (attr.scope === 'permissions' && attr.key === 'download') {\n return attr.value === true;\n }\n }\n return true;\n },\n };\n return fileInfo;\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesSidebarTab.vue?vue&type=template&id=8a2257be\"\nimport script from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, s as scopedGlobals, l as logger, c as NodeStatus, a as File, b as Folder } from \"./chunks/folder-29HuacU_.mjs\";\nimport \"@nextcloud/paths\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n}\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n const namespaces = { ...scopedGlobals.davNamespaces, ...namespace };\n if (scopedGlobals.davProperties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n scopedGlobals.davProperties.push(prop);\n scopedGlobals.davNamespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n return scopedGlobals.davProperties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n return Object.keys(scopedGlobals.davNamespaces).map((ns) => `xmlns:${ns}=\"${scopedGlobals.davNamespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n}\nexport {\n defaultDavNamespaces,\n defaultDavProperties,\n defaultRemoteURL,\n defaultRootPath,\n getClient,\n getDavNameSpaces,\n getDavProperties,\n getDefaultPropfind,\n getFavoriteNodes,\n getFavoritesReport,\n getRecentSearch,\n getRemoteURL,\n getRootPath,\n parsePermissions,\n registerDavProperty,\n resultToNode\n};\n//# sourceMappingURL=dav.mjs.map\n"],"names":["___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","push","module","id","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","vue_material_design_icons_ContentCopyvue_type_script_lang_js","name","emits","props","title","type","String","fillColor","default","size","Number","ContentCopy","componentNormalizer","A","_vm","this","_c","_self","_b","staticClass","attrs","role","on","click","$event","$emit","$attrs","fill","width","height","viewBox","d","_v","_s","_e","components_SharingEntrySimplevue_type_script_lang_js","components","NcActions","required","subtitle","isUnique","Boolean","ariaExpanded","computed","ariaExpandedValue","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","SharingEntrySimplevue_type_style_index_0_id_13d4a0bb_prod_lang_scss_scoped_true","locals","SharingEntrySimple","_t","$slots","ref","generateFileUrl","fileid","baseURL","getBaseUrl","globalscale","getCapabilities","token","generateUrl","components_SharingEntryInternalvue_type_script_lang_js","NcActionButton","CheckIcon","Check","ClipboardIcon","fileInfo","Object","data","copied","copySuccess","internalLink","copyLinkTooltip","t","internalLinkSubtitle","methods","copyLink","navigator","clipboard","writeText","showSuccess","$refs","shareEntrySimple","actionsComponent","$el","focus","error","logger","setTimeout","SharingEntryInternalvue_type_style_index_0_id_6c4cb23b_prod_lang_scss_scoped_true_options","SharingEntryInternalvue_type_style_index_0_id_6c4cb23b_prod_lang_scss_scoped_true","SharingEntryInternal","scopedSlots","_u","key","fn","proxy","ATOMIC_PERMISSIONS","BUNDLED_PERMISSIONS","READ_ONLY","UPLOAD_AND_UPDATE","FILE_DROP","ALL","ALL_FILE","getBundledPermissions","excludeShare","EDITOR_BUNDLES","Share","constructor","ocsData","_defineProperty","ocs","parseInt","hide_download","mail_send","attributes","JSON","parse","warn","newPassword","undefined","_share","state","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","date","note","label","mailSend","hideDownload","find","scope","value","attribute","password","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","path","itemType","item_type","mimetype","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","window","OC","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","isFileRequest","stringify","enabled","setAttribute","attrUpdate","i","attr","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","parent","storageId","storage_id","storage","itemSource","item_source","status","isTrustedServer","is_trusted_server","Config","_capabilities","defaultPermissions","files_sharing","default_permissions","excludeReshareFromEdit","exclude_reshare_from_edit","isPublicUploadEnabled","public","upload","federatedShareDocLink","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","days","linkDefaultExpDays","defaultExpireDate","Date","setDate","getDate","maxExpirationDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isFederationEnabled","federation","outgoing","isPublicShareAllowed","isMailShareAllowed","sharebymail","expire_date","default_days","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","enforced","shouldAlwaysShowUnique","sharee","always_show_unique","allowGroupSharing","maxAutocompleteResults","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","showFederatedSharesAsInternal","loadState","showFederatedSharesToTrustedServersAsInternal","showExternalSharing","ShareDetails","openSharingDetails","shareRequestObject","share","handler","handlerInput","suggestions","query","externalShareRequestObject","mapShareRequestToShareObject","originalPermissions","strippedPermissions","debug","shareDetails","openShareDetailsForCustomSettings","setCustomPermissions","shareType","is_no_user","isNoUser","user","displayName","shareUrl","generateOcsUrl","ShareRequests","createShare","publicUpload","request","axios","post","emit","errorMessage","getErrorMessage","showError","Error","cause","deleteShare","delete","updateShare","properties","put","isAxiosError","response","meta","message","components_SharingInputvue_type_script_lang_js","NcSelect","mixins","shares","Array","linkShares","reshare","canReshare","isExternal","placeholder","setup","shareInputId","Math","random","toString","slice","loading","recommendations","ShareSearch","OCA","Sharing","externalResults","results","inputPlaceholder","allowRemoteSharing","isValidQuery","trim","length","noResultText","mounted","getRecommendations","onSelected","option","asyncFind","debounceGetSuggestions","getSuggestions","search","lookup","query_lookup_default","remoteTypes","ShareType","Remote","RemoteGroup","showFederatedAsInternal","shouldAddRemoteTypes","Email","User","Group","Team","Room","Guest","Deck","ScienceMesh","get","params","format","perPage","exact","rawExactSuggestions","values","flat","rawSuggestions","exactSuggestions","filterOutExistingShares","filter","result","filterByTrustedServer","map","formatForMultiselect","sort","a","b","lookupEntry","lookupEnabled","condition","allSuggestions","concat","nameCounts","reduce","item","desc","debounce","args","rawRecommendations","arr","elem","getCurrentUser","uid","indexOf","sharesObj","obj","shareTypeToIcon","icon","iconTitle","Sciencemesh","subname","extra","email","server","shareWithDescription","uuid","SharingInputvue_type_style_index_0_id_0b151499_prod_lang_scss_options","SharingInputvue_type_style_index_0_id_0b151499_prod_lang_scss","SharingInput","for","disabled","filterable","clear-search-on-blur","model","callback","$$v","expression","SidebarTabExternal_SidebarTabExternalSectionvue_type_script_lang_ts_setup_true","_defineComponent","__name","node","section","__props","sectionElement","watchEffect","__sfc","SidebarTabExternalSection","_setupProxy","element","tag","domProps","SidebarTabExternal_SidebarTabExternalSectionLegacyvue_type_script_lang_ts_setup_true","sectionCallback","Function","component","SidebarTabExternalSectionLegacyvue_type_style_index_0_id_67cb6ff2_prod_scoped_true_lang_css_options","SidebarTabExternalSectionLegacyvue_type_style_index_0_id_67cb6ff2_prod_scoped_true_lang_css","SidebarTabExternalSectionLegacy","vue_material_design_icons_AccountCircleOutlinevue_type_script_lang_js","AccountCircleOutline","vue_material_design_icons_AccountGroupvue_type_script_lang_js","AccountGroup","vue_material_design_icons_CircleOutlinevue_type_script_lang_js","CircleOutline","vue_material_design_icons_Closevue_type_script_lang_js","Close","vue_material_design_icons_Emailvue_type_script_lang_js","vue_material_design_icons_Eyevue_type_script_lang_js","Eye","vue_material_design_icons_Refreshvue_type_script_lang_js","Refresh","vue_material_design_icons_ShareCirclevue_type_script_lang_js","ShareCircle","vue_material_design_icons_TrayArrowUpvue_type_script_lang_js","TrayArrowUp","SidebarTabExternal_SidebarTabExternalActionvue_type_script_lang_ts_setup_true","action","expose","save","actionElement","savingCallback","async","onSave","toRaw","SidebarTabExternalAction","_setup","SidebarTabExternal_SidebarTabExternalActionLegacyvue_type_script_lang_js","SidebarTabExternalActionLegacy","is","_g","handlers","text","client","getClient","GeneratePassword","verbose","api","generate","context","info","array","Uint8Array","ratio","passwordSet","self","crypto","getRandomValues","len","floor","charAt","SharesMixin","SharesRequests","sharing_dist","I","errors","saving","open","passwordProtectedState","updateQueue","PQueue","concurrency","reactiveState","replace","hasNote","set","dateTomorrow","lang","weekdaysShort","dayNamesShort","monthsShort","monthNamesShort","formatLocale","firstDayOfWeek","firstDay","weekdaysMin","monthFormat","isNewShare","isFolder","isPublicShare","Link","includes","isRemoteShare","isShareOwner","isExpiryDateEnforced","permissionsBundle","bundles","comparablePermissions","bundle","matchBundledPermissions","hasCustomPermissions","maxExpirationDateEnforced","isPasswordProtected","generatedPassword","$set","getNode","propfindPayload","getDefaultPropfind","stat","getRootPath","details","resultToNode","fetchNode","checkShare","expirationDate","isValid","formatDateToString","UTC","getFullYear","getMonth","toISOString","split","onExpirationChange","parsedDate","onDelete","shareId","queueUpdate","propertyNames","add","updatedShare","property","$delete","updateSuccessMessage","onSyncError","propertyEl","focusable","querySelector","debounceQueueUpdate","views_SharingDetailsTabvue_type_script_lang_js","NcAvatar","NcButton","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcInputField","NcLoadingIcon","NcPasswordField","NcTextArea","CloseIcon","CircleIcon","EditIcon","PencilOutline","LinkIcon","GroupIcon","ShareIcon","UserIcon","UploadIcon","ViewIcon","MenuDownIcon","MenuDown","MenuUpIcon","MenuUp","DotsHorizontalIcon","DotsHorizontal","shareRequestValue","writeNoteToRecipientIsChecked","sharingPermission","revertSharingPermission","passwordError","advancedSectionAccordionExpanded","isFirstComponentLoad","test","creating","initialToken","loadingToken","initialPermissions","initialExpireDate","initialNote","initialLabel","initialHideDownload","initialSendPasswordByTalk","initialHasDownloadPermission","externalShareActions","_nc_files_sharing_sidebar_actions","ExternalShareActions","bundledPermissions","allPermissions","checked","updateAtomicPermissions","isEditChecked","canCreate","isCreateChecked","isDeleteChecked","isReshareChecked","showInGridView","getShareAttribute","setShareAttribute","canDownload","hasRead","isReadChecked","hasExpirationDate","isValidShareAttribute","defaultExpiryDate","isSetDownloadButtonVisible","isPasswordEnforced","isGroupShare","isUserShare","allowsFileDrop","hasFileDropPermissions","shareButtonText","resharingIsPossible","canSetEdit","sharePermissions","canSetCreate","canSetDelete","canSetReshare","canSetDownload","canShowDownloadPermission","canRemoveReadPermission","hasUnsavedPassword","expirationTime","moment","diff","fromNow","isTalkEnabled","appswebroots","spreed","isPasswordProtectedByTalkAvailable","isPasswordProtectedByTalk","isEmailShareType","canTogglePasswordProtectedByTalkAvailable","canChangeHideDownload","shareAttributes","shareAttribute","customPermissionsList","translatedPermissions","ATOMIC_PERMISSIONS_READ","ATOMIC_PERMISSIONS_CREATE","ATOMIC_PERMISSIONS_UPDATE","ATOMIC_PERMISSIONS_SHARE","ATOMIC_PERMISSIONS_DELETE","permission","hasPermissions","initialPermissionSet","permissionsToCheck","index","toLocaleLowerCase","getLanguage","join","advancedControlExpandedValue","errorPasswordLabel","passwordHint","sortedExternalShareActions","order","externalLegacyShareActions","actions","advanced","watch","isChecked","beforeMount","initializePermissions","initializeAttributes","quickPermissions","fallback","generateNewToken","generateToken","cancel","expandCustomPermissions","toggleCustomPermissions","selectedPermission","isCustomPermissions","toDateString","handleShareType","handleDefaultPermissions","basePermissions","handleCustomPermissions","saveShare","permissionsAndAttributes","publicShareAttributes","sharePermissionsSet","incomingShare","addShare","prop","Promise","allSettled","externalLinkActions","$children","at","resolve","removeShare","onPasswordChange","getShareTypeIcon","EmailIcon","SharingDetailsTabvue_type_style_index_0_id_6dfa5504_prod_lang_scss_scoped_true_options","SharingDetailsTabvue_type_style_index_0_id_6dfa5504_prod_lang_scss_scoped_true","SharingDetailsTab_component","url","variant","alignment","autocomplete","min","max","input","_l","refInFor","readonly","preventDefault","apply","arguments","SharingDetailsTab","components_SharingEntryInheritedvue_type_script_lang_js","NcActionLink","NcActionText","viaFileTargetUrl","viaFolderName","basename","SharingEntryInheritedvue_type_style_index_0_id_731a9650_prod_lang_scss_scoped_true_options","SharingEntryInheritedvue_type_style_index_0_id_731a9650_prod_lang_scss_scoped_true","SharingEntryInherited_component","initiator","href","folder","SharingEntryInherited","views_SharingInheritedvue_type_script_lang_js","loaded","showInheritedShares","showInheritedSharesIcon","mainTitle","subTitle","toggleTooltip","fullPath","resetState","toggleInheritedShares","fetchInheritedShares","Notification","showTemporary","findIndex","SharingInheritedvue_type_style_index_0_id_cedf3238_prod_lang_scss_scoped_true_options","SharingInheritedvue_type_style_index_0_id_cedf3238_prod_lang_scss_scoped_true","SharingInherited_component","stopPropagation","SharingInherited","vue_material_design_icons_CalendarBlankOutlinevue_type_script_lang_js","CalendarBlankOutline","vue_material_design_icons_CheckBoldvue_type_script_lang_js","CheckBold","vue_material_design_icons_Exclamationvue_type_script_lang_js","Exclamation","vue_material_design_icons_LockOutlinevue_type_script_lang_js","LockOutline","vue_material_design_icons_Plusvue_type_script_lang_js","Plus","vue_material_design_icons_Qrcodevue_type_script_lang_js","Qrcode","vue_material_design_icons_Tunevue_type_script_lang_js","Tune","vue_material_design_icons_ClockOutlinevue_type_script_lang_js","ClockOutline","components_ShareExpiryTimevue_type_script_lang_js","NcPopover","NcDateTime","ClockIcon","expiryTime","getTime","timeFormat","dateStyle","timeStyle","ShareExpiryTimevue_type_style_index_0_id_c9199db0_prod_scoped_true_lang_scss_options","ShareExpiryTimevue_type_style_index_0_id_c9199db0_prod_scoped_true_lang_scss","ShareExpiryTime","toLocaleString","timestamp","vue_material_design_icons_EyeOutlinevue_type_script_lang_js","EyeOutline","vue_material_design_icons_TriangleSmallDownvue_type_script_lang_js","SharingEntryQuickShareSelectvue_type_script_lang_js","DropdownIcon","selectedOption","ariaLabel","canViewText","canEditText","fileDropText","customPermissionsText","preSelectedOption","IconEyeOutline","IconPencil","supportsFileDrop","IconFileUpload","IconTune","dropDownPermissionValue","created","subscribe","unmounted","unsubscribe","selectOption","optionLabel","quickShareActions","menuButton","components_SharingEntryQuickShareSelectvue_type_script_lang_js","SharingEntryQuickShareSelectvue_type_style_index_0_id_839566a2_prod_lang_scss_scoped_true_options","SharingEntryQuickShareSelectvue_type_style_index_0_id_839566a2_prod_lang_scss_scoped_true","SharingEntryQuickShareSelect","SharingEntryLinkvue_type_script_lang_js","NcActionCheckbox","NcActionCheckbox_Cbg5yktN","N","NcActionInput","NcActionSeparator","NcDialog","NcIconSvgWrapper","VueQrcode","vue_qrcode_default","IconCalendarBlank","IconQr","ErrorIcon","LockIcon","PlusIcon","mdiCheck","mdi","Tfj","mdiContentCopy","shareCreationComplete","defaultExpirationDateEnabled","pending","_nc_files_sharing_sidebar_inline_actions","showQRCode","minPasswordLength","isPasswordPolicyEnabled","policies","sharing","minLength","l10nOptions","escape","pendingDataIsMissing","pendingPassword","pendingEnforcedPassword","pendingDefaultExpirationDate","pendingEnforcedExpirationDate","isPendingShare","isNaN","sharePolicyHasEnforcedProperties","enforcedPropertiesMissing","isPasswordMissing","isExpireDateMissing","shareLink","actionsTooltip","copyLinkLabel","shareRequiresReview","shareReviewComplete","onNewLinkShare","shareDefaults","pushNewLinkShare","e","update","newShare","match","copyButton","prompt","onPasswordDisable","onExpirationDateToggleUpdate","expirationDateChanged","event","target","onCancel","components_SharingEntryLinkvue_type_script_lang_js","SharingEntryLinkvue_type_style_index_0_id_7a5c0ee5_prod_lang_scss_scoped_true_options","SharingEntryLinkvue_type_style_index_0_id_7a5c0ee5_prod_lang_scss_scoped_true","SharingEntryLink_component","class","close","uncheck","minlength","submit","change","exec","svg","iconSvg","views_SharingLinkListvue_type_script_lang_js","SharingEntryLink","canLinkShare","hasLinkShares","hasShares","l10n_dist","awaitForShare","$nextTick","SharingLinkList_component","SharingLinkList","components_SharingEntryvue_type_script_lang_js","showAsInternal","tooltip","hasStatus","isArray","SharingEntryvue_type_style_index_0_id_fa3f3612_prod_lang_scss_scoped_true_options","SharingEntryvue_type_style_index_0_id_fa3f3612_prod_lang_scss_scoped_true","views_SharingListvue_type_script_lang_js","SharingEntry","SharingList","productName","theme","SharingTabvue_type_script_lang_js","InfoIcon","InformationOutline","NcCollectionList","NcCollectionList_q7zkDwqG","deleteEvent","expirationInterval","sharedWithMe","externalShares","legacySections","ShareTabSections","getSections","sections","_nc_files_sharing_sidebar_sections","projectsEnabled","showSharingDetailsView","shareDetailsData","returnFocusElement","internalSharesHelpText","externalSharesHelpText","additionalSharesHelpText","hasExternalSections","sortedExternalSections","isSharedWithMe","isLinkSharingAllowed","capabilities","internalShareInputPlaceholder","externalShareInputPlaceholder","immediate","newValue","oldValue","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","all","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","orderBy","findShareListByShare","group","circle","conversation","shareWithTitle","setInterval","shareOwnerId","shareOwner","unshift","removeShareFromList","shareList","listComponent","linkShareList","toggleShareDetailsView","eventData","from","document","activeElement","classList","className","startsWith","menuId","closest","views_SharingTabvue_type_script_lang_js","SharingTabvue_type_style_index_0_id_cd6ad9ee_prod_scoped_true_lang_scss_options","SharingTabvue_type_style_index_0_id_cd6ad9ee_prod_scoped_true_lang_scss","SharingTab","emptyContentWithSections","directives","rawName","FileInfo","dirname","mtime","etag","hasPreview","isEncrypted","isFavourited","favorite","mime","mountType","isDirectory","Permission","UPDATE","views_FilesSidebarTabvue_type_script_setup_true_lang_ts","active","view","FilesSidebarTab","defaultDavProperties","defaultDavNamespaces","nc","oc","getDavProperties","_chunks_folder_29HuacU_mjs__WEBPACK_IMPORTED_MODULE_4__","s","davProperties","getDavNameSpaces","davNamespaces","keys","ns","getRecentSearch","lastModified","_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__","HW","_nextcloud_sharing_public__WEBPACK_IMPORTED_MODULE_2__","f","G","defaultRootPath","defaultRemoteURL","_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__","dC","getRemoteURL","remoteURL","headers","webdav__WEBPACK_IMPORTED_MODULE_3__","UU","setHeaders","requesttoken","zo","Gu","patch","headers2","method","fetch","getFavoriteNodes","davRoot","getDirectoryContents","signal","includeSelf","filename","filesRoot","userId","permString","P","NONE","READ","WRITE","CREATE","DELETE","SHARE","parsePermissions","lastmod","crtime","creationdate","nodeData","source","displayname","getcontentlength","c","FAILED","root"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/1458-1458.js.map.license b/dist/1458-1458.js.map.license deleted file mode 120000 index 73b7831af3e9b..0000000000000 --- a/dist/1458-1458.js.map.license +++ /dev/null @@ -1 +0,0 @@ -1458-1458.js.license \ No newline at end of file diff --git a/dist/5482-5482.js b/dist/5482-5482.js new file mode 100644 index 0000000000000..09cdf68e127e0 --- /dev/null +++ b/dist/5482-5482.js @@ -0,0 +1,2 @@ +"use strict";(globalThis.webpackChunknextcloud_ui_legacy||=[]).push([[5482],{28069(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".share-expiry-time[data-v-c9199db0]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-c9199db0]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-c9199db0]{text-align:center;font-size:1rem;margin-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--color-border)}.hint-body[data-v-c9199db0]{padding:var(--border-radius-element);max-width:300px}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/ShareExpiryTime.vue"],names:[],mappings:"AACA,oCACI,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACI,SAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CAIR,+BACI,iBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,2CAAA,CAGJ,4BACI,oCAAA,CACA,eAAA",sourcesContent:["\n.share-expiry-time {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n .hint-icon {\n padding: 0;\n margin: 0;\n width: 24px;\n height: 24px;\n }\n}\n\n.hint-heading {\n text-align: center;\n font-size: 1rem;\n margin-top: 8px;\n padding-bottom: 8px;\n margin-bottom: 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.hint-body {\n padding: var(--border-radius-element);\n max-width: 300px;\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},40749(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-fa3f3612]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-fa3f3612]{padding:8px;padding-inline-start:10px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-fa3f3612]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-fa3f3612],.sharing-entry__summary__desc small[data-v-fa3f3612]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-fa3f3612]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntry.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: flex-start;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},29199(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-731a9650]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-731a9650]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-731a9650]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-731a9650]{margin-inline-start:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},76459(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry__internal .avatar-external[data-v-6c4cb23b]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-6c4cb23b]{opacity:1;color:var(--color-border-success)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue"],names:[],mappings:"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA,CACA,iCAAA",sourcesContent:["\n.sharing-entry__internal {\n\t.avatar-external {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-border-success);\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},91950(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-7a5c0ee5]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-7a5c0ee5]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-7a5c0ee5]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-7a5c0ee5]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-7a5c0ee5]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-7a5c0ee5]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-7a5c0ee5]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-7a5c0ee5] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-7a5c0ee5]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-7a5c0ee5]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-7a5c0ee5],.sharing-entry .action-item~.sharing-entry__loading[data-v-7a5c0ee5]{margin-inline-start:0}.sharing-entry__copy-icon--success[data-v-7a5c0ee5]{color:var(--color-border-success)}.qr-code-dialog[data-v-7a5c0ee5]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-7a5c0ee5]{width:100%;height:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryLink.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAIF,yCACC,YAAA,CACA,kBAAA,CACA,wBAAA,CAID,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,oDACC,iCAAA,CAKF,iCACC,YAAA,CACA,UAAA,CACA,sBAAA,CAEA,sCACC,UAAA,CACA,WAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\t}\n\n\t\t&__desc {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tline-height: 1.2em;\n\n\t\t\tp {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&__title {\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t:deep(.avatar-link-share) {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-inline-start: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-inline-start: 0;\n\t\t}\n\t}\n\n\t&__copy-icon--success {\n\t\tcolor: var(--color-border-success);\n\t}\n}\n\n// styling for the qr-code container\n.qr-code-dialog {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n\n\t&__img {\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},20569(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".share-select[data-v-839566a2]{display:block}.share-select[data-v-839566a2] .action-item__menutoggle{color:var(--color-primary-element) !important;font-size:12.5px !important;height:auto !important;min-height:auto !important}.share-select[data-v-839566a2] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-839566a2] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-839566a2] .action-item__menutoggle .button-vue__wrapper{flex-direction:row-reverse !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue"],names:[],mappings:"AACA,+BACC,aAAA,CAIA,wDACC,6CAAA,CACA,2BAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0EACC,6BAAA,CAGD,0EACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAGD,6EAEC,qCAAA",sourcesContent:["\n.share-select {\n\tdisplay: block;\n\n\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\n\t// Overrider NcActionms button to make it small\n\t:deep(.action-item__menutoggle) {\n\t\tcolor: var(--color-primary-element) !important;\n\t\tfont-size: 12.5px !important;\n\t\theight: auto !important;\n\t\tmin-height: auto !important;\n\n\t\t.button-vue__text {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\n\t\t.button-vue__icon {\n\t\t\theight: 24px !important;\n\t\t\tmin-height: 24px !important;\n\t\t\twidth: 24px !important;\n\t\t\tmin-width: 24px !important;\n\t\t}\n\n\t\t.button-vue__wrapper {\n\t\t\t// Emulate NcButton's alignment=center-reverse\n\t\t\tflex-direction: row-reverse !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},33176(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry[data-v-13d4a0bb]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-13d4a0bb]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-13d4a0bb]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-13d4a0bb]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-13d4a0bb]{margin-inline-start:auto !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},24992(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingInput.vue"],names:[],mappings:"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA",sourcesContent:['\n.sharing-search {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 4px;\n\n\tlabel[for="sharing-search-input"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__input {\n\t\twidth: 100%;\n\t\tmargin: 10px 0;\n\t}\n}\n\n.vs__dropdown-menu {\n\t// properly style the lookup entry\n\tspan[lookup] {\n\t\t.avatardiv {\n\t\t\tbackground-image: var(--icon-search-white);\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-color: var(--color-text-maxcontrast) !important;\n\t\t\t.avatardiv__initials-wrapper {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},60766(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharingTabDetailsView[data-v-79f80b95]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-79f80b95]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-79f80b95]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-79f80b95]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-79f80b95]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-79f80b95]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-79f80b95]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-79f80b95]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-79f80b95]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-79f80b95] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-79f80b95] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-79f80b95] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-79f80b95]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-79f80b95]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-79f80b95]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-79f80b95],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-79f80b95]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-79f80b95]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-79f80b95] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-79f80b95]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-79f80b95]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-79f80b95]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-79f80b95]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-79f80b95]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-79f80b95]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-79f80b95]:first-child{margin-inline-start:0}[data-v-79f80b95] input:user-invalid{--input-border-color: var(--color-border-error, var(--color-error)) !important;border-color:var(--color-border-error, var(--color-error)) !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue"],names:[],mappings:"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,yBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,uBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,YAAA,CAGD,+EACC,YAAA,CACA,qBAAA,CAID,4HACC,cAAA,CAEA,qIACC,aAAA,CACA,eAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,sBAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAYD,qEACC,iCAAA,CACA,mCAAA,CACA,sBAAA,CAGD,2FACC,0BAAA,CAKH,+CACC,qBAAA,CAIA,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,wBAAA,CAEA,iFACC,qBAAA,CAOL,qCACC,8EAAA,CACA,qEAAA",sourcesContent:["\n.sharingTabDetailsView {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0.2em;\n\n\t\tspan {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\th1 {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tpadding-inline-start: 0.3em;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__wrapper {\n\t\tposition: relative;\n\t\toverflow: scroll;\n\t\tflex-shrink: 1;\n\t\tpadding: 4px;\n\t\tpadding-inline-end: 12px;\n\t}\n\n\t&__quick-permissions {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\tmargin: 0 auto;\n\t\tborder-radius: 0;\n\n\t\tdiv {\n\t\t\twidth: 100%;\n\n\t\t\tspan {\n\t\t\t\twidth: 100%;\n\n\t\t\t\tspan:nth-child(1) {\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tpadding: 0.1em;\n\t\t\t\t}\n\n\t\t\t\t:deep(label span) {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t}\n\n\t\t\t\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\n\t\t\t\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\n\t\t\t\t\tflex-wrap: wrap;\n\n\t\t\t\t\t.subline {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tflex-basis: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__advanced-control {\n\t\twidth: 100%;\n\n\t\tbutton {\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\n\t}\n\n\t&__advanced {\n\t\twidth: 100%;\n\t\tmargin-bottom: 0.5em;\n\t\ttext-align: start;\n\t\tpadding-inline-start: 0;\n\n\t\tsection {\n\n\t\t\ttextarea,\n\t\t\tdiv.mx-datepicker {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\ttextarea {\n\t\t\t\theight: 80px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t The following style is applied out of the component's scope\n\t\t\t to remove padding from the label.checkbox-radio-switch__label,\n\t\t\t which is used to group radio checkbox items. The use of ::v-deep\n\t\t\t ensures that the padding is modified without being affected by\n\t\t\t the component's scoping.\n\t\t\t Without this achieving left alignment for the checkboxes would not\n\t\t\t be possible.\n\t\t\t*/\n\t\t\tspan :deep(label) {\n\t\t\t\tpadding-inline-start: 0 !important;\n\t\t\t\tbackground-color: initial !important;\n\t\t\t\tborder: none !important;\n\t\t\t}\n\n\t\t\tsection.custom-permissions-group {\n\t\t\t\tpadding-inline-start: 1.5em;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__label {\n\t\tpadding-block-end: 6px;\n\t}\n\n\t&__delete {\n\t\t> button:first-child {\n\t\t\tcolor: rgb(223, 7, 7);\n\t\t}\n\t}\n\n\t&__footer {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n\t\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\n\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmargin-top: 16px;\n\n\t\t\tbutton {\n\t\t\t\tmargin-inline-start: 16px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tmargin-inline-start: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n:deep(input:user-invalid) {\n\t--input-border-color: var(--color-border-error, var(--color-error)) !important;\n\tborder-color: var(--color-border-error, var(--color-error)) !important;\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},19353(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".sharing-entry__inherited .avatar-shared[data-v-cedf3238]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingInherited.vue"],names:[],mappings:"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA",sourcesContent:["\n.sharing-entry__inherited {\n\t.avatar-shared {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},41253(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,".emptyContentWithSections[data-v-cd6ad9ee]{margin:1rem auto}.sharingTab[data-v-cd6ad9ee]{position:relative;height:100%}.sharingTab__content[data-v-cd6ad9ee]{padding:0 6px}.sharingTab__content section[data-v-cd6ad9ee]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-cd6ad9ee]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-cd6ad9ee]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-cd6ad9ee]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-cd6ad9ee]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-cd6ad9ee]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-cd6ad9ee]{margin:var(--default-clickable-area) 0}.hint-body[data-v-cd6ad9ee]{max-width:300px;padding:var(--border-radius-element)}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingTab.vue"],names:[],mappings:"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAEA,8CACC,mBAAA,CAEA,8DACC,cAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,iEACC,QAAA,CACA,cAAA,CAGD,+EACC,YAAA,CAGD,yEACC,kCAAA,CAOH,+DACC,2CAAA,CAKF,gDACC,sCAAA,CAIF,4BACC,eAAA,CACA,oCAAA",sourcesContent:["\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\n\t\tsection {\n\t\t\tpadding-bottom: 16px;\n\n\t\t\t.section-header {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tmargin-bottom: 2px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding-bottom: 4px;\n\n\t\t\t\th4 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t.visually-hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.hint-icon {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t& > section:not(:last-child) {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\n\t}\n\n\t&__additionalContent {\n\t\tmargin: var(--default-clickable-area) 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n"],sourceRoot:""}]);const o=r;i.d(t,["A",0,o])},28280(e,t,i){var s=i(71354),a=i.n(s),n=i(76314),r=i.n(n)()(a());r.push([e.id,"\n.sharing-tab-external-section-legacy[data-v-67cb6ff2] {\n\twidth: 100%;\n}\n","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SidebarTabExternal/SidebarTabExternalSectionLegacy.vue"],names:[],mappings:";AAiCA;CACA,WAAA;AACA",sourcesContent:['\x3c!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.fileInfo)?_c(_setup.SharingTab,{attrs:{\"file-info\":_setup.fileInfo}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ContentCopy.vue?vue&type=template&id=0e8bd3c4\"\nimport script from \"./ContentCopy.vue?vue&type=script&lang=js\"\nexport * from \"./ContentCopy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon content-copy-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_vm._t(\"avatar\"),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=13d4a0bb&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=13d4a0bb&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13d4a0bb\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { generateUrl, getBaseUrl } from '@nextcloud/router';\n/**\n * @param fileid - The file ID to generate the direct file link for\n */\nexport function generateFileUrl(fileid) {\n const baseURL = getBaseUrl();\n const { globalscale } = getCapabilities();\n if (globalscale?.token) {\n return generateUrl('/gf/{token}/{fileid}', {\n token: globalscale.token,\n fileid,\n }, { baseURL });\n }\n return generateUrl('/f/{fileid}', {\n fileid,\n }, {\n baseURL,\n });\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInternal.vue?vue&type=template&id=6c4cb23b&scoped=true\"\nimport script from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c4cb23b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('SharingEntrySimple',{ref:\"shareEntrySimple\",staticClass:\"sharing-entry__internal\",attrs:{\"title\":_vm.t('files_sharing', 'Internal link'),\"subtitle\":_vm.internalLinkSubtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-external icon-external-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"title\":_vm.copyLinkTooltip,\"aria-label\":_vm.copyLinkTooltip},on:{\"click\":_vm.copyLink},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.copied && _vm.copySuccess)?_c('CheckIcon',{staticClass:\"icon-checkmark-color\",attrs:{\"size\":20}}):_c('ClipboardIcon',{attrs:{\"size\":20}})]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharing-search\"},[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":_vm.shareInputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.isExternal\n\t\t\t? _vm.t('files_sharing', 'Enter external recipients')\n\t\t\t: _vm.t('files_sharing', 'Search for internal recipients'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{ref:\"select\",staticClass:\"sharing-search__input\",attrs:{\"input-id\":_vm.shareInputId,\"disabled\":!_vm.canReshare,\"loading\":_vm.loading,\"filterable\":false,\"placeholder\":_vm.inputPlaceholder,\"clear-search-on-blur\":() => false,\"user-select\":true,\"options\":_vm.options,\"label-outside\":true},on:{\"search\":_vm.asyncFind,\"option:selected\":_vm.onSelected},scopedSlots:_vm._u([{key:\"no-options\",fn:function({ search }){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(search ? _vm.noResultText : _vm.placeholder)+\"\\n\\t\\t\")]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const ATOMIC_PERMISSIONS = {\n\tNONE: 0,\n\tREAD: 1,\n\tUPDATE: 2,\n\tCREATE: 4,\n\tDELETE: 8,\n\tSHARE: 16,\n}\n\nconst BUNDLED_PERMISSIONS = {\n\tREAD_ONLY: ATOMIC_PERMISSIONS.READ,\n\tUPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE,\n\tFILE_DROP: ATOMIC_PERMISSIONS.CREATE,\n\tALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE | ATOMIC_PERMISSIONS.SHARE,\n\tALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.SHARE,\n}\n\n/**\n * Get bundled permissions based on config.\n *\n * @param {boolean} excludeShare - Whether to exclude SHARE permission from ALL and ALL_FILE bundles.\n * @return {object}\n */\nexport function getBundledPermissions(excludeShare = false) {\n\tif (excludeShare) {\n\t\treturn {\n\t\t\t...BUNDLED_PERMISSIONS,\n\t\t\tALL: BUNDLED_PERMISSIONS.ALL & ~ATOMIC_PERMISSIONS.SHARE,\n\t\t\tALL_FILE: BUNDLED_PERMISSIONS.ALL_FILE & ~ATOMIC_PERMISSIONS.SHARE,\n\t\t}\n\t}\n\treturn BUNDLED_PERMISSIONS\n}\n\n/**\n * Return whether a given permissions set contains some permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToCheck - the permissions to check.\n * @return {boolean}\n */\nexport function hasPermissions(initialPermissionSet, permissionsToCheck) {\n\treturn initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck\n}\n\n/**\n * Return whether a given permissions set is valid.\n *\n * @param {number} permissionsSet - the permissions set.\n *\n * @return {boolean}\n */\nexport function permissionsSetIsValid(permissionsSet) {\n\t// Must have at least READ or CREATE permission.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) {\n\t\treturn false\n\t}\n\n\t// Must have READ permission if have UPDATE or DELETE.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (\n\t\thasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE)\n\t)) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Add some permissions to an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToAdd - the permissions to add.\n *\n * @return {number}\n */\nexport function addPermissions(initialPermissionSet, permissionsToAdd) {\n\treturn initialPermissionSet | permissionsToAdd\n}\n\n/**\n * Remove some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToSubtract - the permissions to remove.\n *\n * @return {number}\n */\nexport function subtractPermissions(initialPermissionSet, permissionsToSubtract) {\n\treturn initialPermissionSet & ~permissionsToSubtract\n}\n\n/**\n * Toggle some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {number}\n */\nexport function togglePermissions(initialPermissionSet, permissionsToToggle) {\n\tif (hasPermissions(initialPermissionSet, permissionsToToggle)) {\n\t\treturn subtractPermissions(initialPermissionSet, permissionsToToggle)\n\t} else {\n\t\treturn addPermissions(initialPermissionSet, permissionsToToggle)\n\t}\n}\n\n/**\n * Return whether some given permissions can be toggled from a permission set.\n *\n * @param {number} permissionSet - the initial permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {boolean}\n */\nexport function canTogglePermissions(permissionSet, permissionsToToggle) {\n\treturn permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle))\n}\n\n/**\n * The permission bundles the share editor offers, in the order they are matched.\n *\n * @type {string[]}\n */\nconst EDITOR_BUNDLES = ['READ_ONLY', 'ALL', 'ALL_FILE', 'FILE_DROP']\n\n/**\n * Find the permission bundle a share's permissions correspond to.\n *\n * Link and email shares carry the SHARE permission whenever federation on\n * public shares is enabled: the server adds it on top of whatever bundle was\n * picked, so it must be ignored when matching those shares against a bundle.\n *\n * @param {number} permissions - the share permissions.\n * @param {object} [options] - matching options.\n * @param {boolean} [options.isPublicShare] - whether the share is a link or email share.\n * @param {boolean} [options.excludeReshareFromEdit] - whether SHARE is excluded from the editing bundles.\n *\n * @return {string|null} the name of the matching bundle, or `null` for custom permissions.\n */\nexport function matchBundledPermissions(permissions, { isPublicShare = false, excludeReshareFromEdit = false } = {}) {\n\tconst bundles = getBundledPermissions(isPublicShare || excludeReshareFromEdit)\n\tconst comparablePermissions = isPublicShare\n\t\t? subtractPermissions(permissions, ATOMIC_PERMISSIONS.SHARE)\n\t\t: permissions\n\n\treturn EDITOR_BUNDLES.find((bundle) => bundles[bundle] === comparablePermissions) ?? null\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport logger from '../services/logger.ts';\nimport { isFileRequest } from '../services/SharingService.ts';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param ocsData ocs request response\n */\n constructor(ocsData) {\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n // string to int\n if (typeof ocsData.id === 'string') {\n ocsData.id = Number.parseInt(ocsData.id);\n }\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n }\n catch {\n logger.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\n // Pre-declared so Vue 2 makes newPassword reactive at observation time,\n // avoiding $set's property-addition path which races with async setters.\n ocsData.newPassword = ocsData.newPassword ?? undefined;\n // store state\n this._share = ocsData;\n }\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return the share raw state\n */\n get state() {\n return this._share;\n }\n /**\n * get the share id\n */\n get id() {\n return this._share.id;\n }\n /**\n * Get the share type\n */\n get type() {\n return this._share.share_type;\n }\n /**\n * Get the share permissions\n * See window.OC.PERMISSION_* variables\n */\n get permissions() {\n return this._share.permissions;\n }\n /**\n * Get the share attributes\n */\n get attributes() {\n return this._share.attributes || [];\n }\n /**\n * Set the share permissions\n * See window.OC.PERMISSION_* variables\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n */\n get owner() {\n return this._share.uid_owner;\n }\n /**\n * Get the share owner's display name\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n */\n get shareWith() {\n return this._share.share_with;\n }\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname\n || this._share.share_with;\n }\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique\n || this._share.share_with;\n }\n /**\n * Get the share with entity link\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n /**\n * Get the share with avatar if any\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n /**\n * Get the shared item display name\n * fallback to its uid if none\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner\n || this._share.uid_file_owner;\n }\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n */\n get createdTime() {\n return this._share.stime;\n }\n /**\n * Get the expiration date\n *\n * @return date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n *\n * @param date the share expiration date with YYYY-MM-DD format\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n */\n get token() {\n return this._share.token;\n }\n /**\n * Set the public share token\n */\n set token(token) {\n this._share.token = token;\n }\n /**\n * Get the share note if any\n */\n get note() {\n return this._share.note;\n }\n /**\n * Set the share note if any\n */\n set note(note) {\n this._share.note = note;\n }\n /**\n * Get the share label if any\n * Should only exist on link shares\n */\n get label() {\n return this._share.label ?? '';\n }\n /**\n * Set the share label if any\n * Should only be set on link shares\n */\n set label(label) {\n this._share.label = label;\n }\n /**\n * Have a mail been sent\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n /**\n * Hide the download button on public page\n */\n get hideDownload() {\n return this._share.hide_download === true\n || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined;\n }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\n // disabling hide-download also enables the download permission\n // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3\n if (!state) {\n const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions');\n if (attribute) {\n attribute.value = true;\n }\n }\n this._share.hide_download = state === true;\n }\n /**\n * Password protection of the share\n */\n get password() {\n return this._share.password;\n }\n /**\n * Password protection of the share\n */\n set password(password) {\n this._share.password = password;\n }\n /**\n * Unsaved password (set during share creation or editing).\n * Delegates to _share so reads/writes go through the reactive state.\n */\n get newPassword() {\n return this._share.newPassword;\n }\n set newPassword(value) {\n this._share.newPassword = value;\n }\n /**\n * Password expiration time\n *\n * @return date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n *\n * @param passwordExpirationTime date with YYYY-MM-DD format\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n /**\n * Password protection by Talk of the share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n /**\n * Password protection by Talk of the share\n *\n * @param sendPasswordByTalk whether to send the password by Talk or not\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n */\n get path() {\n return this._share.path;\n }\n /**\n * Return the item type: file or folder\n *\n * @return 'folder' | 'file'\n */\n get itemType() {\n return this._share.item_type;\n }\n /**\n * Get the shared item mimetype\n */\n get mimetype() {\n return this._share.mimetype;\n }\n /**\n * Get the shared item id\n */\n get fileSource() {\n return this._share.file_source;\n }\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n */\n get fileTarget() {\n return this._share.file_target;\n }\n /**\n * Get the parent folder id if any\n */\n get fileParent() {\n return this._share.file_parent;\n }\n // PERMISSIONS Shortcuts\n /**\n * Does this share have READ permissions\n */\n get hasReadPermission() {\n return !!((this.permissions & window.OC.PERMISSION_READ));\n }\n /**\n * Does this share have CREATE permissions\n */\n get hasCreatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_CREATE));\n }\n /**\n * Does this share have DELETE permissions\n */\n get hasDeletePermission() {\n return !!((this.permissions & window.OC.PERMISSION_DELETE));\n }\n /**\n * Does this share have UPDATE permissions\n */\n get hasUpdatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_UPDATE));\n }\n /**\n * Does this share have SHARE permissions\n */\n get hasSharePermission() {\n return !!((this.permissions & window.OC.PERMISSION_SHARE));\n }\n /**\n * Does this share have download permissions\n */\n get hasDownloadPermission() {\n const hasDisabledDownload = (attribute) => {\n return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false;\n };\n return !this.attributes.some(hasDisabledDownload);\n }\n /**\n * Is this mail share a file request ?\n */\n get isFileRequest() {\n return isFileRequest(JSON.stringify(this.attributes));\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, value) {\n const attrUpdate = {\n scope,\n key,\n value,\n };\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n /**\n * Can the current user DELETE this share ?\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n /**\n * Top level accessible shared folder fileid for the current user\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n /**\n * Top level accessible shared folder path for the current user\n */\n get viaPath() {\n return this._share.via_path;\n }\n // TODO: SORT THOSE PROPERTIES\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n /**\n * Is the share from a trusted server\n */\n get isTrustedServer() {\n return !!this._share.is_trusted_server;\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// TODO: Fix this instead of disabling ESLint!!!\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { File, Folder, Permission } from '@nextcloud/files';\nimport { getRemoteURL, getRootPath } from '@nextcloud/files/dav';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport logger from './logger.ts';\nconst headers = {\n 'Content-Type': 'application/json',\n};\n/**\n *\n * @param ocsEntry\n * @param unmounted whether the share is not mounted into the filesystem (pending or deleted)\n */\nasync function ocsEntryToNode(ocsEntry, unmounted = false) {\n try {\n // Federated share handling\n if (ocsEntry?.remote_id !== undefined) {\n if (!ocsEntry.mimetype) {\n const mime = (await import('mime')).default;\n // This won't catch files without an extension, but this is the best we can do\n ocsEntry.mimetype = mime.getType(ocsEntry.name);\n }\n const type = ocsEntry.type === 'dir' ? 'folder' : ocsEntry.type;\n ocsEntry.item_type = type || (ocsEntry.mimetype ? 'file' : 'folder');\n // different naming for remote shares\n ocsEntry.item_mtime = ocsEntry.mtime;\n ocsEntry.file_target = ocsEntry.file_target || ocsEntry.mountpoint;\n if (ocsEntry.file_target.includes('TemporaryMountPointName')) {\n ocsEntry.file_target = ocsEntry.name;\n }\n // If the share is not accepted yet we don't know which permissions it will have\n if (!ocsEntry.accepted) {\n // Need to set permissions to NONE for federated shares\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n ocsEntry.uid_owner = ocsEntry.owner;\n // TODO: have the real display name stored somewhere\n ocsEntry.displayname_owner = ocsEntry.owner;\n }\n // Pending and deleted shares are not mounted into the user's filesystem,\n // so no file operation can act on them until they are accepted or restored.\n if (unmounted) {\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n const isFolder = ocsEntry?.item_type === 'folder';\n const hasPreview = ocsEntry?.has_preview === true;\n const Node = isFolder ? Folder : File;\n // If this is an external share that is not yet accepted,\n // we don't have an id. We can fallback to the row id temporarily\n // local shares (this server) use `file_source`, but remote shares (federated) use `file_id`\n const fileid = ocsEntry.file_source || ocsEntry.file_id || ocsEntry.id;\n // Generate path and strip double slashes\n const path = ocsEntry.path || ocsEntry.file_target || ocsEntry.name;\n const source = `${getRemoteURL()}${getRootPath()}/${path.replace(/^\\/+/, '')}`;\n let mtime = ocsEntry.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined;\n // Prefer share time if more recent than item mtime\n if (ocsEntry?.stime > (ocsEntry?.item_mtime || 0)) {\n mtime = new Date((ocsEntry.stime) * 1000);\n }\n let sharees;\n if ('share_with' in ocsEntry) {\n sharees = {\n sharee: {\n id: ocsEntry.share_with,\n 'display-name': ocsEntry.share_with_displayname || ocsEntry.share_with,\n type: ocsEntry.share_type,\n },\n };\n }\n return new Node({\n id: fileid,\n source,\n owner: ocsEntry?.uid_owner,\n mime: ocsEntry?.mimetype || 'application/octet-stream',\n mtime,\n size: ocsEntry?.item_size ?? undefined,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: getRootPath(),\n attributes: {\n ...ocsEntry,\n 'has-preview': hasPreview,\n 'hide-download': ocsEntry?.hide_download === 1,\n // Also check the sharingStatusAction.ts code\n 'owner-id': ocsEntry?.uid_owner,\n 'owner-display-name': ocsEntry?.displayname_owner,\n 'share-types': ocsEntry?.share_type,\n 'share-attributes': ocsEntry?.attributes || '[]',\n sharees,\n favorite: ocsEntry?.tags?.includes(window.OC.TAG_FAVORITE) ? 1 : 0,\n },\n });\n }\n catch (error) {\n logger.error('Error while parsing OCS entry', { error });\n return null;\n }\n}\n/**\n *\n * @param shareWithMe\n */\nfunction getShares(shareWithMe = false) {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares');\n return axios.get(url, {\n headers,\n params: {\n shared_with_me: shareWithMe,\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getSharedWithYou() {\n return getShares(true);\n}\n/**\n *\n */\nfunction getSharedWithOthers() {\n return getShares();\n}\n/**\n *\n */\nfunction getRemoteShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getPendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getRemotePendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getDeletedShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/deletedshares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n * Check if a file request is enabled\n *\n * @param attributes the share attributes json-encoded array\n */\nexport function isFileRequest(attributes = '[]') {\n const isFileRequest = (attribute) => {\n return attribute.scope === 'fileRequest' && attribute.key === 'enabled' && attribute.value === true;\n };\n try {\n const attributesArray = JSON.parse(attributes);\n return attributesArray.some(isFileRequest);\n }\n catch (error) {\n logger.error('Error while parsing share attributes', { error });\n return false;\n }\n}\n/**\n * Group an array of objects (here Nodes) by a key\n * and return an array of arrays of them.\n *\n * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nfunction groupBy(nodes, key) {\n return Object.values(nodes.reduce(function (acc, curr) {\n (acc[curr[key]] = acc[curr[key]] || []).push(curr);\n return acc;\n }, {}));\n}\n/**\n *\n * @param sharedWithYou\n * @param sharedWithOthers\n * @param pendingShares\n * @param deletedshares\n * @param filterTypes\n */\nexport async function getContents(sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) {\n const requests = [];\n if (sharedWithYou) {\n requests.push({ promise: getSharedWithYou(), unmounted: false }, { promise: getRemoteShares(), unmounted: false });\n }\n if (sharedWithOthers) {\n requests.push({ promise: getSharedWithOthers(), unmounted: false });\n }\n if (pendingShares) {\n requests.push({ promise: getPendingShares(), unmounted: true }, { promise: getRemotePendingShares(), unmounted: true });\n }\n if (deletedshares) {\n requests.push({ promise: getDeletedShares(), unmounted: true });\n }\n const responses = await Promise.all(requests.map(({ promise }) => promise));\n const data = responses.flatMap((response, index) => response.data.ocs.data\n .map((entry) => ({ entry, unmounted: requests[index].unmounted })));\n let contents = (await Promise.all(data.map(({ entry, unmounted }) => ocsEntryToNode(entry, unmounted))))\n .filter((node) => node !== null);\n if (filterTypes.length > 0) {\n contents = contents.filter((node) => filterTypes.includes(node.attributes?.share_type));\n }\n // Merge duplicate shares and group their attributes\n // Also check the sharingStatusAction.ts code\n contents = groupBy(contents, 'source').map((nodes) => {\n const node = nodes[0];\n node.attributes['share-types'] = nodes.map((node) => node.attributes['share-types']);\n return node;\n });\n return {\n folder: new Folder({\n id: 0,\n source: `${getRemoteURL()}${getRootPath()}`,\n owner: getCurrentUser()?.uid || null,\n root: getRootPath(),\n }),\n contents,\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { loadState } from '@nextcloud/initial-state';\nexport default class Config {\n _capabilities;\n constructor() {\n this._capabilities = getCapabilities();\n }\n /**\n * Get default share permissions, if any\n */\n get defaultPermissions() {\n return this._capabilities.files_sharing?.default_permissions;\n }\n /**\n * Should SHARE permission be excluded from \"Allow editing\" bundled permissions\n */\n get excludeReshareFromEdit() {\n return this._capabilities.files_sharing?.exclude_reshare_from_edit === true;\n }\n /**\n * Is public upload allowed on link shares ?\n * This covers File request and Full upload/edit option.\n */\n get isPublicUploadEnabled() {\n return this._capabilities.files_sharing?.public?.upload === true;\n }\n /**\n * Get the federated sharing documentation link\n */\n get federatedShareDocLink() {\n return window.OC.appConfig.core.federatedCloudShareDoc;\n }\n /**\n * Get the default link share expiration date\n */\n get defaultExpirationDate() {\n if (this.isDefaultExpireDateEnabled) {\n const days = this.linkDefaultExpDays ?? this.defaultExpireDate;\n if (days !== null) {\n return new Date(new Date().setDate(new Date().getDate() + days));\n }\n }\n return null;\n }\n /**\n * Get the maximum link share expiration date\n */\n get maxExpirationDate() {\n if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate));\n }\n return null;\n }\n /**\n * Get the default internal expiration date\n */\n get defaultInternalExpirationDate() {\n if (this.isDefaultInternalExpireDateEnabled && this.defaultInternalExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate));\n }\n return null;\n }\n /**\n * Get the default remote expiration date\n */\n get defaultRemoteExpirationDateString() {\n if (this.isDefaultRemoteExpireDateEnabled && this.defaultRemoteExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate));\n }\n return null;\n }\n /**\n * Are link shares password-enforced ?\n */\n get enforcePasswordForPublicLink() {\n return window.OC.appConfig.core.enforcePasswordForPublicLink === true;\n }\n /**\n * Is password asked by default on link shares ?\n */\n get enableLinkPasswordByDefault() {\n return window.OC.appConfig.core.enableLinkPasswordByDefault === true;\n }\n /**\n * Is link shares expiration enforced ?\n */\n get isDefaultExpireDateEnforced() {\n return window.OC.appConfig.core.defaultExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new link shares ?\n */\n get isDefaultExpireDateEnabled() {\n return window.OC.appConfig.core.defaultExpireDateEnabled === true;\n }\n /**\n * Is internal shares expiration enforced ?\n */\n get isDefaultInternalExpireDateEnforced() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new internal shares ?\n */\n get isDefaultInternalExpireDateEnabled() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnabled === true;\n }\n /**\n * Is remote shares expiration enforced ?\n */\n get isDefaultRemoteExpireDateEnforced() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new remote shares ?\n */\n get isDefaultRemoteExpireDateEnabled() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnabled === true;\n }\n /**\n * Are users on this server allowed to send shares to other servers ?\n */\n get isRemoteShareAllowed() {\n return window.OC.appConfig.core.remoteShareAllowed === true;\n }\n /**\n * Is federation enabled ?\n */\n get isFederationEnabled() {\n return this._capabilities?.files_sharing?.federation?.outgoing === true;\n }\n /**\n * Is public sharing enabled ?\n */\n get isPublicShareAllowed() {\n return this._capabilities?.files_sharing?.public?.enabled === true;\n }\n /**\n * Is sharing my mail (link share) enabled ?\n */\n get isMailShareAllowed() {\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n && this.isPublicShareAllowed === true;\n }\n /**\n * Get the maximum days to link shares expiration\n */\n get defaultExpireDate() {\n return window.OC.appConfig.core.defaultExpireDate;\n }\n /**\n * Get the default days to link shares expiration\n */\n get linkDefaultExpDays() {\n return this._capabilities?.files_sharing?.public?.expire_date?.default_days ?? null;\n }\n /**\n * Get the default days to internal shares expiration\n */\n get defaultInternalExpireDate() {\n return window.OC.appConfig.core.defaultInternalExpireDate;\n }\n /**\n * Get the default days to remote shares expiration\n */\n get defaultRemoteExpireDate() {\n return window.OC.appConfig.core.defaultRemoteExpireDate;\n }\n /**\n * Is resharing allowed ?\n */\n get isResharingAllowed() {\n return window.OC.appConfig.core.resharingAllowed === true;\n }\n /**\n * Is password enforced for mail shares ?\n */\n get isPasswordForMailSharesRequired() {\n return this._capabilities.files_sharing?.sharebymail?.password?.enforced === true;\n }\n /**\n * Always show the email or userid unique sharee label if enabled by the admin\n */\n get shouldAlwaysShowUnique() {\n return this._capabilities.files_sharing?.sharee?.always_show_unique === true;\n }\n /**\n * Is sharing with groups allowed ?\n */\n get allowGroupSharing() {\n return window.OC.appConfig.core.allowGroupSharing === true;\n }\n /**\n * Get the maximum results of a share search\n */\n get maxAutocompleteResults() {\n return parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25;\n }\n /**\n * Get the minimal string length\n * to initiate a share search\n */\n get minSearchStringLength() {\n return parseInt(window.OC.config['sharing.minSearchStringLength'], 10) || 0;\n }\n /**\n * Get the password policy configuration\n */\n get passwordPolicy() {\n return this._capabilities?.password_policy || {};\n }\n /**\n * Returns true if custom tokens are allowed\n */\n get allowCustomTokens() {\n return this._capabilities?.files_sharing?.public?.custom_tokens;\n }\n /**\n * Show federated shares as internal shares\n *\n * @return\n */\n get showFederatedSharesAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesAsInternal', false);\n }\n /**\n * Show federated shares to trusted servers as internal shares\n *\n * @return\n */\n get showFederatedSharesToTrustedServersAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesToTrustedServersAsInternal', false);\n }\n /**\n * Show the external share ui\n */\n get showExternalSharing() {\n return loadState('files_sharing', 'showExternalSharing', true);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ATOMIC_PERMISSIONS } from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\n\nexport default {\n\tmethods: {\n\t\tasync openSharingDetails(shareRequestObject) {\n\t\t\tlet share\n\t\t\t// handle externalResults from OCA.Sharing.ShareSearch\n\t\t\t// TODO : Better name/interface for handler required\n\t\t\t// For example `externalAppCreateShareHook` with proper documentation\n\t\t\tif (shareRequestObject.handler) {\n\t\t\t\tconst handlerInput = {}\n\t\t\t\tif (this.suggestions) {\n\t\t\t\t\thandlerInput.suggestions = this.suggestions\n\t\t\t\t\thandlerInput.fileInfo = this.fileInfo\n\t\t\t\t\thandlerInput.query = this.query\n\t\t\t\t}\n\t\t\t\tconst externalShareRequestObject = await shareRequestObject.handler(handlerInput)\n\t\t\t\tshare = this.mapShareRequestToShareObject(externalShareRequestObject)\n\t\t\t} else {\n\t\t\t\tshare = this.mapShareRequestToShareObject(shareRequestObject)\n\t\t\t}\n\n\t\t\tif (this.fileInfo.type !== 'dir') {\n\t\t\t\tconst originalPermissions = share.permissions\n\t\t\t\tconst strippedPermissions = originalPermissions\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.CREATE\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.DELETE\n\n\t\t\t\tif (originalPermissions !== strippedPermissions) {\n\t\t\t\t\tlogger.debug('Removed create/delete permissions from file share (only valid for folders)')\n\t\t\t\t\tshare.permissions = strippedPermissions\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst shareDetails = {\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tshare,\n\t\t\t}\n\n\t\t\tthis.$emit('open-sharing-details', shareDetails)\n\t\t},\n\t\topenShareDetailsForCustomSettings(share) {\n\t\t\tshare.setCustomPermissions = true\n\t\t\tthis.openSharingDetails(share)\n\t\t},\n\t\tmapShareRequestToShareObject(shareRequestObject) {\n\t\t\tif (shareRequestObject.id) {\n\t\t\t\treturn shareRequestObject\n\t\t\t}\n\n\t\t\tconst share = {\n\t\t\t\tattributes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\tscope: 'permissions',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\thideDownload: false,\n\t\t\t\tshare_type: shareRequestObject.shareType,\n\t\t\t\tshare_with: shareRequestObject.shareWith,\n\t\t\t\tis_no_user: shareRequestObject.isNoUser,\n\t\t\t\tuser: shareRequestObject.shareWith,\n\t\t\t\tshare_with_displayname: shareRequestObject.displayName,\n\t\t\t\tsubtitle: shareRequestObject.subtitle,\n\t\t\t\tpermissions: shareRequestObject.permissions ?? new Config().defaultPermissions,\n\t\t\t\texpiration: '',\n\t\t\t}\n\n\t\t\treturn new Share(share)\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport Share from '../models/Share.ts'\nimport logger from '../services/logger.ts'\n\nconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\nexport default {\n\tmethods: {\n\t\t/**\n\t\t * Create a new share\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.path path to the file/folder which should be shared\n\t\t * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share\n\t\t * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1)\n\t\t * @param {boolean} [data.publicUpload] allow public upload to a public shared folder\n\t\t * @param {string} [data.password] password to protect public link Share with\n\t\t * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)\n\t\t * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation\n\t\t * @param {string} [data.expireDate] expire the share automatically after\n\t\t * @param {string} [data.label] custom label\n\t\t * @param {string} [data.attributes] Share attributes encoded as json\n\t\t * @param {string} data.note custom note to recipient\n\t\t * @return {Share} the new share\n\t\t * @throws {Error}\n\t\t */\n\t\tasync createShare({ path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes }) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.post(shareUrl, { path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\tconst share = new Share(request.data.ocs.data)\n\t\t\t\temit('files_sharing:share:created', { share })\n\t\t\t\treturn share\n\t\t\t} catch (error) {\n\t\t\t\tconst errorMessage = getErrorMessage(error) ?? t('files_sharing', 'Error creating the share')\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tthrow new Error(errorMessage, { cause: error })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @throws {Error}\n\t\t */\n\t\tasync deleteShare(id) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.delete(shareUrl + `/${id}`)\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\temit('files_sharing:share:deleted', { id })\n\t\t\t\treturn true\n\t\t\t} catch (error) {\n\t\t\t\tconst errorMessage = getErrorMessage(error) ?? t('files_sharing', 'Error deleting the share')\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tthrow new Error(errorMessage, { cause: error })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @param {object} properties key-value object of the properties to update\n\t\t */\n\t\tasync updateShare(id, properties) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.put(shareUrl + `/${id}`, properties)\n\t\t\t\temit('files_sharing:share:updated', { id })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t} else {\n\t\t\t\t\treturn request.data.ocs.data\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while updating share', { error })\n\t\t\t\tconst errorMessage = getErrorMessage(error) ?? t('files_sharing', 'Error updating the share')\n\t\t\t\t// the error will be shown in apps/files_sharing/src/mixins/SharesMixin.js\n\t\t\t\tthrow new Error(errorMessage, { cause: error })\n\t\t\t}\n\t\t},\n\t},\n}\n\n/**\n * Handle an error response from the server and show a notification with the error message if possible\n *\n * @param {unknown} error - The received error\n * @return {string|undefined} the error message if it could be extracted from the response, otherwise undefined\n */\nfunction getErrorMessage(error) {\n\tif (isAxiosError(error) && error.response.data?.ocs) {\n\t\t/** @type {import('@nextcloud/typings/ocs').OCSResponse} */\n\t\tconst response = error.response.data\n\t\tif (response.ocs.meta?.message) {\n\t\t\treturn response.ocs.meta.message\n\t\t}\n\t}\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=0b151499&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=0b151499&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=0b151499\"\nimport script from \"./SharingInput.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInput.vue?vue&type=style&index=0&id=0b151499&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.section.element,{ref:\"sectionElement\",tag:\"component\",domProps:{\"node\":_vm.node}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalSection.vue?vue&type=template&id=9785f99e\"\nimport script from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"sharing-tab-external-section-legacy\"},[_c(_setup.component,{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=67cb6ff2&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=67cb6ff2&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SidebarTabExternalSectionLegacy.vue?vue&type=template&id=67cb6ff2&scoped=true\"\nimport script from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nimport style0 from \"./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=67cb6ff2&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67cb6ff2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTabDetailsView\"},[_c('div',{staticClass:\"sharingTabDetailsView__header\"},[_c('span',[(_vm.isUserShare)?_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.shareType !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}):_vm._e(),_vm._v(\" \"),_c(_vm.getShareTypeIcon(_vm.share.type),{tag:\"component\",attrs:{\"size\":32}})],1),_vm._v(\" \"),_c('span',[_c('h1',[_vm._v(_vm._s(_vm.title))])])]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__wrapper\"},[_c('div',{ref:\"quickPermissions\",staticClass:\"sharingTabDetailsView__quick-permissions\"},[_c('div',[_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"read-only\",\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'View only'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"upload-edit\",\"value\":_vm.allPermissions,\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[(_vm.allowsFileDrop)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow upload and editing'))+\"\\n\\t\\t\\t\\t\\t\")]:[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow editing'))+\"\\n\\t\\t\\t\\t\\t\")]],2),_vm._v(\" \"),(_vm.allowsFileDrop)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-sharing-share-permissions-bundle\":\"file-drop\",\"button-variant\":true,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'File request'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.t('files_sharing', 'Upload only')))])]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"custom\",\"value\":\"custom\",\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.expandCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.customPermissionsList))])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__advanced-control\"},[_c('NcButton',{attrs:{\"id\":\"advancedSectionAccordionAdvancedControl\",\"variant\":\"tertiary\",\"alignment\":\"end-reverse\",\"aria-controls\":\"advancedSectionAccordionAdvanced\",\"aria-expanded\":_vm.advancedControlExpandedValue},on:{\"click\":function($event){_vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.advancedSectionAccordionExpanded)?_c('MenuDownIcon'):_c('MenuUpIcon')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Advanced settings'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.advancedSectionAccordionExpanded)?_c('div',{staticClass:\"sharingTabDetailsView__advanced\",attrs:{\"id\":\"advancedSectionAccordionAdvanced\",\"aria-labelledby\":\"advancedSectionAccordionAdvancedControl\",\"role\":\"region\"}},[_c('section',[(_vm.isPublicShare)?_c('NcInputField',{staticClass:\"sharingTabDetailsView__label\",attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share label')},model:{value:(_vm.share.label),callback:function ($$v) {_vm.$set(_vm.share, \"label\", $$v)},expression:\"share.label\"}}):_vm._e(),_vm._v(\" \"),(_vm.config.allowCustomTokens && _vm.isPublicShare && !_vm.isNewShare)?_c('NcInputField',{attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share link token'),\"helper-text\":_vm.t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.'),\"show-trailing-button\":\"\",\"trailing-button-label\":_vm.loadingToken ? _vm.t('files_sharing', 'Generating…') : _vm.t('files_sharing', 'Generate new token')},on:{\"trailing-button-click\":_vm.generateNewToken},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [(_vm.loadingToken)?_c('NcLoadingIcon'):_c('Refresh',{attrs:{\"size\":20}})]},proxy:true}],null,false,4228062821),model:{value:(_vm.share.token),callback:function ($$v) {_vm.$set(_vm.share, \"token\", $$v)},expression:\"share.token\"}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isPasswordEnforced},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set password'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isPasswordProtected)?_c('NcPasswordField',{attrs:{\"autocomplete\":\"new-password\",\"model-value\":_vm.share.newPassword ?? '',\"error\":_vm.passwordError,\"helper-text\":_vm.errorPasswordLabel || _vm.passwordHint,\"required\":_vm.isPasswordEnforced && _vm.isNewShare,\"label\":_vm.t('files_sharing', 'Password')},on:{\"update:value\":_vm.onPasswordChange}}):_vm._e(),_vm._v(\" \"),(_vm.isEmailShareType && _vm.passwordExpirationTime)?_c('span',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime: _vm.passwordExpirationTime }))+\"\\n\\t\\t\\t\\t\\t\")]):(_vm.isEmailShareType && _vm.passwordExpirationTime !== null)?_c('span',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expired'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.canTogglePasswordProtectedByTalkAvailable)?_c('NcCheckboxRadioSwitch',{model:{value:(_vm.isPasswordProtectedByTalk),callback:function ($$v) {_vm.isPasswordProtectedByTalk=$$v},expression:\"isPasswordProtectedByTalk\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Video verification'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isExpiryDateEnforced},model:{value:(_vm.hasExpirationDate),callback:function ($$v) {_vm.hasExpirationDate=$$v},expression:\"hasExpirationDate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.isExpiryDateEnforced\n\t\t\t\t\t\t? _vm.t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t: _vm.t('files_sharing', 'Set expiration date'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.hasExpirationDate)?_c('NcDateTimePickerNative',{ref:\"expireDate\",attrs:{\"id\":\"share-date-picker\",\"model-value\":new Date(_vm.share.expireDate ?? _vm.dateTomorrow),\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced,\"hide-label\":\"\",\"label\":_vm.t('files_sharing', 'Expiration date'),\"placeholder\":_vm.t('files_sharing', 'Expiration date'),\"type\":\"date\"},on:{\"update:model-value\":_vm.onExpirationChange,\"change\":_vm.checkExpirationDateValidity}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.canChangeHideDownload},model:{value:(_vm.share.hideDownload),callback:function ($$v) {_vm.$set(_vm.share, \"hideDownload\", $$v)},expression:\"share.hideDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Hide download'))+\"\\n\\t\\t\\t\\t\")]):(_vm.canShowDownloadPermission)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDownload,\"data-cy-files-sharing-share-permissions-checkbox\":\"download\"},model:{value:(_vm.canDownload),callback:function ($$v) {_vm.canDownload=$$v},expression:\"canDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow download and sync'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.writeNoteToRecipientIsChecked),callback:function ($$v) {_vm.writeNoteToRecipientIsChecked=$$v},expression:\"writeNoteToRecipientIsChecked\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Note to recipient'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.writeNoteToRecipientIsChecked)?[_c('NcTextArea',{attrs:{\"label\":_vm.t('files_sharing', 'Note to recipient'),\"placeholder\":_vm.t('files_sharing', 'Enter a note for the share recipient')},model:{value:(_vm.share.note),callback:function ($$v) {_vm.$set(_vm.share, \"note\", $$v)},expression:\"share.note\"}})]:_vm._e(),_vm._v(\" \"),(_vm.isPublicShare && _vm.isFolder)?_c('NcCheckboxRadioSwitch',{model:{value:(_vm.showInGridView),callback:function ($$v) {_vm.showInGridView=$$v},expression:\"showInGridView\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Show files in grid view'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('SidebarTabExternalAction',{key:action.id,ref:\"externalShareActions\",refInFor:true,attrs:{\"action\":action,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,ref:\"externalLinkActions\",refInFor:true,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.setCustomPermissions),callback:function ($$v) {_vm.setCustomPermissions=$$v},expression:\"setCustomPermissions\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.setCustomPermissions)?_c('section',{staticClass:\"custom-permissions-group\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canRemoveReadPermission,\"data-cy-files-sharing-share-permissions-checkbox\":\"read\"},model:{value:(_vm.hasRead),callback:function ($$v) {_vm.hasRead=$$v},expression:\"hasRead\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Read'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetCreate,\"data-cy-files-sharing-share-permissions-checkbox\":\"create\"},model:{value:(_vm.canCreate),callback:function ($$v) {_vm.canCreate=$$v},expression:\"canCreate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetEdit,\"data-cy-files-sharing-share-permissions-checkbox\":\"update\"},model:{value:(_vm.canEdit),callback:function ($$v) {_vm.canEdit=$$v},expression:\"canEdit\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Edit'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.resharingIsPossible)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetReshare,\"data-cy-files-sharing-share-permissions-checkbox\":\"share\"},model:{value:(_vm.canReshare),callback:function ($$v) {_vm.canReshare=$$v},expression:\"canReshare\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDelete,\"data-cy-files-sharing-share-permissions-checkbox\":\"delete\"},model:{value:(_vm.canDelete),callback:function ($$v) {_vm.canDelete=$$v},expression:\"canDelete\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete'))+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],2)]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__footer\"},[_c('div',{staticClass:\"button-group\"},[_c('NcButton',{attrs:{\"data-cy-files-sharing-share-editor-action\":\"cancel\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"variant\":\"tertiary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\",\"data-cy-files-sharing-share-editor-action\":\"save\",\"disabled\":_vm.creating},on:{\"click\":_vm.saveShare},scopedSlots:_vm._u([(_vm.creating)?{key:\"icon\",fn:function(){return [_c('NcLoadingIcon')]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.shareButtonText)+\"\\n\\t\\t\\t\\t\")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountCircleOutline.vue?vue&type=template&id=5b2fe1de\"\nimport script from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./AccountGroup.vue?vue&type=template&id=fa2b1464\"\nimport script from \"./AccountGroup.vue?vue&type=script&lang=js\"\nexport * from \"./AccountGroup.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-group-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./CircleOutline.vue?vue&type=template&id=c013567c\"\nimport script from \"./CircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Close.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Close.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Close.vue?vue&type=template&id=55ecc995\"\nimport script from \"./Close.vue?vue&type=script&lang=js\"\nexport * from \"./Close.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon close-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=7dd7f6aa\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon email-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=4ae2345c\"\nimport script from \"./Eye.vue?vue&type=script&lang=js\"\nexport * from \"./Eye.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Refresh.vue?vue&type=template&id=2864f909\"\nimport script from \"./Refresh.vue?vue&type=script&lang=js\"\nexport * from \"./Refresh.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon refresh-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ShareCircle.vue?vue&type=template&id=0e958886\"\nimport script from \"./ShareCircle.vue?vue&type=script&lang=js\"\nexport * from \"./ShareCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon share-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./TrayArrowUp.vue?vue&type=template&id=ae55bf4e\"\nimport script from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tray-arrow-up-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.action.element,{key:_vm.action.id,ref:\"actionElement\",tag:\"component\",domProps:{\"share\":_vm.share,\"node\":_vm.node,\"onSave\":_setup.onSave}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalAction.vue?vue&type=template&id=5ea2e6c7\"\nimport script from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SidebarTabExternalActionLegacy.vue?vue&type=template&id=50e2cb04\"\nimport script from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\nexport * from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.data.is,_vm._g(_vm._b({tag:\"component\"},'component',_vm.data,false),_vm.action.handlers),[_vm._v(\"\\n\\t\"+_vm._s(_vm.data.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\n/**\n * Fetches a node from the given path\n *\n * @param path - The path to fetch the node from\n */\nexport async function fetchNode(path) {\n const propfindPayload = getDefaultPropfind();\n const result = await client.stat(`${getRootPath()}${path}`, {\n details: true,\n data: propfindPayload,\n });\n return resultToNode(result.data);\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Config from '../services/ConfigService.ts';\nimport logger from '../services/logger.ts';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n/**\n * Generate a valid policy password or request a valid password if password_policy is enabled\n *\n * @param verbose If enabled the the status is shown to the user via toast\n */\nexport default async function (verbose = false) {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate, {\n params: { context: 'sharing' },\n });\n if (request.data.ocs.data.password) {\n if (verbose) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n }\n return request.data.ocs.data.password;\n }\n }\n catch (error) {\n logger.info('Error generating password from password_policy', { error });\n if (verbose) {\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}\n/**\n * Fills the given array with cryptographically secure random values.\n * If the crypto API is not available, it falls back to less secure Math.random().\n * Crypto API is available in modern browsers on secure contexts (HTTPS).\n *\n * @param array - The array to fill with random values.\n */\nfunction getRandomValues(array) {\n if (self?.crypto?.getRandomValues) {\n self.crypto.getRandomValues(array);\n return;\n }\n let len = array.length;\n while (len--) {\n array[len] = Math.floor(Math.random() * 256);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { ShareType } from '@nextcloud/sharing'\nimport debounce from 'debounce'\nimport PQueue from 'p-queue'\nimport { fetchNode } from '../../../files/src/services/WebdavClient.ts'\nimport { matchBundledPermissions } from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport SharesRequests from './ShareRequests.js'\n\nexport default {\n\tmixins: [SharesRequests],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tnode: null,\n\t\t\tShareType,\n\n\t\t\t// errors helpers\n\t\t\terrors: {},\n\n\t\t\t// component status toggles\n\t\t\tloading: false,\n\t\t\tsaving: false,\n\t\t\topen: false,\n\n\t\t\t/** @type {boolean | undefined} */\n\t\t\tpasswordProtectedState: undefined,\n\n\t\t\t// concurrency management queue\n\t\t\t// we want one queue per share\n\t\t\tupdateQueue: new PQueue({ concurrency: 1 }),\n\n\t\t\t/**\n\t\t\t * ! This allow vue to make the Share class state reactive\n\t\t\t * ! do not remove it ot you'll lose all reactivity here\n\t\t\t */\n\t\t\treactiveState: this.share?.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpath() {\n\t\t\treturn (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t},\n\t\t/**\n\t\t * Does the current share have a note\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasNote: {\n\t\t\tget() {\n\t\t\t\treturn this.share.note !== ''\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.note = enabled\n\t\t\t\t\t? null // enabled but user did not changed the content yet\n\t\t\t\t\t: '' // empty = no note = disabled\n\t\t\t},\n\t\t},\n\n\t\tdateTomorrow() {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\n\t\t// Datepicker language\n\t\tlang() {\n\t\t\tconst weekdaysShort = window.dayNamesShort\n\t\t\t\t? window.dayNamesShort // provided by Nextcloud\n\t\t\t\t: ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']\n\t\t\tconst monthsShort = window.monthNamesShort\n\t\t\t\t? window.monthNamesShort // provided by Nextcloud\n\t\t\t\t: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']\n\t\t\tconst firstDayOfWeek = window.firstDay ? window.firstDay : 0\n\n\t\t\treturn {\n\t\t\t\tformatLocale: {\n\t\t\t\t\tfirstDayOfWeek,\n\t\t\t\t\tmonthsShort,\n\t\t\t\t\tweekdaysMin: weekdaysShort,\n\t\t\t\t\tweekdaysShort,\n\t\t\t\t},\n\t\t\t\tmonthFormat: 'MMM',\n\t\t\t}\n\t\t},\n\t\tisNewShare() {\n\t\t\treturn !this.share.id\n\t\t},\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\tisPublicShare() {\n\t\t\tconst shareType = this.share.shareType ?? this.share.type\n\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t},\n\t\tisRemoteShare() {\n\t\t\treturn this.share.type === ShareType.RemoteGroup || this.share.type === ShareType.Remote\n\t\t},\n\t\tisShareOwner() {\n\t\t\treturn this.share && this.share.owner === getCurrentUser().uid\n\t\t},\n\t\tisExpiryDateEnforced() {\n\t\t\tif (this.isPublicShare) {\n\t\t\t\treturn this.config.isDefaultExpireDateEnforced\n\t\t\t}\n\t\t\tif (this.isRemoteShare) {\n\t\t\t\treturn this.config.isDefaultRemoteExpireDateEnforced\n\t\t\t}\n\t\t\treturn this.config.isDefaultInternalExpireDateEnforced\n\t\t},\n\t\tpermissionsBundle() {\n\t\t\treturn matchBundledPermissions(this.share.permissions, {\n\t\t\t\tisPublicShare: this.isPublicShare,\n\t\t\t\texcludeReshareFromEdit: this.config.excludeReshareFromEdit,\n\t\t\t})\n\t\t},\n\t\thasCustomPermissions() {\n\t\t\treturn this.permissionsBundle === null\n\t\t},\n\t\tmaxExpirationDateEnforced() {\n\t\t\tif (this.isExpiryDateEnforced) {\n\t\t\t\tif (this.isPublicShare) {\n\t\t\t\t\treturn this.config.maxExpirationDate\n\t\t\t\t}\n\t\t\t\tif (this.isRemoteShare) {\n\t\t\t\t\treturn this.config.defaultRemoteExpirationDateString\n\t\t\t\t}\n\t\t\t\t// If it get's here then it must be an internal share\n\t\t\t\treturn this.config.defaultInternalExpirationDate\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtected: {\n\t\t\tget() {\n\t\t\t\tif (this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tif (this.passwordProtectedState !== undefined) {\n\t\t\t\t\treturn this.passwordProtectedState\n\t\t\t\t}\n\t\t\t\treturn typeof this.share.newPassword === 'string'\n\t\t\t\t\t|| typeof this.share.password === 'string'\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.passwordProtectedState = true\n\t\t\t\t\tconst generatedPassword = await GeneratePassword(true)\n\t\t\t\t\tif (!this.share.newPassword) {\n\t\t\t\t\t\tthis.$set(this.share, 'newPassword', generatedPassword)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.passwordProtectedState = false\n\t\t\t\t\tthis.$set(this.share, 'newPassword', '')\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Fetch WebDAV node\n\t\t *\n\t\t * @return {Node}\n\t\t */\n\t\tasync getNode() {\n\t\t\tconst node = { path: this.path }\n\t\t\ttry {\n\t\t\t\tthis.node = await fetchNode(node.path)\n\t\t\t\tlogger.info('Fetched node:', { node: this.node })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error:', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if a share is valid before\n\t\t * firing the request\n\t\t *\n\t\t * @param {Share} share the share to check\n\t\t * @return {boolean}\n\t\t */\n\t\tcheckShare(share) {\n\t\t\tif (share.password) {\n\t\t\t\tif (typeof share.password !== 'string' || share.password.trim() === '') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.newPassword) {\n\t\t\t\tif (typeof share.newPassword !== 'string') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.expirationDate) {\n\t\t\t\tconst date = share.expirationDate\n\t\t\t\tif (!date.isValid()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * @param {Date} date the date to format\n\t\t * @return {string} date a date with YYYY-MM-DD format\n\t\t */\n\t\tformatDateToString(date) {\n\t\t\t// Force utc time. Drop time information to be timezone-less\n\t\t\tconst utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n\t\t\t// Format to YYYY-MM-DD\n\t\t\treturn utcDate.toISOString().split('T')[0]\n\t\t},\n\n\t\t/**\n\t\t * Save given value to expireDate and trigger queueUpdate\n\t\t *\n\t\t * @param {Date} date\n\t\t */\n\t\tonExpirationChange(date) {\n\t\t\tif (!date) {\n\t\t\t\tthis.share.expireDate = null\n\t\t\t\tthis.$set(this.share, 'expireDate', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst parsedDate = (date instanceof Date) ? date : new Date(date)\n\t\t\tthis.share.expireDate = this.formatDateToString(parsedDate)\n\t\t},\n\n\t\t/**\n\t\t * Delete share button handler\n\t\t */\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.open = false\n\t\t\t\tawait this.deleteShare(this.share.id)\n\t\t\t\tlogger.debug('Share deleted', { shareId: this.share.id })\n\t\t\t\tconst path = this.share.path.replace(/^\\//, '')\n\t\t\t\tconst message = this.share.itemType === 'file'\n\t\t\t\t\t? t('files_sharing', 'File \"{path}\" has been unshared', { path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path })\n\t\t\t\tshowSuccess(message)\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\t\t\t} catch {\n\t\t\t\t// re-open menu if error\n\t\t\t\tthis.open = true\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Send an update of the share to the queue\n\t\t *\n\t\t * @param {Array} propertyNames the properties to sync\n\t\t */\n\t\tqueueUpdate(...propertyNames) {\n\t\t\tif (propertyNames.length === 0) {\n\t\t\t\t// Nothing to update\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.share.id) {\n\t\t\t\tconst properties = {}\n\t\t\t\t// force value to string because that is what our\n\t\t\t\t// share api controller accepts\n\t\t\t\tfor (const name of propertyNames) {\n\t\t\t\t\tif (name === 'password') {\n\t\t\t\t\t\tif (this.share.newPassword !== undefined) {\n\t\t\t\t\t\t\tproperties[name] = this.share.newPassword\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.share[name] === null || this.share[name] === undefined) {\n\t\t\t\t\t\tproperties[name] = ''\n\t\t\t\t\t} else if ((typeof this.share[name]) === 'object') {\n\t\t\t\t\t\tproperties[name] = JSON.stringify(this.share[name])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties[name] = this.share[name].toString()\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.updateQueue.add(async () => {\n\t\t\t\t\tthis.saving = true\n\t\t\t\t\tthis.errors = {}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst updatedShare = await this.updateShare(this.share.id, properties)\n\n\t\t\t\t\t\tif (propertyNames.includes('password')) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.share.password = this.share.newPassword || undefined\n\t\t\t\t\t\t\tthis.$set(this.share, 'newPassword', undefined)\n\n\t\t\t\t\t\t\t// updates password expiration time after sync\n\t\t\t\t\t\t\tthis.share.passwordExpirationTime = updatedShare.password_expiration_time\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// clear any previous errors\n\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\tthis.$delete(this.errors, property)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowSuccess(this.updateSuccessMessage(propertyNames))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tlogger.error('Could not update share', { error, share: this.share, propertyNames })\n\n\t\t\t\t\t\tconst { message } = error\n\t\t\t\t\t\tif (message && message !== '') {\n\t\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\t\tthis.onSyncError(property, message)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowError(message)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We do not have information what happened, but we should still inform the user\n\t\t\t\t\t\t\tshowError(t('files_sharing', 'Could not update share'))\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.saving = false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tlogger.debug('Updated local share', { share: this.share })\n\t\t},\n\n\t\t/**\n\t\t * @param {string[]} names Properties changed\n\t\t */\n\t\tupdateSuccessMessage(names) {\n\t\t\tif (names.length !== 1) {\n\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\n\t\t\tswitch (names[0]) {\n\t\t\t\tcase 'expireDate':\n\t\t\t\t\treturn t('files_sharing', 'Share expiry date saved')\n\t\t\t\tcase 'hideDownload':\n\t\t\t\t\treturn t('files_sharing', 'Share hide-download state saved')\n\t\t\t\tcase 'label':\n\t\t\t\t\treturn t('files_sharing', 'Share label saved')\n\t\t\t\tcase 'note':\n\t\t\t\t\treturn t('files_sharing', 'Share note for recipient saved')\n\t\t\t\tcase 'password':\n\t\t\t\t\treturn t('files_sharing', 'Share password saved')\n\t\t\t\tcase 'permissions':\n\t\t\t\t\treturn t('files_sharing', 'Share permissions saved')\n\t\t\t\tdefault:\n\t\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Manage sync errors\n\t\t *\n\t\t * @param {string} property the errored property, e.g. 'password'\n\t\t * @param {string} message the error message\n\t\t */\n\t\tonSyncError(property, message) {\n\t\t\tif (property === 'password' && this.share.newPassword !== undefined) {\n\t\t\t\tif (this.share.newPassword === this.share.password) {\n\t\t\t\t\tthis.share.password = ''\n\t\t\t\t}\n\t\t\t\tthis.$set(this.share, 'newPassword', undefined)\n\t\t\t}\n\n\t\t\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\t\tcase 'password':\n\t\t\t\tcase 'pending':\n\t\t\t\tcase 'expireDate':\n\t\t\t\tcase 'label':\n\t\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\t\tif (propertyEl) {\n\t\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\t// Restore previous state\n\t\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Debounce queueUpdate to avoid requests spamming\n\t\t * more importantly for text data\n\t\t *\n\t\t * @param {string} property the property to sync\n\t\t */\n\t\tdebounceQueueUpdate: debounce(function(property) {\n\t\t\tthis.queueUpdate(property)\n\t\t}, 500),\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport isSvg from 'is-svg';\n/**\n * Register a new sidebar action\n *\n * @param action - The action to register\n */\nexport function registerSidebarAction(action) {\n if (!action.id) {\n throw new Error('Sidebar actions must have an id');\n }\n if (!action.element || !action.element.startsWith('oca_') || !window.customElements.get(action.element)) {\n throw new Error('Sidebar actions must provide a registered custom web component identifier');\n }\n if (typeof action.order !== 'number') {\n throw new Error('Sidebar actions must have the order property');\n }\n if (typeof action.enabled !== 'function') {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_actions ??= new Map();\n if (window._nc_files_sharing_sidebar_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_actions.set(action.id, action);\n}\n/**\n * Register a new sidebar action\n *\n * @param action - The action to register\n */\nexport function registerSidebarInlineAction(action) {\n if (!action.id) {\n throw new Error('Sidebar actions must have an id');\n }\n if (typeof action.order !== 'number') {\n throw new Error('Sidebar actions must have the \"order\" property');\n }\n if (typeof action.iconSvg !== 'string' || !isSvg(action.iconSvg)) {\n throw new Error('Sidebar actions must have the \"iconSvg\" property');\n }\n if (typeof action.label !== 'function') {\n throw new Error('Sidebar actions must implement the \"label\" method');\n }\n if (typeof action.exec !== 'function') {\n throw new Error('Sidebar actions must implement the \"exec\" method');\n }\n if (typeof action.enabled !== 'function') {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_inline_actions ??= new Map();\n if (window._nc_files_sharing_sidebar_inline_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_inline_actions.set(action.id, action);\n}\n/**\n * Get all registered sidebar actions\n */\nexport function getSidebarActions() {\n return [...(window._nc_files_sharing_sidebar_actions?.values() ?? [])];\n}\n/**\n * Get all registered sidebar inline actions\n */\nexport function getSidebarInlineActions() {\n return [...(window._nc_files_sharing_sidebar_inline_actions?.values() ?? [])];\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\n/**\n *\n */\nexport async function generateToken() {\n const { data } = await axios.get(generateOcsUrl('/apps/files_sharing/api/v1/token'));\n return data.ocs.data.token;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=79f80b95&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=79f80b95&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingDetailsTab.vue?vue&type=template&id=79f80b95&scoped=true\"\nimport script from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingDetailsTab.vue?vue&type=style&index=0&id=79f80b95&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79f80b95\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{attrs:{\"id\":\"sharing-inherited-shares\"}},[_c('SharingEntrySimple',{staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.mainTitle,\"subtitle\":_vm.subTitle,\"aria-expanded\":_vm.showInheritedShares},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-shared icon-more-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":_vm.showInheritedSharesIcon,\"aria-label\":_vm.toggleTooltip,\"title\":_vm.toggleTooltip},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleInheritedShares.apply(null, arguments)}}})],1),_vm._v(\" \"),_vm._l((_vm.shares),function(share){return _c('SharingEntryInherited',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share},on:{\"remove:share\":_vm.removeShare}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInherited.vue?vue&type=template&id=731a9650&scoped=true\"\nimport script from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"731a9650\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SharingEntrySimple',{key:_vm.share.id,staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.share.shareWithDisplayName},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionText',{attrs:{\"icon\":\"icon-user\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Added by {initiator}', { initiator: _vm.share.ownerDisplayName }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.share.viaPath && _vm.share.viaFileid)?_c('NcActionLink',{attrs:{\"icon\":\"icon-folder\",\"href\":_vm.viaFileTargetUrl}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Via “{folder}”', { folder: _vm.viaFolderName }))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInherited.vue?vue&type=template&id=cedf3238&scoped=true\"\nimport script from \"./SharingInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cedf3238\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.canLinkShare)?_c('ul',{staticClass:\"sharing-link-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Link shares')}},[(_vm.hasShares)?_vm._l((_vm.shares),function(share,index){return _c('SharingEntryLink',{key:share.id,attrs:{\"index\":_vm.shares.length > 1 ? index + 1 : null,\"can-reshare\":_vm.canReshare,\"share\":_vm.shares[index],\"file-info\":_vm.fileInfo},on:{\"update:share\":[function($event){return _vm.$set(_vm.shares, index, $event)},function($event){return _vm.awaitForShare(...arguments)}],\"add:share\":function($event){return _vm.addShare(...arguments)},\"remove:share\":_vm.removeShare,\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}):_vm._e(),_vm._v(\" \"),(!_vm.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarBlankOutline.vue?vue&type=template&id=784b59e6\"\nimport script from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./CheckBold.vue?vue&type=template&id=5603f41f\"\nimport script from \"./CheckBold.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBold.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-bold-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Exclamation.vue?vue&type=template&id=03239926\"\nimport script from \"./Exclamation.vue?vue&type=script&lang=js\"\nexport * from \"./Exclamation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon exclamation-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./LockOutline.vue?vue&type=template&id=54353a96\"\nimport script from \"./LockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./LockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Plus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Plus.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Plus.vue?vue&type=template&id=055261ec\"\nimport script from \"./Plus.vue?vue&type=script&lang=js\"\nexport * from \"./Plus.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon plus-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Qrcode.vue?vue&type=template&id=aba87788\"\nimport script from \"./Qrcode.vue?vue&type=script&lang=js\"\nexport * from \"./Qrcode.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon qrcode-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Tune.vue?vue&type=template&id=18d04e6a\"\nimport script from \"./Tune.vue?vue&type=script&lang=js\"\nexport * from \"./Tune.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tune-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share-expiry-time\"},[_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [(_vm.expiryTime)?_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('files_sharing', 'Share expiration: {date}', { date: new Date(_vm.expiryTime).toLocaleString() })},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ClockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3754271979)}):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_c('h3',{staticClass:\"hint-heading\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share Expiration'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.expiryTime)?_c('p',{staticClass:\"hint-body\"},[_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime,\"format\":_vm.timeFormat,\"relative-time\":false}}),_vm._v(\" (\"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime}}),_vm._v(\")\\n\\t\\t\")],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ClockOutline.vue?vue&type=template&id=1a84e403\"\nimport script from \"./ClockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ClockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon clock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ShareExpiryTime.vue?vue&type=template&id=c9199db0&scoped=true\"\nimport script from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nexport * from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nimport style0 from \"./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c9199db0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./EyeOutline.vue?vue&type=template&id=e26de6f6\"\nimport script from \"./EyeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"","\n\n","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TriangleSmallDown.vue?vue&type=template&id=1eed3dd9\"\nimport script from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\nexport * from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon triangle-small-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8 9H16L12 16\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=839566a2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=839566a2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryQuickShareSelect.vue?vue&type=template&id=839566a2&scoped=true\"\nimport script from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=839566a2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"839566a2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{ref:\"quickShareActions\",staticClass:\"share-select\",attrs:{\"menu-name\":_vm.selectedOption,\"aria-label\":_vm.ariaLabel,\"variant\":\"tertiary-no-background\",\"disabled\":!_vm.share.canEdit,\"force-name\":\"\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DropdownIcon',{attrs:{\"size\":15}})]},proxy:true}])},[_vm._v(\" \"),_vm._l((_vm.options),function(option){return _c('NcActionButton',{key:option.label,attrs:{\"type\":\"radio\",\"model-value\":option.label === _vm.selectedOption,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.selectOption(option.label)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(option.icon,{tag:\"component\"})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(option.label)+\"\\n\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=7a5c0ee5&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=7a5c0ee5&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryLink.vue?vue&type=template&id=7a5c0ee5&scoped=true\"\nimport script from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryLink.vue?vue&type=style&index=0&id=7a5c0ee5&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a5c0ee5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry sharing-entry__link\",class:{ 'sharing-entry--share': _vm.share }},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":true,\"icon-class\":_vm.isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\",attrs:{\"title\":_vm.title}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share && _vm.share.permissions !== undefined)?_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__actions\"},[(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),_c('div',[(_vm.share && (!_vm.isEmailShareType || _vm.isFileRequest) && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.copyLinkLabel,\"title\":_vm.copySuccess ? _vm.t('files_sharing', 'Successfully copied public link') : undefined,\"href\":_vm.shareLink},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{staticClass:\"sharing-entry__copy-icon\",class:{ 'sharing-entry__copy-icon--success': _vm.copySuccess },attrs:{\"path\":_vm.copySuccess ? _vm.mdiCheck : _vm.mdiContentCopy}})]},proxy:true}],null,false,1728815133)})],1):_vm._e()],1)],1)]),_vm._v(\" \"),(!_vm.pending && _vm.pendingDataIsMissing)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onCancel}},[(_vm.errors.pending)?_c('NcActionText',{staticClass:\"error\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ErrorIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1966124155)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.errors.pending)+\"\\n\\t\\t\")]):_c('NcActionText',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Please enter the following required information before creating the share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.pendingPassword)?_c('NcActionCheckbox',{staticClass:\"share-link-password-checkbox\",attrs:{\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"uncheck\":_vm.onPasswordDisable},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.enforcePasswordForPublicLink ? _vm.t('files_sharing', 'Password protection (enforced)') : _vm.t('files_sharing', 'Password protection'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingEnforcedPassword || _vm.isPasswordProtected)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"label\":_vm.t('files_sharing', 'Enter a password'),\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.minPasswordLength,\"autocomplete\":\"new-password\"},on:{\"submit\":function($event){return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2056568168),model:{value:(_vm.share.newPassword),callback:function ($$v) {_vm.$set(_vm.share, \"newPassword\", $$v)},expression:\"share.newPassword\"}}):_vm._e(),_vm._v(\" \"),(_vm.pendingDefaultExpirationDate)?_c('NcActionCheckbox',{staticClass:\"share-link-expiration-date-checkbox\",attrs:{\"disabled\":_vm.pendingEnforcedExpirationDate || _vm.saving},on:{\"update:model-value\":_vm.onExpirationDateToggleUpdate},model:{value:(_vm.defaultExpirationDateEnabled),callback:function ($$v) {_vm.defaultExpirationDateEnabled=$$v},expression:\"defaultExpirationDateEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.isDefaultExpireDateEnforced ? _vm.t('files_sharing', 'Enable link expiration (enforced)') : _vm.t('files_sharing', 'Enable link expiration'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),((_vm.pendingDefaultExpirationDate || _vm.pendingEnforcedExpirationDate) && _vm.defaultExpirationDateEnabled)?_c('NcActionInput',{staticClass:\"share-link-expire-date\",attrs:{\"data-cy-files-sharing-expiration-date-input\":\"\",\"label\":_vm.pendingEnforcedExpirationDate ? _vm.t('files_sharing', 'Enter expiration date (enforced)') : _vm.t('files_sharing', 'Enter expiration date'),\"disabled\":_vm.saving,\"is-native-picker\":true,\"hide-label\":true,\"model-value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced},on:{\"update:model-value\":_vm.onExpirationChange,\"change\":_vm.expirationDateChanged},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlank',{attrs:{\"size\":20}})]},proxy:true}],null,false,3418578971)}):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"disabled\":_vm.pendingEnforcedPassword && !_vm.share.newPassword},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CheckIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2630571749)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onCancel.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")])],1):(!_vm.loading)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event}}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[_c('NcActionButton',{attrs:{\"disabled\":_vm.saving,\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();return _vm.openSharingDetails.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Tune',{attrs:{\"size\":20}})]},proxy:true}],null,false,1300586850)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Customize link'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();_vm.showQRCode = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconQr',{attrs:{\"size\":20}})]},proxy:true}],null,false,1082198240)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Generate QR code'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('NcActionButton',{key:action.id,on:{\"click\":function($event){return action.exec(_vm.share, _vm.fileInfo.node)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvg}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.label(_vm.share, _vm.fileInfo.node))+\"\\n\\t\\t\\t\")])}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),(!_vm.isEmailShareType && _vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('PlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2953566425)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add another link'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",attrs:{\"title\":_vm.t('files_sharing', 'Create a new share link'),\"aria-label\":_vm.t('files_sharing', 'Create a new share link'),\"icon\":_vm.loading ? 'icon-loading-small' : 'icon-add'},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}}):_vm._e()],2):_c('NcLoadingIcon',{staticClass:\"sharing-entry__loading\"}),_vm._v(\" \"),(_vm.showQRCode)?_c('NcDialog',{attrs:{\"size\":\"normal\",\"open\":_vm.showQRCode,\"name\":_vm.title,\"close-on-click-outside\":true},on:{\"update:open\":function($event){_vm.showQRCode=$event},\"close\":function($event){_vm.showQRCode = false}}},[_c('div',{staticClass:\"qr-code-dialog\"},[_c('VueQrcode',{staticClass:\"qr-code-dialog__img\",attrs:{\"tag\":\"img\",\"value\":_vm.shareLink}})],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=708b3104\"\nimport script from \"./SharingLinkList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingLinkList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=fa3f3612&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=fa3f3612&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntry.vue?vue&type=template&id=fa3f3612&scoped=true\"\nimport script from \"./SharingEntry.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntry.vue?vue&type=style&index=0&id=fa3f3612&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fa3f3612\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.type !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c(_vm.share.shareWithLink ? 'a' : 'div',{tag:\"component\",staticClass:\"sharing-entry__summary__desc\",attrs:{\"title\":_vm.tooltip,\"aria-label\":_vm.tooltip,\"href\":_vm.share.shareWithLink}},[_c('span',[_vm._v(_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\"),(!_vm.isUnique)?_c('span',{staticClass:\"sharing-entry__summary__desc-unique\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t(\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasStatus && _vm.share.status.message)?_c('small',[_vm._v(\"(\"+_vm._s(_vm.share.status.message)+\")\")]):_vm._e()])]),_vm._v(\" \"),_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}})],1),_vm._v(\" \"),(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),(_vm.share.canEdit)?_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"data-cy-files-sharing-share-actions\":\"\",\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"variant\":\"tertiary\"},on:{\"click\":function($event){return _vm.openSharingDetails(_vm.share)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1700783217)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingList.vue?vue&type=template&id=7e1141c6\"\nimport script from \"./SharingList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"sharing-sharee-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Shares')}},_vm._l((_vm.shares),function(share){return _c('SharingEntry',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share,\"is-unique\":_vm.isUnique(share)},on:{\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n/**\n * Register a new sidebar section inside the files sharing sidebar tab.\n *\n * @param section - The section to register\n */\nexport function registerSidebarSection(section) {\n if (!section.id) {\n throw new Error('Sidebar sections must have an id');\n }\n if (!section.element || !section.element.startsWith('oca_') || !window.customElements.get(section.element)) {\n throw new Error('Sidebar sections must provide a registered custom web component identifier');\n }\n if (typeof section.order !== 'number') {\n throw new Error('Sidebar sections must have the order property');\n }\n if (typeof section.enabled !== 'function') {\n throw new Error('Sidebar sections must implement the enabled method');\n }\n window._nc_files_sharing_sidebar_sections ??= new Map();\n if (window._nc_files_sharing_sidebar_sections.has(section.id)) {\n throw new Error(`Sidebar section with id \"${section.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_sections.set(section.id, section);\n}\n/**\n * Get all registered sidebar sections for the files sharing sidebar tab.\n */\nexport function getSidebarSections() {\n return [...(window._nc_files_sharing_sidebar_sections?.values() ?? [])];\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ShareType } from '@nextcloud/sharing'\n\n/**\n *\n * @param share\n */\nfunction shareWithTitle(share) {\n\tif (share.type === ShareType.Group) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t{\n\t\t\t\tgroup: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Team) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t{\n\t\t\t\tcircle: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Room) {\n\t\tif (share.shareWithDisplayName) {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t{\n\t\t\t\t\tconversation: share.shareWithDisplayName,\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t} else {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t{\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t}\n\t} else {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you by {owner}',\n\t\t\t{ owner: share.ownerDisplayName },\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t}\n}\n\nexport { shareWithTitle }\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=cd6ad9ee&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=cd6ad9ee&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingTab.vue?vue&type=template&id=cd6ad9ee&scoped=true\"\nimport script from \"./SharingTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingTab.vue?vue&type=style&index=0&id=cd6ad9ee&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cd6ad9ee\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.hasExternalSections }},[_c('div',{staticClass:\"icon icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.error))])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView),expression:\"!showSharingDetailsView\"}],staticClass:\"sharingTab__content\"},[(_vm.isSharedWithMe)?_c('ul',[_c('SharingEntrySimple',_vm._b({staticClass:\"sharing-entry__reshare\",scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.sharedWithMe.user,\"display-name\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3197855346)},'SharingEntrySimple',_vm.sharedWithMe,false))],1):_vm._e(),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Internal shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Internal shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}])})]},proxy:true}])},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.internalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares,\"placeholder\":_vm.internalShareInputPlaceholder},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"file-info\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"file-info\":_vm.fileInfo}})],1),_vm._v(\" \"),(_vm.config.showExternalSharing)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'External shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'External shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,4045083138)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.externalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"is-external\":true,\"placeholder\":_vm.externalShareInputPlaceholder,\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{attrs:{\"shares\":_vm.externalShares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading && _vm.isLinkSharingAllowed)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.hasExternalSections && !_vm.showSharingDetailsView)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Additional shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Additional shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,880248230)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.additionalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),_vm._l((_vm.sortedExternalSections),function(section){return _c('SidebarTabExternalSection',{key:section.id,staticClass:\"sharingTab__additionalContent\",attrs:{\"section\":section,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */}})}),_vm._v(\" \"),_vm._l((_vm.legacySections),function(section,index){return _c('SidebarTabExternalSectionLegacy',{key:index,staticClass:\"sharingTab__additionalContent\",attrs:{\"file-info\":_vm.fileInfo,\"section-callback\":section}})}),_vm._v(\" \"),(_vm.projectsEnabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView && _vm.fileInfo),expression:\"!showSharingDetailsView && fileInfo\"}],staticClass:\"sharingTab__additionalContent\"},[_c('NcCollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}})],1):_vm._e()],2):_vm._e()]),_vm._v(\" \"),(_vm.showSharingDetailsView)?_c('SharingDetailsTab',{attrs:{\"file-info\":_vm.shareDetailsData.fileInfo,\"share\":_vm.shareDetailsData.share},on:{\"close-sharing-details\":_vm.toggleShareDetailsView,\"add:share\":_vm.addShare,\"remove:share\":_vm.removeShare}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\n/**\n * Convert Node to legacy file info\n *\n * @param node - The Node to convert\n */\nexport default function (node) {\n const rawFileInfo = {\n id: node.fileid,\n path: node.dirname,\n name: node.basename,\n mtime: node.mtime?.getTime(),\n etag: node.attributes.etag,\n size: node.size,\n hasPreview: node.attributes.hasPreview,\n isEncrypted: node.attributes.isEncrypted === 1,\n isFavourited: node.attributes.favorite === 1,\n mimetype: node.mime,\n permissions: node.permissions,\n mountType: node.attributes['mount-type'],\n sharePermissions: node.attributes['share-permissions'],\n shareAttributes: JSON.parse(node.attributes['share-attributes'] || '[]'),\n type: node.type === 'file' ? 'file' : 'dir',\n attributes: node.attributes,\n };\n // TODO remove when no more legacy backbone is used\n const fileInfo = {\n ...rawFileInfo,\n node,\n get(key) {\n return this[key];\n },\n isDirectory() {\n return this.mimetype === 'httpd/unix-directory';\n },\n canEdit() {\n return Boolean(this.permissions & Permission.UPDATE);\n },\n canDownload() {\n for (const i in this.shareAttributes) {\n const attr = this.shareAttributes[i];\n if (attr.scope === 'permissions' && attr.key === 'download') {\n return attr.value === true;\n }\n }\n return true;\n },\n };\n return fileInfo;\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesSidebarTab.vue?vue&type=template&id=8a2257be\"\nimport script from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, s as scopedGlobals, l as logger, c as NodeStatus, a as File, b as Folder } from \"./chunks/folder-29HuacU_.mjs\";\nimport \"@nextcloud/paths\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n}\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n const namespaces = { ...scopedGlobals.davNamespaces, ...namespace };\n if (scopedGlobals.davProperties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n scopedGlobals.davProperties.push(prop);\n scopedGlobals.davNamespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n return scopedGlobals.davProperties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n return Object.keys(scopedGlobals.davNamespaces).map((ns) => `xmlns:${ns}=\"${scopedGlobals.davNamespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n}\nexport {\n defaultDavNamespaces,\n defaultDavProperties,\n defaultRemoteURL,\n defaultRootPath,\n getClient,\n getDavNameSpaces,\n getDavProperties,\n getDefaultPropfind,\n getFavoriteNodes,\n getFavoritesReport,\n getRecentSearch,\n getRemoteURL,\n getRootPath,\n parsePermissions,\n registerDavProperty,\n resultToNode\n};\n//# sourceMappingURL=dav.mjs.map\n"],"names":["___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","push","module","id","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","vue_material_design_icons_ContentCopyvue_type_script_lang_js","name","emits","props","title","type","String","fillColor","default","size","Number","ContentCopy","componentNormalizer","A","_vm","this","_c","_self","_b","staticClass","attrs","role","on","click","$event","$emit","$attrs","fill","width","height","viewBox","d","_v","_s","_e","components_SharingEntrySimplevue_type_script_lang_js","components","NcActions","required","subtitle","isUnique","Boolean","ariaExpanded","computed","ariaExpandedValue","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","SharingEntrySimplevue_type_style_index_0_id_13d4a0bb_prod_lang_scss_scoped_true","locals","SharingEntrySimple","_t","$slots","ref","generateFileUrl","fileid","baseURL","getBaseUrl","globalscale","getCapabilities","token","generateUrl","components_SharingEntryInternalvue_type_script_lang_js","NcActionButton","CheckIcon","Check","ClipboardIcon","fileInfo","Object","data","copied","copySuccess","internalLink","copyLinkTooltip","t","internalLinkSubtitle","methods","copyLink","navigator","clipboard","writeText","showSuccess","$refs","shareEntrySimple","actionsComponent","$el","focus","error","logger","setTimeout","SharingEntryInternalvue_type_style_index_0_id_6c4cb23b_prod_lang_scss_scoped_true_options","SharingEntryInternalvue_type_style_index_0_id_6c4cb23b_prod_lang_scss_scoped_true","SharingEntryInternal","scopedSlots","_u","key","fn","proxy","ATOMIC_PERMISSIONS","BUNDLED_PERMISSIONS","READ_ONLY","UPLOAD_AND_UPDATE","FILE_DROP","ALL","ALL_FILE","getBundledPermissions","excludeShare","EDITOR_BUNDLES","Share","constructor","ocsData","_defineProperty","ocs","parseInt","hide_download","mail_send","attributes","JSON","parse","warn","newPassword","undefined","_share","state","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","date","note","label","mailSend","hideDownload","find","scope","value","attribute","password","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","path","itemType","item_type","mimetype","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","window","OC","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","isFileRequest","stringify","enabled","setAttribute","attrUpdate","i","attr","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","parent","storageId","storage_id","storage","itemSource","item_source","status","isTrustedServer","is_trusted_server","Config","_capabilities","defaultPermissions","files_sharing","default_permissions","excludeReshareFromEdit","exclude_reshare_from_edit","isPublicUploadEnabled","public","upload","federatedShareDocLink","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","days","linkDefaultExpDays","defaultExpireDate","Date","setDate","getDate","maxExpirationDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isFederationEnabled","federation","outgoing","isPublicShareAllowed","isMailShareAllowed","sharebymail","expire_date","default_days","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","enforced","shouldAlwaysShowUnique","sharee","always_show_unique","allowGroupSharing","maxAutocompleteResults","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","showFederatedSharesAsInternal","loadState","showFederatedSharesToTrustedServersAsInternal","showExternalSharing","ShareDetails","openSharingDetails","shareRequestObject","share","handler","handlerInput","suggestions","query","externalShareRequestObject","mapShareRequestToShareObject","originalPermissions","strippedPermissions","debug","shareDetails","openShareDetailsForCustomSettings","setCustomPermissions","shareType","is_no_user","isNoUser","user","displayName","shareUrl","generateOcsUrl","ShareRequests","createShare","publicUpload","request","axios","post","emit","errorMessage","getErrorMessage","showError","Error","cause","deleteShare","delete","updateShare","properties","put","isAxiosError","response","meta","message","components_SharingInputvue_type_script_lang_js","NcSelect","mixins","shares","Array","linkShares","reshare","canReshare","isExternal","placeholder","setup","shareInputId","Math","random","toString","slice","loading","recommendations","ShareSearch","OCA","Sharing","externalResults","results","inputPlaceholder","allowRemoteSharing","isValidQuery","trim","length","noResultText","mounted","getRecommendations","onSelected","option","asyncFind","debounceGetSuggestions","getSuggestions","search","lookup","query_lookup_default","remoteTypes","ShareType","Remote","RemoteGroup","showFederatedAsInternal","shouldAddRemoteTypes","Email","User","Group","Team","Room","Guest","Deck","ScienceMesh","get","params","format","perPage","exact","rawExactSuggestions","values","flat","rawSuggestions","exactSuggestions","filterOutExistingShares","filter","result","filterByTrustedServer","map","formatForMultiselect","sort","a","b","lookupEntry","lookupEnabled","condition","allSuggestions","concat","nameCounts","reduce","item","desc","debounce","args","rawRecommendations","arr","elem","getCurrentUser","uid","indexOf","sharesObj","obj","shareTypeToIcon","icon","iconTitle","Sciencemesh","subname","extra","email","server","shareWithDescription","uuid","SharingInputvue_type_style_index_0_id_0b151499_prod_lang_scss_options","SharingInputvue_type_style_index_0_id_0b151499_prod_lang_scss","SharingInput","for","disabled","filterable","clear-search-on-blur","model","callback","$$v","expression","SidebarTabExternal_SidebarTabExternalSectionvue_type_script_lang_ts_setup_true","_defineComponent","__name","node","section","__props","sectionElement","watchEffect","__sfc","SidebarTabExternalSection","_setupProxy","element","tag","domProps","SidebarTabExternal_SidebarTabExternalSectionLegacyvue_type_script_lang_ts_setup_true","sectionCallback","Function","component","SidebarTabExternalSectionLegacyvue_type_style_index_0_id_67cb6ff2_prod_scoped_true_lang_css_options","SidebarTabExternalSectionLegacyvue_type_style_index_0_id_67cb6ff2_prod_scoped_true_lang_css","SidebarTabExternalSectionLegacy","vue_material_design_icons_AccountCircleOutlinevue_type_script_lang_js","AccountCircleOutline","vue_material_design_icons_AccountGroupvue_type_script_lang_js","AccountGroup","vue_material_design_icons_CircleOutlinevue_type_script_lang_js","CircleOutline","vue_material_design_icons_Closevue_type_script_lang_js","Close","vue_material_design_icons_Emailvue_type_script_lang_js","vue_material_design_icons_Eyevue_type_script_lang_js","Eye","vue_material_design_icons_Refreshvue_type_script_lang_js","Refresh","vue_material_design_icons_ShareCirclevue_type_script_lang_js","ShareCircle","vue_material_design_icons_TrayArrowUpvue_type_script_lang_js","TrayArrowUp","SidebarTabExternal_SidebarTabExternalActionvue_type_script_lang_ts_setup_true","action","expose","save","actionElement","savingCallback","async","onSave","toRaw","SidebarTabExternalAction","_setup","SidebarTabExternal_SidebarTabExternalActionLegacyvue_type_script_lang_js","SidebarTabExternalActionLegacy","is","_g","handlers","text","client","getClient","GeneratePassword","verbose","api","generate","context","info","array","Uint8Array","ratio","passwordSet","self","crypto","getRandomValues","len","floor","charAt","SharesMixin","SharesRequests","sharing_dist","I","errors","saving","open","passwordProtectedState","updateQueue","PQueue","concurrency","reactiveState","replace","hasNote","set","dateTomorrow","lang","weekdaysShort","dayNamesShort","monthsShort","monthNamesShort","formatLocale","firstDayOfWeek","firstDay","weekdaysMin","monthFormat","isNewShare","isFolder","isPublicShare","Link","includes","isRemoteShare","isShareOwner","isExpiryDateEnforced","permissionsBundle","bundles","comparablePermissions","bundle","matchBundledPermissions","hasCustomPermissions","maxExpirationDateEnforced","isPasswordProtected","generatedPassword","$set","getNode","propfindPayload","getDefaultPropfind","stat","getRootPath","details","resultToNode","fetchNode","checkShare","expirationDate","isValid","formatDateToString","UTC","getFullYear","getMonth","toISOString","split","onExpirationChange","parsedDate","onDelete","shareId","queueUpdate","propertyNames","add","updatedShare","property","$delete","updateSuccessMessage","onSyncError","propertyEl","focusable","querySelector","debounceQueueUpdate","views_SharingDetailsTabvue_type_script_lang_js","NcAvatar","NcButton","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcInputField","NcLoadingIcon","NcPasswordField","NcTextArea","CloseIcon","CircleIcon","EditIcon","PencilOutline","LinkIcon","GroupIcon","ShareIcon","UserIcon","UploadIcon","ViewIcon","MenuDownIcon","MenuDown","MenuUpIcon","MenuUp","DotsHorizontalIcon","DotsHorizontal","shareRequestValue","writeNoteToRecipientIsChecked","sharingPermission","revertSharingPermission","passwordError","advancedSectionAccordionExpanded","isFirstComponentLoad","test","creating","initialToken","loadingToken","initialPermissions","initialExpireDate","initialNote","initialLabel","initialHideDownload","initialSendPasswordByTalk","initialHasDownloadPermission","externalShareActions","_nc_files_sharing_sidebar_actions","ExternalShareActions","bundledPermissions","allPermissions","checked","updateAtomicPermissions","isEditChecked","canCreate","isCreateChecked","isDeleteChecked","isReshareChecked","showInGridView","getShareAttribute","setShareAttribute","canDownload","hasRead","isReadChecked","hasExpirationDate","isValidShareAttribute","defaultExpiryDate","isSetDownloadButtonVisible","isPasswordEnforced","isGroupShare","isUserShare","allowsFileDrop","hasFileDropPermissions","shareButtonText","resharingIsPossible","canSetEdit","sharePermissions","canSetCreate","canSetDelete","canSetReshare","canSetDownload","canShowDownloadPermission","canRemoveReadPermission","hasUnsavedPassword","expirationTime","moment","diff","fromNow","isTalkEnabled","appswebroots","spreed","isPasswordProtectedByTalkAvailable","isPasswordProtectedByTalk","isEmailShareType","canTogglePasswordProtectedByTalkAvailable","canChangeHideDownload","shareAttributes","shareAttribute","customPermissionsList","translatedPermissions","ATOMIC_PERMISSIONS_READ","ATOMIC_PERMISSIONS_CREATE","ATOMIC_PERMISSIONS_UPDATE","ATOMIC_PERMISSIONS_SHARE","ATOMIC_PERMISSIONS_DELETE","permission","hasPermissions","initialPermissionSet","permissionsToCheck","index","toLocaleLowerCase","getLanguage","join","advancedControlExpandedValue","errorPasswordLabel","passwordHint","sortedExternalShareActions","order","externalLegacyShareActions","actions","advanced","watch","isChecked","beforeMount","initializePermissions","initializeAttributes","quickPermissions","checkExpirationDateValidity","event","fromEvent","target","fromRef","input","HTMLInputElement","setCustomValidity","checkValidity","reportValidity","fallback","generateNewToken","generateToken","cancel","expandCustomPermissions","toggleCustomPermissions","selectedPermission","isCustomPermissions","toDateString","handleShareType","handleDefaultPermissions","basePermissions","handleCustomPermissions","saveShare","permissionsAndAttributes","publicShareAttributes","sharePermissionsSet","incomingShare","addShare","prop","Promise","allSettled","externalLinkActions","$children","at","resolve","removeShare","onPasswordChange","getShareTypeIcon","EmailIcon","SharingDetailsTabvue_type_style_index_0_id_79f80b95_prod_lang_scss_scoped_true_options","SharingDetailsTabvue_type_style_index_0_id_79f80b95_prod_lang_scss_scoped_true","SharingDetailsTab_component","url","variant","alignment","autocomplete","min","max","change","_l","refInFor","readonly","preventDefault","apply","arguments","SharingDetailsTab","components_SharingEntryInheritedvue_type_script_lang_js","NcActionLink","NcActionText","viaFileTargetUrl","viaFolderName","basename","SharingEntryInheritedvue_type_style_index_0_id_731a9650_prod_lang_scss_scoped_true_options","SharingEntryInheritedvue_type_style_index_0_id_731a9650_prod_lang_scss_scoped_true","SharingEntryInherited_component","initiator","href","folder","SharingEntryInherited","views_SharingInheritedvue_type_script_lang_js","loaded","showInheritedShares","showInheritedSharesIcon","mainTitle","subTitle","toggleTooltip","fullPath","resetState","toggleInheritedShares","fetchInheritedShares","Notification","showTemporary","findIndex","SharingInheritedvue_type_style_index_0_id_cedf3238_prod_lang_scss_scoped_true_options","SharingInheritedvue_type_style_index_0_id_cedf3238_prod_lang_scss_scoped_true","SharingInherited_component","stopPropagation","SharingInherited","vue_material_design_icons_CalendarBlankOutlinevue_type_script_lang_js","CalendarBlankOutline","vue_material_design_icons_CheckBoldvue_type_script_lang_js","CheckBold","vue_material_design_icons_Exclamationvue_type_script_lang_js","Exclamation","vue_material_design_icons_LockOutlinevue_type_script_lang_js","LockOutline","vue_material_design_icons_Plusvue_type_script_lang_js","Plus","vue_material_design_icons_Qrcodevue_type_script_lang_js","Qrcode","vue_material_design_icons_Tunevue_type_script_lang_js","Tune","vue_material_design_icons_ClockOutlinevue_type_script_lang_js","ClockOutline","components_ShareExpiryTimevue_type_script_lang_js","NcPopover","NcDateTime","ClockIcon","expiryTime","getTime","timeFormat","dateStyle","timeStyle","ShareExpiryTimevue_type_style_index_0_id_c9199db0_prod_scoped_true_lang_scss_options","ShareExpiryTimevue_type_style_index_0_id_c9199db0_prod_scoped_true_lang_scss","ShareExpiryTime","toLocaleString","timestamp","vue_material_design_icons_EyeOutlinevue_type_script_lang_js","EyeOutline","vue_material_design_icons_TriangleSmallDownvue_type_script_lang_js","SharingEntryQuickShareSelectvue_type_script_lang_js","DropdownIcon","selectedOption","ariaLabel","canViewText","canEditText","fileDropText","customPermissionsText","preSelectedOption","IconEyeOutline","IconPencil","supportsFileDrop","IconFileUpload","IconTune","dropDownPermissionValue","created","subscribe","unmounted","unsubscribe","selectOption","optionLabel","quickShareActions","menuButton","components_SharingEntryQuickShareSelectvue_type_script_lang_js","SharingEntryQuickShareSelectvue_type_style_index_0_id_839566a2_prod_lang_scss_scoped_true_options","SharingEntryQuickShareSelectvue_type_style_index_0_id_839566a2_prod_lang_scss_scoped_true","SharingEntryQuickShareSelect","SharingEntryLinkvue_type_script_lang_js","NcActionCheckbox","NcActionCheckbox_Cbg5yktN","N","NcActionInput","NcActionSeparator","NcDialog","NcIconSvgWrapper","VueQrcode","vue_qrcode_default","IconCalendarBlank","IconQr","ErrorIcon","LockIcon","PlusIcon","mdiCheck","mdi","Tfj","mdiContentCopy","shareCreationComplete","defaultExpirationDateEnabled","pending","_nc_files_sharing_sidebar_inline_actions","showQRCode","minPasswordLength","isPasswordPolicyEnabled","policies","sharing","minLength","l10nOptions","escape","pendingDataIsMissing","pendingPassword","pendingEnforcedPassword","pendingDefaultExpirationDate","pendingEnforcedExpirationDate","isPendingShare","isNaN","sharePolicyHasEnforcedProperties","enforcedPropertiesMissing","isPasswordMissing","isExpireDateMissing","shareLink","actionsTooltip","copyLinkLabel","shareRequiresReview","shareReviewComplete","onNewLinkShare","shareDefaults","pushNewLinkShare","e","update","newShare","match","copyButton","prompt","onPasswordDisable","onExpirationDateToggleUpdate","expirationDateChanged","onCancel","components_SharingEntryLinkvue_type_script_lang_js","SharingEntryLinkvue_type_style_index_0_id_7a5c0ee5_prod_lang_scss_scoped_true_options","SharingEntryLinkvue_type_style_index_0_id_7a5c0ee5_prod_lang_scss_scoped_true","SharingEntryLink_component","class","close","uncheck","minlength","submit","exec","svg","iconSvg","views_SharingLinkListvue_type_script_lang_js","SharingEntryLink","canLinkShare","hasLinkShares","hasShares","l10n_dist","awaitForShare","$nextTick","SharingLinkList_component","SharingLinkList","components_SharingEntryvue_type_script_lang_js","showAsInternal","tooltip","hasStatus","isArray","SharingEntryvue_type_style_index_0_id_fa3f3612_prod_lang_scss_scoped_true_options","SharingEntryvue_type_style_index_0_id_fa3f3612_prod_lang_scss_scoped_true","views_SharingListvue_type_script_lang_js","SharingEntry","SharingList","productName","theme","SharingTabvue_type_script_lang_js","InfoIcon","InformationOutline","NcCollectionList","NcCollectionList_q7zkDwqG","deleteEvent","expirationInterval","sharedWithMe","externalShares","legacySections","ShareTabSections","getSections","sections","_nc_files_sharing_sidebar_sections","projectsEnabled","showSharingDetailsView","shareDetailsData","returnFocusElement","internalSharesHelpText","externalSharesHelpText","additionalSharesHelpText","hasExternalSections","sortedExternalSections","isSharedWithMe","isLinkSharingAllowed","capabilities","internalShareInputPlaceholder","externalShareInputPlaceholder","immediate","newValue","oldValue","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","all","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","orderBy","findShareListByShare","group","circle","conversation","shareWithTitle","setInterval","shareOwnerId","shareOwner","unshift","removeShareFromList","shareList","listComponent","linkShareList","toggleShareDetailsView","eventData","from","document","activeElement","classList","className","startsWith","menuId","closest","views_SharingTabvue_type_script_lang_js","SharingTabvue_type_style_index_0_id_cd6ad9ee_prod_scoped_true_lang_scss_options","SharingTabvue_type_style_index_0_id_cd6ad9ee_prod_scoped_true_lang_scss","SharingTab","emptyContentWithSections","directives","rawName","FileInfo","dirname","mtime","etag","hasPreview","isEncrypted","isFavourited","favorite","mime","mountType","isDirectory","Permission","UPDATE","views_FilesSidebarTabvue_type_script_setup_true_lang_ts","active","view","FilesSidebarTab","defaultDavProperties","defaultDavNamespaces","nc","oc","getDavProperties","_chunks_folder_29HuacU_mjs__WEBPACK_IMPORTED_MODULE_4__","s","davProperties","getDavNameSpaces","davNamespaces","keys","ns","getRecentSearch","lastModified","_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__","HW","_nextcloud_sharing_public__WEBPACK_IMPORTED_MODULE_2__","f","G","defaultRootPath","defaultRemoteURL","_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__","dC","getRemoteURL","remoteURL","headers","webdav__WEBPACK_IMPORTED_MODULE_3__","UU","setHeaders","requesttoken","zo","Gu","patch","headers2","method","fetch","getFavoriteNodes","davRoot","getDirectoryContents","signal","includeSelf","filename","filesRoot","userId","permString","P","NONE","READ","WRITE","CREATE","DELETE","SHARE","parsePermissions","lastmod","crtime","creationdate","nodeData","source","displayname","getcontentlength","c","FAILED","root"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/5482-5482.js.map.license b/dist/5482-5482.js.map.license new file mode 120000 index 0000000000000..9af45d09bca3c --- /dev/null +++ b/dist/5482-5482.js.map.license @@ -0,0 +1 @@ +5482-5482.js.license \ No newline at end of file diff --git a/dist/core-login.js b/dist/core-login.js index 5b7384ae53fcc..ecf60a33adca3 100644 --- a/dist/core-login.js +++ b/dist/core-login.js @@ -1,2 +1,2 @@ -(()=>{var e={65570(e,n,r){"use strict";var o={};r.r(o),r.d(o,{clearIconCache:()=>ot,getIconUrl:()=>nt});var s={};r.r(s),r.d(s,{VERSION:()=>pt,after:()=>qr,all:()=>lo,allKeys:()=>xn,any:()=>co,assign:()=>qn,before:()=>$r,bind:()=>Nr,bindAll:()=>Lr,chain:()=>kr,chunk:()=>Vo,clone:()=>Vn,collect:()=>no,compact:()=>Io,compose:()=>zr,constant:()=>ln,contains:()=>uo,countBy:()=>jo,create:()=>Yn,debounce:()=>Ur,default:()=>Jo,defaults:()=>$n,defer:()=>Rr,delay:()=>Ir,detect:()=>Xr,difference:()=>Fo,drop:()=>Lo,each:()=>to,escape:()=>mr,every:()=>lo,extend:()=>zn,extendOwn:()=>qn,filter:()=>ao,find:()=>Xr,findIndex:()=>Kr,findKey:()=>Yr,findLastIndex:()=>Wr,findWhere:()=>eo,first:()=>Po,flatten:()=>Ro,foldl:()=>oo,foldr:()=>so,forEach:()=>to,functions:()=>Mn,get:()=>Gn,groupBy:()=>Co,has:()=>Zn,head:()=>Po,identity:()=>Xn,include:()=>uo,includes:()=>uo,indexBy:()=>xo,indexOf:()=>Gr,initial:()=>Oo,inject:()=>oo,intersection:()=>zo,invert:()=>Un,invoke:()=>fo,isArguments:()=>on,isArray:()=>tn,isArrayBuffer:()=>Vt,isBoolean:()=>Ft,isDataView:()=>en,isDate:()=>qt,isElement:()=>Ut,isEmpty:()=>yn,isEqual:()=>Cn,isError:()=>Ht,isFinite:()=>sn,isFunction:()=>Jt,isMap:()=>Pn,isMatch:()=>bn,isNaN:()=>an,isNull:()=>It,isNumber:()=>zt,isObject:()=>Bt,isRegExp:()=>$t,isSet:()=>Bn,isString:()=>Dt,isSymbol:()=>Yt,isTypedArray:()=>mn,isUndefined:()=>Rt,isWeakMap:()=>Ln,isWeakSet:()=>In,iteratee:()=>or,keys:()=>vn,last:()=>Bo,lastIndexOf:()=>Zr,map:()=>no,mapObject:()=>ar,matcher:()=>er,matches:()=>er,max:()=>ho,memoize:()=>Br,methods:()=>Mn,min:()=>go,mixin:()=>Wo,negate:()=>Dr,noop:()=>ir,now:()=>dr,object:()=>Ho,omit:()=>No,once:()=>Hr,pairs:()=>Fn,partial:()=>Er,partition:()=>ko,pick:()=>Eo,pluck:()=>po,property:()=>tr,propertyOf:()=>lr,random:()=>ur,range:()=>Yo,reduce:()=>oo,reduceRight:()=>so,reject:()=>io,rest:()=>Lo,restArguments:()=>Lt,result:()=>Cr,sample:()=>bo,select:()=>ao,shuffle:()=>wo,size:()=>So,some:()=>co,sortBy:()=>Ao,sortedIndex:()=>Jr,tail:()=>Lo,take:()=>Po,tap:()=>Kn,template:()=>_r,templateSettings:()=>gr,throttle:()=>Fr,times:()=>cr,toArray:()=>yo,toPath:()=>Wn,transpose:()=>qo,unescape:()=>hr,union:()=>Do,uniq:()=>Mo,unique:()=>Mo,uniqueId:()=>jr,unzip:()=>qo,values:()=>Rn,where:()=>mo,without:()=>Uo,wrap:()=>Mr,zip:()=>$o});var a=r(85471),i=r(81222),l=r(63814);const c=new RegExp("(%[a-f0-9]{2})+","gi"),u=/^[a-f\d]{2}$/i;function d(e,t){if(37!==e.codePointAt(t)||t+3>e.length)return;const n=e.slice(t+1,t+3);return u.test(n)?{byte:Number.parseInt(n,16),next:t+3}:void 0}function f(e){return e<=127?1:e>=194&&e<=223?2:e>=224&&e<=239?3:e>=240&&e<=244?4:0}function p(e){return e>=128&&e<=191}function m(e){try{return decodeURIComponent(e)}catch{let t="",n=0;for(;nNumber(e)-Number(t)).map(t=>e[t]):e}function y(e,t,n){return"string"===n&&"string"==typeof e?e:"function"==typeof n&&"string"==typeof e?n(e):"boolean"===n&&null===e||("boolean"!==n||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()?"boolean"!==n||null===e||"1"!==e.toLowerCase()&&"0"!==e.toLowerCase()?"string[]"===n&&"none"!==t.arrayFormat&&"string"==typeof e?[e]:"number[]"!==n||"none"===t.arrayFormat||Number.isNaN(Number(e))||"string"!=typeof e||""===e.trim()?"number"!==n||Number.isNaN(Number(e))||"string"!=typeof e||""===e.trim()?!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()?t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?Number(e):e:"true"===e.toLowerCase():Number(e):[Number(e)]:"1"===e.toLowerCase():"true"===e.toLowerCase())}Symbol("encodeFragmentIdentifier");var b=r(74095),w=r(48240),A=r(53334),_=r(46855),C=r(32073),x=r(16044),j=r(82182);const k={name:"LoginButton",components:{ArrowRight:r(71164).A,NcButton:b.A},props:{value:{type:String,default:(0,A.Tl)("core","Log in")},valueLoading:{type:String,default:(0,A.Tl)("core","Logging in …")},loading:{type:Boolean,required:!0},invertedColors:{type:Boolean,default:!1}}};var S=r(85072),T=r.n(S),E=r(97825),N=r.n(E),O=r(77659),P=r.n(O),L=r(55056),B=r.n(L),I=r(10540),R=r.n(I),F=r(41113),U=r.n(F),M=r(88163),D={};D.styleTagTransform=U(),D.setAttributes=B(),D.insert=P().bind(null,"head"),D.domAPI=N(),D.insertStyleElement=R(),T()(M.A,D),M.A&&M.A.locals&&M.A.locals;var z=r(14486);const q=(0,z.A)(k,function(){var e=this,t=e._self._c;return t("NcButton",{attrs:{variant:"primary",type:"submit",wide:!0,disabled:e.loading},on:{click:function(t){return e.$emit("click")}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loading?t("div",{staticClass:"submit-wrapper__icon icon-loading-small-dark"}):t("ArrowRight",{staticClass:"submit-wrapper__icon"})]},proxy:!0}])},[e._v("\n\t"+e._s(e.loading?e.valueLoading:e.value)+"\n\t")])},[],!1,null,"bbf83d00",null).exports,$={computed:{userNameInputLengthIs255(){return this.user.length>=255},userInputHelperText(){if(this.userNameInputLengthIs255)return t("core","Email length is at max (255)")}}},H={name:"LoginForm",components:{LoginButton:q,NcCheckboxRadioSwitch:C.A,NcPasswordField:x.A,NcTextField:j.A,NcNoteCard:w.A},mixins:[$],props:{username:{type:String,default:""},redirectUrl:{type:[Boolean,String],default:!1},errors:{type:Array,default:()=>[]},messages:{type:Array,default:()=>[]},throttleDelay:{type:Number,default:0},autoCompleteAllowed:{type:Boolean,default:!0},remembermeAllowed:{type:Boolean,default:!0},directLogin:{type:Boolean,default:!1},emailStates:{type:Array,default:()=>[]}},setup:()=>({t:A.Tl,headlineText:(0,A.Tl)("core","Log in to {productName}",{productName:OC.theme.name},void 0,{sanitize:!1,escape:!1}),loginTimeout:(0,i.C)("core","loginTimeout",300),requestToken:window.OC.requestToken,timezone:(new Intl.DateTimeFormat)?.resolvedOptions()?.timeZone,timezoneOffset:-(new Date).getTimezoneOffset()/60}),data:e=>({loading:!1,user:e.username,password:"",rememberme:["1"],visible:!1}),computed:{resetFormTimeout(){return this.loginTimeout<=0?()=>{}:(0,_.A)(this.handleResetForm,1e3*this.loginTimeout)},isError(){return this.invalidPassword||this.userDisabled||this.throttleDelay>5e3},errorLabel(){return this.invalidPassword?(0,A.Tl)("core","Wrong login or password."):this.userDisabled?(0,A.Tl)("core","This account is disabled"):this.throttleDelay>5e3?(0,A.Tl)("core","Too many failed login attempts from your location. Try again in 30 seconds."):void 0},apacheAuthFailed(){return-1!==this.errors.indexOf("apacheAuthFailed")},csrfCheckFailed(){return-1!==this.errors.indexOf("csrfCheckFailed")},internalException(){return-1!==this.errors.indexOf("internalexception")},invalidPassword(){return-1!==this.errors.indexOf("invalidpassword")},userDisabled(){return-1!==this.errors.indexOf("userdisabled")},loadingIcon:()=>(0,l.d0)("core","loading-dark.gif"),loginActionUrl:()=>(0,l.Jv)("login"),emailEnabled(){return this.emailStates.every(e=>"1"===e)},loginText(){return this.emailEnabled?(0,A.Tl)("core","Account name or email"):(0,A.Tl)("core","Account name")}},watch:{password(){this.resetFormTimeout()}},mounted(){""===this.username?this.$refs.user.$refs.inputField.$refs.input.focus():this.$refs.password.$refs.inputField.$refs.input.focus()},methods:{handleResetForm(){this.password=""},updateUsername(){this.$emit("update:username",this.user)},submit(e){this.visible=!1,this.loading?e.preventDefault():(this.loading=!0,this.$emit("submit"))}}};var Y=r(80073),V={};V.styleTagTransform=U(),V.setAttributes=B(),V.insert=P().bind(null,"head"),V.domAPI=N(),V.insertStyleElement=R(),T()(Y.A,V),Y.A&&Y.A.locals&&Y.A.locals;const K=(0,z.A)(H,function(){var e=this,t=e._self._c;return t("form",{ref:"loginForm",staticClass:"login-form",attrs:{method:"post",name:"login",action:e.loginActionUrl},on:{submit:e.submit}},[t("fieldset",{staticClass:"login-form__fieldset",attrs:{"data-login-form":""}},[e.apacheAuthFailed?t("NcNoteCard",{attrs:{title:e.t("core","Server side authentication failed!"),type:"warning"}},[e._v("\n\t\t\t"+e._s(e.t("core","Please contact your administrator."))+"\n\t\t")]):e._e(),e._v(" "),e.csrfCheckFailed?t("NcNoteCard",{attrs:{heading:e.t("core","Session error"),type:"error"}},[e._v("\n\t\t\t"+e._s(e.t("core","It appears your session token has expired, please refresh the page and try again."))+"\n\t\t")]):e._e(),e._v(" "),e.messages.length>0?t("NcNoteCard",e._l(e.messages,function(n,r){return t("div",{key:r},[e._v("\n\t\t\t\t"+e._s(n)),t("br")])}),0):e._e(),e._v(" "),e.internalException?t("NcNoteCard",{class:e.t("core","An internal error occurred."),attrs:{type:"warning"}},[e._v("\n\t\t\t"+e._s(e.t("core","Please try again or contact your administrator."))+"\n\t\t")]):e._e(),e._v(" "),t("div",{staticClass:"hidden",attrs:{id:"message"}},[t("img",{staticClass:"float-spinner",attrs:{alt:"",src:e.loadingIcon}}),e._v(" "),t("span",{attrs:{id:"messageText"}}),e._v(" "),t("div",{staticStyle:{clear:"both"}})]),e._v(" "),t("h2",{staticClass:"login-form__headline",attrs:{"data-login-form-headline":""}},[e._v("\n\t\t\t"+e._s(e.headlineText)+"\n\t\t")]),e._v(" "),t("NcTextField",{ref:"user",class:{shake:e.invalidPassword},attrs:{id:"user",label:e.loginText,name:"user",maxlength:255,autocapitalize:"none",spellchecking:!1,autocomplete:e.autoCompleteAllowed?"username":"off",required:"",error:e.userNameInputLengthIs255,"helper-text":e.userInputHelperText,"data-login-form-input-user":""},on:{change:e.updateUsername},model:{value:e.user,callback:function(t){e.user=t},expression:"user"}}),e._v(" "),t("NcPasswordField",{ref:"password",class:{shake:e.invalidPassword},attrs:{id:"password",name:"password",spellchecking:!1,autocapitalize:"none",autocomplete:e.autoCompleteAllowed?"current-password":"off",label:e.t("core","Password"),"helper-text":e.errorLabel,error:e.isError,visible:e.visible,"data-login-form-input-password":"",required:""},model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),e._v(" "),e.remembermeAllowed?t("NcCheckboxRadioSwitch",{ref:"rememberme",attrs:{id:"rememberme",name:"rememberme",value:"1","data-login-form-input-rememberme":""},model:{value:e.rememberme,callback:function(t){e.rememberme=t},expression:"rememberme"}},[e._v("\n\t\t\t"+e._s(e.t("core","Remember me"))+"\n\t\t")]):e._e(),e._v(" "),t("LoginButton",{attrs:{"data-login-form-submit":"",loading:e.loading}}),e._v(" "),e.redirectUrl?t("input",{attrs:{type:"hidden",name:"redirect_url"},domProps:{value:e.redirectUrl}}):e._e(),e._v(" "),t("input",{attrs:{type:"hidden",name:"timezone"},domProps:{value:e.timezone}}),e._v(" "),t("input",{attrs:{type:"hidden",name:"timezone_offset"},domProps:{value:e.timezoneOffset}}),e._v(" "),t("input",{attrs:{type:"hidden",name:"requesttoken"},domProps:{value:e.requestToken}}),e._v(" "),e.directLogin?t("input",{attrs:{type:"hidden",name:"direct",value:"1"}}):e._e()],1)])},[],!1,null,"fac76c6a",null).exports;class W extends Error{constructor({message:e,code:t,cause:n,name:r}){super(e,{cause:n}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=r??n.name,this.code=t}}const J=new class{constructor(){Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}createNewAbortSignal(){if(this.controller){const e=new Error("Cancelling existing WebAuthn API call for new one");e.name="AbortError",this.controller.abort(e)}const e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){const e=new Error("Manually cancelling existing WebAuthn API call");e.name="AbortError",this.controller.abort(e),this.controller=void 0}}};function Q(e){const t=new Uint8Array(e);let n="";for(const e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function G(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,r=t.padEnd(t.length+n,"="),o=atob(r),s=new ArrayBuffer(o.length),a=new Uint8Array(s);for(let e=0;ee},ee=e=>e;function te(e){const{id:t}=e;return{...e,id:G(t),transports:e.transports}}const ne=["cross-platform","platform"];function re(e){if(e&&!(ne.indexOf(e)<0))return e}var oe=r(48943),se=r(36076);const ae={name:"LockOpenIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ie=(0,z.A)(ae,function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon lock-open-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10A2,2 0 0,1 6,8H15V6A3,3 0 0,0 12,3A3,3 0 0,0 9,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],!1,null,null,null).exports;var le=r(21777),ce=r(35947);const ue=null===(de=(0,le.HW)())?(0,ce.YK)().setApp("core").build():(0,ce.YK)().setApp("core").setUid(de.uid).build();var de;(0,ce.YK)().setApp("unified-search").detectUser().build();var fe=r(44368);class pe extends Error{}const me=(0,a.pM)({name:"PasswordLessLoginForm",components:{LoginButton:q,InformationIcon:se.A,LockOpenIcon:ie,NcEmptyContent:oe.A,NcTextField:j.A},props:{username:{type:String,default:""},redirectUrl:{type:[Boolean,String],default:!1},autoCompleteAllowed:{type:Boolean,default:!0},isHttps:{type:Boolean,default:!1},isLocalhost:{type:Boolean,default:!1}},setup:()=>({supportsWebauthn:Z()}),data(){return{user:this.username,loading:!1,validCredentials:!0}},methods:{async authenticate(){if(this.$refs.loginForm.checkValidity()){ue.debug("passwordless login initiated");try{const e=await async function(e){const t=(0,l.Jv)("/login/webauthn/start"),{data:n}=await fe.Ay.post(t,{loginName:e});if(!n.allowCredentials||0===n.allowCredentials.length)throw ue.error("No valid credentials returned for webauthn"),new pe;return await async function(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});const{optionsJSON:t,useBrowserAutofill:n=!1,verifyBrowserAutofillInput:r=!0}=e;if(!Z())throw new Error("WebAuthn is not supported in this browser");let o;0!==t.allowCredentials?.length&&(o=t.allowCredentials?.map(te));const s={...t,challenge:G(t.challenge),allowCredentials:o},a={};if(n){if(!await function(){if(!Z())return ee(new Promise(e=>e(!1)));const e=globalThis.PublicKeyCredential;return ee(void 0===e?.isConditionalMediationAvailable?new Promise(e=>e(!1)):e.isConditionalMediationAvailable())}())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&r)throw Error('No with "webauthn" as the only or last value in its `autocomplete` attribute was detected');a.mediation="conditional",s.allowCredentials=[]}let i;a.publicKey=s,a.signal=J.createNewAbortSignal();try{i=await navigator.credentials.get(a)}catch(e){throw function({error:e,options:t}){const{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if("AbortError"===e.name){if(t.signal instanceof AbortSignal)return new W({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else{if("NotAllowedError"===e.name)return new W({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if("SecurityError"===e.name){const t=globalThis.location.hostname;if("localhost"!==(r=t)&&!/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(r))return new W({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e});if(n.rpId!==t)return new W({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else if("UnknownError"===e.name)return new W({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}var r;return e}({error:e,options:a})}if(!i)throw new Error("Authentication was not completed");const{id:l,rawId:c,response:u,type:d}=i;let f;return u.userHandle&&(f=Q(u.userHandle)),{id:l,rawId:Q(c),response:{authenticatorData:Q(u.authenticatorData),clientDataJSON:Q(u.clientDataJSON),signature:Q(u.signature),userHandle:f},type:d,clientExtensionResults:i.getClientExtensionResults(),authenticatorAttachment:re(i.authenticatorAttachment)}}({optionsJSON:n})}(this.user);await this.completeAuthentication(e)}catch(e){if(e instanceof pe)return void(this.validCredentials=!1);ue.debug(e)}}},changeUsername(e){this.user=e,this.$emit("update:username",this.user)},completeAuthentication(e){let t=this.redirectUrl;return async function(e){const t=(0,l.Jv)("/login/webauthn/finish"),{data:n}=await fe.Ay.post(t,{data:JSON.stringify(e)});return n}(e).then(({defaultRedirectUrl:e})=>{ue.debug("Logged in redirecting"),t?("/"!==t.charAt(0)&&(t="/"+t),window.location.href=(0,l.$_)()+t):window.location.href=e}).catch(e=>{ue.debug("GOT AN ERROR WHILE SUBMITTING CHALLENGE!",{error:e})})},submit(){}}});var he=r(31813),ge={};ge.styleTagTransform=U(),ge.setAttributes=B(),ge.insert=P().bind(null,"head"),ge.domAPI=N(),ge.insertStyleElement=R(),T()(he.A,ge),he.A&&he.A.locals&&he.A.locals;var ve=(0,z.A)(me,function(){var e=this,t=e._self._c;return e._self._setupProxy,(e.isHttps||e.isLocalhost)&&e.supportsWebauthn?t("form",{ref:"loginForm",staticClass:"password-less-login-form",attrs:{"aria-labelledby":"password-less-login-form-title",method:"post",name:"login"},on:{submit:function(t){return t.preventDefault(),e.submit.apply(null,arguments)}}},[t("h2",{attrs:{id:"password-less-login-form-title"}},[e._v("\n\t\t"+e._s(e.t("core","Log in with a device"))+"\n\t")]),e._v(" "),t("NcTextField",{attrs:{required:"","model-value":e.user,autocomplete:e.autoCompleteAllowed?"on":"off",error:!e.validCredentials,label:e.t("core","Login or email"),placeholder:e.t("core","Login or email"),"helper-text":e.validCredentials?"":e.t("core","Your account is not setup for passwordless login.")},on:{"update:value":e.changeUsername}}),e._v(" "),e.validCredentials?t("LoginButton",{attrs:{loading:e.loading},on:{click:e.authenticate}}):e._e()],1):e.isHttps||e.isLocalhost?t("NcEmptyContent",{attrs:{name:e.t("core","Browser not supported"),description:e.t("core","Passwordless authentication is not supported in your browser.")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("InformationIcon")]},proxy:!0}])}):t("NcEmptyContent",{attrs:{name:e.t("core","Your connection is not secure"),description:e.t("core","Passwordless authentication is only available over a secure connection.")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("LockOpenIcon")]},proxy:!0}])})},[],!1,null,"25758ef3",null);const ye=ve.exports,be=(0,a.pM)({name:"ResetPassword",components:{LoginButton:q,NcButton:b.A,NcNoteCard:w.A,NcTextField:j.A},mixins:[$],props:{username:{type:String,required:!0},resetPasswordLink:{type:String,required:!0}},data(){return{error:!1,loading:!1,message:"",user:this.username}},watch:{username(e){this.user=e}},methods:{updateUsername(){this.$emit("update:username",this.user)},async submit(){this.loading=!0,this.error=!1,this.message="";const e=(0,l.Jv)("/lostpassword/email");try{const{data:t}=await fe.Ay.post(e,{user:this.user});if("success"!==t.status)throw new Error(`got status ${t.status}`);this.message="send-success"}catch(e){ue.error("could not send reset email request",{error:e}),this.error=!0,this.message="send-error"}finally{this.loading=!1}}}});var we=r(4739),Ae={};Ae.styleTagTransform=U(),Ae.setAttributes=B(),Ae.insert=P().bind(null,"head"),Ae.domAPI=N(),Ae.insertStyleElement=R(),T()(we.A,Ae),we.A&&we.A.locals&&we.A.locals;var _e=(0,z.A)(be,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("form",{staticClass:"reset-password-form",on:{submit:function(t){return t.preventDefault(),e.submit.apply(null,arguments)}}},[t("h2",[e._v(e._s(e.t("core","Reset password")))]),e._v(" "),t("NcTextField",{attrs:{id:"user",name:"user",maxlength:255,autocapitalize:"off",label:e.t("core","Login or email"),error:e.userNameInputLengthIs255,"helper-text":e.userInputHelperText,required:""},on:{change:e.updateUsername},model:{value:e.user,callback:function(t){e.user=t},expression:"user"}}),e._v(" "),t("LoginButton",{attrs:{loading:e.loading,value:e.t("core","Reset password")}}),e._v(" "),t("NcButton",{attrs:{variant:"tertiary",wide:""},on:{click:function(t){return e.$emit("abort")}}},[e._v("\n\t\t"+e._s(e.t("core","Back to login"))+"\n\t")]),e._v(" "),"send-success"===e.message?t("NcNoteCard",{attrs:{type:"success"}},[e._v("\n\t\t"+e._s(e.t("core","If this account exists, a password reset message has been sent to its email address. If you do not receive it, verify your email address and/or Login, check your spam/junk folders or ask your local administration for help."))+"\n\t")]):"send-error"===e.message?t("NcNoteCard",{attrs:{type:"error"}},[e._v("\n\t\t"+e._s(e.t("core","Couldn't send reset email. Please contact your administrator."))+"\n\t")]):"reset-error"===e.message?t("NcNoteCard",{attrs:{type:"error"}},[e._v("\n\t\t"+e._s(e.t("core","Password cannot be changed. Please contact your administrator."))+"\n\t")]):e._e()],1)},[],!1,null,"759a0fdd",null);const Ce=_e.exports,xe={name:"UpdatePassword",components:{LoginButton:q},props:{username:{type:String,required:!0},resetPasswordTarget:{type:String,required:!0}},data(){return{error:!1,loading:!1,message:void 0,user:this.username,password:"",encrypted:!1,proceed:!1}},watch:{username(e){this.user=e}},methods:{async submit(){this.loading=!0,this.error=!1,this.message="";try{const{data:e}=await fe.Ay.post(this.resetPasswordTarget,{password:this.password,proceed:this.proceed});if(e&&"success"===e.status)this.message="send-success",this.$emit("update:username",this.user),this.$emit("done");else{if(!e||!e.encryption)throw e&&e.msg?new Error(e.msg):new Error;this.encrypted=!0}}catch(e){this.error=!0,this.message=e.message?e.message:t("core","Password cannot be changed. Please contact your administrator.")}finally{this.loading=!1}}}};var je=r(81604),ke={};ke.styleTagTransform=U(),ke.setAttributes=B(),ke.insert=P().bind(null,"head"),ke.domAPI=N(),ke.insertStyleElement=R(),T()(je.A,ke),je.A&&je.A.locals&&je.A.locals;var Se=(0,z.A)(xe,function(){var e=this,t=e._self._c;return t("form",{on:{submit:function(t){return t.preventDefault(),e.submit.apply(null,arguments)}}},[t("fieldset",[t("p",[t("label",{staticClass:"infield",attrs:{for:"password"}},[e._v(e._s(e.t("core","New password")))]),e._v(" "),t("input",{directives:[{name:"model",rawName:"v-model",value:e.password,expression:"password"}],attrs:{id:"password",type:"password",name:"password",autocomplete:"new-password",autocapitalize:"none",spellcheck:"false",required:"",placeholder:e.t("core","New password")},domProps:{value:e.password},on:{input:function(t){t.target.composing||(e.password=t.target.value)}}})]),e._v(" "),e.encrypted?t("div",{staticClass:"update"},[t("p",[e._v("\n\t\t\t\t"+e._s(e.t("core","Your files are encrypted. There will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?"))+"\n\t\t\t")]),e._v(" "),t("input",{directives:[{name:"model",rawName:"v-model",value:e.proceed,expression:"proceed"}],staticClass:"checkbox",attrs:{id:"encrypted-continue",type:"checkbox"},domProps:{checked:Array.isArray(e.proceed)?e._i(e.proceed,null)>-1:e.proceed},on:{change:function(t){var n=e.proceed,r=t.target,o=!!r.checked;if(Array.isArray(n)){var s=e._i(n,null);r.checked?s<0&&(e.proceed=n.concat([null])):s>-1&&(e.proceed=n.slice(0,s).concat(n.slice(s+1)))}else e.proceed=o}}}),e._v(" "),t("label",{attrs:{for:"encrypted-continue"}},[e._v("\n\t\t\t\t"+e._s(e.t("core","I know what I'm doing"))+"\n\t\t\t")])]):e._e(),e._v(" "),t("LoginButton",{attrs:{loading:e.loading,value:e.t("core","Reset password"),"value-loading":e.t("core","Resetting password")}}),e._v(" "),e.error&&e.message?t("p",{class:{warning:e.error}},[e._v("\n\t\t\t"+e._s(e.message)+"\n\t\t")]):e._e()],1)])},[],!1,null,"2c0ecaf9",null);const Te=Se.exports;const Ee=function(e,t){!function(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}((t={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,types:Object.create(null),...t}).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)]$/.exec(e),e=e.replace(/\[\d*]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[])$/.exec(e),e=e.replace(/\[]$/,""),t?void 0!==r[e]?Array.isArray(r[e])?r[e].push(n):r[e]=[r[e],n]:r[e]=[n]:r[e]=n};case"colon-list-separator":return(e,n,r)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==r[e]?Array.isArray(r[e])?r[e].push(n):r[e]=[r[e],n]:r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const o="string"==typeof n&&n.includes(e.arrayFormatSeparator)?n.split(e.arrayFormatSeparator).map(t=>g(t,e)):null===n?n:g(n,e);r[t]=o};case"bracket-separator":return(t,n,r)=>{const o=/(\[])$/.test(t);if(t=t.replace(/\[]$/,""),!o)return void(r[t]=n?g(n,e):n);const s=null===n?[]:g(n,e).split(e.arrayFormatSeparator);if(void 0!==r[t]){Array.isArray(r[t])||(r[t]=[r[t]]);for(const e of s)r[t].push(e)}else r[t]=s};default:return(e,t,n)=>{void 0!==n[e]?Array.isArray(n[e])?n[e].push(t):n[e]=[n[e],t]:n[e]=t}}}(t),r=Object.create(null);if("string"!=typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;if(/^&+$/.test(e))return r;let o=0,s=e.indexOf("&");-1===s&&(s=e.length);for(let a=s;a<=e.length;a++){if(a{const n=r[t];return e[t]=Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?v(n):n,e},Object.create(null))}(location.search);"1"===Ee.clear&&async function(){try{window.localStorage.clear(),window.sessionStorage.clear();const e=await window.indexedDB.databases();for(const t of e)await window.indexedDB.deleteDatabase(t.name);ue.debug("Browser storages cleared")}catch(e){ue.error("Could not clear browser storages",{error:e})}}();const Ne={name:"Login",components:{LoginForm:K,PasswordLessLoginForm:ye,ResetPassword:Ce,UpdatePassword:Te,NcButton:b.A,NcNoteCard:w.A},data:()=>({loading:!1,user:(0,i.C)("core","loginUsername",""),passwordlessLogin:!1,resetPassword:!1,errors:(0,i.C)("core","loginErrors",[]),messages:(0,i.C)("core","loginMessages",[]),redirectUrl:(0,i.C)("core","loginRedirectUrl",!1),throttleDelay:(0,i.C)("core","loginThrottleDelay",0),canResetPassword:(0,i.C)("core","loginCanResetPassword",!1),resetPasswordLink:(0,i.C)("core","loginResetPasswordLink",""),autoCompleteAllowed:(0,i.C)("core","loginAutocomplete",!0),remembermeAllowed:(0,i.C)("core","loginCanRememberme",!0),resetPasswordTarget:(0,i.C)("core","resetPasswordTarget",""),resetPasswordUser:(0,i.C)("core","resetPasswordUser",""),directLogin:"1"===Ee.direct,hasPasswordless:(0,i.C)("core","webauthn-available",!1),countAlternativeLogins:(0,i.C)("core","countAlternativeLogins",!1),alternativeLogins:(0,i.C)("core","alternativeLogins",[]),isHttps:"https:"===window.location.protocol,isLocalhost:"localhost"===window.location.hostname,hideLoginForm:(0,i.C)("core","hideLoginForm",!1),emailStates:(0,i.C)("core","emailStates",[])}),methods:{passwordResetFinished(){window.location.href=(0,l.Jv)("login")+"?direct=1"}}};var Oe=r(51112),Pe={};Pe.styleTagTransform=U(),Pe.setAttributes=B(),Pe.insert=P().bind(null,"head"),Pe.domAPI=N(),Pe.insertStyleElement=R(),T()(Oe.A,Pe),Oe.A&&Oe.A.locals&&Oe.A.locals;const Le=(0,z.A)(Ne,function(){var e=this,t=e._self._c;return t("div",{staticClass:"guest-box login-box"},[!e.hideLoginForm||e.directLogin?[t("transition",{attrs:{name:"fade",mode:"out-in"}},[e.passwordlessLogin||e.resetPassword||""!==e.resetPasswordTarget?!e.loading&&e.passwordlessLogin?t("div",{key:"reset-pw-less",staticClass:"login-additional login-box__wrapper"},[t("PasswordLessLoginForm",{attrs:{username:e.user,"redirect-url":e.redirectUrl,"auto-complete-allowed":e.autoCompleteAllowed,"is-https":e.isHttps,"is-localhost":e.isLocalhost},on:{"update:username":function(t){e.user=t},submit:function(t){e.loading=!0}}}),e._v(" "),t("NcButton",{attrs:{variant:"tertiary","aria-label":e.t("core","Back to login form"),wide:!0},on:{click:function(t){e.passwordlessLogin=!1}}},[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Back"))+"\n\t\t\t\t")])],1):!e.loading&&e.canResetPassword?t("div",{key:"reset-can-reset",staticClass:"login-additional"},[t("div",{staticClass:"lost-password-container"},[e.resetPassword?t("ResetPassword",{attrs:{username:e.user,"reset-password-link":e.resetPasswordLink},on:{"update:username":function(t){e.user=t},abort:function(t){e.resetPassword=!1}}}):e._e()],1)]):""!==e.resetPasswordTarget?t("div",[t("UpdatePassword",{attrs:{username:e.user,"reset-password-target":e.resetPasswordTarget},on:{"update:username":function(t){e.user=t},done:e.passwordResetFinished}})],1):e._e():t("div",{staticClass:"login-box__wrapper"},[t("LoginForm",{attrs:{username:e.user,"redirect-url":e.redirectUrl,"direct-login":e.directLogin,messages:e.messages,errors:e.errors,"throttle-delay":e.throttleDelay,"auto-complete-allowed":e.autoCompleteAllowed,"rememberme-allowed":e.remembermeAllowed,"email-states":e.emailStates},on:{"update:username":function(t){e.user=t},submit:function(t){e.loading=!0}}}),e._v(" "),e.hasPasswordless?t("NcButton",{attrs:{variant:"tertiary",wide:""},on:{click:function(t){t.preventDefault(),e.passwordlessLogin=!0}}},[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Log in with a device"))+"\n\t\t\t\t")]):e._e(),e._v(" "),e.canResetPassword&&""!==e.resetPasswordLink?t("NcButton",{attrs:{id:"lost-password",href:e.resetPasswordLink,variant:"tertiary-no-background",wide:""}},[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Forgot password?"))+"\n\t\t\t\t")]):e.canResetPassword&&!e.resetPassword?t("NcButton",{attrs:{id:"lost-password",variant:"tertiary",wide:""},on:{click:function(t){t.preventDefault(),e.resetPassword=!0}}},[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Forgot password?"))+"\n\t\t\t\t")]):e._e()],1)])]:[t("transition",{attrs:{name:"fade",mode:"out-in"}},[t("NcNoteCard",{attrs:{type:"info",title:e.t("core","Login form is disabled.")}},[e._v("\n\t\t\t\t"+e._s(e.t("core","The Nextcloud login form is disabled. Use another login option if available or contact your administration."))+"\n\t\t\t")])],1)],e._v(" "),t("div",{staticClass:"login-box__alternative-logins",attrs:{id:"alternative-logins"}},e._l(e.alternativeLogins,function(n,r){return t("NcButton",{key:r,class:[n.class],attrs:{variant:"secondary",wide:!0,role:"link",href:n.href}},[e._v("\n\t\t\t"+e._s(n.name)+"\n\t\t")])}),1)],2)},[],!1,null,"518c0816",null).exports;var Be=r(71323),Ie=r(71225);const Re=!!window._oc_isadmin,Fe=window.oc_appconfig||{},Ue=void 0!==window._oc_appswebroots&&window._oc_appswebroots;var Me=r(87485);const De=window._oc_config||{},ze=document.getElementsByTagName("head")[0].getAttribute("data-user"),qe=document.getElementsByTagName("head")[0].getAttribute("data-user-displayname"),$e=void 0!==ze&&ze,He=window._oc_debug;var Ye=r(21363),Ve=r(85168),Ke=r(98469),We=r(43627);const Je={YES_NO_BUTTONS:70,OK_BUTTONS:71,FILEPICKER_TYPE_CHOOSE:1,FILEPICKER_TYPE_MOVE:2,FILEPICKER_TYPE_COPY:3,FILEPICKER_TYPE_COPY_MOVE:4,FILEPICKER_TYPE_CUSTOM:5,alert:function(e,t,n,r){this.message(e,t,"alert",Je.OK_BUTTON,n,r)},info:function(e,t,n,r){this.message(e,t,"info",Je.OK_BUTTON,n,r)},confirm:function(e,t,n,r){return this.message(e,t,"notice",Je.YES_NO_BUTTONS,n,r)},confirmDestructive:function(e,t,n=Je.OK_BUTTONS,r=()=>{}){return(new Ve.ik).setName(t).setText(e).setButtons(n===Je.OK_BUTTONS?[{label:(0,A.t)("core","Yes"),variant:"error",callback:()=>{r.clicked=!0,r(!0)}}]:Je._getLegacyButtons(n,r)).build().show().then(()=>{r.clicked||r(!1)})},confirmHtml:function(e,t,n){return(new Ve.ik).setName(t).setText("").setButtons([{label:(0,A.t)("core","No"),callback:()=>{}},{label:(0,A.t)("core","Yes"),variant:"primary",callback:()=>{n.clicked=!0,n(!0)}}]).build().setHTML(e).show().then(()=>{n.clicked||n(!1)})},prompt:function(e,t,n,o,s,i){return new Promise(o=>{(0,Ke.S)((0,a.$V)(()=>Promise.all([r.e(4208),r.e(3108)]).then(()=>r(43108))),{text:e,name:t,callback:n,inputName:s,isPassword:!!i},(...e)=>{n(...e),o()})})},filepicker(e,t,n=!1,r=void 0,o=void 0,s=Ve.bh.Choose,a=void 0,i=void 0){const l=(e,t)=>{const r=e=>{const t=e?.root||"";let n=e?.path||"";return n.startsWith(t)&&(n=n.slice(t.length)||"/"),n};return n?n=>e(n.map(r),t):n=>e(r(n[0]),t)},c=(0,Ve.a1)(e);s===this.FILEPICKER_TYPE_CUSTOM?(i.buttons||[]).forEach(e=>{c.addButton({callback:l(t,e.type),label:e.text,variant:e.defaultButton?"primary":"secondary"})}):c.setButtonFactory((e,n)=>{const r=[],[o]=e,a=o?.displayname||o?.basename||(0,We.basename)(n);return s===Ve.bh.Choose&&r.push({callback:l(t,Ve.bh.Choose),label:o&&!this.multiSelect?(0,A.t)("core","Choose {file}",{file:a}):(0,A.t)("core","Choose"),variant:"primary"}),s!==Ve.bh.CopyMove&&s!==Ve.bh.Copy||r.push({callback:l(t,Ve.bh.Copy),label:a?(0,A.t)("core","Copy to {target}",{target:a}):(0,A.t)("core","Copy"),variant:"primary",icon:Ye}),s!==Ve.bh.Move&&s!==Ve.bh.CopyMove||r.push({callback:l(t,Ve.bh.Move),label:a?(0,A.t)("core","Move to {target}",{target:a}):(0,A.t)("core","Move"),variant:s===Ve.bh.Move?"primary":"secondary",icon:''}),r}),r&&c.setMimeTypeFilter("string"==typeof r?[r]:r||[]),"function"==typeof i?.filter&&c.setFilter(e=>i.filter((e=>({id:e.fileid||null,path:e.path,mimetype:e.mime||null,mtime:e.mtime?.getTime()||null,permissions:e.permissions,name:e.attributes?.displayName||e.basename,etag:e.attributes?.etag||null,hasPreview:e.attributes?.hasPreview||null,mountType:e.attributes?.mountType||null,quotaAvailableBytes:e.attributes?.quotaAvailableBytes||null,icon:null,sharePermissions:null}))(e))),c.allowDirectories(!0===i?.allowDirectoryChooser||r?.includes("httpd/unix-directory")||!1).setMultiSelect(n).startAt(a).build().pick()},message:function(e,t,n,r,o=()=>{},s,a){const i=(new Ve.ik).setName(t).setText(a?"":e).setButtons(Je._getLegacyButtons(r,o));switch(n){case"alert":i.setSeverity("warning");break;case"notice":i.setSeverity("info")}const l=i.build();return a&&l.setHTML(e),l.show().then(()=>{o._clicked||o(!1)})},_getLegacyButtons(e,t){const n=[];switch("object"==typeof e?e.type:e){case Je.YES_NO_BUTTONS:n.push({label:e?.cancel??(0,A.t)("core","No"),callback:()=>{t._clicked=!0,t(!1)}}),n.push({label:e?.confirm??(0,A.t)("core","Yes"),variant:"primary",callback:()=>{t._clicked=!0,t(!0)}});break;case Je.OK_BUTTONS:n.push({label:e?.confirm??(0,A.t)("core","OK"),variant:"primary",callback:()=>{t._clicked=!0,t(!0)}});break;default:ue.error("Invalid call to OC.dialogs")}return n}},Qe=Je;function Ge(){return document.head.dataset.requesttoken}function Ze(e,t){let n,r,o="";if(this.typelessListeners=[],this.closed=!1,t)for(n in t)o+=n+"="+encodeURIComponent(t[n])+"&";o+="requesttoken="+encodeURIComponent(Ge()),r="&",-1===e.indexOf("?")&&(r="?"),this.source=new EventSource(e+r+o),this.source.onmessage=function(e){for(let t=0;te.cancel()),n.style.display="block")},finishedSaving(e,t){this.finishedAction(e,t)},finishedAction(e,t){"success"===t.status?this.finishedSuccess(e,t.data.message):this.finishedError(e,t.data.message)},finishedSuccess(e,t){const n=document.querySelector(e);n&&n instanceof HTMLElement&&(n.textContent=t,n.classList.remove("error"),n.classList.add("success"),n.getAnimations?.().forEach(e=>e.cancel()),window.setTimeout(function(){if(!(n&&n instanceof HTMLElement))return;const e=n.animate?.([{opacity:1},{opacity:0}],{duration:900,fill:"forwards"});e?e.addEventListener("finish",()=>{n.style.display="none"}):window.setTimeout(()=>{n.style.display="none"},900)},3e3),n.style.display="block")},finishedError(e,t){const n=document.querySelector(e);n&&n instanceof HTMLElement&&(n.textContent=t,n.classList.remove("success"),n.classList.add("error"),n.style.display="block")}};var at=r(93346);const it={requiresPasswordConfirmation:()=>(0,at.oB)(),requirePasswordConfirmation(e,t,n){(0,at.C5)().then(e,n)}},lt={_plugins:{},register(e,t){let n=this._plugins[e];n||(n=this._plugins[e]=[]),n.push(t)},getPlugins(e){return this._plugins[e]||[]},attach(e,t,n){const r=this.getPlugins(e);for(let e=0;e=0&&n<=Pt}}function un(e){return function(t){return null==t?void 0:t[e]}}const dn=un("byteLength"),fn=cn(dn);var pn=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;const mn=_t?function(e){return St?St(e)&&!en(e):fn(e)&&pn.test(wt.call(e))}:ln(!1),hn=un("length");function gn(e,t){t=function(e){for(var t={},n=e.length,r=0;r=0))if(r.push(e),o.push(t),n.push(!0),l){if((d=e.length)!==t.length)return!1;for(;d--;)n.push({a:e[d],b:t[d]})}else{var f,p=vn(e);if(d=p.length,vn(t).length!==d)return!1;for(;d--;){if(!nn(t,f=p[d]))return!1;n.push({a:e[f],b:t[f]})}}}else r.pop(),o.pop()}return!0}function xn(e){if(!Bt(e))return[];var t=[];for(var n in e)t.push(n);return Nt&&gn(e,t),t}function jn(e){var t=hn(e);return function(n){if(null==n)return!1;var r=xn(n);if(hn(r))return!1;for(var o=0;o":">",'"':""","'":"'","`":"`"},mr=fr(pr),hr=fr(Un(pr)),gr=wn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var vr=/(.)^/,yr={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},br=/\\|'|\r|\n|\u2028|\u2029/g;function wr(e){return"\\"+yr[e]}var Ar=/^\s*(\w|\$)+\s*$/;function _r(e,t,n){!t&&n&&(t=n),t=$n({},t,wn.templateSettings);var r=RegExp([(t.escape||vr).source,(t.interpolate||vr).source,(t.evaluate||vr).source].join("|")+"|$","g"),o=0,s="__p+='";e.replace(r,function(t,n,r,a,i){return s+=e.slice(o,i).replace(br,wr),o=i+t.length,n?s+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?s+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(s+="';\n"+a+"\n__p+='"),t}),s+="';\n";var a,i=t.variable;if(i){if(!Ar.test(i))throw new Error("variable is not a bare identifier: "+i)}else s="with(obj||{}){\n"+s+"}\n",i="obj";s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{a=new Function(i,"_",s)}catch(e){throw e.source=s,e}var l=function(e){return a.call(this,e,wn)};return l.source="function("+i+"){\n"+s+"}",l}function Cr(e,t,n){var r=(t=Jn(t)).length;if(!r)return Jt(n)?n.call(e):n;for(var o=0;o=a){if(!i.length)break;var l=i.pop();s=l.i,e=l.v,a=hn(e)}else{var c=e[s++];i.length>=t?r[o++]=c:Or(c)&&(tn(c)||on(c))?(i.push({i:s,v:e}),s=0,a=hn(e=c)):n||(r[o++]=c)}return r}const Lr=Lt(function(e,t){var n=(t=Pr(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=Nr(e[r],e)}return e});function Br(e,t){var n=function(r){var o=n.cache,s=""+(t?t.apply(this,arguments):r);return nn(o,s)||(o[s]=e.apply(this,arguments)),o[s]};return n.cache={},n}const Ir=Lt(function(e,t,n){return setTimeout(function(){return e.apply(null,n)},t)}),Rr=Er(Ir,wn,1);function Fr(e,t,n){var r,o,s,a,i=0;n||(n={});var l=function(){i=!1===n.leading?0:dr(),r=null,a=e.apply(o,s),r||(o=s=null)},c=function(){var c=dr();i||!1!==n.leading||(i=c);var u=t-(c-i);return o=this,s=arguments,u<=0||u>t?(r&&(clearTimeout(r),r=null),i=c,a=e.apply(o,s),r||(o=s=null)):r||!1===n.trailing||(r=setTimeout(l,u)),a};return c.cancel=function(){clearTimeout(r),i=0,r=o=s=null},c}function Ur(e,t,n){var r,o,s,a,i,l=function(){var c=dr()-o;t>c?r=setTimeout(l,t-c):(r=null,n||(a=e.apply(i,s)),r||(s=i=null))},c=Lt(function(c){return i=this,s=c,o=dr(),r||(r=setTimeout(l,t),n&&(a=e.apply(i,s))),a});return c.cancel=function(){clearTimeout(r),r=s=i=null},c}function Mr(e,t){return Er(t,e)}function Dr(e){return function(){return!e.apply(this,arguments)}}function zr(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}function qr(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}function $r(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}const Hr=Er($r,2);function Yr(e,t,n){t=sr(t,n);for(var r,o=vn(e),s=0,a=o.length;s0?0:o-1;s>=0&&s0?a=s>=0?s:Math.max(s+i,a):i=s>=0?Math.min(s+1,i):s+i+1;else if(n&&s&&i)return r[s=n(r,o)]===o?s:-1;if(o!=o)return(s=t(bt.call(r,a,i),an))>=0?s+a:-1;for(s=e>0?a:i-1;s>=0&&s=3;return function(t,n,r,o){var s=!Or(t)&&vn(t),a=(s||t).length,i=e>0?0:a-1;for(o||(r=t[s?s[i]:i],i+=e);i>=0&&i=0}const fo=Lt(function(e,t,n){var r,o;return Jt(t)?o=t:(t=Jn(t),r=t.slice(0,-1),t=t[t.length-1]),no(e,function(e){var s=o;if(!s){if(r&&r.length&&(e=Qn(e,r)),null==e)return;s=e[t]}return null==s?s:s.apply(e,n)})});function po(e,t){return no(e,tr(t))}function mo(e,t){return ao(e,er(t))}function ho(e,t,n){var r,o,s=-1/0,a=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var i=0,l=(e=Or(e)?e:Rn(e)).length;is&&(s=r);else t=sr(t,n),to(e,function(e,n,r){((o=t(e,n,r))>a||o===-1/0&&s===-1/0)&&(s=e,a=o)});return s}function go(e,t,n){var r,o,s=1/0,a=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var i=0,l=(e=Or(e)?e:Rn(e)).length;ir||void 0===n)return 1;if(n1&&(r=nr(r,t[1])),t=xn(e)):(r=To,t=Pr(t,!1,!1),e=Object(e));for(var o=0,s=t.length;o1&&(n=t[1])):(t=no(Pr(t,!1,!1),String),r=function(e,n){return!uo(t,n)}),Eo(e,r,n)});function Oo(e,t,n){return bt.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}function Po(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:Oo(e,e.length-t)}function Lo(e,t,n){return bt.call(e,null==t||n?1:t)}function Bo(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:Lo(e,Math.max(0,e.length-t))}function Io(e){return ao(e,Boolean)}function Ro(e,t){return Pr(e,t,!1)}const Fo=Lt(function(e,t){return t=Pr(t,!0,!0),ao(e,function(e){return!uo(t,e)})}),Uo=Lt(function(e,t){return Fo(e,t)});function Mo(e,t,n,r){Ft(t)||(r=n,n=t,t=!1),null!=n&&(n=sr(n,r));for(var o=[],s=[],a=0,i=hn(e);a-1&&parseInt(navigator.userAgent.split("/").pop())<51){const e=document.querySelectorAll('[fill^="url(#"], [stroke^="url(#"], [filter^="url(#invert"]');for(let t,n=0,r=e.length;n=0?e.substr(t+1):e.length?e.substr(1):""},_decodeQuery:e=>e.replace(/\+/g," "),parseUrlQuery(){const e=this._parseHashQuery();let t;return e&&(t=rs.parseQueryString(this._decodeQuery(e))),t=Go.extend(t||{},rs.parseQueryString(this._decodeQuery(location.search))),t||{}},_onPopState(e){if(this._cancelPop)return void(this._cancelPop=!1);let t;if(this._handlers.length){t=e&&e.state,Go.isString(t)?t=rs.parseQueryString(t):t||(t=this.parseUrlQuery()||{});for(let e=0;e="0"&&n<="9";a!==s&&(o++,t[o]="",s=a),t[o]+=n,r++}return t}const es={History:Zo,humanFileSize:ut.v7,computerFileSize(e){if("string"!=typeof e)return null;const t=e.toLowerCase().trim();let n;const r=t.match(/^[\s+]?([0-9]*)(\.([0-9]+))?( +)?([kmgtp]?b?)$/i);return null===r?null:(n=parseFloat(t),isFinite(n)?(r[5]&&(n*={b:1,k:1024,kb:1024,mb:1048576,m:1048576,gb:1073741824,g:1073741824,tb:1099511627776,t:1099511627776,pb:0x4000000000000,p:0x4000000000000}[r[5]]),n=Math.round(n),n):null)},formatDate:(e,t)=>(void 0===window.TESTING&&rs.debug&&ue.warn("OC.Util.formatDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment"),t=t||"LLL",ft()(e).format(t)),relativeModifiedDate(e){void 0===window.TESTING&&rs.debug&&ue.warn("OC.Util.relativeModifiedDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment");const n=ft()().diff(ft()(e));return n>=0&&n<45e3?t("core","seconds ago"):ft()(e).fromNow()},getScrollBarWidth(){if(this._scrollBarWidth)return this._scrollBarWidth;const e=document.createElement("p");e.style.width="100%",e.style.height="200px";const t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);const n=e.offsetWidth;t.style.overflow="scroll";let r=e.offsetWidth;return n===r&&(r=t.clientWidth),document.body.removeChild(t),this._scrollBarWidth=n-r,this._scrollBarWidth},stripTime:e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),naturalSortCompare(e,t){let n;const r=Xo(e),o=Xo(t);for(n=0;r[n]&&o[n];n++)if(r[n]!==o[n]){const e=Number(r[n]),t=Number(o[n]);return e==r[n]&&t==o[n]?e-t:r[n].localeCompare(o[n],rs.getLanguage())}return r.length-o.length},waitFor(e,t){const n=function(){!0!==e()&&setTimeout(n,t)};n()},isCookieSetToValue(e,t){const n=document.cookie.split(";");for(let r=0;r!$_",appConfig:Fe,appswebroots:Ue,config:De,currentUser:$e,dialogs:Qe,EventSource:Xe,MimeType:o,getCurrentUser:function(){return{uid:$e,displayName:qe}},isUserAdmin:()=>Re,L10N:et,registerXHRForErrorProcessing:()=>{},getCapabilities:function(){return OC.debug&&ue.warn("OC.getCapabilities is deprecated and will be removed in Nextcloud 21. See @nextcloud/capabilities"),(0,Me.F)()},basename:Ie.P8,encodePath:Ie.O0,dirname:Ie.pD,isSamePath:Ie.ys,joinPaths:Ie.fj,getCanonicalLocale:A.lO,getLocale:A.JK,getLanguage:A.Z0,buildQueryString:function(e){return e?new URLSearchParams(e).toString():""},parseQueryString:function(e){const t=new URLSearchParams(e);return Object.fromEntries(t.entries())},msg:st,PasswordConfirmation:it,Plugins:lt,theme:ct,Util:es,debug:He,filePath:l.fg,generateUrl:l.Jv,getRootPath:l.aU,imagePath:l.d0,requestToken:Ge(),linkTo:l.uM,linkToOCS:(e,t)=>(0,l.KT)(e,{},{ocsVersion:t||1})+"/",linkToRemote:l.dC,linkToRemoteBase:function(e){return(0,l.aU)()+"/remote.php/"+e},webroot:ns};(0,Be.B1)("csrf-token-update",e=>{OC.requestToken=e.token,ue.info("OC.requestToken changed",{token:e.token})});const os={data:()=>({OC:rs}),methods:{t:et.translate.bind(et),n:et.translatePlural.bind(et)}};a.Ay.mixin(os),(new(a.Ay.extend(Le))).$mount("#login")},88163(e,t,n){"use strict";var r=n(71354),o=n.n(r),s=n(76314),a=n.n(s)()(o());a.push([e.id,".button-vue[data-v-bbf83d00]{margin-top:.5rem}","",{version:3,sources:["webpack://./core/src/components/login/LoginButton.vue"],names:[],mappings:"AACA,6BACC,gBAAA",sourcesContent:["\n.button-vue {\n\tmargin-top: .5rem;\n}\n"],sourceRoot:""}]);const i=a;n.d(t,["A",0,i])},80073(e,t,n){"use strict";var r=n(71354),o=n.n(r),s=n(76314),a=n.n(s)()(o());a.push([e.id,".login-form[data-v-fac76c6a]{text-align:start;font-size:1rem;margin:0}.login-form__fieldset[data-v-fac76c6a]{width:100%;display:flex;flex-direction:column;gap:.5rem}.login-form__headline[data-v-fac76c6a]{text-align:center;overflow-wrap:anywhere}.login-form[data-v-fac76c6a] input:invalid:not(:user-invalid){border-color:var(--color-border-maxcontrast) !important}","",{version:3,sources:["webpack://./core/src/components/login/LoginForm.vue"],names:[],mappings:"AACA,6BACC,gBAAA,CACA,cAAA,CACA,QAAA,CAEA,uCACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,SAAA,CAGD,uCACC,iBAAA,CACA,sBAAA,CAID,8DACC,uDAAA",sourcesContent:["\n.login-form {\n\ttext-align: start;\n\tfont-size: 1rem;\n\tmargin: 0;\n\n\t&__fieldset {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: .5rem;\n\t}\n\n\t&__headline {\n\t\ttext-align: center;\n\t\toverflow-wrap: anywhere;\n\t}\n\n\t// Only show the error state if the user interacted with the login box\n\t:deep(input:invalid:not(:user-invalid)) {\n\t\tborder-color: var(--color-border-maxcontrast) !important;\n\t}\n}\n"],sourceRoot:""}]);const i=a;n.d(t,["A",0,i])},31813(e,t,n){"use strict";var r=n(71354),o=n.n(r),s=n(76314),a=n.n(s)()(o());a.push([e.id,".password-less-login-form[data-v-25758ef3]{display:flex;flex-direction:column;gap:.5rem;margin:0}","",{version:3,sources:["webpack://./core/src/components/login/PasswordLessLoginForm.vue"],names:[],mappings:"AACA,2CACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,QAAA",sourcesContent:["\n.password-less-login-form {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 0.5rem;\n\tmargin: 0;\n}\n"],sourceRoot:""}]);const i=a;n.d(t,["A",0,i])},4739(e,t,n){"use strict";var r=n(71354),o=n.n(r),s=n(76314),a=n.n(s)()(o());a.push([e.id,".reset-password-form[data-v-759a0fdd]{display:flex;flex-direction:column;gap:.5rem;width:100%}","",{version:3,sources:["webpack://./core/src/components/login/ResetPassword.vue"],names:[],mappings:"AACA,sCACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,UAAA",sourcesContent:["\n.reset-password-form {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: .5rem;\n\twidth: 100%;\n}\n"],sourceRoot:""}]);const i=a;n.d(t,["A",0,i])},51112(e,t,n){"use strict";var r=n(71354),o=n.n(r),s=n(76314),a=n.n(s)()(o());a.push([e.id,".login-box[data-v-518c0816]{width:320px;box-sizing:border-box}.login-box__wrapper[data-v-518c0816]{display:flex;flex-direction:column;gap:calc(2*var(--default-grid-baseline))}.login-box__alternative-logins[data-v-518c0816]{display:flex;flex-direction:column;gap:.75rem}.fade-enter-active[data-v-518c0816],.fade-leave-active[data-v-518c0816]{transition:opacity .3s}.fade-enter[data-v-518c0816],.fade-leave-to[data-v-518c0816]{opacity:0}","",{version:3,sources:["webpack://./core/src/views/Login.vue"],names:[],mappings:"AACA,4BAEC,WAAA,CACA,qBAAA,CAEA,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CAGD,gDACC,YAAA,CACA,qBAAA,CACA,UAAA,CAIF,wEACC,sBAAA,CAGD,6DACC,SAAA",sourcesContent:["\n.login-box {\n\t// Same size as dashboard panels\n\twidth: 320px;\n\tbox-sizing: border-box;\n\n\t&__wrapper {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: calc(2 * var(--default-grid-baseline));\n\t}\n\n\t&__alternative-logins {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 0.75rem;\n\t}\n}\n\n.fade-enter-active, .fade-leave-active {\n\ttransition: opacity .3s;\n}\n\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n\topacity: 0;\n}\n"],sourceRoot:""}]);const i=a;n.d(t,["A",0,i])},81604(e,t,n){"use strict";var r=n(71354),o=n.n(r),s=n(76314),a=n.n(s)()(o());a.push([e.id,"\nfieldset[data-v-2c0ecaf9] {\n\ttext-align: center;\n}\ninput[type=submit][data-v-2c0ecaf9] {\n\tmargin-top: 20px;\n}\n","",{version:3,sources:["webpack://./core/src/components/login/UpdatePassword.vue"],names:[],mappings:";AAmIA;CACA,kBAAA;AACA;AAEA;CACA,gBAAA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LoginButton.vue?vue&type=template&id=bbf83d00&scoped=true\"\nimport script from \"./LoginButton.vue?vue&type=script&lang=js\"\nexport * from \"./LoginButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bbf83d00\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcButton',{attrs:{\"variant\":\"primary\",\"type\":\"submit\",\"wide\":true,\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.$emit('click')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('div',{staticClass:\"submit-wrapper__icon icon-loading-small-dark\"}):_c('ArrowRight',{staticClass:\"submit-wrapper__icon\"})]},proxy:true}])},[_vm._v(\"\\n\\t\"+_vm._s(!_vm.loading ? _vm.value : _vm.valueLoading)+\"\\n\\t\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\tcomputed: {\n\t\tuserNameInputLengthIs255() {\n\t\t\treturn this.user.length >= 255\n\t\t},\n\t\tuserInputHelperText() {\n\t\t\tif (this.userNameInputLengthIs255) {\n\t\t\t\treturn t('core', 'Email length is at max (255)')\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=fac76c6a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=fac76c6a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LoginForm.vue?vue&type=template&id=fac76c6a&scoped=true\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=js\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoginForm.vue?vue&type=style&index=0&id=fac76c6a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fac76c6a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{ref:\"loginForm\",staticClass:\"login-form\",attrs:{\"method\":\"post\",\"name\":\"login\",\"action\":_vm.loginActionUrl},on:{\"submit\":_vm.submit}},[_c('fieldset',{staticClass:\"login-form__fieldset\",attrs:{\"data-login-form\":\"\"}},[(_vm.apacheAuthFailed)?_c('NcNoteCard',{attrs:{\"title\":_vm.t('core', 'Server side authentication failed!'),\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Please contact your administrator.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.csrfCheckFailed)?_c('NcNoteCard',{attrs:{\"heading\":_vm.t('core', 'Session error'),\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'It appears your session token has expired, please refresh the page and try again.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.messages.length > 0)?_c('NcNoteCard',_vm._l((_vm.messages),function(message,index){return _c('div',{key:index},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(message)),_c('br')])}),0):_vm._e(),_vm._v(\" \"),(_vm.internalException)?_c('NcNoteCard',{class:_vm.t('core', 'An internal error occurred.'),attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Please try again or contact your administrator.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"hidden\",attrs:{\"id\":\"message\"}},[_c('img',{staticClass:\"float-spinner\",attrs:{\"alt\":\"\",\"src\":_vm.loadingIcon}}),_vm._v(\" \"),_c('span',{attrs:{\"id\":\"messageText\"}}),_vm._v(\" \"),_c('div',{staticStyle:{\"clear\":\"both\"}})]),_vm._v(\" \"),_c('h2',{staticClass:\"login-form__headline\",attrs:{\"data-login-form-headline\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.headlineText)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextField',{ref:\"user\",class:{ shake: _vm.invalidPassword },attrs:{\"id\":\"user\",\"label\":_vm.loginText,\"name\":\"user\",\"maxlength\":255,\"autocapitalize\":\"none\",\"spellchecking\":false,\"autocomplete\":_vm.autoCompleteAllowed ? 'username' : 'off',\"required\":\"\",\"error\":_vm.userNameInputLengthIs255,\"helper-text\":_vm.userInputHelperText,\"data-login-form-input-user\":\"\"},on:{\"change\":_vm.updateUsername},model:{value:(_vm.user),callback:function ($$v) {_vm.user=$$v},expression:\"user\"}}),_vm._v(\" \"),_c('NcPasswordField',{ref:\"password\",class:{ shake: _vm.invalidPassword },attrs:{\"id\":\"password\",\"name\":\"password\",\"spellchecking\":false,\"autocapitalize\":\"none\",\"autocomplete\":_vm.autoCompleteAllowed ? 'current-password' : 'off',\"label\":_vm.t('core', 'Password'),\"helper-text\":_vm.errorLabel,\"error\":_vm.isError,\"visible\":_vm.visible,\"data-login-form-input-password\":\"\",\"required\":\"\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_vm._v(\" \"),(_vm.remembermeAllowed)?_c('NcCheckboxRadioSwitch',{ref:\"rememberme\",attrs:{\"id\":\"rememberme\",\"name\":\"rememberme\",\"value\":\"1\",\"data-login-form-input-rememberme\":\"\"},model:{value:(_vm.rememberme),callback:function ($$v) {_vm.rememberme=$$v},expression:\"rememberme\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Remember me'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('LoginButton',{attrs:{\"data-login-form-submit\":\"\",\"loading\":_vm.loading}}),_vm._v(\" \"),(_vm.redirectUrl)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"redirect_url\"},domProps:{\"value\":_vm.redirectUrl}}):_vm._e(),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"timezone\"},domProps:{\"value\":_vm.timezone}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"timezone_offset\"},domProps:{\"value\":_vm.timezoneOffset}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"requesttoken\"},domProps:{\"value\":_vm.requestToken}}),_vm._v(\" \"),(_vm.directLogin)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"direct\",\"value\":\"1\"}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * A custom Error used to return a more nuanced error detailing _why_ one of the eight documented\n * errors in the spec was raised after calling `navigator.credentials.create()` or\n * `navigator.credentials.get()`:\n *\n * - `AbortError`\n * - `ConstraintError`\n * - `InvalidStateError`\n * - `NotAllowedError`\n * - `NotSupportedError`\n * - `SecurityError`\n * - `TypeError`\n * - `UnknownError`\n *\n * Error messages were determined through investigation of the spec to determine under which\n * scenarios a given error would be raised.\n */\nexport class WebAuthnError extends Error {\n constructor({ message, code, cause, name, }) {\n // @ts-ignore: help Rollup understand that `cause` is okay to set\n super(message, { cause });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = name ?? cause.name;\n this.code = code;\n }\n}\n","class BaseWebAuthnAbortService {\n constructor() {\n Object.defineProperty(this, \"controller\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n }\n createNewAbortSignal() {\n // Abort any existing calls to navigator.credentials.create() or navigator.credentials.get()\n if (this.controller) {\n const abortError = new Error('Cancelling existing WebAuthn API call for new one');\n abortError.name = 'AbortError';\n this.controller.abort(abortError);\n }\n const newController = new AbortController();\n this.controller = newController;\n return newController.signal;\n }\n cancelCeremony() {\n if (this.controller) {\n const abortError = new Error('Manually cancelling existing WebAuthn API call');\n abortError.name = 'AbortError';\n this.controller.abort(abortError);\n this.controller = undefined;\n }\n }\n}\n/**\n * A service singleton to help ensure that only a single WebAuthn ceremony is active at a time.\n *\n * Users of **@simplewebauthn/browser** shouldn't typically need to use this, but it can help e.g.\n * developers building projects that use client-side routing to better control the behavior of\n * their UX in response to router navigation events.\n */\nexport const WebAuthnAbortService = new BaseWebAuthnAbortService();\n","/**\n * Convert the given array buffer into a Base64URL-encoded string. Ideal for converting various\n * credential response ArrayBuffers to string for sending back to the server as JSON.\n *\n * Helper method to compliment `base64URLStringToBuffer`\n */\nexport function bufferToBase64URLString(buffer) {\n const bytes = new Uint8Array(buffer);\n let str = '';\n for (const charCode of bytes) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n return base64String.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n}\n","/**\n * Convert from a Base64URL-encoded string to an Array Buffer. Best used when converting a\n * credential ID from a JSON string to an ArrayBuffer, like in allowCredentials or\n * excludeCredentials\n *\n * Helper method to compliment `bufferToBase64URLString`\n */\nexport function base64URLStringToBuffer(base64URLString) {\n // Convert from Base64URL to Base64\n const base64 = base64URLString.replace(/-/g, '+').replace(/_/g, '/');\n /**\n * Pad with '=' until it's a multiple of four\n * (4 - (85 % 4 = 1) = 3) % 4 = 3 padding\n * (4 - (86 % 4 = 2) = 2) % 4 = 2 padding\n * (4 - (87 % 4 = 3) = 1) % 4 = 1 padding\n * (4 - (88 % 4 = 0) = 4) % 4 = 0 padding\n */\n const padLength = (4 - (base64.length % 4)) % 4;\n const padded = base64.padEnd(base64.length + padLength, '=');\n // Convert to a binary string\n const binary = atob(padded);\n // Convert binary string to buffer\n const buffer = new ArrayBuffer(binary.length);\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return buffer;\n}\n","/**\n * Determine if the browser is capable of Webauthn\n */\nexport function browserSupportsWebAuthn() {\n return _browserSupportsWebAuthnInternals.stubThis(globalThis?.PublicKeyCredential !== undefined &&\n typeof globalThis.PublicKeyCredential === 'function');\n}\n/**\n * Make it possible to stub the return value during testing\n * @ignore Don't include this in docs output\n */\nexport const _browserSupportsWebAuthnInternals = {\n stubThis: (value) => value,\n};\n","import { browserSupportsWebAuthn } from './browserSupportsWebAuthn.js';\n/**\n * Determine if the browser supports conditional UI, so that WebAuthn credentials can\n * be shown to the user in the browser's typical password autofill popup.\n */\nexport function browserSupportsWebAuthnAutofill() {\n if (!browserSupportsWebAuthn()) {\n return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n }\n /**\n * I don't like the `as unknown` here but there's a `declare var PublicKeyCredential` in\n * TS' DOM lib that's making it difficult for me to just go `as PublicKeyCredentialFuture` as I\n * want. I think I'm fine with this for now since it's _supposed_ to be temporary, until TS types\n * have a chance to catch up.\n */\n const globalPublicKeyCredential = globalThis\n .PublicKeyCredential;\n if (globalPublicKeyCredential?.isConditionalMediationAvailable === undefined) {\n return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n }\n return _browserSupportsWebAuthnAutofillInternals.stubThis(globalPublicKeyCredential.isConditionalMediationAvailable());\n}\n// Make it possible to stub the return value during testing\nexport const _browserSupportsWebAuthnAutofillInternals = {\n stubThis: (value) => value,\n};\n","import { base64URLStringToBuffer } from './base64URLStringToBuffer.js';\nexport function toPublicKeyCredentialDescriptor(descriptor) {\n const { id } = descriptor;\n return {\n ...descriptor,\n id: base64URLStringToBuffer(id),\n /**\n * `descriptor.transports` is an array of our `AuthenticatorTransportFuture` that includes newer\n * transports that TypeScript's DOM lib is ignorant of. Convince TS that our list of transports\n * are fine to pass to WebAuthn since browsers will recognize the new value.\n */\n transports: descriptor.transports,\n };\n}\n","const attachments = ['cross-platform', 'platform'];\n/**\n * If possible coerce a `string` value into a known `AuthenticatorAttachment`\n */\nexport function toAuthenticatorAttachment(attachment) {\n if (!attachment) {\n return;\n }\n if (attachments.indexOf(attachment) < 0) {\n return;\n }\n return attachment;\n}\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LockOpen.vue?vue&type=template&id=d7513faa\"\nimport script from \"./LockOpen.vue?vue&type=script&lang=js\"\nexport * from \"./LockOpen.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-open-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10A2,2 0 0,1 6,8H15V6A3,3 0 0,0 12,3A3,3 0 0,0 9,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\n/**\n *\n * @param user\n */\nfunction getLogger(user) {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport { startAuthentication as startWebauthnAuthentication } from '@simplewebauthn/browser';\nimport logger from '../logger.js';\nexport class NoValidCredentials extends Error {\n}\n/**\n * Start webautn authentication\n * This loads the challenge, connects to the authenticator and returns the repose that needs to be sent to the server.\n *\n * @param loginName Name to login\n */\nexport async function startAuthentication(loginName) {\n const url = generateUrl('/login/webauthn/start');\n const { data } = await Axios.post(url, { loginName });\n if (!data.allowCredentials || data.allowCredentials.length === 0) {\n logger.error('No valid credentials returned for webauthn');\n throw new NoValidCredentials();\n }\n return await startWebauthnAuthentication({ optionsJSON: data });\n}\n/**\n * Verify webauthn authentication\n *\n * @param authData The authentication data to sent to the server\n */\nexport async function finishAuthentication(authData) {\n const url = generateUrl('/login/webauthn/finish');\n const { data } = await Axios.post(url, { data: JSON.stringify(authData) });\n return data;\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=script&lang=js\"","import { bufferToBase64URLString } from '../helpers/bufferToBase64URLString.js';\nimport { base64URLStringToBuffer } from '../helpers/base64URLStringToBuffer.js';\nimport { browserSupportsWebAuthn } from '../helpers/browserSupportsWebAuthn.js';\nimport { browserSupportsWebAuthnAutofill } from '../helpers/browserSupportsWebAuthnAutofill.js';\nimport { toPublicKeyCredentialDescriptor } from '../helpers/toPublicKeyCredentialDescriptor.js';\nimport { identifyAuthenticationError } from '../helpers/identifyAuthenticationError.js';\nimport { WebAuthnAbortService } from '../helpers/webAuthnAbortService.js';\nimport { toAuthenticatorAttachment } from '../helpers/toAuthenticatorAttachment.js';\n/**\n * Begin authenticator \"login\" via WebAuthn assertion\n *\n * @param optionsJSON Output from **@simplewebauthn/server**'s `generateAuthenticationOptions()`\n * @param useBrowserAutofill (Optional) Initialize conditional UI to enable logging in via browser autofill prompts. Defaults to `false`.\n * @param verifyBrowserAutofillInput (Optional) Ensure a suitable `` element is present when `useBrowserAutofill` is `true`. Defaults to `true`.\n */\nexport async function startAuthentication(options) {\n // @ts-ignore: Intentionally check for old call structure to warn about improper API call\n if (!options.optionsJSON && options.challenge) {\n console.warn('startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.');\n // @ts-ignore: Reassign the options, passed in as a positional argument, to the expected variable\n options = { optionsJSON: options };\n }\n const { optionsJSON, useBrowserAutofill = false, verifyBrowserAutofillInput = true, } = options;\n if (!browserSupportsWebAuthn()) {\n throw new Error('WebAuthn is not supported in this browser');\n }\n // We need to avoid passing empty array to avoid blocking retrieval\n // of public key\n let allowCredentials;\n if (optionsJSON.allowCredentials?.length !== 0) {\n allowCredentials = optionsJSON.allowCredentials?.map(toPublicKeyCredentialDescriptor);\n }\n // We need to convert some values to Uint8Arrays before passing the credentials to the navigator\n const publicKey = {\n ...optionsJSON,\n challenge: base64URLStringToBuffer(optionsJSON.challenge),\n allowCredentials,\n };\n // Prepare options for `.get()`\n const getOptions = {};\n /**\n * Set up the page to prompt the user to select a credential for authentication via the browser's\n * input autofill mechanism.\n */\n if (useBrowserAutofill) {\n if (!(await browserSupportsWebAuthnAutofill())) {\n throw Error('Browser does not support WebAuthn autofill');\n }\n // Check for an with \"webauthn\" in its `autocomplete` attribute\n const eligibleInputs = document.querySelectorAll(\"input[autocomplete$='webauthn']\");\n // WebAuthn autofill requires at least one valid input\n if (eligibleInputs.length < 1 && verifyBrowserAutofillInput) {\n throw Error('No with \"webauthn\" as the only or last value in its `autocomplete` attribute was detected');\n }\n // `CredentialMediationRequirement` doesn't know about \"conditional\" yet as of\n // typescript@4.6.3\n getOptions.mediation = 'conditional';\n // Conditional UI requires an empty allow list\n publicKey.allowCredentials = [];\n }\n // Finalize options\n getOptions.publicKey = publicKey;\n // Set up the ability to cancel this request if the user attempts another\n getOptions.signal = WebAuthnAbortService.createNewAbortSignal();\n // Wait for the user to complete assertion\n let credential;\n try {\n credential = (await navigator.credentials.get(getOptions));\n }\n catch (err) {\n throw identifyAuthenticationError({ error: err, options: getOptions });\n }\n if (!credential) {\n throw new Error('Authentication was not completed');\n }\n const { id, rawId, response, type } = credential;\n let userHandle = undefined;\n if (response.userHandle) {\n userHandle = bufferToBase64URLString(response.userHandle);\n }\n // Convert values to base64 to make it easier to send back to the server\n return {\n id,\n rawId: bufferToBase64URLString(rawId),\n response: {\n authenticatorData: bufferToBase64URLString(response.authenticatorData),\n clientDataJSON: bufferToBase64URLString(response.clientDataJSON),\n signature: bufferToBase64URLString(response.signature),\n userHandle,\n },\n type,\n clientExtensionResults: credential.getClientExtensionResults(),\n authenticatorAttachment: toAuthenticatorAttachment(credential.authenticatorAttachment),\n };\n}\n","import { isValidDomain } from './isValidDomain.js';\nimport { WebAuthnError } from './webAuthnError.js';\n/**\n * Attempt to intuit _why_ an error was raised after calling `navigator.credentials.get()`\n */\nexport function identifyAuthenticationError({ error, options, }) {\n const { publicKey } = options;\n if (!publicKey) {\n throw Error('options was missing required publicKey property');\n }\n if (error.name === 'AbortError') {\n if (options.signal instanceof AbortSignal) {\n // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 16)\n return new WebAuthnError({\n message: 'Authentication ceremony was sent an abort signal',\n code: 'ERROR_CEREMONY_ABORTED',\n cause: error,\n });\n }\n }\n else if (error.name === 'NotAllowedError') {\n /**\n * Pass the error directly through. Platforms are overloading this error beyond what the spec\n * defines and we don't want to overwrite potentially useful error messages.\n */\n return new WebAuthnError({\n message: error.message,\n code: 'ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY',\n cause: error,\n });\n }\n else if (error.name === 'SecurityError') {\n const effectiveDomain = globalThis.location.hostname;\n if (!isValidDomain(effectiveDomain)) {\n // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 5)\n return new WebAuthnError({\n message: `${globalThis.location.hostname} is an invalid domain`,\n code: 'ERROR_INVALID_DOMAIN',\n cause: error,\n });\n }\n else if (publicKey.rpId !== effectiveDomain) {\n // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 6)\n return new WebAuthnError({\n message: `The RP ID \"${publicKey.rpId}\" is invalid for this domain`,\n code: 'ERROR_INVALID_RP_ID',\n cause: error,\n });\n }\n }\n else if (error.name === 'UnknownError') {\n // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 1)\n // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 12)\n return new WebAuthnError({\n message: 'The authenticator was unable to process the specified options, or could not create a new assertion signature',\n code: 'ERROR_AUTHENTICATOR_GENERAL_ERROR',\n cause: error,\n });\n }\n return error;\n}\n","/**\n * A simple test to determine if a hostname is a properly-formatted domain name\n *\n * A \"valid domain\" is defined here: https://url.spec.whatwg.org/#valid-domain\n *\n * Regex was originally sourced from here, then remixed to add punycode support:\n * https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html\n */\nexport function isValidDomain(hostname) {\n return (\n // Consider localhost valid as well since it's okay wrt Secure Contexts\n hostname === 'localhost' ||\n // Support punycode (ACE) or ascii labels and domains\n /^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(hostname));\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=style&index=0&id=25758ef3&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=style&index=0&id=25758ef3&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PasswordLessLoginForm.vue?vue&type=template&id=25758ef3&scoped=true\"\nimport script from \"./PasswordLessLoginForm.vue?vue&type=script&lang=js\"\nexport * from \"./PasswordLessLoginForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./PasswordLessLoginForm.vue?vue&type=style&index=0&id=25758ef3&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25758ef3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return ((_vm.isHttps || _vm.isLocalhost) && _vm.supportsWebauthn)?_c('form',{ref:\"loginForm\",staticClass:\"password-less-login-form\",attrs:{\"aria-labelledby\":\"password-less-login-form-title\",\"method\":\"post\",\"name\":\"login\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('h2',{attrs:{\"id\":\"password-less-login-form-title\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Log in with a device'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"required\":\"\",\"model-value\":_vm.user,\"autocomplete\":_vm.autoCompleteAllowed ? 'on' : 'off',\"error\":!_vm.validCredentials,\"label\":_vm.t('core', 'Login or email'),\"placeholder\":_vm.t('core', 'Login or email'),\"helper-text\":!_vm.validCredentials ? _vm.t('core', 'Your account is not setup for passwordless login.') : ''},on:{\"update:value\":_vm.changeUsername}}),_vm._v(\" \"),(_vm.validCredentials)?_c('LoginButton',{attrs:{\"loading\":_vm.loading},on:{\"click\":_vm.authenticate}}):_vm._e()],1):(!_vm.isHttps && !_vm.isLocalhost)?_c('NcEmptyContent',{attrs:{\"name\":_vm.t('core', 'Your connection is not secure'),\"description\":_vm.t('core', 'Passwordless authentication is only available over a secure connection.')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockOpenIcon')]},proxy:true}])}):_c('NcEmptyContent',{attrs:{\"name\":_vm.t('core', 'Browser not supported'),\"description\":_vm.t('core', 'Passwordless authentication is not supported in your browser.')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InformationIcon')]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"reset-password-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('h2',[_vm._v(_vm._s(_vm.t('core', 'Reset password')))]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"id\":\"user\",\"name\":\"user\",\"maxlength\":255,\"autocapitalize\":\"off\",\"label\":_vm.t('core', 'Login or email'),\"error\":_vm.userNameInputLengthIs255,\"helper-text\":_vm.userInputHelperText,\"required\":\"\"},on:{\"change\":_vm.updateUsername},model:{value:(_vm.user),callback:function ($$v) {_vm.user=$$v},expression:\"user\"}}),_vm._v(\" \"),_c('LoginButton',{attrs:{\"loading\":_vm.loading,\"value\":_vm.t('core', 'Reset password')}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){return _vm.$emit('abort')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Back to login'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.message === 'send-success')?_c('NcNoteCard',{attrs:{\"type\":\"success\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'If this account exists, a password reset message has been sent to its email address. If you do not receive it, verify your email address and/or Login, check your spam/junk folders or ask your local administration for help.'))+\"\\n\\t\")]):(_vm.message === 'send-error')?_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Couldn\\'t send reset email. Please contact your administrator.'))+\"\\n\\t\")]):(_vm.message === 'reset-error')?_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Password cannot be changed. Please contact your administrator.'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=759a0fdd&scoped=true\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"759a0fdd\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UpdatePassword.vue?vue&type=template&id=2c0ecaf9&scoped=true\"\nimport script from \"./UpdatePassword.vue?vue&type=script&lang=js\"\nexport * from \"./UpdatePassword.vue?vue&type=script&lang=js\"\nimport style0 from \"./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c0ecaf9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('fieldset',[_c('p',[_c('label',{staticClass:\"infield\",attrs:{\"for\":\"password\"}},[_vm._v(_vm._s(_vm.t('core', 'New password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],attrs:{\"id\":\"password\",\"type\":\"password\",\"name\":\"password\",\"autocomplete\":\"new-password\",\"autocapitalize\":\"none\",\"spellcheck\":\"false\",\"required\":\"\",\"placeholder\":_vm.t('core', 'New password')},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing)return;_vm.password=$event.target.value}}})]),_vm._v(\" \"),(_vm.encrypted)?_c('div',{staticClass:\"update\"},[_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your files are encrypted. There will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.proceed),expression:\"proceed\"}],staticClass:\"checkbox\",attrs:{\"id\":\"encrypted-continue\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.proceed)?_vm._i(_vm.proceed,null)>-1:(_vm.proceed)},on:{\"change\":function($event){var $$a=_vm.proceed,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.proceed=$$a.concat([$$v]))}else{$$i>-1&&(_vm.proceed=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.proceed=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"encrypted-continue\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'I know what I\\'m doing'))+\"\\n\\t\\t\\t\")])]):_vm._e(),_vm._v(\" \"),_c('LoginButton',{attrs:{\"loading\":_vm.loading,\"value\":_vm.t('core', 'Reset password'),\"value-loading\":_vm.t('core', 'Resetting password')}}),_vm._v(\" \"),(_vm.error && _vm.message)?_c('p',{class:{ warning: _vm.error }},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\\t\")]):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\n/**\n *\n * @param {string} url the URL to check\n * @return {boolean}\n */\nfunction isRelativeUrl(url) {\n\treturn !url.startsWith('https://') && !url.startsWith('http://')\n}\n\n/**\n * @param {string} url The URL to check\n * @return {boolean} true if the URL points to this nextcloud instance\n */\nfunction isNextcloudUrl(url) {\n\tconst nextcloudBaseUrl = window.location.protocol + '//' + window.location.host + getRootUrl()\n\t// if the URL is absolute and starts with the baseUrl+rootUrl\n\t// OR if the URL is relative and starts with rootUrl\n\treturn url.startsWith(nextcloudBaseUrl)\n\t\t|| (isRelativeUrl(url) && url.startsWith(getRootUrl()))\n}\n\n/**\n * Check if a user was logged in but is now logged-out.\n * If this is the case then the user will be forwarded to the login page.\n *\n * @return {Promise}\n */\nasync function checkLoginStatus() {\n\t// skip if no logged in user\n\tif (getCurrentUser() === null) {\n\t\treturn\n\t}\n\n\t// skip if already running\n\tif (checkLoginStatus.running === true) {\n\t\treturn\n\t}\n\n\t// only run one request in parallel\n\tcheckLoginStatus.running = true\n\n\ttry {\n\t\t// We need to check this as a 401 in the first place could also come from other reasons\n\t\tconst { status } = await window.fetch(generateUrl('/apps/files'))\n\t\tif (status === 401) {\n\t\t\tlogger.warn('User session was terminated, forwarding to login page.')\n\t\t\tawait wipeBrowserStorages()\n\t\t\twindow.location = generateUrl('/login?redirect_url={url}', {\n\t\t\t\turl: window.location.pathname + window.location.search + window.location.hash,\n\t\t\t})\n\t\t}\n\t} catch (error) {\n\t\tlogger.warn('Could not check login-state', { error })\n\t} finally {\n\t\tdelete checkLoginStatus.running\n\t}\n}\n\n/**\n * Clear all Browser storages connected to current origin.\n *\n * @return {Promise}\n */\nexport async function wipeBrowserStorages() {\n\ttry {\n\t\twindow.localStorage.clear()\n\t\twindow.sessionStorage.clear()\n\t\tconst indexedDBList = await window.indexedDB.databases()\n\t\tfor (const indexedDB of indexedDBList) {\n\t\t\tawait window.indexedDB.deleteDatabase(indexedDB.name)\n\t\t}\n\t\tlogger.debug('Browser storages cleared')\n\t} catch (error) {\n\t\tlogger.error('Could not clear browser storages', { error })\n\t}\n}\n\n/**\n * Intercept XMLHttpRequest and fetch API calls to add X-Requested-With header\n *\n * This is also done in @nextcloud/axios but not all requests pass through that\n */\nexport function interceptRequests() {\n\tXMLHttpRequest.prototype.open = (function(open) {\n\t\treturn function(method, url) {\n\t\t\topen.apply(this, arguments)\n\t\t\tif (isNextcloudUrl(url)) {\n\t\t\t\tif (!this.getResponseHeader('X-Requested-With')) {\n\t\t\t\t\tthis.setRequestHeader('X-Requested-With', 'XMLHttpRequest')\n\t\t\t\t}\n\t\t\t\tthis.addEventListener('loadend', function() {\n\t\t\t\t\tif (this.status === 401) {\n\t\t\t\t\t\tcheckLoginStatus()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t})(XMLHttpRequest.prototype.open)\n\n\twindow.fetch = (function(fetch) {\n\t\treturn async (resource, options) => {\n\t\t\t// fetch allows the `input` to be either a Request object or any stringifyable value\n\t\t\tif (!isNextcloudUrl(resource.url ?? resource.toString())) {\n\t\t\t\treturn await fetch(resource, options)\n\t\t\t}\n\t\t\tif (!options) {\n\t\t\t\toptions = {}\n\t\t\t}\n\t\t\tif (!options.headers) {\n\t\t\t\toptions.headers = new Headers()\n\t\t\t}\n\n\t\t\tif (options.headers instanceof Headers && !options.headers.has('X-Requested-With')) {\n\t\t\t\toptions.headers.append('X-Requested-With', 'XMLHttpRequest')\n\t\t\t} else if (options.headers instanceof Object && !options.headers['X-Requested-With']) {\n\t\t\t\toptions.headers['X-Requested-With'] = 'XMLHttpRequest'\n\t\t\t}\n\n\t\t\tconst response = await fetch(resource, options)\n\t\t\tif (response.status === 401) {\n\t\t\t\tcheckLoginStatus()\n\t\t\t}\n\t\t\treturn response\n\t\t}\n\t})(window.fetch)\n}\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=518c0816&scoped=true\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"518c0816\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"guest-box login-box\"},[(!_vm.hideLoginForm || _vm.directLogin)?[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(!_vm.passwordlessLogin && !_vm.resetPassword && _vm.resetPasswordTarget === '')?_c('div',{staticClass:\"login-box__wrapper\"},[_c('LoginForm',{attrs:{\"username\":_vm.user,\"redirect-url\":_vm.redirectUrl,\"direct-login\":_vm.directLogin,\"messages\":_vm.messages,\"errors\":_vm.errors,\"throttle-delay\":_vm.throttleDelay,\"auto-complete-allowed\":_vm.autoCompleteAllowed,\"rememberme-allowed\":_vm.remembermeAllowed,\"email-states\":_vm.emailStates},on:{\"update:username\":function($event){_vm.user=$event},\"submit\":function($event){_vm.loading = true}}}),_vm._v(\" \"),(_vm.hasPasswordless)?_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){$event.preventDefault();_vm.passwordlessLogin = true}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Log in with a device'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.canResetPassword && _vm.resetPasswordLink !== '')?_c('NcButton',{attrs:{\"id\":\"lost-password\",\"href\":_vm.resetPasswordLink,\"variant\":\"tertiary-no-background\",\"wide\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Forgot password?'))+\"\\n\\t\\t\\t\\t\")]):(_vm.canResetPassword && !_vm.resetPassword)?_c('NcButton',{attrs:{\"id\":\"lost-password\",\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){$event.preventDefault();_vm.resetPassword = true}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Forgot password?'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1):(!_vm.loading && _vm.passwordlessLogin)?_c('div',{key:\"reset-pw-less\",staticClass:\"login-additional login-box__wrapper\"},[_c('PasswordLessLoginForm',{attrs:{\"username\":_vm.user,\"redirect-url\":_vm.redirectUrl,\"auto-complete-allowed\":_vm.autoCompleteAllowed,\"is-https\":_vm.isHttps,\"is-localhost\":_vm.isLocalhost},on:{\"update:username\":function($event){_vm.user=$event},\"submit\":function($event){_vm.loading = true}}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('core', 'Back to login form'),\"wide\":true},on:{\"click\":function($event){_vm.passwordlessLogin = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Back'))+\"\\n\\t\\t\\t\\t\")])],1):(!_vm.loading && _vm.canResetPassword)?_c('div',{key:\"reset-can-reset\",staticClass:\"login-additional\"},[_c('div',{staticClass:\"lost-password-container\"},[(_vm.resetPassword)?_c('ResetPassword',{attrs:{\"username\":_vm.user,\"reset-password-link\":_vm.resetPasswordLink},on:{\"update:username\":function($event){_vm.user=$event},\"abort\":function($event){_vm.resetPassword = false}}}):_vm._e()],1)]):(_vm.resetPasswordTarget !== '')?_c('div',[_c('UpdatePassword',{attrs:{\"username\":_vm.user,\"reset-password-target\":_vm.resetPasswordTarget},on:{\"update:username\":function($event){_vm.user=$event},\"done\":_vm.passwordResetFinished}})],1):_vm._e()])]:[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('NcNoteCard',{attrs:{\"type\":\"info\",\"title\":_vm.t('core', 'Login form is disabled.')}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'The Nextcloud login form is disabled. Use another login option if available or contact your administration.'))+\"\\n\\t\\t\\t\")])],1)],_vm._v(\" \"),_c('div',{staticClass:\"login-box__alternative-logins\",attrs:{\"id\":\"alternative-logins\"}},_vm._l((_vm.alternativeLogins),function(alternativeLogin,index){return _c('NcButton',{key:index,class:[alternativeLogin.class],attrs:{\"variant\":\"secondary\",\"wide\":true,\"role\":\"link\",\"href\":alternativeLogin.href}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(alternativeLogin.name)+\"\\n\\t\\t\")])}),1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst isAdmin = !!window._oc_isadmin\n\n/**\n * Returns whether the current user is an administrator\n *\n * @return {boolean} true if the user is an admin, false otherwise\n * @since 9.0.0\n */\nexport const isUserAdmin = () => isAdmin\n","/*!\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @deprecated 16.0.0 Use OCP.AppConfig instead\n */\nexport const appConfig = window.oc_appconfig || {}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst appswebroots = (window._oc_appswebroots !== undefined) ? window._oc_appswebroots : false\n\nexport default appswebroots\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst config = window._oc_config || {}\n\nexport default config\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst rawUid = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user')\nconst displayName = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user-displayname')\n\nexport const currentUser = rawUid !== undefined ? rawUid : false\n\n/**\n *\n */\nexport function getCurrentUser() {\n\treturn {\n\t\tuid: currentUser,\n\t\tdisplayName,\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst base = window._oc_debug\n\nexport const debug = base\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport IconMove from '@mdi/svg/svg/folder-move.svg?raw'\nimport IconCopy from '@mdi/svg/svg/folder-multiple-outline.svg?raw'\nimport { DialogBuilder, FilePickerType, getFilePickerBuilder } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport { basename } from 'path'\nimport { defineAsyncComponent } from 'vue'\nimport logger from '../logger.js'\n\n/**\n * this class to ease the usage of dialogs\n */\nconst Dialogs = {\n\t// dialog button types\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tYES_NO_BUTTONS: 70,\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tOK_BUTTONS: 71,\n\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CHOOSE: 1,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_MOVE: 2,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY: 3,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY_MOVE: 4,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CUSTOM: 5,\n\n\t/**\n\t * displays alert dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\talert: function(text, title, callback, modal) {\n\t\tthis.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'alert',\n\t\t\tDialogs.OK_BUTTON,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\n\t/**\n\t * displays info dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tinfo: function(text, title, callback, modal) {\n\t\tthis.message(text, title, 'info', Dialogs.OK_BUTTON, callback, modal)\n\t},\n\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirm: function(text, title, callback, modal) {\n\t\treturn this.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'notice',\n\t\t\tDialogs.YES_NO_BUTTONS,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {(number|{type: number, confirm: string, cancel: string, confirmClasses: string})} buttons text content of buttons\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmDestructive: function(text, title, buttons = Dialogs.OK_BUTTONS, callback = () => {}) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(text)\n\t\t\t.setButtons(buttons === Dialogs.OK_BUTTONS\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\t\t\tvariant: 'error',\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: Dialogs._getLegacyButtons(buttons, callback))\n\t\t\t.build()\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmHtml: function(text, title, callback) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText('')\n\t\t\t.setButtons([\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'No'),\n\t\t\t\t\tcallback: () => {},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t])\n\t\t\t.build()\n\t\t\t.setHTML(text)\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays prompt dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @param {string} name name of the input field\n\t * @param {boolean} password whether the input should be a password input\n\t * @return {Promise}\n\t *\n\t * @deprecated Use NcDialog from `@nextcloud/vue` instead\n\t */\n\tprompt: function(text, title, callback, modal, name, password) {\n\t\treturn new Promise((resolve) => {\n\t\t\tspawnDialog(\n\t\t\t\tdefineAsyncComponent(() => import('../components/LegacyDialogPrompt.vue')),\n\t\t\t\t{\n\t\t\t\t\ttext,\n\t\t\t\t\tname: title,\n\t\t\t\t\tcallback,\n\t\t\t\t\tinputName: name,\n\t\t\t\t\tisPassword: !!password,\n\t\t\t\t},\n\t\t\t\t(...args) => {\n\t\t\t\t\tcallback(...args)\n\t\t\t\t\tresolve()\n\t\t\t\t},\n\t\t\t)\n\t\t})\n\t},\n\n\t/**\n\t * Legacy wrapper to the new Vue based filepicker from `@nextcloud/dialogs`\n\t *\n\t * Prefer to use the Vue filepicker directly instead.\n\t *\n\t * In order to pick several types of mime types they need to be passed as an\n\t * array of strings.\n\t *\n\t * When no mime type filter is given only files can be selected. In order to\n\t * be able to select both files and folders \"['*', 'httpd/unix-directory']\"\n\t * should be used instead.\n\t *\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses Choose\n\t * @param {boolean} [multiselect] whether it should be possible to select multiple files\n\t * @param {string[]} [mimetype] mimetype to filter by - directories will always be included\n\t * @param {boolean} [_modal] do not use\n\t * @param {string} [type] Type of file picker : Choose, copy, move, copy and move\n\t * @param {string} [path] path to the folder that the the file can be picket from\n\t * @param {object} [options] additonal options that need to be set\n\t * @param {Function} [options.filter] filter function for advanced filtering\n\t * @param {boolean} [options.allowDirectoryChooser] Allow to select directories\n\t * @deprecated since 27.1.0 use the filepicker from `@nextcloud/dialogs` instead\n\t */\n\t// eslint-disable-next-line no-unused-vars\n\tfilepicker(title, callback, multiselect = false, mimetype = undefined, _modal = undefined, type = FilePickerType.Choose, path = undefined, options = undefined) {\n\t\t/**\n\t\t * Create legacy callback wrapper to support old filepicker syntax\n\t\t *\n\t\t * @param fn The original callback\n\t\t * @param type The file picker type which was used to pick the file(s)\n\t\t */\n\t\tconst legacyCallback = (fn, type) => {\n\t\t\tconst getPath = (node) => {\n\t\t\t\tconst root = node?.root || ''\n\t\t\t\tlet path = node?.path || ''\n\t\t\t\t// TODO: Fix this in @nextcloud/files\n\t\t\t\tif (path.startsWith(root)) {\n\t\t\t\t\tpath = path.slice(root.length) || '/'\n\t\t\t\t}\n\t\t\t\treturn path\n\t\t\t}\n\n\t\t\tif (multiselect) {\n\t\t\t\treturn (nodes) => fn(nodes.map(getPath), type)\n\t\t\t} else {\n\t\t\t\treturn (nodes) => fn(getPath(nodes[0]), type)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Coverting a Node into a legacy file info to support the OC.dialogs.filepicker filter function\n\t\t *\n\t\t * @param node The node to convert\n\t\t */\n\t\tconst nodeToLegacyFile = (node) => ({\n\t\t\tid: node.fileid || null,\n\t\t\tpath: node.path,\n\t\t\tmimetype: node.mime || null,\n\t\t\tmtime: node.mtime?.getTime() || null,\n\t\t\tpermissions: node.permissions,\n\t\t\tname: node.attributes?.displayName || node.basename,\n\t\t\tetag: node.attributes?.etag || null,\n\t\t\thasPreview: node.attributes?.hasPreview || null,\n\t\t\tmountType: node.attributes?.mountType || null,\n\t\t\tquotaAvailableBytes: node.attributes?.quotaAvailableBytes || null,\n\t\t\ticon: null,\n\t\t\tsharePermissions: null,\n\t\t})\n\n\t\tconst builder = getFilePickerBuilder(title)\n\n\t\t// Setup buttons\n\t\tif (type === this.FILEPICKER_TYPE_CUSTOM) {\n\t\t\t(options.buttons || []).forEach((button) => {\n\t\t\t\tbuilder.addButton({\n\t\t\t\t\tcallback: legacyCallback(callback, button.type),\n\t\t\t\t\tlabel: button.text,\n\t\t\t\t\tvariant: button.defaultButton ? 'primary' : 'secondary',\n\t\t\t\t})\n\t\t\t})\n\t\t} else {\n\t\t\tbuilder.setButtonFactory((nodes, path) => {\n\t\t\t\tconst buttons = []\n\t\t\t\tconst [node] = nodes\n\t\t\t\tconst target = node?.displayname || node?.basename || basename(path)\n\n\t\t\t\tif (type === FilePickerType.Choose) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Choose),\n\t\t\t\t\t\tlabel: node && !this.multiSelect ? t('core', 'Choose {file}', { file: target }) : t('core', 'Choose'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.CopyMove || type === FilePickerType.Copy) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Copy),\n\t\t\t\t\t\tlabel: target ? t('core', 'Copy to {target}', { target }) : t('core', 'Copy'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\ticon: IconCopy,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.Move || type === FilePickerType.CopyMove) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Move),\n\t\t\t\t\t\tlabel: target ? t('core', 'Move to {target}', { target }) : t('core', 'Move'),\n\t\t\t\t\t\tvariant: type === FilePickerType.Move ? 'primary' : 'secondary',\n\t\t\t\t\t\ticon: IconMove,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn buttons\n\t\t\t})\n\t\t}\n\n\t\tif (mimetype) {\n\t\t\tbuilder.setMimeTypeFilter(typeof mimetype === 'string' ? [mimetype] : (mimetype || []))\n\t\t}\n\t\tif (typeof options?.filter === 'function') {\n\t\t\tbuilder.setFilter((node) => options.filter(nodeToLegacyFile(node)))\n\t\t}\n\t\tbuilder.allowDirectories(options?.allowDirectoryChooser === true || mimetype?.includes('httpd/unix-directory') || false)\n\t\t\t.setMultiSelect(multiselect)\n\t\t\t.startAt(path)\n\t\t\t.build()\n\t\t\t.pick()\n\t},\n\n\t/**\n\t * Displays raw dialog\n\t * You better use a wrapper instead ...\n\t *\n\t * @param content\n\t * @param title\n\t * @param dialogType\n\t * @param buttons\n\t * @param callback\n\t * @param modal\n\t * @param allowHtml\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tmessage: function(content, title, dialogType, buttons, callback = () => {}, modal, allowHtml) {\n\t\tconst builder = (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(allowHtml ? '' : content)\n\t\t\t.setButtons(Dialogs._getLegacyButtons(buttons, callback))\n\n\t\tswitch (dialogType) {\n\t\t\tcase 'alert':\n\t\t\t\tbuilder.setSeverity('warning')\n\t\t\t\tbreak\n\t\t\tcase 'notice':\n\t\t\t\tbuilder.setSeverity('info')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst dialog = builder.build()\n\n\t\tif (allowHtml) {\n\t\t\tdialog.setHTML(content)\n\t\t}\n\n\t\treturn dialog.show().then(() => {\n\t\t\tif (!callback._clicked) {\n\t\t\t\tcallback(false)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Helper for legacy API\n\t *\n\t * @param buttons\n\t * @param callback\n\t * @deprecated\n\t */\n\t_getLegacyButtons(buttons, callback) {\n\t\tconst buttonList = []\n\n\t\tswitch (typeof buttons === 'object' ? buttons.type : buttons) {\n\t\t\tcase Dialogs.YES_NO_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.cancel ?? t('core', 'No'),\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(false)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase Dialogs.OK_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'OK'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error('Invalid call to OC.dialogs')\n\t\t\t\tbreak\n\t\t}\n\t\treturn buttonList\n\t},\n}\n\nexport default Dialogs\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\n/**\n * Get the current CSRF token.\n */\nexport function getRequestToken() {\n return document.head.dataset.requesttoken;\n}\n/**\n * Set a new CSRF token (e.g. because of session refresh).\n * This also emits an event bus event for the updated token.\n *\n * @param token - The new token\n * @fires Error - If the passed token is not a potential valid token\n */\nexport function setRequestToken(token) {\n if (!token || typeof token !== 'string') {\n throw new Error('Invalid CSRF token given', { cause: { token } });\n }\n document.head.dataset.requesttoken = token;\n emit('csrf-token-update', { token });\n}\n/**\n * Fetch the request token from the API.\n * This does also set it on the current context, see `setRequestToken`.\n *\n * @fires Error - If the request failed\n */\nexport async function fetchRequestToken() {\n const url = generateUrl('/csrftoken');\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error('Could not fetch CSRF token from API', { cause: response });\n }\n const { token } = await response.json();\n setRequestToken(token);\n return token;\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken } from './requesttoken.ts'\n\n/**\n * Create a new event source\n *\n * @param {string} src\n * @param {object} [data] to be send as GET\n *\n * @constructs OCEventSource\n */\nfunction OCEventSource(src, data) {\n\tlet dataStr = ''\n\tlet name\n\tlet joinChar\n\tthis.typelessListeners = []\n\tthis.closed = false\n\tif (data) {\n\t\tfor (name in data) {\n\t\t\tdataStr += name + '=' + encodeURIComponent(data[name]) + '&'\n\t\t}\n\t}\n\tdataStr += 'requesttoken=' + encodeURIComponent(getRequestToken())\n\tjoinChar = '&'\n\tif (src.indexOf('?') === -1) {\n\t\tjoinChar = '?'\n\t}\n\tthis.source = new EventSource(src + joinChar + dataStr)\n\tthis.source.onmessage = function(e) {\n\t\tfor (let i = 0; i < this.typelessListeners.length; i++) {\n\t\t\tthis.typelessListeners[i](JSON.parse(e.data))\n\t\t}\n\t}.bind(this)\n\t// add close listener\n\tthis.listen('__internal__', function(data) {\n\t\tif (data === 'close') {\n\t\t\tthis.close()\n\t\t}\n\t}.bind(this))\n}\nOCEventSource.prototype = {\n\ttypelessListeners: [],\n\t/**\n\t * Listen to a given type of events.\n\t *\n\t * @param {string} type event type\n\t * @param {Function} callback event callback\n\t */\n\tlisten: function(type, callback) {\n\t\tif (callback && callback.call) {\n\t\t\tif (type) {\n\t\t\t\tthis.source.addEventListener(type, function(e) {\n\t\t\t\t\tif (typeof e.data !== 'undefined') {\n\t\t\t\t\t\tcallback(JSON.parse(e.data))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback('')\n\t\t\t\t\t}\n\t\t\t\t}, false)\n\t\t\t} else {\n\t\t\t\tthis.typelessListeners.push(callback)\n\t\t\t}\n\t\t}\n\t},\n\t/**\n\t * Closes this event source.\n\t */\n\tclose: function() {\n\t\tthis.closed = true\n\t\tthis.source.close()\n\t},\n}\n\nexport default OCEventSource\n","/**\n * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-FileCopyrightText: 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tloadTranslations,\n\tregister,\n\ttranslate,\n\ttranslatePlural,\n\tunregister,\n} from '@nextcloud/l10n'\n\n/**\n * L10N namespace with localization functions.\n *\n * @namespace OC.L10n\n * @deprecated 26.0.0 use https://www.npmjs.com/package/@nextcloud/l10n\n */\nconst L10n = {\n\n\t/**\n\t * Load an app's translation bundle if not loaded already.\n\t *\n\t * @deprecated 26.0.0 use `loadTranslations` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Function} callback callback to be called when\n\t * the translations are loaded\n\t * @return {Promise} promise\n\t */\n\tload: loadTranslations,\n\n\t/**\n\t * Register an app's translation bundle.\n\t *\n\t * @deprecated 26.0.0 use `register` from https://www.npmjs.com/package/@nextcloud/l10\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Record} bundle bundle\n\t */\n\tregister,\n\n\t/**\n\t * @private\n\t * @deprecated 26.0.0 use `unregister` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\t_unregister: unregister,\n\n\t/**\n\t * Translate a string\n\t *\n\t * @deprecated 26.0.0 use `translate` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} text the string to translate\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {number} [count] number to replace %n with\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @param {boolean} [options.sanitize=true] enable/disable sanitization (by default enabled)\n\t * @return {string}\n\t */\n\ttranslate,\n\n\t/**\n\t * Translate a plural string\n\t *\n\t * @deprecated 26.0.0 use `translatePlural` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} textSingular the string to translate for exactly one object\n\t * @param {string} textPlural the string to translate for n objects\n\t * @param {number} count number to determine whether to use singular or plural\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @return {string} Translated string\n\t */\n\ttranslatePlural,\n}\n\nexport default L10n\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\n\nconst iconCache = new Map()\n\n/**\n * Return the url to icon of the given mimeType\n *\n * @param {string} mimeType The mimeType to get the icon for\n * @return {string} Url to the icon for mimeType\n */\nexport function getIconUrl(mimeType) {\n\tif (typeof mimeType === 'undefined') {\n\t\treturn undefined\n\t}\n\n\twhile (mimeType in window.OC.MimeTypeList.aliases) {\n\t\tmimeType = window.OC.MimeTypeList.aliases[mimeType]\n\t}\n\n\tif (!iconCache.has(mimeType)) {\n\t\tlet gotIcon = false\n\t\tlet path = ''\n\t\t// First try to get the correct icon from the current legacy-theme\n\t\tif (OC.theme.folder !== '' && Array.isArray(OC.MimeTypeList.themes[OC.theme.folder])) {\n\t\t\tpath = getRootUrl() + '/themes/' + window.OC.theme.folder + '/core/img/filetypes/'\n\t\t\tconst icon = getMimeTypeIcon(mimeType, window.OC.MimeTypeList.themes[OC.theme.folder])\n\t\t\tif (icon) {\n\t\t\t\tgotIcon = true\n\t\t\t\tpath += icon + '.svg'\n\t\t\t}\n\t\t}\n\n\t\t// theming is always enabled since Nextcloud 20 so we get it from that\n\t\tif (!gotIcon) {\n\t\t\tpath = generateUrl('/apps/theming/img/core/filetypes/' + getMimeTypeIcon(mimeType, window.OC.MimeTypeList.files) + '.svg')\n\t\t}\n\n\t\tpath += '?v=' + window.OCA.Theming.cacheBuster\n\t\t// Cache the result\n\t\ticonCache.set(mimeType, path)\n\t}\n\n\treturn iconCache.get(mimeType)\n}\n\n/**\n * Return the file icon we want to use for the given mimeType.\n * The file needs to be present in the supplied file list\n *\n * @param {string} mimeType The mimeType we want an icon for\n * @param {string[]} files The available icons in this theme\n * @return {string | null} The icon to use or null if there is no match\n */\nfunction getMimeTypeIcon(mimeType, files) {\n\tconst icon = mimeType.replace(new RegExp('/', 'g'), '-')\n\n\t// Generate path\n\tif (mimeType === 'dir' && files.includes('folder')) {\n\t\treturn 'folder'\n\t} else if (mimeType === 'dir-encrypted' && files.includes('folder-encrypted')) {\n\t\treturn 'folder-encrypted'\n\t} else if (mimeType === 'dir-shared' && files.includes('folder-shared')) {\n\t\treturn 'folder-shared'\n\t} else if (mimeType === 'dir-public' && files.includes('folder-public')) {\n\t\treturn 'folder-public'\n\t} else if ((mimeType === 'dir-external' || mimeType === 'dir-external-root') && files.includes('folder-external')) {\n\t\treturn 'folder-external'\n\t} else if (files.includes(icon)) {\n\t\treturn icon\n\t} else if (files.includes(icon.split('-')[0])) {\n\t\treturn icon.split('-')[0]\n\t} else if (files.includes('file')) {\n\t\treturn 'file'\n\t}\n\n\treturn null\n}\n\n/**\n * Clear the icon cache\n */\nexport function clearIconCache() {\n\ticonCache.clear()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\n/**\n * A little class to manage a status field for a \"saving\" process.\n * It can be used to display a starting message (e.g. \"Saving...\") and then\n * replace it with a green success message or a red error message.\n */\nexport default {\n /**\n * Displayes a \"Saving...\" message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n */\n startSaving(selector) {\n this.startAction(selector, t('core', 'Saving …'));\n },\n /**\n * Displayes a custom message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n * @param message - Plain text message to display (no HTML allowed)\n */\n startAction(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.remove('error');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n el.style.display = 'block';\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selectior for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status - is being used to decide whether the message is displayed as an error/success\n */\n finishedSaving(selector, response) {\n this.finishedAction(selector, response);\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status . Is being used to decide whether the message is displayed as an error/success\n */\n finishedAction(selector, response) {\n if (response.status === 'success') {\n this.finishedSuccess(selector, response.data.message);\n }\n else {\n this.finishedError(selector, response.data.message);\n }\n },\n /**\n * Displayes an success message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text success message to display (no HTML allowed)\n */\n finishedSuccess(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('error');\n el.classList.add('success');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n window.setTimeout(fadeOut, 3000);\n el.style.display = 'block';\n /**\n * Fades out the message element\n */\n function fadeOut() {\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n const animation = el.animate?.([\n { opacity: 1 },\n { opacity: 0 },\n ], {\n duration: 900,\n fill: 'forwards',\n });\n if (animation) {\n animation.addEventListener('finish', () => {\n el.style.display = 'none';\n });\n }\n else {\n window.setTimeout(() => {\n el.style.display = 'none';\n }, 900);\n }\n }\n },\n /**\n * Displayes an error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text error message to display (no HTML allowed)\n */\n finishedError(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.add('error');\n el.style.display = 'block';\n },\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { confirmPassword, isPasswordConfirmationRequired } from '@nextcloud/password-confirmation'\n\n/**\n * @namespace OC.PasswordConfirmation\n */\nexport default {\n\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequiresPasswordConfirmation() {\n\t\treturn isPasswordConfirmationRequired()\n\t},\n\n\t/**\n\t * @param {Function} callback success callback function\n\t * @param {object} options options currently not used by confirmPassword\n\t * @param {Function} rejectCallback error callback function\n\t *\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequirePasswordConfirmation(callback, options, rejectCallback) {\n\t\tconfirmPassword().then(callback, rejectCallback)\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\t/**\n\t * @type {Array.}\n\t */\n\t_plugins: {},\n\n\t/**\n\t * Register plugin\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @param {OC.Plugin} plugin plugin\n\t */\n\tregister(targetName, plugin) {\n\t\tlet plugins = this._plugins[targetName]\n\t\tif (!plugins) {\n\t\t\tplugins = this._plugins[targetName] = []\n\t\t}\n\t\tplugins.push(plugin)\n\t},\n\n\t/**\n\t * Returns all plugin registered to the given target\n\t * name / app name / class name.\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @return {Array.} array of plugins\n\t */\n\tgetPlugins(targetName) {\n\t\treturn this._plugins[targetName] || []\n\t},\n\n\t/**\n\t * Call attach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tattach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].attach) {\n\t\t\t\tplugins[i].attach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Call detach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tdetach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].detach) {\n\t\t\t\tplugins[i].detach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const theme = window._theme || {}\n","// Current version.\nexport var VERSION = '1.13.8';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = (typeof self == 'object' && self.self === self && self) ||\n (typeof global == 'object' && global.global === global && global) ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n","// Is a given value equal to null?\nexport default function isNull(obj) {\n return obj === null;\n}\n","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n return obj === void 0;\n}\n","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n","// Is a given value a DOM element?\nexport default function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\n// Also, there are cases where an application can override the native\n// `DataView` object, in cases like that we can't use the constructor\n// safely and should just rely on alternate `DataView` checks\nexport var hasDataViewBug = (\n supportsDataView && (!/\\[native code\\]/.test(String(DataView)) || hasObjectTag(new DataView(new ArrayBuffer(8))))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasDataViewBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\n// Also, in cases where the native `DataView` is\n// overridden we can't rely on the tag itself.\nfunction alternateIsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasDataViewBug ? alternateIsDataView : isDataView);\n","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n}());\n\nexport default isArguments;\n","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key] === true; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasDataViewBug } from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n var todo = [{a: a, b: b}];\n // Initializing stacks of traversed objects for cycle detection.\n var aStack = [], bStack = [];\n\n while (todo.length) {\n var frame = todo.pop();\n if (frame === true) {\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n continue;\n }\n a = frame.a;\n b = frame.b;\n\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n if (a !== 0 || 1 / a === 1 / b) continue;\n return false;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n if (b !== b) continue;\n return false;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n\n// Internal recursive comparison function for `_.isEqual`.\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasDataViewBug && className == '[object Object]' && isDataView(a)) {\n if (!isDataView(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n if ('' + a === '' + b) continue;\n return false;\n case '[object Number]':\n todo.push({a: +a, b: +b});\n continue;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n if (+a === +b) continue;\n return false;\n case '[object Symbol]':\n if (SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b)) continue;\n return false;\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n todo.push({a: toBufferView(a), b: toBufferView(b)});\n continue;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) continue;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n if (bStack[length] === b) break;\n return false;\n }\n }\n if (length >= 0) continue;\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n todo.push(true);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n todo.push({a: a[length], b: b[length]});\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!has(b, key)) return false;\n todo.push({a: a[key], b: b[key]});\n }\n }\n }\n return true;\n}\n","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\n","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n return _.toPath(path);\n}\n","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!_has(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n return value;\n}\n","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n return new Date().getTime();\n};\n","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n","// Internal list of HTML entities for escaping.\nexport default {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict) {\n if (!depth && depth !== 0) depth = Infinity;\n var output = [], idx = 0, i = 0, length = getLength(input) || 0, stack = [];\n while (true) {\n if (i >= length) {\n if (!stack.length) break;\n var frame = stack.pop();\n i = frame.i;\n input = frame.v;\n length = getLength(input);\n continue;\n }\n var value = input[i++];\n if (stack.length >= depth) {\n output[idx++] = value;\n } else if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n stack.push({i: i, v: input});\n i = 0;\n input = value;\n length = getLength(input);\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n return map(obj, property(key));\n}\n","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || (computed === Infinity && result === Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\nimport toArray from './toArray.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = toArray(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n return sample(obj, Infinity);\n}\n","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n result[key] = value;\n});\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n});\n","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n return key in obj;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n return filter(array, Boolean);\n}\n","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n return _flatten(array, depth, false);\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n return uniq(flatten(arrays, true, true));\n});\n","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n var length = (array && max(array, getLength).length) || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n","import getLength from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\nexport default _;\n","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport _ from 'underscore'\nimport OC from './index.js'\n\n/**\n * Utility class for the history API,\n * includes fallback to using the URL hash when\n * the browser doesn't support the history API.\n *\n * @namespace OC.Util.History\n */\nexport default {\n\n\t_handlers: [],\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t * @param {boolean} [replace] whether to replace instead of pushing\n\t */\n\t_pushState(params, url, replace) {\n\t\tlet strParams\n\t\tif (typeof (params) === 'string') {\n\t\t\tstrParams = params\n\t\t} else {\n\t\t\tstrParams = OC.buildQueryString(params)\n\t\t}\n\n\t\tif (window.history.pushState) {\n\t\t\turl = url || location.pathname + '?' + strParams\n\t\t\t// Workaround for bug with SVG and window.history.pushState on Firefox < 51\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=652991\n\t\t\tconst isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1\n\t\t\tif (isFirefox && parseInt(navigator.userAgent.split('/').pop()) < 51) {\n\t\t\t\tconst patterns = document.querySelectorAll('[fill^=\"url(#\"], [stroke^=\"url(#\"], [filter^=\"url(#invert\"]')\n\t\t\t\tfor (let i = 0, ii = patterns.length, pattern; i < ii; i++) {\n\t\t\t\t\tpattern = patterns[i]\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.fill = pattern.style.fill\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.stroke = pattern.style.stroke\n\t\t\t\t\tpattern.removeAttribute('filter')\n\t\t\t\t\tpattern.setAttribute('filter', 'url(#invert)')\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (replace) {\n\t\t\t\twindow.history.replaceState(params, '', url)\n\t\t\t} else {\n\t\t\t\twindow.history.pushState(params, '', url)\n\t\t\t}\n\t\t} else {\n\t\t\t// use URL hash for IE8\n\t\t\twindow.location.hash = '?' + strParams\n\t\t\t// inhibit next onhashchange that just added itself\n\t\t\t// to the event queue\n\t\t\tthis._cancelPop = true\n\t\t}\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used, using the params as query string\n\t */\n\tpushState(params, url) {\n\t\tthis._pushState(params, url, false)\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t */\n\treplaceState(params, url) {\n\t\tthis._pushState(params, url, true)\n\t},\n\n\t/**\n\t * Add a popstate handler\n\t *\n\t * @param {Function} handler handler\n\t */\n\taddOnPopStateHandler(handler) {\n\t\tthis._handlers.push(handler)\n\t},\n\n\t/**\n\t * Parse a query string from the hash part of the URL.\n\t * (workaround for IE8 / IE9)\n\t *\n\t * @return {string}\n\t */\n\t_parseHashQuery() {\n\t\tconst hash = window.location.hash\n\t\tconst pos = hash.indexOf('?')\n\t\tif (pos >= 0) {\n\t\t\treturn hash.substr(pos + 1)\n\t\t}\n\t\tif (hash.length) {\n\t\t\t// remove hash sign\n\t\t\treturn hash.substr(1)\n\t\t}\n\t\treturn ''\n\t},\n\n\t_decodeQuery(query) {\n\t\treturn query.replace(/\\+/g, ' ')\n\t},\n\n\t/**\n\t * Parse the query/search part of the URL.\n\t * Also try and parse it from the URL hash (for IE8)\n\t *\n\t * @return {object} map of parameters\n\t */\n\tparseUrlQuery() {\n\t\tconst query = this._parseHashQuery()\n\t\tlet params\n\t\t// try and parse from URL hash first\n\t\tif (query) {\n\t\t\tparams = OC.parseQueryString(this._decodeQuery(query))\n\t\t}\n\t\t// else read from query attributes\n\t\tparams = _.extend(params || {}, OC.parseQueryString(this._decodeQuery(location.search)))\n\t\treturn params || {}\n\t},\n\n\t_onPopState(e) {\n\t\tif (this._cancelPop) {\n\t\t\tthis._cancelPop = false\n\t\t\treturn\n\t\t}\n\t\tlet params\n\t\tif (!this._handlers.length) {\n\t\t\treturn\n\t\t}\n\t\tparams = (e && e.state)\n\t\tif (_.isString(params)) {\n\t\t\tparams = OC.parseQueryString(params)\n\t\t} else if (!params) {\n\t\t\tparams = this.parseUrlQuery() || {}\n\t\t}\n\t\tfor (let i = 0; i < this._handlers.length; i++) {\n\t\t\tthis._handlers[i](params)\n\t\t}\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { formatFileSize as humanFileSize } from '@nextcloud/files'\nimport moment from 'moment'\nimport logger from '../logger.js'\nimport OC from './index.js'\nimport History from './util-history.js'\n\n/**\n * @param {any} t -\n */\nfunction chunkify(t) {\n\t// Adapted from http://my.opera.com/GreyWyvern/blog/show.dml/1671288\n\tconst tz = []\n\tlet x = 0\n\tlet y = -1\n\tlet n = 0\n\tlet c\n\n\twhile (x < t.length) {\n\t\tc = t.charAt(x)\n\t\t// only include the dot in strings\n\t\tconst m = ((!n && c === '.') || (c >= '0' && c <= '9'))\n\t\tif (m !== n) {\n\t\t\t// next chunk\n\t\t\ty++\n\t\t\ttz[y] = ''\n\t\t\tn = m\n\t\t}\n\t\ttz[y] += c\n\t\tx++\n\t}\n\treturn tz\n}\n\n/**\n * Utility functions\n *\n * @namespace OC.Util\n */\nexport default {\n\n\tHistory,\n\n\t/**\n\t * @deprecated use https://nextcloud.github.io/nextcloud-files/functions/formatFileSize.html\n\t */\n\thumanFileSize,\n\n\t/**\n\t * Returns a file size in bytes from a humanly readable string\n\t * Makes 2kB to 2048.\n\t * Inspired by computerFileSize in helper.php\n\t *\n\t * @param {string} string file size in human-readable format\n\t * @return {number} or null if string could not be parsed\n\t */\n\tcomputerFileSize(string) {\n\t\tif (typeof string !== 'string') {\n\t\t\treturn null\n\t\t}\n\n\t\tconst s = string.toLowerCase().trim()\n\t\tconst bytesArray = {\n\t\t\tb: 1,\n\t\t\tk: 1024,\n\t\t\tkb: 1024,\n\t\t\tmb: 1024 * 1024,\n\t\t\tm: 1024 * 1024,\n\t\t\tgb: 1024 * 1024 * 1024,\n\t\t\tg: 1024 * 1024 * 1024,\n\t\t\ttb: 1024 * 1024 * 1024 * 1024,\n\t\t\tt: 1024 * 1024 * 1024 * 1024,\n\t\t\tpb: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t\tp: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t}\n\n\t\tlet bytes\n\t\tconst matches = s.match(/^[\\s+]?([0-9]*)(\\.([0-9]+))?( +)?([kmgtp]?b?)$/i)\n\t\tif (matches !== null) {\n\t\t\tbytes = parseFloat(s)\n\t\t\tif (!isFinite(bytes)) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t\tif (matches[5]) {\n\t\t\tbytes = bytes * bytesArray[matches[5]]\n\t\t}\n\n\t\tbytes = Math.round(bytes)\n\t\treturn bytes\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @param {string} format date format, see momentjs docs\n\t * @return {string} timestamp formatted as requested\n\t */\n\tformatDate(timestamp, format) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.formatDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tformat = format || 'LLL'\n\t\treturn moment(timestamp).format(format)\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @return {string} human readable difference from now\n\t */\n\trelativeModifiedDate(timestamp) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.relativeModifiedDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tconst diff = moment().diff(moment(timestamp))\n\t\tif (diff >= 0 && diff < 45000) {\n\t\t\treturn t('core', 'seconds ago')\n\t\t}\n\t\treturn moment(timestamp).fromNow()\n\t},\n\n\t/**\n\t * Returns the width of a generic browser scrollbar\n\t *\n\t * @return {number} width of scrollbar\n\t */\n\tgetScrollBarWidth() {\n\t\tif (this._scrollBarWidth) {\n\t\t\treturn this._scrollBarWidth\n\t\t}\n\n\t\tconst inner = document.createElement('p')\n\t\tinner.style.width = '100%'\n\t\tinner.style.height = '200px'\n\n\t\tconst outer = document.createElement('div')\n\t\touter.style.position = 'absolute'\n\t\touter.style.top = '0px'\n\t\touter.style.left = '0px'\n\t\touter.style.visibility = 'hidden'\n\t\touter.style.width = '200px'\n\t\touter.style.height = '150px'\n\t\touter.style.overflow = 'hidden'\n\t\touter.appendChild(inner)\n\n\t\tdocument.body.appendChild(outer)\n\t\tconst w1 = inner.offsetWidth\n\t\touter.style.overflow = 'scroll'\n\t\tlet w2 = inner.offsetWidth\n\t\tif (w1 === w2) {\n\t\t\tw2 = outer.clientWidth\n\t\t}\n\n\t\tdocument.body.removeChild(outer)\n\n\t\tthis._scrollBarWidth = (w1 - w2)\n\n\t\treturn this._scrollBarWidth\n\t},\n\n\t/**\n\t * Remove the time component from a given date\n\t *\n\t * @param {Date} date date\n\t * @return {Date} date with stripped time\n\t */\n\tstripTime(date) {\n\t\t// FIXME: likely to break when crossing DST\n\t\t// would be better to use a library like momentJS\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\t},\n\n\t/**\n\t * Compare two strings to provide a natural sort\n\t *\n\t * @param {string} a first string to compare\n\t * @param {string} b second string to compare\n\t * @return {number} -1 if b comes before a, 1 if a comes before b\n\t * or 0 if the strings are identical\n\t */\n\tnaturalSortCompare(a, b) {\n\t\tlet x\n\t\tconst aa = chunkify(a)\n\t\tconst bb = chunkify(b)\n\n\t\tfor (x = 0; aa[x] && bb[x]; x++) {\n\t\t\tif (aa[x] !== bb[x]) {\n\t\t\t\tconst aNum = Number(aa[x])\n\t\t\t\tconst bNum = Number(bb[x])\n\t\t\t\t// note: == is correct here to include null == undefined\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\tif (aNum == aa[x] && bNum == bb[x]) {\n\t\t\t\t\treturn aNum - bNum\n\t\t\t\t} else {\n\t\t\t\t\t// Note: This locale setting isn't supported by all browsers but for the ones\n\t\t\t\t\t// that do there will be more consistency between client-server sorting\n\t\t\t\t\treturn aa[x].localeCompare(bb[x], OC.getLanguage())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn aa.length - bb.length\n\t},\n\n\t/**\n\t * Calls the callback in a given interval until it returns true\n\t *\n\t * @param {Function} callback function to call on success\n\t * @param {number} interval in milliseconds\n\t */\n\twaitFor(callback, interval) {\n\t\tconst internalCallback = function() {\n\t\t\tif (callback() !== true) {\n\t\t\t\tsetTimeout(internalCallback, interval)\n\t\t\t}\n\t\t}\n\n\t\tinternalCallback()\n\t},\n\n\t/**\n\t * Checks if a cookie with the given name is present and is set to the provided value.\n\t *\n\t * @param {string} name name of the cookie\n\t * @param {string} value value of the cookie\n\t * @return {boolean} true if the cookie with the given name has the given value\n\t */\n\tisCookieSetToValue(name, value) {\n\t\tconst cookies = document.cookie.split(';')\n\t\tfor (let i = 0; i < cookies.length; i++) {\n\t\t\tconst cookie = cookies[i].split('=')\n\t\t\tif (cookie[0].trim() === name && cookie[1].trim() === value) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nlet webroot = window._oc_webroot\n\nif (typeof webroot === 'undefined') {\n\twebroot = location.pathname\n\tconst pos = webroot.indexOf('/index.php/')\n\tif (pos !== -1) {\n\t\twebroot = webroot.substr(0, pos)\n\t} else {\n\t\twebroot = webroot.substr(0, webroot.lastIndexOf('/'))\n\t}\n}\n\nexport default webroot\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { subscribe } from '@nextcloud/event-bus'\nimport {\n\tgetCanonicalLocale,\n\tgetLanguage,\n\tgetLocale,\n} from '@nextcloud/l10n'\nimport {\n\tbasename,\n\tdirname,\n\tencodePath,\n\tisSamePath,\n\tjoin,\n} from '@nextcloud/paths'\nimport {\n\tgenerateFilePath,\n\tgenerateOcsUrl,\n\tgenerateRemoteUrl,\n\tgenerateUrl,\n\tgetRootUrl,\n\timagePath,\n\tlinkTo,\n} from '@nextcloud/router'\nimport logger from '../logger.js'\nimport { isUserAdmin } from './admin.js'\nimport { appConfig } from './appconfig.js'\nimport appswebroots from './appswebroots.js'\nimport { getCapabilities } from './capabilities.js'\nimport Config from './config.js'\nimport {\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n} from './constants.js'\nimport { currentUser, getCurrentUser } from './currentuser.js'\nimport { debug } from './debug.js'\nimport Dialogs from './dialogs.js'\nimport EventSource from './eventsource.js'\nimport L10N from './l10n.js'\nimport * as MimeType from './mimeType.js'\nimport msg from './msg.js'\nimport PasswordConfirmation from './password-confirmation.js'\nimport Plugins from './plugins.js'\nimport {\n\tbuild as buildQueryString,\n\tparse as parseQueryString,\n} from './query-string.ts'\nimport { getRequestToken } from './requesttoken.ts'\nimport {\n\tlinkToRemoteBase,\n} from './routing.js'\nimport { theme } from './theme.js'\nimport Util from './util.js'\nimport webroot from './webroot.js'\n\n/** @namespace OC */\nexport default {\n\t/*\n\t * Constants\n\t */\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n\n\t/*\n\t * Deprecated helpers to be removed\n\t */\n\tappConfig,\n\tappswebroots,\n\tconfig: Config,\n\t/**\n\t * Currently logged in user or null if none\n\t *\n\t * @type {string}\n\t * @deprecated use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tcurrentUser,\n\tdialogs: Dialogs,\n\tEventSource,\n\tMimeType,\n\t/**\n\t * Returns the currently logged in user or null if there is no logged in\n\t * user (public page mode)\n\t *\n\t * @since 9.0.0\n\t * @deprecated 19.0.0 use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tgetCurrentUser,\n\tisUserAdmin,\n\tL10N,\n\n\t/**\n\t * This is already handled by `interceptRequests` in `core/src/init.js`.\n\t *\n\t * @deprecated 33.0.0 - unused by Nextcloud and only a stub remains. Just remove usage.\n\t */\n\tregisterXHRForErrorProcessing: () => {},\n\n\t/**\n\t * Capabilities\n\t *\n\t * @type {Array}\n\t * @deprecated 20.0.0 use @nextcloud/capabilities instead\n\t */\n\tgetCapabilities,\n\n\t/*\n\t * Path helpers\n\t */\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tbasename,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tencodePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tdirname,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tisSamePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tjoinPaths: join,\n\n\t/**\n\t * @deprecated 20.0.0 use `getCanonicalLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetCanonicalLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLanguage` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLanguage,\n\n\t// Query string helpers\n\tbuildQueryString,\n\tparseQueryString,\n\n\tmsg,\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\tPasswordConfirmation,\n\tPlugins,\n\ttheme,\n\tUtil,\n\tdebug,\n\t/**\n\t * @deprecated 19.0.0 use `generateFilePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tfilePath: generateFilePath,\n\t/**\n\t * @deprecated 19.0.0 use `WgenerateUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgenerateUrl,\n\t/**\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgetRootPath: getRootUrl,\n\t/**\n\t * @deprecated 19.0.0 use `imagePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\timagePath,\n\trequestToken: getRequestToken(),\n\t/**\n\t * @deprecated 19.0.0 use `linkTo` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkTo,\n\t/**\n\t * @param {string} service service name\n\t * @param {number} version OCS API version\n\t * @return {string} OCS API base path\n\t * @deprecated 19.0.0 use `generateOcsUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToOCS: (service, version) => {\n\t\treturn generateOcsUrl(service, {}, {\n\t\t\tocsVersion: version || 1,\n\t\t}) + '/'\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `generateRemoteUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToRemote: generateRemoteUrl,\n\tlinkToRemoteBase,\n\t/**\n\t * Relative path to Nextcloud root.\n\t * For example: \"/nextcloud\"\n\t *\n\t * @type {string}\n\t *\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t * @see OC#getRootPath\n\t */\n\twebroot,\n}\n\n// Keep the request token prop in sync\nsubscribe('csrf-token-update', (e) => {\n\tOC.requestToken = e.token\n\n\t// Logging might help debug (Sentry) issues\n\tlogger.info('OC.requestToken changed', { token: e.token })\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const coreApps = ['', 'admin', 'log', 'core/search', 'core', '3rdparty']\nexport const menuSpeed = 50\nexport const PERMISSION_NONE = 0\nexport const PERMISSION_CREATE = 4\nexport const PERMISSION_READ = 1\nexport const PERMISSION_UPDATE = 2\nexport const PERMISSION_DELETE = 8\nexport const PERMISSION_SHARE = 16\nexport const PERMISSION_ALL = 31\nexport const TAG_FAVORITE = '_$!!$_'\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCapabilities as realGetCapabilities } from '@nextcloud/capabilities'\nimport logger from '../logger.js'\n\n/**\n * Returns the capabilities\n *\n * @return {Array} capabilities\n *\n * @since 14.0.0\n */\nexport function getCapabilities() {\n\tif (OC.debug) {\n\t\tlogger.warn('OC.getCapabilities is deprecated and will be removed in Nextcloud 21. See @nextcloud/capabilities')\n\t}\n\treturn realGetCapabilities()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Parses a URL query string into a JS map\n *\n * @param queryString - Query string in the format param1=1234¶m2=abcde¶m3=xyz\n * @return Object containing key/values matching the URL parameters\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function parse(queryString) {\n const params = new URLSearchParams(queryString);\n return Object.fromEntries(params.entries());\n}\n/**\n * Builds a URL query from a JS map.\n *\n * @param params - Object containing key/values matching the URL parameters\n * @return String containing a URL query (without question) mark\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function build(params) {\n if (!params) {\n return '';\n }\n const search = new URLSearchParams(params);\n return search.toString();\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tgetRootUrl as realGetRootUrl,\n} from '@nextcloud/router'\n\n/**\n * Creates a relative url for remote use\n *\n * @param {string} service id\n * @return {string} the url\n */\nexport function linkToRemoteBase(service) {\n\treturn realGetRootUrl() + '/remote.php/' + service\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport OC from '../OC/index.js'\nimport L10n from '../OC/l10n.js'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tOC,\n\t\t}\n\t},\n\tmethods: {\n\t\tt: L10n.translate.bind(L10n),\n\t\tn: L10n.translatePlural.bind(L10n),\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport LoginView from './views/Login.vue'\nimport Nextcloud from './mixins/Nextcloud.js'\n// eslint-disable-next-line no-unused-vars\nimport OC from './OC/index.js' // TODO: Not needed but L10n breaks if removed\n\nVue.mixin(Nextcloud)\n\nconst View = Vue.extend(LoginView)\nnew View().$mount('#login')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.button-vue[data-v-bbf83d00]{margin-top:.5rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/LoginButton.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,gBAAA\",\"sourcesContent\":[\"\\n.button-vue {\\n\\tmargin-top: .5rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-form[data-v-fac76c6a]{text-align:start;font-size:1rem;margin:0}.login-form__fieldset[data-v-fac76c6a]{width:100%;display:flex;flex-direction:column;gap:.5rem}.login-form__headline[data-v-fac76c6a]{text-align:center;overflow-wrap:anywhere}.login-form[data-v-fac76c6a] input:invalid:not(:user-invalid){border-color:var(--color-border-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/LoginForm.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,gBAAA,CACA,cAAA,CACA,QAAA,CAEA,uCACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,SAAA,CAGD,uCACC,iBAAA,CACA,sBAAA,CAID,8DACC,uDAAA\",\"sourcesContent\":[\"\\n.login-form {\\n\\ttext-align: start;\\n\\tfont-size: 1rem;\\n\\tmargin: 0;\\n\\n\\t&__fieldset {\\n\\t\\twidth: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: .5rem;\\n\\t}\\n\\n\\t&__headline {\\n\\t\\ttext-align: center;\\n\\t\\toverflow-wrap: anywhere;\\n\\t}\\n\\n\\t// Only show the error state if the user interacted with the login box\\n\\t:deep(input:invalid:not(:user-invalid)) {\\n\\t\\tborder-color: var(--color-border-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.password-less-login-form[data-v-25758ef3]{display:flex;flex-direction:column;gap:.5rem;margin:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/PasswordLessLoginForm.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,QAAA\",\"sourcesContent\":[\"\\n.password-less-login-form {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 0.5rem;\\n\\tmargin: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.reset-password-form[data-v-759a0fdd]{display:flex;flex-direction:column;gap:.5rem;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/ResetPassword.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.reset-password-form {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: .5rem;\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-box[data-v-518c0816]{width:320px;box-sizing:border-box}.login-box__wrapper[data-v-518c0816]{display:flex;flex-direction:column;gap:calc(2*var(--default-grid-baseline))}.login-box__alternative-logins[data-v-518c0816]{display:flex;flex-direction:column;gap:.75rem}.fade-enter-active[data-v-518c0816],.fade-leave-active[data-v-518c0816]{transition:opacity .3s}.fade-enter[data-v-518c0816],.fade-leave-to[data-v-518c0816]{opacity:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/Login.vue\"],\"names\":[],\"mappings\":\"AACA,4BAEC,WAAA,CACA,qBAAA,CAEA,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CAGD,gDACC,YAAA,CACA,qBAAA,CACA,UAAA,CAIF,wEACC,sBAAA,CAGD,6DACC,SAAA\",\"sourcesContent\":[\"\\n.login-box {\\n\\t// Same size as dashboard panels\\n\\twidth: 320px;\\n\\tbox-sizing: border-box;\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(2 * var(--default-grid-baseline));\\n\\t}\\n\\n\\t&__alternative-logins {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 0.75rem;\\n\\t}\\n}\\n\\n.fade-enter-active, .fade-leave-active {\\n\\ttransition: opacity .3s;\\n}\\n\\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\\n\\topacity: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\nfieldset[data-v-2c0ecaf9] {\n\ttext-align: center;\n}\ninput[type=submit][data-v-2c0ecaf9] {\n\tmargin-top: 20px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/UpdatePassword.vue\"],\"names\":[],\"mappings\":\";AAmIA;CACA,kBAAA;AACA;AAEA;CACA,gBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","const map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 82682,\n\t\"./ar-sa.js\": 82682,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 44429,\n\t\"./bs.js\": 44429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tconst id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tconst e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority ||= 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tlet notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn, priority] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => (chunkId + \"-\" + chunkId + \".js?v=\" + {\"3108\":\"71c2314a13f8bd9bb9f3\",\"4005\":\"aee79e7f1049b5e8188f\",\"4017\":\"d1523b8db423fbe47986\",\"5236\":\"ffeb871fa5beda99d3b3\",\"7859\":\"0aa7564896cee7ea552c\",\"8259\":\"e914ef6a65a38374620a\",\"8374\":\"e925f5901b71aeaa37db\",\"8689\":\"5fcce4026be999b251c3\"}[chunkId] + \"\");","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","const inProgress = {};\nconst dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tlet script, needAttach;\n\tif(key !== undefined) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tconst s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tconst onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tconst doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode?.removeChild(script);\n\t\tdoneFns?.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tconst timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1418;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","let scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nconst document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript?.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tlet i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^https?:/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:|[?#].*$/g, \"\").replace(/\\/[^/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t1418: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tlet installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tconst promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tconst error = new Error();\n\t\t\t\t\tconst loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tconst errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tconst realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\terror.event = event;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(__webpack_require__.p + __webpack_require__.u(chunkId), loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(65570)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["multiMatcher","RegExp","hexPair","parsePercentByte","input","position","codePointAt","length","digits","slice","test","byte","Number","parseInt","next","utf8SequenceLength","isContinuationByte","decode","decodeURIComponent","output","charAt","firstByte","sequenceLength","end","validSequence","index","nextByte","encodedSequence","splitOnFirst","string","separator","TypeError","separatorIndex","indexOf","base_decode","value","options","encodedURI","replaceMap","match","exec","result","entries","Object","keys","key","replace","customDecodeURIComponent","decodeUriComponent","keysSorter","Array","isArray","sort","a","b","map","parseValue","type","toLowerCase","arrayFormat","isNaN","trim","parseBooleans","parseNumbers","Symbol","login_LoginButtonvue_type_script_lang_js","name","components","ArrowRight","A","NcButton","props","String","default","t","valueLoading","loading","Boolean","required","invertedColors","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","LoginButtonvue_type_style_index_0_id_bbf83d00_prod_lang_scss_scoped_true","locals","LoginButton","componentNormalizer","_vm","this","_c","_self","attrs","variant","wide","disabled","on","click","$event","$emit","scopedSlots","_u","fn","staticClass","proxy","_v","_s","auth","computed","userNameInputLengthIs255","user","userInputHelperText","login_LoginFormvue_type_script_lang_js","NcCheckboxRadioSwitch","NcPasswordField","NcTextField","NcNoteCard","mixins","AuthMixin","username","redirectUrl","errors","messages","throttleDelay","autoCompleteAllowed","remembermeAllowed","directLogin","emailStates","setup","l10n_dist","Tl","headlineText","productName","OC","theme","undefined","sanitize","escape","loginTimeout","loadState","requestToken","window","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","timezoneOffset","Date","getTimezoneOffset","data","password","rememberme","visible","resetFormTimeout","debounce","handleResetForm","isError","invalidPassword","userDisabled","errorLabel","apacheAuthFailed","csrfCheckFailed","internalException","loadingIcon","imagePath","loginActionUrl","generateUrl","emailEnabled","every","state","loginText","watch","mounted","$refs","inputField","focus","methods","updateUsername","submit","event","preventDefault","LoginFormvue_type_style_index_0_id_fac76c6a_prod_lang_scss_scoped_true_options","LoginFormvue_type_style_index_0_id_fac76c6a_prod_lang_scss_scoped_true","LoginForm","ref","method","action","title","_e","heading","_l","message","class","id","alt","src","staticStyle","clear","shake","label","maxlength","autocapitalize","spellchecking","autocomplete","error","change","model","callback","$$v","expression","domProps","WebAuthnError","Error","constructor","code","cause","super","defineProperty","enumerable","configurable","writable","WebAuthnAbortService","createNewAbortSignal","controller","abortError","abort","newController","AbortController","signal","cancelCeremony","bufferToBase64URLString_bufferToBase64URLString","buffer","bytes","Uint8Array","str","charCode","fromCharCode","btoa","base64URLStringToBuffer_base64URLStringToBuffer","base64URLString","base64","padLength","padded","padEnd","binary","atob","ArrayBuffer","i","charCodeAt","browserSupportsWebAuthn_browserSupportsWebAuthn","_browserSupportsWebAuthnInternals","stubThis","globalThis","PublicKeyCredential","_browserSupportsWebAuthnAutofillInternals","toPublicKeyCredentialDescriptor_toPublicKeyCredentialDescriptor","descriptor","transports","attachments","toAuthenticatorAttachment_toAuthenticatorAttachment","attachment","vue_material_design_icons_LockOpenvue_type_script_lang_js","emits","fillColor","size","LockOpen","_b","role","$attrs","fill","width","height","viewBox","d","logger","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","detectUser","NoValidCredentials","login_PasswordLessLoginFormvue_type_script_lang_js","defineComponent","InformationIcon","InformationOutline","LockOpenIcon","NcEmptyContent","isHttps","isLocalhost","supportsWebauthn","browserSupportsWebAuthn","validCredentials","authenticate","loginForm","checkValidity","debug","params","async","loginName","url","Axios","post","allowCredentials","optionsJSON","challenge","console","warn","useBrowserAutofill","verifyBrowserAutofillInput","publicKey","getOptions","Promise","resolve","globalPublicKeyCredential","isConditionalMediationAvailable","browserSupportsWebAuthnAutofill","document","querySelectorAll","mediation","credential","navigator","credentials","get","err","AbortSignal","effectiveDomain","location","hostname","rpId","identifyAuthenticationError","rawId","response","userHandle","authenticatorData","clientDataJSON","signature","clientExtensionResults","getClientExtensionResults","authenticatorAttachment","startWebauthnAuthentication","startAuthentication","completeAuthentication","changeUsername","authData","JSON","stringify","finishAuthentication","then","defaultRedirectUrl","href","getBaseUrl","catch","PasswordLessLoginFormvue_type_style_index_0_id_25758ef3_prod_lang_scss_scoped_true_options","PasswordLessLoginFormvue_type_style_index_0_id_25758ef3_prod_lang_scss_scoped_true","PasswordLessLoginForm_component","_setupProxy","apply","arguments","placeholder","description","PasswordLessLoginForm","login_ResetPasswordvue_type_script_lang_ts","resetPasswordLink","axios","status","ResetPasswordvue_type_style_index_0_id_759a0fdd_prod_lang_scss_scoped_true_options","ResetPasswordvue_type_style_index_0_id_759a0fdd_prod_lang_scss_scoped_true","ResetPassword_component","ResetPassword","login_UpdatePasswordvue_type_script_lang_js","resetPasswordTarget","encrypted","proceed","encryption","msg","e","UpdatePasswordvue_type_style_index_0_id_2c0ecaf9_prod_scoped_true_lang_css_options","UpdatePasswordvue_type_style_index_0_id_2c0ecaf9_prod_scoped_true_lang_css","UpdatePassword_component","for","directives","rawName","spellcheck","target","composing","checked","_i","$$a","$$el","$$c","$$i","concat","warning","UpdatePassword","query","validateArrayFormatSeparator","arrayFormatSeparator","types","create","formatter","accumulator","push","newValue","includes","split","item","arrayValue","parserForArrayFormat","returnValue","parameterStart","firstSeparator","parameter","parameter_","replaceAll","key2","value2","typeOption","values","join","reduce","queryString","search","localStorage","sessionStorage","indexedDBList","indexedDB","databases","deleteDatabase","wipeBrowserStorages","views_Loginvue_type_script_lang_js","passwordlessLogin","resetPassword","canResetPassword","resetPasswordUser","direct","hasPasswordless","countAlternativeLogins","alternativeLogins","protocol","hideLoginForm","passwordResetFinished","Loginvue_type_style_index_0_id_518c0816_prod_scoped_true_lang_scss_options","Loginvue_type_style_index_0_id_518c0816_prod_scoped_true_lang_scss","Login","mode","done","alternativeLogin","isAdmin","_oc_isadmin","appConfig","oc_appconfig","OC_appswebroots","_oc_appswebroots","OC_config","_oc_config","rawUid","getElementsByTagName","getAttribute","displayName","currentUser","_oc_debug","Dialogs","YES_NO_BUTTONS","OK_BUTTONS","FILEPICKER_TYPE_CHOOSE","FILEPICKER_TYPE_MOVE","FILEPICKER_TYPE_COPY","FILEPICKER_TYPE_COPY_MOVE","FILEPICKER_TYPE_CUSTOM","alert","text","modal","OK_BUTTON","info","confirm","confirmDestructive","buttons","DialogBuilder","setName","setText","setButtons","clicked","_getLegacyButtons","show","confirmHtml","setHTML","prompt","spawnDialog","defineAsyncComponent","all","__webpack_require__","inputName","isPassword","args","filepicker","multiselect","mimetype","_modal","FilePickerType","Choose","path","legacyCallback","getPath","node","root","startsWith","nodes","builder","getFilePickerBuilder","forEach","button","addButton","defaultButton","setButtonFactory","displayname","basename","multiSelect","file","CopyMove","Copy","icon","IconCopy","Move","setMimeTypeFilter","filter","setFilter","fileid","mime","mtime","getTime","permissions","attributes","etag","hasPreview","mountType","quotaAvailableBytes","sharePermissions","nodeToLegacyFile","allowDirectories","allowDirectoryChooser","setMultiSelect","startAt","pick","content","dialogType","allowHtml","setSeverity","dialog","_clicked","buttonList","cancel","dialogs","getRequestToken","head","dataset","requesttoken","OCEventSource","joinChar","dataStr","typelessListeners","closed","encodeURIComponent","source","EventSource","onmessage","parse","listen","close","prototype","call","addEventListener","eventsource","l10n","load","loadTranslations","register","kz","_unregister","unregister","translate","translatePlural","iconCache","Map","getIconUrl","mimeType","MimeTypeList","aliases","has","gotIcon","folder","themes","getRootUrl","getMimeTypeIcon","files","OCA","Theming","cacheBuster","set","clearIconCache","startSaving","selector","startAction","el","querySelector","HTMLElement","textContent","classList","remove","getAnimations","animation","style","display","finishedSaving","finishedAction","finishedSuccess","finishedError","add","setTimeout","animate","opacity","duration","password_confirmation","requiresPasswordConfirmation","isPasswordConfirmationRequired","requirePasswordConfirmation","rejectCallback","confirmPassword","plugins","_plugins","targetName","plugin","getPlugins","attach","targetObject","detach","_theme","VERSION","self","global","Function","ArrayProto","ObjProto","SymbolProto","_setup_toString","toString","_setup_hasOwnProperty","hasOwnProperty","supportsArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","isFinite","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","MAX_ARRAY_INDEX","Math","pow","restArguments","func","startIndex","max","rest","isObject","obj","isNull","isUndefined","isBoolean","isElement","nodeType","tagTester","tag","isString","isNumber","isDate","isRegExp","isSymbol","isArrayBuffer","isFunction","nodelist","childNodes","Int8Array","modules_isFunction","_hasObjectTag","hasDataViewBug","isIE11","isDataView","modules_isDataView","getInt8","isArguments","modules_isArguments","isFinite_isFinite","parseFloat","isNaN_isNaN","constant","createSizePropertyCheck","getSizeProperty","collection","sizeProperty","shallowProperty","_getByteLength","_isBufferLike","typedArrayPattern","modules_isTypedArray","_getLength","collectNonEnumProps","hash","l","contains","emulatedSet","nonEnumIdx","proto","prop","isEmpty","isMatch","object","_keys","_","_wrapped","toBufferView","bufferSource","byteOffset","valueOf","toJSON","tagDataView","isEqual","todo","aStack","bStack","frame","pop","className","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","isMap","isWeakMap","isSet","isWeakSet","pairs","invert","functions","names","createAssigner","keysFunc","defaults","extend","extendOwn","baseCreate","Ctor","clone","tap","interceptor","toPath","_toPath_toPath","deepGet","defaultValue","has_has","identity","matcher","property","optimizeCb","context","argCount","baseIteratee","iteratee","Infinity","cb","mapObject","results","currentKey","noop","propertyOf","times","n","accum","random","min","floor","now","createEscaper","escaper","testRegexp","replaceRegexp","_escapeMap","modules_escape","modules_unescape","templateSettings","evaluate","interpolate","noMatch","escapes","escapeRegExp","escapeChar","bareIdentifier","template","settings","oldSettings","offset","render","argument","variable","fallback","idCounter","uniqueId","prefix","chain","instance","_chain","executeBound","sourceFunc","boundFunc","callingContext","partial","boundArgs","bound","modules_partial","callArgs","_isArrayLike","flatten","depth","strict","idx","stack","v","bindAll","memoize","hasher","cache","address","delay","wait","defer","throttle","timeout","previous","later","leading","throttled","_now","remaining","clearTimeout","trailing","debounce_debounce","immediate","passed","debounced","_args","wrap","wrapper","negate","predicate","compose","start","after","before","memo","once","findKey","createPredicateIndexFinder","dir","array","findIndex","findLastIndex","sortedIndex","low","high","mid","createIndexFinder","predicateFind","lastIndexOf","find","findWhere","each","createReduce","initial","reducer","reduceRight","list","reject","some","fromIndex","guard","invoke","contextPath","pluck","where","lastComputed","reStrSymbol","toArray","sample","last","rand","temp","shuffle","sortBy","criteria","left","right","group","behavior","partition","groupBy","indexBy","countBy","pass","keyInObj","modules_pick","omit","first","compact","flatten_flatten","difference","without","otherArrays","uniq","isSorted","seen","union","arrays","intersection","argsLength","j","unzip","zip","range","stop","step","ceil","chunk","count","chainResult","mixin","underscore_array_methods","index_default_","modules_namespaceObject","index_default","util_history","_handlers","_pushState","strParams","buildQueryString","history","pushState","pathname","userAgent","patterns","pattern","ii","stroke","removeAttribute","setAttribute","replaceState","_cancelPop","addOnPopStateHandler","handler","_parseHashQuery","pos","substr","_decodeQuery","parseUrlQuery","parseQueryString","_onPopState","chunkify","tz","c","x","y","m","util","History","humanFileSize","files_dist","v7","computerFileSize","s","matches","k","kb","mb","gb","g","tb","pb","p","round","formatDate","timestamp","format","TESTING","moment","relativeModifiedDate","diff","fromNow","getScrollBarWidth","_scrollBarWidth","inner","createElement","outer","top","visibility","overflow","appendChild","body","w1","offsetWidth","w2","clientWidth","removeChild","stripTime","date","getFullYear","getMonth","getDate","naturalSortCompare","aa","bb","aNum","bNum","localeCompare","getLanguage","waitFor","interval","internalCallback","isCookieSetToValue","cookies","cookie","webroot","_oc_webroot","OC_webroot","src_OC","coreApps","menuSpeed","PERMISSION_ALL","PERMISSION_CREATE","PERMISSION_DELETE","PERMISSION_NONE","PERMISSION_READ","PERMISSION_SHARE","PERMISSION_UPDATE","TAG_FAVORITE","appswebroots","config","Config","MimeType","mimeType_namespaceObject","isUserAdmin","L10N","registerXHRForErrorProcessing","getCapabilities","realGetCapabilities","paths_dist","P8","encodePath","O0","dirname","pD","isSamePath","ys","joinPaths","getCanonicalLocale","lO","getLocale","JK","Z0","URLSearchParams","fromEntries","PasswordConfirmation","Plugins","Util","filePath","generateFilePath","router_dist","Jv","getRootPath","d0","linkTo","uM","linkToOCS","service","version","generateOcsUrl","ocsVersion","linkToRemote","generateRemoteUrl","linkToRemoteBase","realGetRootUrl","subscribe","token","Nextcloud","L10n","Vue","LoginView","$mount","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","module","sources","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","webpackContext","req","webpackContextResolve","o","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","deferred","O","chunkIds","priority","notFulfilled","fulfilled","splice","r","getter","__esModule","cw","mod","definition","binding","f","chunkId","promises","u","hasOwn","inProgress","dataWebpackPrefix","script","needAttach","scripts","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","toStringTag","nmd","paths","children","dn","getOwnPropertyDescriptor","scriptUrl","importScripts","currentScript","tagName","toUpperCase","baseURI","installedChunks","installedChunkData","promise","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"core-login.js?v=6a27cc3241f132cf82f7","mappings":"gwEACA,MACAA,EAAA,IAAAC,OAAA,kBAA0C,MAE1CC,EAAA,gBAGA,SAAAC,EAAAC,EAAAC,GACA,QAAAD,EAAAE,YAAAD,IAAAA,EAAA,EAAAD,EAAAG,OACA,OAGA,MAAAC,EAAAJ,EAAAK,MAAAJ,EAAA,EAAAA,EAAA,GAEA,OAAAH,EAAAQ,KAAAF,GAIA,CAASG,KAAAC,OAAAC,SAAAL,EAAA,IAAAM,KAAAT,EAAA,QAJT,CAKA,CAMA,SAAAU,EAAAJ,GACA,OAAAA,GAAA,IACA,EAIAA,GAAA,KAAAA,GAAA,IACA,EAGAA,GAAA,KAAAA,GAAA,IACA,EAGAA,GAAA,KAAAA,GAAA,IACA,EAGA,CACA,CAEA,SAAAK,EAAAL,GACA,OAAAA,GAAA,KAAAA,GAAA,GACA,CAMA,SAAAM,EAAAb,GACA,IACA,OAAAc,mBAAAd,EACA,CAAG,MACH,IAAAe,EAAA,GACAd,EAAA,EAEA,KAAAA,EAAAD,EAAAG,QAAA,CACA,QAAAH,EAAAE,YAAAD,GAAA,CACAc,GAAAf,EAAAgB,OAAAf,GACAA,IACA,QACA,CAEA,MAAAgB,EAAAlB,EAAAC,EAAAC,GAGA,IAAAgB,EAAA,CACAF,GAAAf,EAAAgB,OAAAf,GACAA,IACA,QACA,CAEA,MAAAiB,EAAAP,EAAAM,EAAAV,MAGA,OAAAW,EAAA,CACAH,GAAAf,EAAAK,MAAAJ,EAAAA,EAAA,GACAA,GAAA,EACA,QACA,CAEA,IAAAkB,EAAAF,EAAAP,KACAU,GAAA,EAEA,QAAAC,EAAA,EAAuBA,EAAAH,EAAwBG,IAAA,CAC/C,MAAAC,EAAAvB,EAAAC,EAAAmB,GAEA,IAAAG,IAAAV,EAAAU,EAAAf,MAAA,CACAa,GAAA,EACA,KACA,CAEAD,EAAAG,EAAAZ,IACA,CAEA,GAAAU,EAAA,CACA,MAAAG,EAAAvB,EAAAK,MAAAJ,EAAAkB,GAEA,IACAJ,GAAAD,mBAAAS,GACAtB,EAAAkB,EACA,QACA,CAAM,MAEN,CACA,CAGAJ,GAAAf,EAAAK,MAAAJ,EAAAA,EAAA,GACAA,GAAA,CACA,CAEA,OAAAc,CACA,CACA,CCvHe,SAAAS,EAAAC,EAAAC,GACf,oBAAAD,GAAA,iBAAAC,EACA,UAAAC,UAAA,iDAGA,QAAAF,GAAA,KAAAC,EACA,SAGA,MAAAE,EAAAH,EAAAI,QAAAH,GAEA,WAAAE,EACA,GAGA,CACAH,EAAApB,MAAA,EAAAuB,GACAH,EAAApB,MAAAuB,EAAAF,EAAAvB,QAEA,CCwPA,SAAS2B,EAAMC,EAAAC,GACf,OAAAA,EAAAnB,OF7Ge,SAAAoB,GACf,oBAAAA,EACA,UAAAN,UAAA,kEAAiFM,OAGjF,IAEA,OAAAnB,mBAAAmB,EACA,CAAG,MAEH,OAhDA,SAAAjC,GAEA,MAAAkC,EAAA,CACA,cACA,eAIA,IAAAC,EAAAvC,EAAAwC,KAAApC,GAEA,KAAAmC,GAAA,CACA,IAEAD,EAAAC,EAAA,IAAArB,mBAAAqB,EAAA,GACA,CAAI,MACJ,MAAAE,EAAAxB,EAAAsB,EAAA,IAEAE,IAAAF,EAAA,KACAD,EAAAC,EAAA,IAAAE,EAEA,CAEAF,EAAAvC,EAAAwC,KAAApC,EACA,CAGAkC,EAAA,WAEA,MAAAI,EAAAC,OAAAC,KAAAN,GAEA,UAAAO,KAAAH,EAEAtC,EAAAA,EAAA0C,QAAA,IAAA7C,OAAA4C,EAAA,KAAAP,EAAAO,IAGA,OAAAzC,CACA,CAYA2C,CAAAV,EACA,CACA,CEkGSW,CAAeb,GAGxBA,CACA,CAEA,SAAAc,EAAA7C,GACA,OAAA8C,MAAAC,QAAA/C,GACAA,EAAAgD,OAGA,iBAAAhD,EACA6C,EAAAN,OAAAC,KAAAxC,IACAgD,KAAA,CAAAC,EAAAC,IAAA1C,OAAAyC,GAAAzC,OAAA0C,IACAC,IAAAV,GAAAzC,EAAAyC,IAGAzC,CACA,CA2BA,SAAAoD,EAAArB,EAAAC,EAAAqB,GACA,iBAAAA,GAAA,iBAAAtB,EACAA,EAGA,mBAAAsB,GAAA,iBAAAtB,EACAsB,EAAAtB,GAGA,YAAAsB,GAAA,OAAAtB,IAIA,YAAAsB,GAAA,OAAAtB,GAAA,SAAAA,EAAAuB,eAAA,UAAAvB,EAAAuB,cAIA,YAAAD,GAAA,OAAAtB,GAAA,MAAAA,EAAAuB,eAAA,MAAAvB,EAAAuB,cAIA,aAAAD,GAAA,SAAArB,EAAAuB,aAAA,iBAAAxB,EACA,CAAAA,GAGA,aAAAsB,GAAA,SAAArB,EAAAuB,aAAA/C,OAAAgD,MAAAhD,OAAAuB,KAAA,iBAAAA,GAAA,KAAAA,EAAA0B,OAIA,WAAAJ,GAAA7C,OAAAgD,MAAAhD,OAAAuB,KAAA,iBAAAA,GAAA,KAAAA,EAAA0B,QAIAzB,EAAA0B,eAAA,OAAA3B,GAAA,SAAAA,EAAAuB,eAAA,UAAAvB,EAAAuB,cAIAtB,EAAA2B,eAAAnD,OAAAgD,MAAAhD,OAAAuB,KAAA,iBAAAA,GAAA,KAAAA,EAAA0B,OACAjD,OAAAuB,GAGAA,EAPA,SAAAA,EAAAuB,cAJA9C,OAAAuB,GAJA,CAAAvB,OAAAuB,IARA,MAAAA,EAAAuB,cAJA,SAAAvB,EAAAuB,cA4BA,CA3VAM,OAAA,6GCgBA,MCzBuLC,EDyBvL,CACAC,KAAA,cACAC,WAAA,CACAC,oBAAAC,EACAC,SAAAA,EAAAA,GAGAC,MAAA,CACApC,MAAA,CACAsB,KAAAe,OACAC,SAAAC,EAAAA,EAAAA,IAAA,kBAGAC,aAAA,CACAlB,KAAAe,OACAC,SAAAC,EAAAA,EAAAA,IAAA,wBAGAE,QAAA,CACAnB,KAAAoB,QACAC,UAAA,GAGAC,eAAA,CACAtB,KAAAoB,QACAJ,SAAA,4IEvCArC,EAAA,GAEAA,EAAA4C,kBAA4BC,IAC5B7C,EAAA8C,cAAwBC,IACxB/C,EAAAgD,OAAiBC,IAAAC,KAAa,aAC9BlD,EAAAmD,OAAiBC,IACjBpD,EAAAqD,mBAA6BC,IAEhBC,IAAIC,EAAAvB,EAAOjC,GAKFwD,EAAAvB,GAAWuB,EAAAvB,EAAOwB,QAAUD,EAAAvB,EAAOwB,sBCLzD,MAAAC,GAXgB,EAAAC,EAAA1B,GACdJ,ECTW,WAAkB,IAAI+B,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACE,MAAM,CAACC,QAAU,UAAU5C,KAAO,SAAS6C,MAAO,EAAKC,SAAWP,EAAIpB,SAAS4B,GAAG,CAACC,MAAQ,SAASC,GAAQ,OAAOV,EAAIW,MAAM,QAAQ,GAAGC,YAAYZ,EAAIa,GAAG,CAAC,CAAChE,IAAI,OAAOiE,GAAG,WAAW,MAAO,CAAEd,EAAIpB,QAASsB,EAAG,MAAM,CAACa,YAAY,iDAAiDb,EAAG,aAAa,CAACa,YAAY,yBAAyB,EAAEC,OAAM,MAAS,CAAChB,EAAIiB,GAAG,OAAOjB,EAAIkB,GAAIlB,EAAIpB,QAAsBoB,EAAIrB,aAAhBqB,EAAI7D,OAA0B,SAC/e,EACsB,IDUtB,EACA,KACA,WACA,cEVAgF,EAAA,CAECC,SAAU,CACTC,wBAAAA,GACC,OAAOpB,KAAKqB,KAAK/G,QAAU,GAC5B,EACAgH,mBAAAA,GACC,GAAItB,KAAKoB,yBACR,OAAO3C,EAAE,OAAQ,+BAGnB,IChBmL8C,ECyIrL,CACAtD,KAAA,YAEAC,WAAA,CACA2B,YAAAA,EACA2B,sBAAAA,EAAApD,EACAqD,gBAAAA,EAAArD,EACAsD,YAAAA,EAAAtD,EACAuD,WAAAA,EAAAA,GAGAC,OAAA,CAAAC,GAEAvD,MAAA,CACAwD,SAAA,CACAtE,KAAAe,OACAC,QAAA,IAGAuD,YAAA,CACAvE,KAAA,CAAAoB,QAAAL,QACAC,SAAA,GAGAwD,OAAA,CACAxE,KAAAP,MACAuB,QAAAA,IAAA,IAGAyD,SAAA,CACAzE,KAAAP,MACAuB,QAAAA,IAAA,IAGA0D,cAAA,CACA1E,KAAA7C,OACA6D,QAAA,GAGA2D,oBAAA,CACA3E,KAAAoB,QACAJ,SAAA,GAGA4D,kBAAA,CACA5E,KAAAoB,QACAJ,SAAA,GAGA6D,YAAA,CACA7E,KAAAoB,QACAJ,SAAA,GAGA8D,YAAA,CACA9E,KAAAP,MACAuB,QAAAA,IACA,KAKA+D,MAAAA,KAEA,CACA9D,EAAA+D,EAAAC,GAIAC,cAAAjE,EAAAA,EAAAA,IAAA,kCAAAkE,YAAAC,GAAAC,MAAA5E,WAAA6E,EAAA,CAAAC,UAAA,EAAAC,QAAA,IAEAC,cAAAC,EAAAA,EAAAA,GAAA,2BACAC,aAAAC,OAAAR,GAAAO,aACAE,UAAA,IAAAC,KAAAC,iBAAAC,mBAAAC,SACAC,iBAAA,IAAAC,MAAAC,oBAAA,KAIAC,KAAAvF,IACA,CACAK,SAAA,EACA0C,KAAA/C,EAAAwD,SACAgC,SAAA,GACAC,WAAA,MACAC,SAAA,IAIA7C,SAAA,CAIA8C,gBAAAA,GAEA,OAAAjE,KAAAiD,cAAA,EACA,QAGAiB,EAAAA,EAAAA,GAAAlE,KAAAmE,gBAAA,IAAAnE,KAAAiD,aACA,EAEAmB,OAAAA,GACA,OAAApE,KAAAqE,iBAAArE,KAAAsE,cACAtE,KAAAkC,cAAA,GACA,EAEAqC,aAAAA,GACA,OAAAvE,KAAAoE,SAAApE,KAAAoB,wBACA,EAEAoD,UAAAA,GACA,OAAAxE,KAAAqE,iBACA5F,EAAAA,EAAAA,IAAA,mCAEAuB,KAAAsE,cACA7F,EAAAA,EAAAA,IAAA,mCAEAuB,KAAAkC,cAAA,KACAzD,EAAAA,EAAAA,IAAA,2FADA,CAIA,EAEAgG,gBAAAA,GACA,WAAAzE,KAAAgC,OAAAhG,QAAA,mBACA,EAEA0I,eAAAA,GACA,WAAA1E,KAAAgC,OAAAhG,QAAA,kBACA,EAEA2I,iBAAAA,GACA,WAAA3E,KAAAgC,OAAAhG,QAAA,oBACA,EAEAqI,eAAAA,GACA,WAAArE,KAAAgC,OAAAhG,QAAA,kBACA,EAEAsI,YAAAA,GACA,WAAAtE,KAAAgC,OAAAhG,QAAA,eACA,EAEA4I,YAAAA,KACAC,EAAAA,EAAAA,IAAA,2BAGAC,eAAAA,KACAC,EAAAA,EAAAA,IAAA,SAGAC,YAAAA,GACA,OAAAhF,KAAAsC,YAAA2C,MAAAC,GAAA,MAAAA,EACA,EAEAC,SAAAA,GACA,OAAAnF,KAAAgF,cACAvG,EAAAA,EAAAA,IAAA,iCAEAA,EAAAA,EAAAA,IAAA,sBACA,GAGA2G,MAAA,CAIAtB,QAAAA,GACA9D,KAAAiE,kBACA,GAGAoB,OAAAA,GACA,KAAArF,KAAA8B,SACA9B,KAAAsF,MAAAjE,KAAAiE,MAAAC,WAAAD,MAAAnL,MAAAqL,QAEAxF,KAAAsF,MAAAxB,SAAAwB,MAAAC,WAAAD,MAAAnL,MAAAqL,OAEA,EAEAC,QAAA,CAKAtB,eAAAA,GACAnE,KAAA8D,SAAA,EACA,EAEA4B,cAAAA,GACA1F,KAAAU,MAAA,kBAAAV,KAAAqB,KACA,EAEAsE,MAAAA,CAAAC,GACA5F,KAAAgE,SAAA,EAEAhE,KAAArB,QAEAiH,EAAAC,kBAIA7F,KAAArB,SAAA,EACAqB,KAAAU,MAAA,UACA,mBC1UIoF,EAAO,GAEXA,EAAO/G,kBAAqBC,IAC5B8G,EAAO7G,cAAiBC,IACxB4G,EAAO3G,OAAUC,IAAAC,KAAa,aAC9ByG,EAAOxG,OAAUC,IACjBuG,EAAOtG,mBAAsBC,IAEhBC,IAAIqG,EAAA3H,EAAS0H,GAKJC,EAAA3H,GAAW2H,EAAA3H,EAAOwB,QAAUmG,EAAA3H,EAAOwB,OCLzD,MAAAoG,GAXgB,EAAAlG,EAAA1B,GACdmD,ECTW,WAAkB,IAAIxB,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAO,CAACgG,IAAI,YAAYnF,YAAY,aAAaX,MAAM,CAAC+F,OAAS,OAAOjI,KAAO,QAAQkI,OAASpG,EAAI+E,gBAAgBvE,GAAG,CAACoF,OAAS5F,EAAI4F,SAAS,CAAC1F,EAAG,WAAW,CAACa,YAAY,uBAAuBX,MAAM,CAAC,kBAAkB,KAAK,CAAEJ,EAAI0E,iBAAkBxE,EAAG,aAAa,CAACE,MAAM,CAACiG,MAAQrG,EAAItB,EAAE,OAAQ,sCAAsCjB,KAAO,YAAY,CAACuC,EAAIiB,GAAG,WAAWjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,uCAAuC,YAAYsB,EAAIsG,KAAKtG,EAAIiB,GAAG,KAAMjB,EAAI2E,gBAAiBzE,EAAG,aAAa,CAACE,MAAM,CAACmG,QAAUvG,EAAItB,EAAE,OAAQ,iBAAiBjB,KAAO,UAAU,CAACuC,EAAIiB,GAAG,WAAWjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,sFAAsF,YAAYsB,EAAIsG,KAAKtG,EAAIiB,GAAG,KAAMjB,EAAIkC,SAAS3H,OAAS,EAAG2F,EAAG,aAAaF,EAAIwG,GAAIxG,EAAIkC,SAAU,SAASuE,EAAQhL,GAAO,OAAOyE,EAAG,MAAM,CAACrD,IAAIpB,GAAO,CAACuE,EAAIiB,GAAG,aAAajB,EAAIkB,GAAGuF,IAAUvG,EAAG,OAAO,GAAG,GAAGF,EAAIsG,KAAKtG,EAAIiB,GAAG,KAAMjB,EAAI4E,kBAAmB1E,EAAG,aAAa,CAACwG,MAAM1G,EAAItB,EAAE,OAAQ,+BAA+B0B,MAAM,CAAC3C,KAAO,YAAY,CAACuC,EAAIiB,GAAG,WAAWjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,oDAAoD,YAAYsB,EAAIsG,KAAKtG,EAAIiB,GAAG,KAAKf,EAAG,MAAM,CAACa,YAAY,SAASX,MAAM,CAACuG,GAAK,YAAY,CAACzG,EAAG,MAAM,CAACa,YAAY,gBAAgBX,MAAM,CAACwG,IAAM,GAAGC,IAAM7G,EAAI6E,eAAe7E,EAAIiB,GAAG,KAAKf,EAAG,OAAO,CAACE,MAAM,CAACuG,GAAK,iBAAiB3G,EAAIiB,GAAG,KAAKf,EAAG,MAAM,CAAC4G,YAAY,CAACC,MAAQ,YAAY/G,EAAIiB,GAAG,KAAKf,EAAG,KAAK,CAACa,YAAY,uBAAuBX,MAAM,CAAC,2BAA2B,KAAK,CAACJ,EAAIiB,GAAG,WAAWjB,EAAIkB,GAAGlB,EAAI2C,cAAc,YAAY3C,EAAIiB,GAAG,KAAKf,EAAG,cAAc,CAACgG,IAAI,OAAOQ,MAAM,CAAEM,MAAOhH,EAAIsE,iBAAkBlE,MAAM,CAACuG,GAAK,OAAOM,MAAQjH,EAAIoF,UAAUlH,KAAO,OAAOgJ,UAAY,IAAIC,eAAiB,OAAOC,eAAgB,EAAMC,aAAerH,EAAIoC,oBAAsB,WAAa,MAAMtD,SAAW,GAAGwI,MAAQtH,EAAIwE,cAAc,cAAcxE,EAAIuB,oBAAoB,6BAA6B,IAAIf,GAAG,CAAC+G,OAASvH,EAAI2F,gBAAgB6B,MAAM,CAACrL,MAAO6D,EAAIsB,KAAMmG,SAAS,SAAUC,GAAM1H,EAAIsB,KAAKoG,CAAG,EAAEC,WAAW,UAAU3H,EAAIiB,GAAG,KAAKf,EAAG,kBAAkB,CAACgG,IAAI,WAAWQ,MAAM,CAAEM,MAAOhH,EAAIsE,iBAAkBlE,MAAM,CAACuG,GAAK,WAAWzI,KAAO,WAAWkJ,eAAgB,EAAMD,eAAiB,OAAOE,aAAerH,EAAIoC,oBAAsB,mBAAqB,MAAM6E,MAAQjH,EAAItB,EAAE,OAAQ,YAAY,cAAcsB,EAAIyE,WAAW6C,MAAQtH,EAAIqE,QAAQJ,QAAUjE,EAAIiE,QAAQ,iCAAiC,GAAGnF,SAAW,IAAI0I,MAAM,CAACrL,MAAO6D,EAAI+D,SAAU0D,SAAS,SAAUC,GAAM1H,EAAI+D,SAAS2D,CAAG,EAAEC,WAAW,cAAc3H,EAAIiB,GAAG,KAAMjB,EAAIqC,kBAAmBnC,EAAG,wBAAwB,CAACgG,IAAI,aAAa9F,MAAM,CAACuG,GAAK,aAAazI,KAAO,aAAa/B,MAAQ,IAAI,mCAAmC,IAAIqL,MAAM,CAACrL,MAAO6D,EAAIgE,WAAYyD,SAAS,SAAUC,GAAM1H,EAAIgE,WAAW0D,CAAG,EAAEC,WAAW,eAAe,CAAC3H,EAAIiB,GAAG,WAAWjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,gBAAgB,YAAYsB,EAAIsG,KAAKtG,EAAIiB,GAAG,KAAKf,EAAG,cAAc,CAACE,MAAM,CAAC,yBAAyB,GAAGxB,QAAUoB,EAAIpB,WAAWoB,EAAIiB,GAAG,KAAMjB,EAAIgC,YAAa9B,EAAG,QAAQ,CAACE,MAAM,CAAC3C,KAAO,SAASS,KAAO,gBAAgB0J,SAAS,CAACzL,MAAQ6D,EAAIgC,eAAehC,EAAIsG,KAAKtG,EAAIiB,GAAG,KAAKf,EAAG,QAAQ,CAACE,MAAM,CAAC3C,KAAO,SAASS,KAAO,YAAY0J,SAAS,CAACzL,MAAQ6D,EAAIsD,YAAYtD,EAAIiB,GAAG,KAAKf,EAAG,QAAQ,CAACE,MAAM,CAAC3C,KAAO,SAASS,KAAO,mBAAmB0J,SAAS,CAACzL,MAAQ6D,EAAI2D,kBAAkB3D,EAAIiB,GAAG,KAAKf,EAAG,QAAQ,CAACE,MAAM,CAAC3C,KAAO,SAASS,KAAO,gBAAgB0J,SAAS,CAACzL,MAAQ6D,EAAIoD,gBAAgBpD,EAAIiB,GAAG,KAAMjB,EAAIsC,YAAapC,EAAG,QAAQ,CAACE,MAAM,CAAC3C,KAAO,SAASS,KAAO,SAAS/B,MAAQ,OAAO6D,EAAIsG,MAAM,IACphH,EACsB,IDUtB,EACA,KACA,WACA,cEEO,MAAAuB,UAAAC,MACP,WAAAC,EAAAtB,QAAkBA,EAAAuB,KAAAA,EAAAC,MAAAA,EAAA/J,KAAAA,IAElBgK,MAAAzB,EAAA,CAAyBwB,UACzBtL,OAAAwL,eAAAlI,KAAA,QACAmI,YAAA,EACAC,cAAA,EACAC,UAAA,EACAnM,WAAA,IAEA8D,KAAA/B,KAAAA,GAAA+J,EAAA/J,KACA+B,KAAA+H,KAAAA,CACA,ECOO,MAAAO,EAAA,IApCP,MACA,WAAAR,GACApL,OAAAwL,eAAAlI,KAAA,cACAmI,YAAA,EACAC,cAAA,EACAC,UAAA,EACAnM,WAAA,GAEA,CACA,oBAAAqM,GAEA,GAAAvI,KAAAwI,WAAA,CACA,MAAAC,EAAA,IAAAZ,MAAA,qDACAY,EAAAxK,KAAA,aACA+B,KAAAwI,WAAAE,MAAAD,EACA,CACA,MAAAE,EAAA,IAAAC,gBAEA,OADA5I,KAAAwI,WAAAG,EACAA,EAAAE,MACA,CACA,cAAAC,GACA,GAAA9I,KAAAwI,WAAA,CACA,MAAAC,EAAA,IAAAZ,MAAA,kDACAY,EAAAxK,KAAA,aACA+B,KAAAwI,WAAAE,MAAAD,GACAzI,KAAAwI,gBAAA1F,CACA,CACA,GCrBO,SAASiG,EAAuBC,GACvC,MAAAC,EAAA,IAAAC,WAAAF,GACA,IAAAG,EAAA,GACA,UAAAC,KAAAH,EACAE,GAAA5K,OAAA8K,aAAAD,GAGA,OADAE,KAAAH,GACAtM,QAAA,WAAAA,QAAA,WAAAA,QAAA,QACA,CCPO,SAAS0M,EAAuBC,GAEvC,MAAAC,EAAAD,EAAA3M,QAAA,UAAAA,QAAA,UAQA6M,GAAA,EAAAD,EAAAnP,OAAA,KACAqP,EAAAF,EAAAG,OAAAH,EAAAnP,OAAAoP,EAAA,KAEAG,EAAAC,KAAAH,GAEAX,EAAA,IAAAe,YAAAF,EAAAvP,QACA2O,EAAA,IAAAC,WAAAF,GACA,QAAAgB,EAAA,EAAoBA,EAAAH,EAAAvP,OAAmB0P,IACvCf,EAAAe,GAAAH,EAAAI,WAAAD,GAEA,OAAAhB,CACA,CCzBO,SAASkB,IAChB,OAAAC,EAAAC,cAAAtH,IAAAuH,YAAAC,qBACA,mBAAAD,WAAAC,oBACA,CAKO,MAAAH,EAAA,CACPC,SAAAlO,GAAAA,GCWOqO,GACPrO,GAAAA,ECvBO,SAASsO,GAA+BC,GAC/C,MAAA/D,GAAYA,GAAK+D,EACjB,UACAA,EACA/D,GAAY6C,EAAuB7C,GAMnCgE,WAAAD,EAAAC,WAEA,CCbA,MAAAC,GAAA,8BAIO,SAASC,GAAyBC,GACzC,GAAAA,KAGAF,GAAA3O,QAAA6O,GAAA,GAGA,OAAAA,CACA,6BCQA,MCpB2GC,GDoB3G,CACA7M,KAAA,eACA8M,MAAA,UACAzM,MAAA,CACA8H,MAAA,CACA5I,KAAAe,QAEAyM,UAAA,CACAxN,KAAAe,OACAC,QAAA,gBAEAyM,KAAA,CACAzN,KAAA7C,OACA6D,QAAA,MEfA0M,IAXgB,EAAApL,EAAA1B,GACd0M,GCRQ,WAAqB,IAAA/K,EAAAC,KAAAC,EAAAF,EAAAG,MAAAD,GAA6B,OAAAA,EAAA,OAAAF,EAAAoL,GAAA,CAAyBrK,YAAA,sCAAAX,MAAA,CAAyD,cAAAJ,EAAAqG,MAAA,yBAAArG,EAAAqG,MAAAgF,KAAA,OAA4E7K,GAAA,CAAKC,MAAA,SAAAC,GAAyB,OAAAV,EAAAW,MAAA,QAAAD,EAAA,IAAoC,OAAAV,EAAAsL,QAAA,IAAApL,EAAA,OAAqCa,YAAA,4BAAAX,MAAA,CAA+CmL,KAAAvL,EAAAiL,UAAAO,MAAAxL,EAAAkL,KAAAO,OAAAzL,EAAAkL,KAAAQ,QAAA,cAA+E,CAAAxL,EAAA,QAAaE,MAAA,CAAOuL,EAAA,kOAAqO,CAAA3L,EAAA,MAAAE,EAAA,SAAAF,EAAAiB,GAAAjB,EAAAkB,GAAAlB,EAAAqG,UAAArG,EAAAsG,UACxrB,EACmB,IDSnB,EACA,KACA,KACA,0CEUA,MAAAsF,GAXc,QADKtK,IAYMuK,EAAAA,GAAAA,QAVhBC,EAAAA,GAAAA,MACLC,OAAO,QACPC,SAEIF,EAAAA,GAAAA,MACLC,OAAO,QACPE,OAAO3K,GAAK4K,KACZF,QATH,IAAmB1K,IAcgBwK,EAAAA,GAAAA,MACjCC,OAAO,kBACPI,aACAH,wBCrBK,MAAMI,WAA2BtE,OC4DxC,MCpEiMuE,IDoEjMC,EAAAA,EAAAA,IAAA,CACApO,KAAA,wBACAC,WAAA,CACA2B,YAAAA,EACAyM,gBAAAC,GAAAnO,EACAoO,aAAAtB,GACAuB,eAAAA,GAAArO,EACAsD,YAAAA,EAAAA,GAGApD,MAAA,CACAwD,SAAA,CACAtE,KAAAe,OACAC,QAAA,IAGAuD,YAAA,CACAvE,KAAA,CAAAoB,QAAAL,QACAC,SAAA,GAGA2D,oBAAA,CACA3E,KAAAoB,QACAJ,SAAA,GAGAkO,QAAA,CACAlP,KAAAoB,QACAJ,SAAA,GAGAmO,YAAA,CACAnP,KAAAoB,QACAJ,SAAA,IAIA+D,MAAAA,KACA,CACAqK,iBAAAC,MAIAhJ,IAAAA,GACA,OACAxC,KAAArB,KAAA8B,SACAnD,SAAA,EACAmO,kBAAA,EAEA,EAEArH,QAAA,CACA,kBAAAsH,GAEA,GAAA/M,KAAAsF,MAAA0H,UAAAC,gBAAA,CAIAtB,GAAAuB,MAAA,gCAEA,IACA,MAAAC,QDjHOC,eAAmCC,GACtC,MAAMC,GAAMvI,EAAAA,EAAAA,IAAY,0BAClBlB,KAAEA,SAAe0J,GAAAA,GAAMC,KAAKF,EAAK,CAAED,cACzC,IAAKxJ,EAAK4J,kBAAqD,IAAjC5J,EAAK4J,iBAAiBnT,OAEhD,MADAqR,GAAOtE,MAAM,8CACP,IAAI8E,GAEd,aGRGiB,eAAAjR,IAEPA,EAAAuR,aAAAvR,EAAAwR,YACAC,QAAAC,KAAA,gUAEA1R,EAAA,CAAoBuR,YAAAvR,IAEpB,MAAAuR,YAAYA,EAAAI,mBAAAA,GAAA,EAAAC,2BAAAA,GAAA,GAA8E5R,EAC1F,IAAS+N,IACT,UAAArC,MAAA,6CAIA,IAAA4F,EACA,IAAAC,EAAAD,kBAAAnT,SACAmT,EAAAC,EAAAD,kBAAAnQ,IAA6DkN,KAG7D,MAAAwD,EAAA,IACAN,EACAC,UAAmBpE,EAAuBmE,EAAAC,WAC1CF,oBAGAQ,EAAA,GAKA,GAAAH,EAAA,CACA,UXxCO,WACP,IAAS5D,IACT,OAAAK,GAAA,IAAA2D,QAAAC,GAAAA,GAAA,KAQA,MAAAC,EAAA/D,WACAC,oBACA,OACAC,QADAzH,IAAAsL,GAAAC,gCACA,IAAAH,QAAAC,GAAAA,GAAA,IAEAC,EAAAC,kCACA,CWwBoBC,GACpB,MAAAzG,MAAA,8CAKA,GAFA0G,SAAAC,iBAAA,mCAEAlU,OAAA,GAAAyT,EACA,MAAAlG,MAAA,qGAIAoG,EAAAQ,UAAA,cAEAT,EAAAP,iBAAA,EACA,CAMA,IAAAiB,EAJAT,EAAAD,UAAAA,EAEAC,EAAApF,OAAwBP,EAAoBC,uBAG5C,IACAmG,QAAAC,UAAAC,YAAAC,IAAAZ,EACA,CACA,MAAAa,GACA,MCjEO,UAAAzH,MAAuCA,EAAAlL,QAAAA,IAC9C,MAAA6R,UAAYA,GAAY7R,EACxB,IAAA6R,EACA,MAAAnG,MAAA,mDAEA,kBAAAR,EAAApJ,MACA,GAAA9B,EAAA0M,kBAAAkG,YAEA,WAAuBnH,EAAa,CACpCpB,QAAA,mDACAuB,KAAA,yBACAC,MAAAX,QAIA,wBAAAA,EAAApJ,KAKA,WAAmB2J,EAAa,CAChCpB,QAAAa,EAAAb,QACAuB,KAAA,uCACAC,MAAAX,IAGA,qBAAAA,EAAApJ,KAAA,CACA,MAAA+Q,EAAA3E,WAAA4E,SAAAC,SACA,GCtBA,eAH6BA,EDyBHF,KCpB1B,4EAAgEvU,KAAAyU,GDsBhE,WAAuBtH,EAAa,CACpCpB,QAAA,GAA4B6D,WAAA4E,SAAAC,gCAC5BnH,KAAA,uBACAC,MAAAX,IAGA,GAAA2G,EAAAmB,OAAAH,EAEA,WAAuBpH,EAAa,CACpCpB,QAAA,cAAuCwH,EAAAmB,mCACvCpH,KAAA,sBACAC,MAAAX,GAGA,MACA,oBAAAA,EAAApJ,KAGA,WAAmB2J,EAAa,CAChCpB,QAAA,+GACAuB,KAAA,oCACAC,MAAAX,GAEA,CClDO,IAAsB6H,EDmD7B,OAAA7H,CACA,CDUc+H,CAA2B,CAAG/H,MAAAyH,EAAA3S,QAAA8R,GAC5C,CACA,IAAAS,EACA,UAAA7G,MAAA,oCAEA,MAAAnB,GAAYA,EAAA2I,MAAAA,EAAAC,SAAAA,EAAA9R,KAAAA,GAA4BkR,EACxC,IAAAa,EAKA,OAJAD,EAAAC,aACAA,EAAqBxG,EAAuBuG,EAAAC,aAG5C,CACA7I,KACA2I,MAAetG,EAAuBsG,GACtCC,SAAA,CACAE,kBAA+BzG,EAAuBuG,EAAAE,mBACtDC,eAA4B1G,EAAuBuG,EAAAG,gBACnDC,UAAuB3G,EAAuBuG,EAAAI,WAC9CH,cAEA/R,OACAmS,uBAAAjB,EAAAkB,4BACAC,wBAAiCjF,GAAyB8D,EAAAmB,yBAE1D,CHvEiBC,CAA4B,CAAEpC,YAAa7J,GAC5D,CCyGAkM,CAAA/P,KAAAqB,YACArB,KAAAgQ,uBAAA7C,EACA,OAAA9F,GACA,GAAAA,aAAA8E,GAEA,YADAnM,KAAA8M,kBAAA,GAGAnB,GAAAuB,MAAA7F,EACA,CAbA,CAcA,EAEA4I,cAAAA,CAAAnO,GACA9B,KAAAqB,KAAAS,EACA9B,KAAAU,MAAA,kBAAAV,KAAAqB,KACA,EAEA2O,sBAAAA,CAAArC,GACA,IAAA5L,EAAA/B,KAAA+B,YAEA,ODtHOqL,eAAoC8C,GACvC,MAAM5C,GAAMvI,EAAAA,EAAAA,IAAY,2BAClBlB,KAAEA,SAAe0J,GAAAA,GAAMC,KAAKF,EAAK,CAAEzJ,KAAMsM,KAAKC,UAAUF,KAC9D,OAAOrM,CACX,CCkHAwM,CAAA1C,GACA2C,KAAA,EAAAC,yBACA5E,GAAAuB,MAAA,yBACAnL,GACA,MAAAA,EAAA5G,OAAA,KACA4G,EAAA,IAAAA,GAEAqB,OAAA6L,SAAAuB,MAAAC,EAAAA,EAAAA,MAAA1O,GAEAqB,OAAA6L,SAAAuB,KAAAD,IAGAG,MAAArJ,IACAsE,GAAAuB,MAAA,4CAAA7F,WAEA,EAEA1B,MAAAA,GACA,qBK3JIgL,GAAO,GAEXA,GAAO5R,kBAAqBC,IAC5B2R,GAAO1R,cAAiBC,IACxByR,GAAOxR,OAAUC,IAAAC,KAAa,aAC9BsR,GAAOrR,OAAUC,IACjBoR,GAAOnR,mBAAsBC,IAEhBC,IAAIkR,GAAAxS,EAASuS,IAKJC,GAAAxS,GAAWwS,GAAAxS,EAAOwB,QAAUgR,GAAAxS,EAAOwB,OChBzD,IAAIiR,IAAY,EAAA/Q,EAAA1B,GACdgO,GCTW,WAAkB,IAAIrM,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAgC,OAAtBF,EAAIG,MAAM4Q,aAAqB/Q,EAAI2M,SAAW3M,EAAI4M,cAAgB5M,EAAI6M,iBAAkB3M,EAAG,OAAO,CAACgG,IAAI,YAAYnF,YAAY,2BAA2BX,MAAM,CAAC,kBAAkB,iCAAiC+F,OAAS,OAAOjI,KAAO,SAASsC,GAAG,CAACoF,OAAS,SAASlF,GAAgC,OAAxBA,EAAOoF,iBAAwB9F,EAAI4F,OAAOoL,MAAM,KAAMC,UAAU,IAAI,CAAC/Q,EAAG,KAAK,CAACE,MAAM,CAACuG,GAAK,mCAAmC,CAAC3G,EAAIiB,GAAG,SAASjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,yBAAyB,UAAUsB,EAAIiB,GAAG,KAAKf,EAAG,cAAc,CAACE,MAAM,CAACtB,SAAW,GAAG,cAAckB,EAAIsB,KAAK+F,aAAerH,EAAIoC,oBAAsB,KAAO,MAAMkF,OAAStH,EAAI+M,iBAAiB9F,MAAQjH,EAAItB,EAAE,OAAQ,kBAAkBwS,YAAclR,EAAItB,EAAE,OAAQ,kBAAkB,cAAesB,EAAI+M,iBAAwF,GAArE/M,EAAItB,EAAE,OAAQ,sDAA2D8B,GAAG,CAAC,eAAeR,EAAIkQ,kBAAkBlQ,EAAIiB,GAAG,KAAMjB,EAAI+M,iBAAkB7M,EAAG,cAAc,CAACE,MAAM,CAACxB,QAAUoB,EAAIpB,SAAS4B,GAAG,CAACC,MAAQT,EAAIgN,gBAAgBhN,EAAIsG,MAAM,GAAKtG,EAAI2M,SAAY3M,EAAI4M,YAAkS1M,EAAG,iBAAiB,CAACE,MAAM,CAAClC,KAAO8B,EAAItB,EAAE,OAAQ,yBAAyByS,YAAcnR,EAAItB,EAAE,OAAQ,kEAAkEkC,YAAYZ,EAAIa,GAAG,CAAC,CAAChE,IAAI,OAAOiE,GAAG,WAAW,MAAO,CAACZ,EAAG,mBAAmB,EAAEc,OAAM,OAAjhBd,EAAG,iBAAiB,CAACE,MAAM,CAAClC,KAAO8B,EAAItB,EAAE,OAAQ,iCAAiCyS,YAAcnR,EAAItB,EAAE,OAAQ,4EAA4EkC,YAAYZ,EAAIa,GAAG,CAAC,CAAChE,IAAI,OAAOiE,GAAG,WAAW,MAAO,CAACZ,EAAG,gBAAgB,EAAEc,OAAM,MACr1C,EACsB,IDUtB,EACA,KACA,WACA,MAIA,MAAAoQ,GAAeN,WEnB8OO,ICS9O/E,EAAAA,EAAAA,IAAgB,CAC3BpO,KAAM,gBACNC,WAAY,CACR2B,YAAWA,EACXxB,SAAQA,EAAAD,EACRuD,WAAUA,EAAAvD,EACVsD,YAAWA,EAAAA,GAEfE,OAAQ,CAACC,GACTvD,MAAO,CACHwD,SAAU,CACNtE,KAAMe,OACNM,UAAU,GAEdwS,kBAAmB,CACf7T,KAAMe,OACNM,UAAU,IAGlBgF,IAAAA,GACI,MAAO,CACHwD,OAAO,EACP1I,SAAS,EACT6H,QAAS,GACTnF,KAAMrB,KAAK8B,SAEnB,EACAsD,MAAO,CACHtD,QAAAA,CAAS5F,GACL8D,KAAKqB,KAAOnF,CAChB,GAEJuJ,QAAS,CACLC,cAAAA,GACI1F,KAAKU,MAAM,kBAAmBV,KAAKqB,KACvC,EACA,YAAMsE,GACF3F,KAAKrB,SAAU,EACfqB,KAAKqH,OAAQ,EACbrH,KAAKwG,QAAU,GACf,MAAM8G,GAAMvI,EAAAA,EAAAA,IAAY,uBACxB,IACI,MAAMlB,KAAEA,SAAeyN,GAAAA,GAAM9D,KAAKF,EAAK,CAAEjM,KAAMrB,KAAKqB,OACpD,GAAoB,YAAhBwC,EAAK0N,OACL,MAAM,IAAI1J,MAAM,cAAchE,EAAK0N,UAEvCvR,KAAKwG,QAAU,cACnB,CACA,MAAOa,GACHsE,GAAOtE,MAAM,qCAAsC,CAAEA,UACrDrH,KAAKqH,OAAQ,EACbrH,KAAKwG,QAAU,YACnB,CAAC,QAEGxG,KAAKrB,SAAU,CACnB,CACJ,oBCtDJ6S,GAAO,GAEXA,GAAOzS,kBAAqBC,IAC5BwS,GAAOvS,cAAiBC,IACxBsS,GAAOrS,OAAUC,IAAAC,KAAa,aAC9BmS,GAAOlS,OAAUC,IACjBiS,GAAOhS,mBAAsBC,IAEhBC,IAAI+R,GAAArT,EAASoT,IAKJC,GAAArT,GAAWqT,GAAArT,EAAOwB,QAAU6R,GAAArT,EAAOwB,OChBzD,IAAI8R,IAAY,EAAA5R,EAAA1B,GACdgT,GFTW,WAAkB,IAAIrR,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAgC,OAAtBF,EAAIG,MAAM4Q,YAAmB7Q,EAAG,OAAO,CAACa,YAAY,sBAAsBP,GAAG,CAACoF,OAAS,SAASlF,GAAgC,OAAxBA,EAAOoF,iBAAwB9F,EAAI4F,OAAOoL,MAAM,KAAMC,UAAU,IAAI,CAAC/Q,EAAG,KAAK,CAACF,EAAIiB,GAAGjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,sBAAsBsB,EAAIiB,GAAG,KAAKf,EAAG,cAAc,CAACE,MAAM,CAACuG,GAAK,OAAOzI,KAAO,OAAOgJ,UAAY,IAAIC,eAAiB,MAAMF,MAAQjH,EAAItB,EAAE,OAAQ,kBAAkB4I,MAAQtH,EAAIqB,yBAAyB,cAAcrB,EAAIuB,oBAAoBzC,SAAW,IAAI0B,GAAG,CAAC+G,OAASvH,EAAI2F,gBAAgB6B,MAAM,CAACrL,MAAO6D,EAAIsB,KAAMmG,SAAS,SAAUC,GAAM1H,EAAIsB,KAAKoG,CAAG,EAAEC,WAAW,UAAU3H,EAAIiB,GAAG,KAAKf,EAAG,cAAc,CAACE,MAAM,CAACxB,QAAUoB,EAAIpB,QAAQzC,MAAQ6D,EAAItB,EAAE,OAAQ,qBAAqBsB,EAAIiB,GAAG,KAAKf,EAAG,WAAW,CAACE,MAAM,CAACC,QAAU,WAAWC,KAAO,IAAIE,GAAG,CAACC,MAAQ,SAASC,GAAQ,OAAOV,EAAIW,MAAM,QAAQ,IAAI,CAACX,EAAIiB,GAAG,SAASjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,kBAAkB,UAAUsB,EAAIiB,GAAG,KAAsB,iBAAhBjB,EAAIyG,QAA4BvG,EAAG,aAAa,CAACE,MAAM,CAAC3C,KAAO,YAAY,CAACuC,EAAIiB,GAAG,SAASjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,mOAAmO,UAA2B,eAAhBsB,EAAIyG,QAA0BvG,EAAG,aAAa,CAACE,MAAM,CAAC3C,KAAO,UAAU,CAACuC,EAAIiB,GAAG,SAASjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,kEAAmE,UAA2B,gBAAhBsB,EAAIyG,QAA2BvG,EAAG,aAAa,CAACE,MAAM,CAAC3C,KAAO,UAAU,CAACuC,EAAIiB,GAAG,SAASjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,mEAAmE,UAAUsB,EAAIsG,MAAM,EACxpD,EACsB,IEUtB,EACA,KACA,WACA,MAIA,MAAAsL,GAAeD,WCnB2KE,GCoD1L,CACA3T,KAAA,iBACAC,WAAA,CACA2B,YAAAA,GAGAvB,MAAA,CACAwD,SAAA,CACAtE,KAAAe,OACAM,UAAA,GAGAgT,oBAAA,CACArU,KAAAe,OACAM,UAAA,IAIAgF,IAAAA,GACA,OACAwD,OAAA,EACA1I,SAAA,EACA6H,aAAA1D,EACAzB,KAAArB,KAAA8B,SACAgC,SAAA,GACAgO,WAAA,EACAC,SAAA,EAEA,EAEA3M,MAAA,CACAtD,QAAAA,CAAA5F,GACA8D,KAAAqB,KAAAnF,CACA,GAGAuJ,QAAA,CACA,YAAAE,GACA3F,KAAArB,SAAA,EACAqB,KAAAqH,OAAA,EACArH,KAAAwG,QAAA,GAEA,IACA,MAAA3C,KAAAA,SAAA0J,GAAAA,GAAAC,KAAAxN,KAAA6R,oBAAA,CACA/N,SAAA9D,KAAA8D,SACAiO,QAAA/R,KAAA+R,UAEA,GAAAlO,GAAA,YAAAA,EAAA0N,OACAvR,KAAAwG,QAAA,eACAxG,KAAAU,MAAA,kBAAAV,KAAAqB,MACArB,KAAAU,MAAA,YACA,KAAAmD,IAAAA,EAAAmO,WAEA,MAAAnO,GAAAA,EAAAoO,IACA,IAAApK,MAAAhE,EAAAoO,KAEA,IAAApK,MAJA7H,KAAA8R,WAAA,CAKA,CACA,OAAAI,GACAlS,KAAAqH,OAAA,EACArH,KAAAwG,QAAA0L,EAAA1L,QAAA0L,EAAA1L,QAAA/H,EAAA,wEACA,SACAuB,KAAArB,SAAA,CACA,CACA,oBCzGIwT,GAAO,GAEXA,GAAOpT,kBAAqBC,IAC5BmT,GAAOlT,cAAiBC,IACxBiT,GAAOhT,OAAUC,IAAAC,KAAa,aAC9B8S,GAAO7S,OAAUC,IACjB4S,GAAO3S,mBAAsBC,IAEhBC,IAAI0S,GAAAhU,EAAS+T,IAKJC,GAAAhU,GAAWgU,GAAAhU,EAAOwB,QAAUwS,GAAAhU,EAAOwB,OChBzD,IAAIyS,IAAY,EAAAvS,EAAA1B,GACdwT,GCTW,WAAkB,IAAI7R,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAO,CAACM,GAAG,CAACoF,OAAS,SAASlF,GAAgC,OAAxBA,EAAOoF,iBAAwB9F,EAAI4F,OAAOoL,MAAM,KAAMC,UAAU,IAAI,CAAC/Q,EAAG,WAAW,CAACA,EAAG,IAAI,CAACA,EAAG,QAAQ,CAACa,YAAY,UAAUX,MAAM,CAACmS,IAAM,aAAa,CAACvS,EAAIiB,GAAGjB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,oBAAoBsB,EAAIiB,GAAG,KAAKf,EAAG,QAAQ,CAACsS,WAAW,CAAC,CAACtU,KAAK,QAAQuU,QAAQ,UAAUtW,MAAO6D,EAAI+D,SAAU4D,WAAW,aAAavH,MAAM,CAACuG,GAAK,WAAWlJ,KAAO,WAAWS,KAAO,WAAWmJ,aAAe,eAAeF,eAAiB,OAAOuL,WAAa,QAAQ5T,SAAW,GAAGoS,YAAclR,EAAItB,EAAE,OAAQ,iBAAiBkJ,SAAS,CAACzL,MAAS6D,EAAI+D,UAAWvD,GAAG,CAACpG,MAAQ,SAASsG,GAAWA,EAAOiS,OAAOC,YAAiB5S,EAAI+D,SAASrD,EAAOiS,OAAOxW,MAAK,OAAO6D,EAAIiB,GAAG,KAAMjB,EAAI+R,UAAW7R,EAAG,MAAM,CAACa,YAAY,UAAU,CAACb,EAAG,IAAI,CAACF,EAAIiB,GAAG,aAAajB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,8NAA8N,cAAcsB,EAAIiB,GAAG,KAAKf,EAAG,QAAQ,CAACsS,WAAW,CAAC,CAACtU,KAAK,QAAQuU,QAAQ,UAAUtW,MAAO6D,EAAIgS,QAASrK,WAAW,YAAY5G,YAAY,WAAWX,MAAM,CAACuG,GAAK,qBAAqBlJ,KAAO,YAAYmK,SAAS,CAACiL,QAAU3V,MAAMC,QAAQ6C,EAAIgS,SAAShS,EAAI8S,GAAG9S,EAAIgS,QAAQ,OAAO,EAAGhS,EAAIgS,SAAUxR,GAAG,CAAC+G,OAAS,SAAS7G,GAAQ,IAAIqS,EAAI/S,EAAIgS,QAAQgB,EAAKtS,EAAOiS,OAAOM,IAAID,EAAKH,QAAuB,GAAG3V,MAAMC,QAAQ4V,GAAK,CAAC,IAAaG,EAAIlT,EAAI8S,GAAGC,EAAhB,MAA4BC,EAAKH,QAASK,EAAI,IAAIlT,EAAIgS,QAAQe,EAAII,OAAO,CAAzE,QAAsFD,GAAK,IAAIlT,EAAIgS,QAAQe,EAAItY,MAAM,EAAEyY,GAAKC,OAAOJ,EAAItY,MAAMyY,EAAI,IAAK,MAAMlT,EAAIgS,QAAQiB,CAAI,KAAKjT,EAAIiB,GAAG,KAAKf,EAAG,QAAQ,CAACE,MAAM,CAACmS,IAAM,uBAAuB,CAACvS,EAAIiB,GAAG,aAAajB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,0BAA2B,gBAAgBsB,EAAIsG,KAAKtG,EAAIiB,GAAG,KAAKf,EAAG,cAAc,CAACE,MAAM,CAACxB,QAAUoB,EAAIpB,QAAQzC,MAAQ6D,EAAItB,EAAE,OAAQ,kBAAkB,gBAAgBsB,EAAItB,EAAE,OAAQ,yBAAyBsB,EAAIiB,GAAG,KAAMjB,EAAIsH,OAAStH,EAAIyG,QAASvG,EAAG,IAAI,CAACwG,MAAM,CAAE0M,QAASpT,EAAIsH,QAAS,CAACtH,EAAIiB,GAAG,WAAWjB,EAAIkB,GAAGlB,EAAIyG,SAAS,YAAYzG,EAAIsG,MAAM,IAChlE,EACsB,IDUtB,EACA,KACA,WACA,MAIA,MAAA+M,GAAef,WEoGf,MAAAgB,G3CyPO,SAAAA,EAAAlX,IAnHP,SAAAD,GACA,oBAAAA,GAAA,IAAAA,EAAA5B,OACA,UAAAwB,UAAA,uDAEA,CA2HAwX,EAXAnX,EAAA,CACAnB,QAAA,EACAmC,MAAA,EACAO,YAAA,OACA6V,qBAAA,IACAzV,cAAA,EACAD,eAAA,EACA2V,MAAA9W,OAAA+W,OAAA,SACAtX,IAGAoX,sBAEA,MAAAG,EAhQA,SAAAvX,GACA,IAAAK,EAEA,OAAAL,EAAAuB,aACA,YACA,OAAAd,EAAAV,EAAAyX,KACAnX,EAAA,YAAAD,KAAAK,GAEAA,EAAAA,EAAAC,QAAA,cAEAL,QAKAsG,IAAA6Q,EAAA/W,KACA+W,EAAA/W,GAAA,IAGA+W,EAAA/W,GAAAJ,EAAA,IAAAN,GARAyX,EAAA/W,GAAAV,GAYA,cACA,OAAAU,EAAAV,EAAAyX,KACAnX,EAAA,SAAAD,KAAAK,GACAA,EAAAA,EAAAC,QAAA,WAEAL,OAKAsG,IAAA6Q,EAAA/W,GAKAK,MAAAC,QAAAyW,EAAA/W,IAKA+W,EAAA/W,GAAAgX,KAAA1X,GAJAyX,EAAA/W,GAAA,CAAA+W,EAAA/W,GAAAV,GALAyX,EAAA/W,GAAA,CAAAV,GALAyX,EAAA/W,GAAAV,GAkBA,2BACA,OAAAU,EAAAV,EAAAyX,KACAnX,EAAA,WAAAD,KAAAK,GACAA,EAAAA,EAAAC,QAAA,aAEAL,OAKAsG,IAAA6Q,EAAA/W,GAKAK,MAAAC,QAAAyW,EAAA/W,IAKA+W,EAAA/W,GAAAgX,KAAA1X,GAJAyX,EAAA/W,GAAA,CAAA+W,EAAA/W,GAAAV,GALAyX,EAAA/W,GAAA,CAAAV,GALAyX,EAAA/W,GAAAV,GAkBA,YACA,gBACA,OAAAU,EAAAV,EAAAyX,KACA,MACAE,EADA,iBAAA3X,GAAAA,EAAA4X,SAAA3X,EAAAoX,sBACArX,EAAA6X,MAAA5X,EAAAoX,sBAAAjW,IAAA0W,GAAqF/X,EAAM+X,EAAA7X,IAAA,OAAAD,EAAAA,EAA6CD,EAAMC,EAAAC,GAC9IwX,EAAA/W,GAAAiX,GAIA,wBACA,OAAAjX,EAAAV,EAAAyX,KACA,MAAAzW,EAAA,SAAAzC,KAAAmC,GAGA,GAFAA,EAAAA,EAAAC,QAAA,YAEAK,EAEA,YADAyW,EAAA/W,GAAAV,EAAgCD,EAAMC,EAAAC,GAAAD,GAItC,MAAA+X,EAAA,OAAA/X,EACA,GACOD,EAAMC,EAAAC,GAAA4X,MAAA5X,EAAAoX,sBAEb,QAAAzQ,IAAA6Q,EAAA/W,GAAA,CAKAK,MAAAC,QAAAyW,EAAA/W,MACA+W,EAAA/W,GAAA,CAAA+W,EAAA/W,KAGA,UAAAoX,KAAAC,EACAN,EAAA/W,GAAAgX,KAAAI,EAPA,MAFAL,EAAA/W,GAAAqX,GAcA,QACA,OAAArX,EAAAV,EAAAyX,UACA7Q,IAAA6Q,EAAA/W,GAKAK,MAAAC,QAAAyW,EAAA/W,IACA+W,EAAA/W,GAAAgX,KAAA1X,GAIAyX,EAAA/W,GAAA,CAAA+W,EAAA/W,GAAAV,GATAyX,EAAA/W,GAAAV,GAaA,CAmIAgY,CAAA/X,GAGAgY,EAAAzX,OAAA+W,OAAA,MAEA,oBAAAJ,EACA,OAAAc,EAKA,KAFAd,EAAAA,EAAAzV,OAAAf,QAAA,cAGA,OAAAsX,EAGA,UAAA1Z,KAAA4Y,GACA,OAAAc,EAGA,IAAAC,EAAA,EACAC,EAAAhB,EAAArX,QAAA,MACA,IAAAqY,IACAA,EAAAhB,EAAA/Y,QAGA,QAAAkB,EAAA6Y,EAAkC7Y,GAAA6X,EAAA/Y,OAAuBkB,IAAA,CACzD,GAAAA,EAAA6X,EAAA/Y,QAAA,MAAA+Y,EAAA7X,GACA,SAGA,GAAAA,IAAA4Y,EAAA,CACAA,EAAA5Y,EAAA,EACA,QACA,CAEA,MAAA8Y,EAAAjB,EAAA7Y,MAAA4Z,EAAA5Y,GACA+Y,EAAApY,EAAAnB,OAAAsZ,EAAAE,WAAA,SAAAF,EAEA,IAAA1X,EAAAV,GAAqBP,EAAY4Y,EAAA,UAEjCzR,IAAAlG,IACAA,EAAA2X,GAKArY,OAAA4G,IAAA5G,EAAA,+CAAA4X,SAAA3X,EAAAuB,aAAAxB,EAA4HD,EAAMC,EAAAC,GAClIuX,EAAYzX,EAAMW,EAAAT,GAAAD,EAAAiY,GAElBC,EAAA5Y,EAAA,CACA,CAEA,UAAAoB,EAAAV,KAAAQ,OAAAD,QAAA0X,GACA,oBAAAjY,GAAA,OAAAA,GAAA,WAAAC,EAAAqX,MAAA5W,GACA,UAAA6X,EAAAC,KAAAhY,OAAAD,QAAAP,GAAA,CACA,MAAAyY,EAAAxY,EAAAqX,MAAA5W,GACAY,EAAA,mBAAAmX,EAAAA,EAAAA,EAAAA,EAAA9X,QAAA,cAAAiG,EACA5G,EAAAuY,GAAAlX,EAAAmX,EAAAvY,EAAAqB,EACA,KACI,iBAAAtB,GAAA,OAAAA,GAAA,WAAAC,EAAAqX,MAAA5W,GACJuX,EAAAvX,GAAAF,OAAAkY,OAAA1Y,GAAA2Y,KAAA1Y,EAAAoX,sBAEAY,EAAAvX,GAAAW,EAAArB,EAAAC,EAAAA,EAAAqX,MAAA5W,IAIA,WAAAT,EAAAgB,KACAgX,IAKA,IAAAhY,EAAAgB,KAAAT,OAAAC,KAAAwX,GAAAhX,OAAAT,OAAAC,KAAAwX,GAAAhX,KAAAhB,EAAAgB,OAAA2X,OAAA,CAAAtY,EAAAI,KACA,MAAAV,EAAAiY,EAAAvX,GAEA,OADAJ,EAAAI,GAAAgC,QAAA1C,IAAA,iBAAAA,IAAAe,MAAAC,QAAAhB,GAAAc,EAAAd,GAAAA,EACAM,GACEE,OAAA+W,OAAA,MACF,C2CpVAsB,CAAA9F,SAAA+F,QACA,MAAA3B,GAAAvM,OChDOsG,iBACN,IACChK,OAAO6R,aAAanO,QACpB1D,OAAO8R,eAAepO,QACtB,MAAMqO,QAAsB/R,OAAOgS,UAAUC,YAC7C,IAAK,MAAMD,KAAaD,QACjB/R,OAAOgS,UAAUE,eAAeF,EAAUnX,MAEjD0N,GAAOuB,MAAM,2BACd,CAAE,MAAO7F,GACRsE,GAAOtE,MAAM,mCAAoC,CAAEA,SACpD,CACD,CDqCAkO,GAGA,ME5H2KC,GF4H3K,CACAvX,KAAA,QAEAC,WAAA,CACA8H,UAAAA,EACAmL,sBAAAA,GACAQ,cAAAA,GACAyB,eAAAA,GACA/U,SAAAA,EAAAD,EACAuD,WAAAA,EAAAA,GAGAkC,KAAAA,KACA,CACAlF,SAAA,EACA0C,MAAA6B,EAAAA,EAAAA,GAAA,2BACAuS,mBAAA,EACAC,eAAA,EAGA1T,QAAAkB,EAAAA,EAAAA,GAAA,yBACAjB,UAAAiB,EAAAA,EAAAA,GAAA,2BACAnB,aAAAmB,EAAAA,EAAAA,GAAA,8BACAhB,eAAAgB,EAAAA,EAAAA,GAAA,+BACAyS,kBAAAzS,EAAAA,EAAAA,GAAA,mCACAmO,mBAAAnO,EAAAA,EAAAA,GAAA,oCACAf,qBAAAe,EAAAA,EAAAA,GAAA,+BACAd,mBAAAc,EAAAA,EAAAA,GAAA,gCACA2O,qBAAA3O,EAAAA,EAAAA,GAAA,iCACA0S,mBAAA1S,EAAAA,EAAAA,GAAA,+BACAb,YAAA,MAAAgR,GAAAwC,OACAC,iBAAA5S,EAAAA,EAAAA,GAAA,gCACA6S,wBAAA7S,EAAAA,EAAAA,GAAA,oCACA8S,mBAAA9S,EAAAA,EAAAA,GAAA,+BACAwJ,QAAA,WAAAtJ,OAAA6L,SAAAgH,SACAtJ,YAAA,cAAAvJ,OAAA6L,SAAAC,SACAgH,eAAAhT,EAAAA,EAAAA,GAAA,2BACAZ,aAAAY,EAAAA,EAAAA,GAAA,2BAIAuC,QAAA,CACA0Q,qBAAAA,GACA/S,OAAA6L,SAAAuB,MAAAzL,EAAAA,EAAAA,IAAA,oBACA,oBG7JIqR,GAAO,GAEXA,GAAOrX,kBAAqBC,IAC5BoX,GAAOnX,cAAiBC,IACxBkX,GAAOjX,OAAUC,IAAAC,KAAa,aAC9B+W,GAAO9W,OAAUC,IACjB6W,GAAO5W,mBAAsBC,IAEhBC,IAAI2W,GAAAjY,EAASgY,IAKJC,GAAAjY,GAAWiY,GAAAjY,EAAOwB,QAAUyW,GAAAjY,EAAOwB,OCLzD,MAAA0W,IAXgB,EAAAxW,EAAA1B,GACdoX,GCTW,WAAkB,IAAIzV,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACa,YAAY,uBAAuB,EAAGf,EAAImW,eAAiBnW,EAAIsC,YAAa,CAACpC,EAAG,aAAa,CAACE,MAAM,CAAClC,KAAO,OAAOsY,KAAO,WAAW,CAAGxW,EAAI0V,mBAAsB1V,EAAI2V,eAA6C,KAA5B3V,EAAI8R,qBAAoyC9R,EAAIpB,SAAWoB,EAAI0V,kBAAmBxV,EAAG,MAAM,CAACrD,IAAI,gBAAgBkE,YAAY,uCAAuC,CAACb,EAAG,wBAAwB,CAACE,MAAM,CAAC2B,SAAW/B,EAAIsB,KAAK,eAAetB,EAAIgC,YAAY,wBAAwBhC,EAAIoC,oBAAoB,WAAWpC,EAAI2M,QAAQ,eAAe3M,EAAI4M,aAAapM,GAAG,CAAC,kBAAkB,SAASE,GAAQV,EAAIsB,KAAKZ,CAAM,EAAEkF,OAAS,SAASlF,GAAQV,EAAIpB,SAAU,CAAI,KAAKoB,EAAIiB,GAAG,KAAKf,EAAG,WAAW,CAACE,MAAM,CAACC,QAAU,WAAW,aAAaL,EAAItB,EAAE,OAAQ,sBAAsB4B,MAAO,GAAME,GAAG,CAACC,MAAQ,SAASC,GAAQV,EAAI0V,mBAAoB,CAAK,IAAI,CAAC1V,EAAIiB,GAAG,eAAejB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,SAAS,iBAAiB,IAAKsB,EAAIpB,SAAWoB,EAAI4V,iBAAkB1V,EAAG,MAAM,CAACrD,IAAI,kBAAkBkE,YAAY,oBAAoB,CAACb,EAAG,MAAM,CAACa,YAAY,2BAA2B,CAAEf,EAAI2V,cAAezV,EAAG,gBAAgB,CAACE,MAAM,CAAC2B,SAAW/B,EAAIsB,KAAK,sBAAsBtB,EAAIsR,mBAAmB9Q,GAAG,CAAC,kBAAkB,SAASE,GAAQV,EAAIsB,KAAKZ,CAAM,EAAEiI,MAAQ,SAASjI,GAAQV,EAAI2V,eAAgB,CAAK,KAAK3V,EAAIsG,MAAM,KAAkC,KAA5BtG,EAAI8R,oBAA4B5R,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAACE,MAAM,CAAC2B,SAAW/B,EAAIsB,KAAK,wBAAwBtB,EAAI8R,qBAAqBtR,GAAG,CAAC,kBAAkB,SAASE,GAAQV,EAAIsB,KAAKZ,CAAM,EAAE+V,KAAOzW,EAAIoW,0BAA0B,GAAGpW,EAAIsG,KAA1hFpG,EAAG,MAAM,CAACa,YAAY,sBAAsB,CAACb,EAAG,YAAY,CAACE,MAAM,CAAC2B,SAAW/B,EAAIsB,KAAK,eAAetB,EAAIgC,YAAY,eAAehC,EAAIsC,YAAYJ,SAAWlC,EAAIkC,SAASD,OAASjC,EAAIiC,OAAO,iBAAiBjC,EAAImC,cAAc,wBAAwBnC,EAAIoC,oBAAoB,qBAAqBpC,EAAIqC,kBAAkB,eAAerC,EAAIuC,aAAa/B,GAAG,CAAC,kBAAkB,SAASE,GAAQV,EAAIsB,KAAKZ,CAAM,EAAEkF,OAAS,SAASlF,GAAQV,EAAIpB,SAAU,CAAI,KAAKoB,EAAIiB,GAAG,KAAMjB,EAAI+V,gBAAiB7V,EAAG,WAAW,CAACE,MAAM,CAACC,QAAU,WAAWC,KAAO,IAAIE,GAAG,CAACC,MAAQ,SAASC,GAAQA,EAAOoF,iBAAiB9F,EAAI0V,mBAAoB,CAAI,IAAI,CAAC1V,EAAIiB,GAAG,eAAejB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,yBAAyB,gBAAgBsB,EAAIsG,KAAKtG,EAAIiB,GAAG,KAAMjB,EAAI4V,kBAA8C,KAA1B5V,EAAIsR,kBAA0BpR,EAAG,WAAW,CAACE,MAAM,CAACuG,GAAK,gBAAgB8J,KAAOzQ,EAAIsR,kBAAkBjR,QAAU,yBAAyBC,KAAO,KAAK,CAACN,EAAIiB,GAAG,eAAejB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,qBAAqB,gBAAiBsB,EAAI4V,mBAAqB5V,EAAI2V,cAAezV,EAAG,WAAW,CAACE,MAAM,CAACuG,GAAK,gBAAgBtG,QAAU,WAAWC,KAAO,IAAIE,GAAG,CAACC,MAAQ,SAASC,GAAQA,EAAOoF,iBAAiB9F,EAAI2V,eAAgB,CAAI,IAAI,CAAC3V,EAAIiB,GAAG,eAAejB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,qBAAqB,gBAAgBsB,EAAIsG,MAAM,MAA+xC,CAACpG,EAAG,aAAa,CAACE,MAAM,CAAClC,KAAO,OAAOsY,KAAO,WAAW,CAACtW,EAAG,aAAa,CAACE,MAAM,CAAC3C,KAAO,OAAO4I,MAAQrG,EAAItB,EAAE,OAAQ,6BAA6B,CAACsB,EAAIiB,GAAG,aAAajB,EAAIkB,GAAGlB,EAAItB,EAAE,OAAQ,gHAAgH,eAAe,IAAIsB,EAAIiB,GAAG,KAAKf,EAAG,MAAM,CAACa,YAAY,gCAAgCX,MAAM,CAACuG,GAAK,uBAAuB3G,EAAIwG,GAAIxG,EAAIiW,kBAAmB,SAASS,EAAiBjb,GAAO,OAAOyE,EAAG,WAAW,CAACrD,IAAIpB,EAAMiL,MAAM,CAACgQ,EAAiBhQ,OAAOtG,MAAM,CAACC,QAAU,YAAYC,MAAO,EAAK+K,KAAO,OAAOoF,KAAOiG,EAAiBjG,OAAO,CAACzQ,EAAIiB,GAAG,WAAWjB,EAAIkB,GAAGwV,EAAiBxY,MAAM,WAAW,GAAG,IAAI,EACngH,EACsB,IDUtB,EACA,KACA,WACA,0CEVA,MAAMyY,KAAYtT,OAAOuT,YCIZC,GAAYxT,OAAOyT,cAAgB,CAAC,ECFjDC,QAFkDhU,IAA5BM,OAAO2T,kBAAkC3T,OAAO2T,iCCAtE,MAEAC,GAFe5T,OAAO6T,YAAc,CAAC,ECA/BC,GAAS3I,SACb4I,qBAAqB,QAAQ,GAC7BC,aAAa,aACTC,GAAc9I,SAClB4I,qBAAqB,QAAQ,GAC7BC,aAAa,yBAEFE,QAAyBxU,IAAXoU,IAAuBA,GCLrChK,GAFA9J,OAAOmU,8DCapB,MAAMC,GAAU,CAGfC,eAAgB,GAEhBC,WAAY,GAGZC,uBAAwB,EAExBC,qBAAsB,EAEtBC,qBAAsB,EAEtBC,0BAA2B,EAE3BC,uBAAwB,EAYxBC,MAAO,SAASC,EAAM7R,EAAOoB,EAAU0Q,GACtClY,KAAKwG,QACJyR,EACA7R,EACA,QACAoR,GAAQW,UACR3Q,EACA0Q,EAEF,EAYAE,KAAM,SAASH,EAAM7R,EAAOoB,EAAU0Q,GACrClY,KAAKwG,QAAQyR,EAAM7R,EAAO,OAAQoR,GAAQW,UAAW3Q,EAAU0Q,EAChE,EAaAG,QAAS,SAASJ,EAAM7R,EAAOoB,EAAU0Q,GACxC,OAAOlY,KAAKwG,QACXyR,EACA7R,EACA,SACAoR,GAAQC,eACRjQ,EACA0Q,EAEF,EAYAI,mBAAoB,SAASL,EAAM7R,EAAOmS,EAAUf,GAAQE,WAAYlQ,EAAWA,QAClF,OAAQ,IAAIgR,GAAAA,IACVC,QAAQrS,GACRsS,QAAQT,GACRU,WAAWJ,IAAYf,GAAQE,WAC7B,CACA,CACC1Q,OAAOvI,EAAAA,EAAAA,GAAE,OAAQ,OACjB2B,QAAS,QACToH,SAAUA,KACTA,EAASoR,SAAU,EACnBpR,GAAS,MAIXgQ,GAAQqB,kBAAkBN,EAAS/Q,IACrCuE,QACA+M,OACAxI,KAAK,KACA9I,EAASoR,SACbpR,GAAS,IAGb,EAWAuR,YAAa,SAASd,EAAM7R,EAAOoB,GAClC,OAAQ,IAAIgR,GAAAA,IACVC,QAAQrS,GACRsS,QAAQ,IACRC,WAAW,CACX,CACC3R,OAAOvI,EAAAA,EAAAA,GAAE,OAAQ,MACjB+I,SAAUA,QAEX,CACCR,OAAOvI,EAAAA,EAAAA,GAAE,OAAQ,OACjB2B,QAAS,UACToH,SAAUA,KACTA,EAASoR,SAAU,EACnBpR,GAAS,OAIXuE,QACAiN,QAAQf,GACRa,OACAxI,KAAK,KACA9I,EAASoR,SACbpR,GAAS,IAGb,EAcAyR,OAAQ,SAAShB,EAAM7R,EAAOoB,EAAU0Q,EAAOja,EAAM6F,GACpD,OAAO,IAAIoK,QAASC,KACnB+K,EAAAA,GAAAA,IACCC,EAAAA,EAAAA,IAAqB,IAAMjL,QAAAkL,IAAA,CAAAC,EAAAnH,EAAA,MAAAmH,EAAAnH,EAAA,QAAA5B,KAAA,IAAA+I,EAAA,SAC3B,CACCpB,OACAha,KAAMmI,EACNoB,WACA8R,UAAWrb,EACXsb,aAAczV,GAEf,IAAI0V,KACHhS,KAAYgS,GACZrL,OAIJ,EA2BAsL,UAAAA,CAAWrT,EAAOoB,EAAUkS,GAAc,EAAOC,OAAW7W,EAAW8W,OAAS9W,EAAWtF,EAAOqc,GAAAA,GAAeC,OAAQC,OAAOjX,EAAW3G,OAAU2G,GAOpJ,MAAMkX,EAAiBA,CAACnZ,EAAIrD,KAC3B,MAAMyc,EAAWC,IAChB,MAAMC,EAAOD,GAAMC,MAAQ,GAC3B,IAAIJ,EAAOG,GAAMH,MAAQ,GAKzB,OAHIA,EAAKK,WAAWD,KACnBJ,EAAOA,EAAKvf,MAAM2f,EAAK7f,SAAW,KAE5Byf,GAGR,OAAIL,EACKW,GAAUxZ,EAAGwZ,EAAM/c,IAAI2c,GAAUzc,GAEjC6c,GAAUxZ,EAAGoZ,EAAQI,EAAM,IAAK7c,IAwBpC8c,GAAUC,EAAAA,GAAAA,IAAqBnU,GAGjC5I,IAASwC,KAAK+X,wBAChB5b,EAAQoc,SAAW,IAAIiC,QAASC,IAChCH,EAAQI,UAAU,CACjBlT,SAAUwS,EAAexS,EAAUiT,EAAOjd,MAC1CwJ,MAAOyT,EAAOxC,KACd7X,QAASqa,EAAOE,cAAgB,UAAY,gBAI9CL,EAAQM,iBAAiB,CAACP,EAAON,KAChC,MAAMxB,EAAU,IACT2B,GAAQG,EACT3H,EAASwH,GAAMW,aAAeX,GAAMY,WAAYA,EAAAA,GAAAA,UAASf,GAyB/D,OAvBIvc,IAASqc,GAAAA,GAAeC,QAC3BvB,EAAQ3E,KAAK,CACZpM,SAAUwS,EAAexS,EAAUqS,GAAAA,GAAeC,QAClD9S,MAAOkT,IAASla,KAAK+a,aAActc,EAAAA,EAAAA,GAAE,OAAQ,gBAAiB,CAAEuc,KAAMtI,KAAYjU,EAAAA,EAAAA,GAAE,OAAQ,UAC5F2B,QAAS,YAGP5C,IAASqc,GAAAA,GAAeoB,UAAYzd,IAASqc,GAAAA,GAAeqB,MAC/D3C,EAAQ3E,KAAK,CACZpM,SAAUwS,EAAexS,EAAUqS,GAAAA,GAAeqB,MAClDlU,MAAO0L,GAASjU,EAAAA,EAAAA,GAAE,OAAQ,mBAAoB,CAAEiU,YAAYjU,EAAAA,EAAAA,GAAE,OAAQ,QACtE2B,QAAS,UACT+a,KAAMC,KAGJ5d,IAASqc,GAAAA,GAAewB,MAAQ7d,IAASqc,GAAAA,GAAeoB,UAC3D1C,EAAQ3E,KAAK,CACZpM,SAAUwS,EAAexS,EAAUqS,GAAAA,GAAewB,MAClDrU,MAAO0L,GAASjU,EAAAA,EAAAA,GAAE,OAAQ,mBAAoB,CAAEiU,YAAYjU,EAAAA,EAAAA,GAAE,OAAQ,QACtE2B,QAAS5C,IAASqc,GAAAA,GAAewB,KAAO,UAAY,YACpDF,qOAGK5C,IAILoB,GACHW,EAAQgB,kBAAsC,iBAAb3B,EAAwB,CAACA,GAAaA,GAAY,IAErD,mBAApBxd,GAASof,QACnBjB,EAAQkB,UAAWtB,GAAS/d,EAAQof,OA/DXrB,KAAI,CAC7BxT,GAAIwT,EAAKuB,QAAU,KACnB1B,KAAMG,EAAKH,KACXJ,SAAUO,EAAKwB,MAAQ,KACvBC,MAAOzB,EAAKyB,OAAOC,WAAa,KAChCC,YAAa3B,EAAK2B,YAClB5d,KAAMic,EAAK4B,YAAYzE,aAAe6C,EAAKY,SAC3CiB,KAAM7B,EAAK4B,YAAYC,MAAQ,KAC/BC,WAAY9B,EAAK4B,YAAYE,YAAc,KAC3CC,UAAW/B,EAAK4B,YAAYG,WAAa,KACzCC,oBAAqBhC,EAAK4B,YAAYI,qBAAuB,KAC7Df,KAAM,KACNgB,iBAAkB,OAmDyBC,CAAiBlC,KAE7DI,EAAQ+B,kBAAoD,IAAnClgB,GAASmgB,uBAAkC3C,GAAU7F,SAAS,0BAA2B,GAChHyI,eAAe7C,GACf8C,QAAQzC,GACRhO,QACA0Q,MACH,EAeAjW,QAAS,SAASkW,EAAStW,EAAOuW,EAAYpE,EAAS/Q,EAAWA,OAAU0Q,EAAO0E,GAClF,MAAMtC,GAAW,IAAI9B,GAAAA,IACnBC,QAAQrS,GACRsS,QAAQkE,EAAY,GAAKF,GACzB/D,WAAWnB,GAAQqB,kBAAkBN,EAAS/Q,IAEhD,OAAQmV,GACP,IAAK,QACJrC,EAAQuC,YAAY,WACpB,MACD,IAAK,SACJvC,EAAQuC,YAAY,QAMtB,MAAMC,EAASxC,EAAQvO,QAMvB,OAJI6Q,GACHE,EAAO9D,QAAQ0D,GAGTI,EAAOhE,OAAOxI,KAAK,KACpB9I,EAASuV,UACbvV,GAAS,IAGZ,EASAqR,iBAAAA,CAAkBN,EAAS/Q,GAC1B,MAAMwV,EAAa,GAEnB,OAA2B,iBAAZzE,EAAuBA,EAAQ/a,KAAO+a,GACpD,KAAKf,GAAQC,eACZuF,EAAWpJ,KAAK,CACf5M,MAAOuR,GAAS0E,SAAUxe,EAAAA,EAAAA,GAAE,OAAQ,MACpC+I,SAAUA,KACTA,EAASuV,UAAW,EACpBvV,GAAS,MAGXwV,EAAWpJ,KAAK,CACf5M,MAAOuR,GAASF,UAAW5Z,EAAAA,EAAAA,GAAE,OAAQ,OACrC2B,QAAS,UACToH,SAAUA,KACTA,EAASuV,UAAW,EACpBvV,GAAS,MAGX,MACD,KAAKgQ,GAAQE,WACZsF,EAAWpJ,KAAK,CACf5M,MAAOuR,GAASF,UAAW5Z,EAAAA,EAAAA,GAAE,OAAQ,MACrC2B,QAAS,UACToH,SAAUA,KACTA,EAASuV,UAAW,EACpBvV,GAAS,MAGX,MACD,QACCmE,GAAOtE,MAAM,8BAGf,OAAO2V,CACR,GAGDE,GAAA,GCnZO,SAASC,KACZ,OAAO5O,SAAS6O,KAAKC,QAAQC,YACjC,CCKA,SAASC,GAAc3W,EAAK/C,GAC3B,IACI5F,EACAuf,EAFAC,EAAU,GAKd,GAFAzd,KAAK0d,kBAAoB,GACzB1d,KAAK2d,QAAS,EACV9Z,EACH,IAAK5F,KAAQ4F,EACZ4Z,GAAWxf,EAAO,IAAM2f,mBAAmB/Z,EAAK5F,IAAS,IAG3Dwf,GAAW,gBAAkBG,mBAAmBT,MAChDK,EAAW,KACe,IAAtB5W,EAAI5K,QAAQ,OACfwhB,EAAW,KAEZxd,KAAK6d,OAAS,IAAIC,YAAYlX,EAAM4W,EAAWC,GAC/Czd,KAAK6d,OAAOE,UAAY,SAAS7L,GAChC,IAAK,IAAIlI,EAAI,EAAGA,EAAIhK,KAAK0d,kBAAkBpjB,OAAQ0P,IAClDhK,KAAK0d,kBAAkB1T,GAAGmG,KAAK6N,MAAM9L,EAAErO,MAEzC,EAAExE,KAAKW,MAEPA,KAAKie,OAAO,eAAgB,SAASpa,GACvB,UAATA,GACH7D,KAAKke,OAEP,EAAE7e,KAAKW,MACR,CACAud,GAAcY,UAAY,CACzBT,kBAAmB,GAOnBO,OAAQ,SAASzgB,EAAMgK,GAClBA,GAAYA,EAAS4W,OACpB5gB,EACHwC,KAAK6d,OAAOQ,iBAAiB7gB,EAAM,SAAS0U,QACrB,IAAXA,EAAErO,KACZ2D,EAAS2I,KAAK6N,MAAM9L,EAAErO,OAEtB2D,EAAS,GAEX,GAAG,GAEHxH,KAAK0d,kBAAkB9J,KAAKpM,GAG/B,EAIA0W,MAAO,WACNle,KAAK2d,QAAS,EACd3d,KAAK6d,OAAOK,OACb,GAGD,MAAAI,GAAA,GCOAC,GA/Da,CAYZC,KAAMC,EAAAA,GAUNC,SAAQlc,EAAAmc,GAMRC,YAAaC,EAAAA,GAgBbC,UAAStc,EAAAC,GAgBTsc,gBAAeA,EAAAA,IC1EVC,GAAY,IAAIC,IAQf,SAASC,GAAWC,GAC1B,QAAwB,IAAbA,EAAX,CAIA,KAAOA,KAAY/b,OAAOR,GAAGwc,aAAaC,SACzCF,EAAW/b,OAAOR,GAAGwc,aAAaC,QAAQF,GAG3C,IAAKH,GAAUM,IAAIH,GAAW,CAC7B,IAAII,GAAU,EACVxF,EAAO,GAEX,GAAwB,KAApBnX,GAAGC,MAAM2c,QAAiBviB,MAAMC,QAAQ0F,GAAGwc,aAAaK,OAAO7c,GAAGC,MAAM2c,SAAU,CACrFzF,GAAO2F,EAAAA,EAAAA,MAAe,WAAatc,OAAOR,GAAGC,MAAM2c,OAAS,uBAC5D,MAAMrE,EAAOwE,GAAgBR,EAAU/b,OAAOR,GAAGwc,aAAaK,OAAO7c,GAAGC,MAAM2c,SAC1ErE,IACHoE,GAAU,EACVxF,GAAQoB,EAAO,OAEjB,CAGKoE,IACJxF,GAAOhV,EAAAA,EAAAA,IAAY,oCAAsC4a,GAAgBR,EAAU/b,OAAOR,GAAGwc,aAAaQ,OAAS,SAGpH7F,GAAQ,MAAQ3W,OAAOyc,IAAIC,QAAQC,YAEnCf,GAAUgB,IAAIb,EAAUpF,EACzB,CAEA,OAAOiF,GAAUnQ,IAAIsQ,EA7BrB,CA8BD,CAUA,SAASQ,GAAgBR,EAAUS,GAClC,MAAMzE,EAAOgE,EAAStiB,QAAQ,IAAI7C,OAAO,IAAK,KAAM,KAGpD,MAAiB,QAAbmlB,GAAsBS,EAAM9L,SAAS,UACjC,SACgB,kBAAbqL,GAAgCS,EAAM9L,SAAS,oBAClD,mBACgB,eAAbqL,GAA6BS,EAAM9L,SAAS,iBAC/C,gBACgB,eAAbqL,GAA6BS,EAAM9L,SAAS,iBAC/C,gBACiB,iBAAbqL,GAA4C,sBAAbA,IAAqCS,EAAM9L,SAAS,mBAEpF8L,EAAM9L,SAASqH,GAClBA,EACGyE,EAAM9L,SAASqH,EAAKpH,MAAM,KAAK,IAClCoH,EAAKpH,MAAM,KAAK,GACb6L,EAAM9L,SAAS,QAClB,OAGD,KATC,iBAUT,CAKO,SAASmM,KACfjB,GAAUlY,OACX,CC9EA,MAAAmL,GAAA,CAMIiO,WAAAA,CAAYC,GACRngB,KAAKogB,YAAYD,GAAU1hB,EAAAA,EAAAA,GAAE,OAAQ,YACzC,EAOA2hB,WAAAA,CAAYD,EAAU3Z,GAClB,MAAM6Z,EAAK9R,SAAS+R,cAAcH,GAC7BE,GAAQA,aAAcE,cAG3BF,EAAGG,YAAcha,EACjB6Z,EAAGI,UAAUC,OAAO,WACpBL,EAAGI,UAAUC,OAAO,SACpBL,EAAGM,kBAAkBnG,QAASoG,GAAcA,EAAU3D,UACtDoD,EAAGQ,MAAMC,QAAU,QACvB,EAUAC,cAAAA,CAAeZ,EAAU7Q,GACrBtP,KAAKghB,eAAeb,EAAU7Q,EAClC,EAUA0R,cAAAA,CAAeb,EAAU7Q,GACG,YAApBA,EAASiC,OACTvR,KAAKihB,gBAAgBd,EAAU7Q,EAASzL,KAAK2C,SAG7CxG,KAAKkhB,cAAcf,EAAU7Q,EAASzL,KAAK2C,QAEnD,EAOAya,eAAAA,CAAgBd,EAAU3Z,GACtB,MAAM6Z,EAAK9R,SAAS+R,cAAcH,GAC7BE,GAAQA,aAAcE,cAG3BF,EAAGG,YAAcha,EACjB6Z,EAAGI,UAAUC,OAAO,SACpBL,EAAGI,UAAUU,IAAI,WACjBd,EAAGM,kBAAkBnG,QAASoG,GAAcA,EAAU3D,UACtD7Z,OAAOge,WAKP,WACI,KAAKf,GAAQA,aAAcE,aACvB,OAEJ,MAAMK,EAAYP,EAAGgB,UAAU,CAC3B,CAAEC,QAAS,GACX,CAAEA,QAAS,IACZ,CACCC,SAAU,IACVjW,KAAM,aAENsV,EACAA,EAAUvC,iBAAiB,SAAU,KACjCgC,EAAGQ,MAAMC,QAAU,SAIvB1d,OAAOge,WAAW,KACdf,EAAGQ,MAAMC,QAAU,QACpB,IAEX,EA1B2B,KAC3BT,EAAGQ,MAAMC,QAAU,QA0BvB,EAOAI,aAAAA,CAAcf,EAAU3Z,GACpB,MAAM6Z,EAAK9R,SAAS+R,cAAcH,GAC7BE,GAAQA,aAAcE,cAG3BF,EAAGG,YAAcha,EACjB6Z,EAAGI,UAAUC,OAAO,WACpBL,EAAGI,UAAUU,IAAI,SACjBd,EAAGQ,MAAMC,QAAU,QACvB,mBCjHJ,MAAAU,GAAA,CAKCC,6BAA4BA,KACpBC,EAAAA,GAAAA,MAURC,2BAAAA,CAA4Bna,EAAUrL,EAASylB,IAC9CC,EAAAA,GAAAA,MAAkBvR,KAAK9I,EAAUoa,EAClC,GCvBDE,GAAA,CAKCC,SAAU,CAAC,EAQXrD,QAAAA,CAASsD,EAAYC,GACpB,IAAIH,EAAU9hB,KAAK+hB,SAASC,GACvBF,IACJA,EAAU9hB,KAAK+hB,SAASC,GAAc,IAEvCF,EAAQlO,KAAKqO,EACd,EASAC,UAAAA,CAAWF,GACV,OAAOhiB,KAAK+hB,SAASC,IAAe,EACrC,EASAG,MAAAA,CAAOH,EAAYI,EAAcjmB,GAChC,MAAM2lB,EAAU9hB,KAAKkiB,WAAWF,GAChC,IAAK,IAAIhY,EAAI,EAAGA,EAAI8X,EAAQxnB,OAAQ0P,IAC/B8X,EAAQ9X,GAAGmY,QACdL,EAAQ9X,GAAGmY,OAAOC,EAAcjmB,EAGnC,EASAkmB,MAAAA,CAAOL,EAAYI,EAAcjmB,GAChC,MAAM2lB,EAAU9hB,KAAKkiB,WAAWF,GAChC,IAAK,IAAIhY,EAAI,EAAGA,EAAI8X,EAAQxnB,OAAQ0P,IAC/B8X,EAAQ9X,GAAGqY,QACdP,EAAQ9X,GAAGqY,OAAOD,EAAcjmB,EAGnC,GC9DY0G,GAAQO,OAAOkf,QAAU,CAAC,yCCJhCC,GAAA,SAKApI,GAAA,iBAAAqI,MAAAA,KAAAA,OAAAA,MAAAA,MACiB,iBAANnY,YAAsBA,WAAMoY,SAAYpY,YAAUA,YACpEqY,SAAA,cAAAA,IACA,GAGOC,GAAA1lB,MAAAkhB,UAAAyE,GAAAlmB,OAAAyhB,UACA0E,GAAA,oBAAA9kB,OAAAA,OAAAogB,UAAA,KAGAvK,GAAA+O,GAAA/O,KACPpZ,GAAAmoB,GAAAnoB,MACIsoB,GAAQF,GAAAG,SACRC,GAAcJ,GAAAK,eAGXC,GAAA,oBAAAnZ,YACPoZ,GAAA,oBAAAC,SAIOC,GAAApmB,MAAAC,QACPomB,GAAA5mB,OAAAC,KACA4mB,GAAA7mB,OAAA+W,OACA+P,GAAAN,IAAAnZ,YAAA0Z,OAGOC,GAAA/lB,MACPgmB,GAAAC,SAGOC,IAAA,CAAmBd,SAAA,MAAee,qBAAA,YAClCC,GAAA,sCACP,0DAGOC,GAAAC,KAAAC,IAAA,QCrCQ,SAAAC,GAAAC,EAAAC,GAEf,OADAA,EAAA,MAAAA,EAAAD,EAAA9pB,OAAA,GAAA+pB,EACA,WAIA,IAHA,IAAA/pB,EAAA2pB,KAAAK,IAAAtT,UAAA1W,OAAA+pB,EAAA,GACAE,EAAAtnB,MAAA3C,GACAkB,EAAA,EACWA,EAAAlB,EAAgBkB,IAC3B+oB,EAAA/oB,GAAAwV,UAAAxV,EAAA6oB,GAEA,OAAAA,GACA,cAAAD,EAAAhG,KAAApe,KAAAukB,GACA,cAAAH,EAAAhG,KAAApe,KAAAgR,UAAA,GAAAuT,GACA,cAAAH,EAAAhG,KAAApe,KAAAgR,UAAA,GAAAA,UAAA,GAAAuT,GAEA,IAAA/K,EAAAvc,MAAAonB,EAAA,GACA,IAAA7oB,EAAA,EAAoBA,EAAA6oB,EAAoB7oB,IACxCge,EAAAhe,GAAAwV,UAAAxV,GAGA,OADAge,EAAA6K,GAAAE,EACAH,EAAArT,MAAA/Q,KAAAwZ,EACA,CACA,CCzBe,SAAAgL,GAAAC,GACf,IAAAjnB,SAAAinB,EACA,mBAAAjnB,GAAA,WAAAA,KAAAinB,CACA,CCHe,SAAAC,GAAAD,GACf,cAAAA,CACA,CCFe,SAAAE,GAAAF,GACf,gBAAAA,CACA,CCAe,SAAAG,GAAAH,GACf,WAAAA,IAAA,IAAAA,GAAkD,qBAAR3B,GAAQ1E,KAAAqG,EAClD,CCJe,SAAAI,GAAAJ,GACf,SAAAA,GAAA,IAAAA,EAAAK,SACA,CCAe,SAAAC,GAAA9mB,GACf,IAAA+mB,EAAA,WAAA/mB,EAAA,IACA,gBAAAwmB,GACA,OAAW3B,GAAQ1E,KAAAqG,KAAAO,CACnB,CACA,CCNA,MAAAC,GAAeF,GAAS,UCAxBG,GAAeH,GAAS,UCAxBI,GAAeJ,GAAS,QCAxBK,GAAeL,GAAS,UCAxB3gB,GAAe2gB,GAAS,SCAxBM,GAAeN,GAAS,UCAxBO,GAAeP,GAAS,eCCxB,IAAAQ,GAAiBR,GAAS,YAI1BS,GAAerL,GAAI5L,UAAa4L,GAAI5L,SAAAkX,WACR,iBAAAC,WAAA,mBAAAF,KAC5BD,GAAA,SAAAd,GACA,yBAAAA,IAAA,CACA,GAGA,MAAAkB,GAAA,GCZAC,GAAeb,GAAS,UCOjB,IAAAc,GACD1C,MAAgB,kBAAA1oB,KAAA8D,OAAA6kB,YAAkDwC,GAAY,IAAAxC,SAAA,IAAArZ,YAAA,MAEpF+b,GAAA,oBAAA7G,KAA4C2G,GAAY,IAAA3G,KCPxD8G,GAAiBhB,GAAS,YAU1B,MAAAiB,GAAgBH,GAJhB,SAAApB,GACA,aAAAA,GAAwBkB,GAAUlB,EAAAwB,UAAiBX,GAAab,EAAAzb,OAChE,EAE8B+c,GCV9B7oB,GAAemmB,IAAiB0B,GAAS,SCF1B,SAAAzF,GAAAmF,EAAA7nB,GACf,aAAA6nB,GAAwBzB,GAAc5E,KAAAqG,EAAA7nB,EACtC,CCFA,IAAAspB,GAAkBnB,GAAS,cAI3B,WACAmB,GAAAlV,aACAkV,GAAA,SAAAzB,GACA,OAAanF,GAAGmF,EAAA,SAChB,EAEA,CANA,GAQA,MAAA0B,GAAA,GCXe,SAASC,GAAQ3B,GAChC,OAAUY,GAAQZ,IAASd,GAASc,KAAA9mB,MAAA0oB,WAAA5B,GACpC,CCFe,SAAS6B,GAAK7B,GAC7B,OAASS,GAAQT,IAASf,GAAMe,EAChC,CCLe,SAAA8B,GAAArqB,GACf,kBACA,OAAAA,CACA,CACA,CCFe,SAAAsqB,GAAAC,GACf,gBAAAC,GACA,IAAAC,EAAAF,EAAAC,GACA,uBAAAC,GAAAA,GAAA,GAAAA,GAAmF3C,EACnF,CACA,CCPe,SAAA4C,GAAAhqB,GACf,gBAAA6nB,GACA,aAAAA,OAAA,EAAAA,EAAA7nB,EACA,CACA,CCFA,MAAAiqB,GAAeD,GAAe,cCE9BE,GAAeN,GAAwBK,ICCvC,IAAAE,GAAA,8EAQA,MAAAC,GAAe9D,GAPf,SAAAuB,GAGA,OAASjB,GAAgBA,GAAYiB,KAAUuB,GAAUvB,GACzCqC,GAAYrC,IAAAsC,GAAAtsB,KAAgCqoB,GAAQ1E,KAAAqG,GACpE,EAEoD8B,IAAQ,GCX5DU,GAAeL,GAAe,UCoBf,SAAAM,GAAAzC,EAAA9nB,GACfA,EAhBA,SAAAA,GAEA,IADA,IAAAwqB,EAAA,GACAC,EAAAzqB,EAAArC,OAAA0P,EAAA,EAAmCA,EAAAod,IAAOpd,EAAAmd,EAAAxqB,EAAAqN,KAAA,EAC1C,OACAqd,SAAA,SAAAzqB,GAA8B,WAAAuqB,EAAAvqB,EAAA,EAC9BgX,KAAA,SAAAhX,GAEA,OADAuqB,EAAAvqB,IAAA,EACAD,EAAAiX,KAAAhX,EACA,EAEA,CAMA0qB,CAAA3qB,GACA,IAAA4qB,EAAmBxD,GAAkBzpB,OACrCwN,EAAA2c,EAAA3c,YACA0f,EAAe7B,GAAU7d,IAAAA,EAAAqW,WAA2CyE,GAGpE6E,EAAA,cAGA,IAFMnI,GAAGmF,EAAAgD,KAAA9qB,EAAA0qB,SAAAI,IAAA9qB,EAAAiX,KAAA6T,GAETF,MACAE,EAAW1D,GAAkBwD,MAC7B9C,GAAAA,EAAAgD,KAAAD,EAAAC,KAAA9qB,EAAA0qB,SAAAI,IACA9qB,EAAAiX,KAAA6T,EAGA,CChCe,SAAA9qB,GAAA8nB,GACf,IAAOD,GAAQC,GAAA,SACf,GAAMnB,GAAU,OAASA,GAAUmB,GACnC,IAAA9nB,EAAA,GACA,QAAAC,KAAA6nB,EAA2BnF,GAAGmF,EAAA7nB,IAAAD,EAAAiX,KAAAhX,GAG9B,OADMinB,IAAYqD,GAAmBzC,EAAA9nB,GACrCA,CACA,CCPe,SAAA+qB,GAAAjD,GACf,SAAAA,EAAA,SAGA,IAAAnqB,EAAe2sB,GAASxC,GACxB,uBAAAnqB,IACI4C,GAAOunB,IAASQ,GAAQR,IAAS0B,GAAW1B,IAChD,IAAAnqB,EACuB,IAAd2sB,GAAUtqB,GAAI8nB,GACvB,CCde,SAAAkD,GAAAC,EAAAznB,GACf,IAAA0nB,EAAclrB,GAAIwD,GAAA7F,EAAAutB,EAAAvtB,OAClB,SAAAstB,EAAA,OAAAttB,EAEA,IADA,IAAAmqB,EAAA/nB,OAAAkrB,GACA5d,EAAA,EAAkBA,EAAA1P,EAAY0P,IAAA,CAC9B,IAAApN,EAAAirB,EAAA7d,GACA,GAAA7J,EAAAvD,KAAA6nB,EAAA7nB,MAAAA,KAAA6nB,GAAA,QACA,CACA,QACA,CCPe,SAAAqD,GAAArD,GACf,OAAAA,aAAAqD,GAAArD,EACAzkB,gBAAA8nB,QACA9nB,KAAA+nB,SAAAtD,GADA,IAAAqD,GAAArD,EAEA,CCLe,SAAAuD,GAAAC,GACf,WAAA/e,WACA+e,EAAAjf,QAAAif,EACAA,EAAAC,YAAA,EACIrB,GAAaoB,GAEjB,CDCAH,GAAAvF,QAAYA,GAGZuF,GAAA3J,UAAAjiB,MAAA,WACA,OAAA8D,KAAA+nB,QACA,EAIAD,GAAA3J,UAAAgK,QAAAL,GAAA3J,UAAAiK,OAAAN,GAAA3J,UAAAjiB,MAEA4rB,GAAA3J,UAAA4E,SAAA,WACA,OAAAxkB,OAAAyB,KAAA+nB,SACA,EEZA,IAAAM,GAAA,oBAGe,SAAAC,GAAAlrB,EAAAC,GAKf,IAJA,IAAAkrB,EAAA,EAAenrB,EAAAA,EAAAC,EAAAA,IAEfmrB,EAAA,GAAAC,EAAA,GAEAF,EAAAjuB,QAAA,CACA,IAAAouB,EAAAH,EAAAI,MACA,QAAAD,EAAA,CAWA,IALAtrB,EAAAsrB,EAAAtrB,MACAC,EAAAqrB,EAAArrB,GAIA,CACA,OAAAD,GAAA,EAAAA,GAAA,EAAAC,EAAA,SACA,QACA,CAEA,SAAAD,GAAA,MAAAC,EAAA,SAEA,GAAAD,GAAAA,EAAA,CACA,GAAAC,GAAAA,EAAA,SACA,QACA,CAEA,IAAAG,SAAAJ,EACA,gBAAAI,GAAA,WAAAA,GAAA,iBAAAH,EAAA,SAIAD,aAAqB0qB,KAAC1qB,EAAAA,EAAA2qB,UACtB1qB,aAAqByqB,KAACzqB,EAAAA,EAAA0qB,UAEtB,IAAAa,EAAoB9F,GAAQ1E,KAAAhhB,GAC5B,GAAAwrB,IAAsB9F,GAAQ1E,KAAA/gB,GAAA,SAE9B,GAAQwoB,IAAc,mBAAA+C,GAAsC5C,GAAU5oB,GAAA,CACtE,IAAW4oB,GAAU3oB,GAAA,SACrBurB,EAAAP,EACA,CACA,OAAAO,GAEA,sBAEA,sBAGA,MAAAxrB,GAAA,GAAAC,EAAA,SACA,SACA,sBACAkrB,EAAA3U,KAAA,CAAiBxW,GAAAA,EAAAC,GAAAA,IACjB,SACA,oBACA,uBAIA,IAAAD,KAAAC,EAAA,SACA,SACA,sBACA,GAAUwlB,GAAWsF,QAAA/J,KAAAhhB,KAAqBylB,GAAWsF,QAAA/J,KAAA/gB,GAAA,SACrD,SACA,2BACA,KAAAgrB,GAEAE,EAAA3U,KAAA,CAAiBxW,EAAG4qB,GAAY5qB,GAAAC,EAAQ2qB,GAAY3qB,KACpD,SAGA,IAAAwrB,EAAA,mBAAAD,EACA,IAAAC,GAAsB7B,GAAY5pB,GAAA,CAElC,GADuBypB,GAAazpB,KACXypB,GAAaxpB,GAAA,SACtC,GAAAD,EAAA4L,SAAA3L,EAAA2L,QAAA5L,EAAA8qB,aAAA7qB,EAAA6qB,WAAA,SACAW,GAAA,CACA,CACA,IAAAA,EAAA,CACA,oBAAAzrB,GAAA,iBAAAC,EAAA,SAIA,IAAAyrB,EAAA1rB,EAAA0K,YAAAihB,EAAA1rB,EAAAyK,YACA,GAAAghB,IAAAC,KAA+BpD,GAAUmD,IAAAA,aAAAA,GACVnD,GAAUoD,IAAAA,aAAAA,IACzC,gBAAA3rB,GAAA,gBAAAC,EACA,QAEA,CAMA,IADA,IAAA/C,EAAAkuB,EAAAluB,OACAA,KAGA,GAAAkuB,EAAAluB,KAAA8C,EAAA,CACA,GAAAqrB,EAAAnuB,KAAA+C,EAAA,MACA,QACA,CAEA,KAAA/C,GAAA,GAQA,GALAkuB,EAAA5U,KAAAxW,GACAqrB,EAAA7U,KAAAvW,GACAkrB,EAAA3U,MAAA,GAGAiV,EAAA,CAGA,IADAvuB,EAAA8C,EAAA9C,UACA+C,EAAA/C,OAAA,SAEA,KAAAA,KACAiuB,EAAA3U,KAAA,CAAmBxW,EAAAA,EAAA9C,GAAA+C,EAAAA,EAAA/C,IAEnB,KAAM,CAEN,IAAsBsC,EAAtBirB,EAAkBlrB,GAAIS,GAGtB,GAFA9C,EAAAutB,EAAAvtB,OAEUqC,GAAIU,GAAA/C,SAAAA,EAAA,SACd,KAAAA,KAAA,CAGA,IAAaglB,GAAGjiB,EADhBT,EAAAirB,EAAAvtB,IACgB,SAChBiuB,EAAA3U,KAAA,CAAmBxW,EAAAA,EAAAR,GAAAS,EAAAA,EAAAT,IACnB,CACA,CA1HA,MAHA4rB,EAAAG,MACAF,EAAAE,KA6HA,CACA,QACA,CCnJe,SAAAK,GAAAvE,GACf,IAAOD,GAAQC,GAAA,SACf,IAAA9nB,EAAA,GACA,QAAAC,KAAA6nB,EAAA9nB,EAAAiX,KAAAhX,GAGA,OADMinB,IAAYqD,GAAmBzC,EAAA9nB,GACrCA,CACA,CCJO,SAAAssB,GAAAxjB,GACP,IAAAnL,EAAe2sB,GAASxhB,GACxB,gBAAAgf,GACA,SAAAA,EAAA,SAEA,IAAA9nB,EAAeqsB,GAAOvE,GACtB,GAAQwC,GAAStqB,GAAA,SACjB,QAAAqN,EAAA,EAAoBA,EAAA1P,EAAY0P,IAChC,IAAW2b,GAAUlB,EAAAhf,EAAAuE,KAAA,SAKrB,OAAAvE,IAAAyjB,KAA0CvD,GAAUlB,EAAA0E,IACpD,CACA,CAIA,IAAAA,GAAA,UAEAC,GAAA,mBACAC,GAAA,OAFA,MAEA,OAIOC,GAAAF,GAAAlW,OAAAiW,GAAAE,IACPH,GAAAE,GAAAlW,OAAAmW,IACAE,GAAA,QAAArW,OAAAkW,GAAAD,GARA,OCxBA,MAAAK,GAAe1D,GAASmD,GAAgBK,IAAcvE,GAAS,OCA/D0E,GAAe3D,GAASmD,GAAgBC,IAAkBnE,GAAS,WCAnE2E,GAAe5D,GAASmD,GAAgBM,IAAcxE,GAAS,OCF/D4E,GAAe5E,GAAS,WCCT,SAAAnQ,GAAA6P,GAIf,IAHA,IAAAoD,EAAclrB,GAAI8nB,GAClBnqB,EAAAutB,EAAAvtB,OACAsa,EAAA3X,MAAA3C,GACA0P,EAAA,EAAkBA,EAAA1P,EAAY0P,IAC9B4K,EAAA5K,GAAAya,EAAAoD,EAAA7d,IAEA,OAAA4K,CACA,CCPe,SAAAgV,GAAAnF,GAIf,IAHA,IAAAoD,EAAclrB,GAAI8nB,GAClBnqB,EAAAutB,EAAAvtB,OACAsvB,EAAA3sB,MAAA3C,GACA0P,EAAA,EAAkBA,EAAA1P,EAAY0P,IAC9B4f,EAAA5f,GAAA,CAAA6d,EAAA7d,GAAAya,EAAAoD,EAAA7d,KAEA,OAAA4f,CACA,CCTe,SAAAC,GAAApF,GAGf,IAFA,IAAAjoB,EAAA,GACAqrB,EAAclrB,GAAI8nB,GAClBza,EAAA,EAAA1P,EAAAutB,EAAAvtB,OAAyC0P,EAAA1P,EAAY0P,IACrDxN,EAAAioB,EAAAoD,EAAA7d,KAAA6d,EAAA7d,GAEA,OAAAxN,CACA,CCPe,SAAAstB,GAAArF,GACf,IAAAsF,EAAA,GACA,QAAAntB,KAAA6nB,EACQkB,GAAUlB,EAAA7nB,KAAAmtB,EAAAnW,KAAAhX,GAElB,OAAAmtB,EAAA5sB,MACA,CCRe,SAAA6sB,GAAAC,EAAAC,GACf,gBAAAzF,GACA,IAAAnqB,EAAA0W,UAAA1W,OAEA,GADA4vB,IAAAzF,EAAA/nB,OAAA+nB,IACAnqB,EAAA,SAAAmqB,EAAA,OAAAA,EACA,QAAAjpB,EAAA,EAAwBA,EAAAlB,EAAgBkB,IAIxC,IAHA,IAAAqiB,EAAA7M,UAAAxV,GACAmB,EAAAstB,EAAApM,GACAuJ,EAAAzqB,EAAArC,OACA0P,EAAA,EAAsBA,EAAAod,EAAOpd,IAAA,CAC7B,IAAApN,EAAAD,EAAAqN,GACAkgB,QAAA,IAAAzF,EAAA7nB,KAAA6nB,EAAA7nB,GAAAihB,EAAAjhB,GACA,CAEA,OAAA6nB,CACA,CACA,CCbA,MAAA0F,GAAeH,GAAehB,ICE9BoB,GAAeJ,GAAertB,ICF9ButB,GAAeF,GAAehB,IAAO,GCKtB,SAAAqB,GAAAlM,GACf,IAAOqG,GAAQrG,GAAA,SACf,GAAMoF,GAAY,OAASA,GAAYpF,GACvC,IAAAmM,EAPA,aAQAA,EAAAnM,UAAAA,EACA,IAAA3hB,EAAA,IAAA8tB,EAEA,OADAA,EAAAnM,UAAA,KACA3hB,CACA,CCXe,SAAAiX,GAAA0K,EAAA7f,GACf,IAAA9B,EAAe6tB,GAAUlM,GAEzB,OADA7f,GAAa8rB,GAAS5tB,EAAA8B,GACtB9B,CACA,CCLe,SAAA+tB,GAAA9F,GACf,OAAOD,GAAQC,GACNvnB,GAAOunB,GAAAA,EAAAjqB,QAAsB2vB,GAAM,GAAG1F,GADhCA,CAEf,CCLe,SAAA+F,GAAA/F,EAAAgG,GAEf,OADAA,EAAAhG,GACAA,CACA,CCDe,SAAAiG,GAAA3Q,GACf,OAAS7c,GAAO6c,GAAAA,EAAA,CAAAA,EAChB,CCFe,SAAS4Q,GAAM5Q,GAC9B,OAAS+N,GAAC4C,OAAA3Q,EACV,CCNe,SAAA6Q,GAAAnG,EAAA1K,GAEf,IADA,IAAAzf,EAAAyf,EAAAzf,OACA0P,EAAA,EAAkBA,EAAA1P,EAAY0P,IAAA,CAC9B,SAAAya,EAAA,OACAA,EAAAA,EAAA1K,EAAA/P,GACA,CACA,OAAA1P,EAAAmqB,OAAA,CACA,CCAe,SAAA5V,GAAA+Y,EAAA7N,EAAA8Q,GACf,IAAA3uB,EAAc0uB,GAAOhD,EAAS+C,GAAM5Q,IACpC,OAAS4K,GAAWzoB,GAAA2uB,EAAA3uB,CACpB,CCLe,SAAS4uB,GAAGrG,EAAA1K,GAG3B,IADA,IAAAzf,GADAyf,EAAS4Q,GAAM5Q,IACfzf,OACA0P,EAAA,EAAkBA,EAAA1P,EAAY0P,IAAA,CAC9B,IAAApN,EAAAmd,EAAA/P,GACA,IAASsV,GAAImF,EAAA7nB,GAAA,SACb6nB,EAAAA,EAAA7nB,EACA,CACA,QAAAtC,CACA,CCde,SAAAywB,GAAA7uB,GACf,OAAAA,CACA,CCEe,SAAA8uB,GAAA7qB,GAEf,OADAA,EAAUiqB,GAAS,GAAGjqB,GACtB,SAAAskB,GACA,OAAWkD,GAAOlD,EAAAtkB,EAClB,CACA,CCLe,SAAA8qB,GAAAlR,GAEf,OADAA,EAAS4Q,GAAM5Q,GACf,SAAA0K,GACA,OAAWmG,GAAOnG,EAAA1K,EAClB,CACA,CCPe,SAAAmR,GAAA9G,EAAA+G,EAAAC,GACf,YAAAD,EAAA,OAAA/G,EACA,OAAAgH,GAAA,GACA,uBAAAlvB,GACA,OAAAkoB,EAAAhG,KAAA+M,EAAAjvB,EACA,EAEA,uBAAAA,EAAAV,EAAAkrB,GACA,OAAAtC,EAAAhG,KAAA+M,EAAAjvB,EAAAV,EAAAkrB,EACA,EACA,uBAAA/S,EAAAzX,EAAAV,EAAAkrB,GACA,OAAAtC,EAAAhG,KAAA+M,EAAAxX,EAAAzX,EAAAV,EAAAkrB,EACA,EAEA,kBACA,OAAAtC,EAAArT,MAAAoa,EAAAna,UACA,CACA,CCTe,SAAAqa,GAAAnvB,EAAAivB,EAAAC,GACf,aAAAlvB,EAA4B6uB,GACtBpF,GAAUzpB,GAAgBgvB,GAAUhvB,EAAAivB,EAAAC,GACpC5G,GAAQtoB,KAAYgB,GAAOhB,GAAgB8uB,GAAO9uB,GAC/C+uB,GAAQ/uB,EACjB,CCVe,SAAAovB,GAAApvB,EAAAivB,GACf,OAASE,GAAYnvB,EAAAivB,EAAAI,IACrB,CCFe,SAAAC,GAAAtvB,EAAAivB,EAAAC,GACf,OAAMtD,GAACwD,WAAcA,GAAiBxD,GAACwD,SAAApvB,EAAAivB,GAC9BE,GAAYnvB,EAAAivB,EAAAC,EACrB,CCJe,SAAAK,GAAAhH,EAAA6G,EAAAH,GACfG,EAAaE,GAAEF,EAAAH,GAIf,IAHA,IAAAtD,EAAclrB,GAAI8nB,GAClBnqB,EAAAutB,EAAAvtB,OACAoxB,EAAA,GACAlwB,EAAA,EAAsBA,EAAAlB,EAAgBkB,IAAA,CACtC,IAAAmwB,EAAA9D,EAAArsB,GACAkwB,EAAAC,GAAAL,EAAA7G,EAAAkH,GAAAA,EAAAlH,EACA,CACA,OAAAiH,CACA,CCde,SAAAE,KAAA,CCGA,SAAAC,GAAApH,GACf,aAAAA,EAA0BmH,GAC1B,SAAA7R,GACA,OAAWlL,GAAG4V,EAAA1K,EACd,CACA,CCNe,SAAA+R,GAAAC,EAAAT,EAAAH,GACf,IAAAa,EAAA/uB,MAAAgnB,KAAAK,IAAA,EAAAyH,IACAT,EAAaJ,GAAUI,EAAAH,EAAA,GACvB,QAAAnhB,EAAA,EAAkBA,EAAA+hB,EAAO/hB,IAAAgiB,EAAAhiB,GAAAshB,EAAAthB,GACzB,OAAAgiB,CACA,CCPe,SAAAC,GAAAC,EAAA5H,GAKf,OAJA,MAAAA,IACAA,EAAA4H,EACAA,EAAA,GAEAA,EAAAjI,KAAAkI,MAAAlI,KAAAgI,UAAA3H,EAAA4H,EAAA,GACA,ChBCApE,GAAC4C,OAAAA,GUCD5C,GAACwD,SAAAA,GORD,MAAAc,GAAezoB,KAAAyoB,KAAA,WACf,WAAAzoB,MAAAiY,SACA,ECCe,SAAAyQ,GAAA/uB,GACf,IAAAgvB,EAAA,SAAAhwB,GACA,OAAAgB,EAAAhB,EACA,EAEAuhB,EAAA,MAAuBlhB,GAAIW,GAAAuX,KAAA,SAC3B0X,EAAAvyB,OAAA6jB,GACA2O,EAAAxyB,OAAA6jB,EAAA,KACA,gBAAAjiB,GAEA,OADAA,EAAA,MAAAA,EAAA,MAAAA,EACA2wB,EAAA9xB,KAAAmB,GAAAA,EAAAiB,QAAA2vB,EAAAF,GAAA1wB,CACA,CACA,CCfA,MAAA6wB,GAAA,CACA,YACA,WACA,WACA,aACA,aACA,cCHAC,GAAeL,GAAcI,ICA7BE,GAAeN,GCAAxC,GAAO4C,KCAtBG,GAAe9E,GAAC8E,iBAAA,CAChBC,SAAA,kBACAC,YAAA,mBACA9pB,OAAA,oBCAA,IAAA+pB,GAAA,OAIAC,GAAA,CACA,QACA,UACA,SACA,SACA,iBACA,kBAGAC,GAAA,4BAEA,SAAAC,GAAA5wB,GACA,WAAA0wB,GAAA1wB,EACA,CAOA,IAAA6wB,GAAA,mBAMe,SAAAC,GAAAnV,EAAAoV,EAAAC,IACfD,GAAAC,IAAAD,EAAAC,GACAD,EAAanD,GAAQ,GAAGmD,EAAYvF,GAAC8E,kBAGrC,IAAA5B,EAAAhxB,OAAA,EACAqzB,EAAArqB,QAAA+pB,IAAAlP,QACAwP,EAAAP,aAAAC,IAAAlP,QACAwP,EAAAR,UAAAE,IAAAlP,QACAhJ,KAAA,eAGArZ,EAAA,EACAqiB,EAAA,SACA5F,EAAApb,QAAAmuB,EAAA,SAAA1uB,EAAA0G,EAAA8pB,EAAAD,EAAAU,GAaA,OAZA1P,GAAA5F,EAAAzd,MAAAgB,EAAA+xB,GAAA1wB,QAAAowB,GAAAC,IACA1xB,EAAA+xB,EAAAjxB,EAAAhC,OAEA0I,EACA6a,GAAA,cAAA7a,EAAA,iCACM8pB,EACNjP,GAAA,cAAAiP,EAAA,uBACMD,IACNhP,GAAA,OAAmBgP,EAAA,YAInBvwB,CACA,GACAuhB,GAAA,OAEA,IAgBA2P,EAhBAC,EAAAJ,EAAAK,SACA,GAAAD,GAEA,IAAAN,GAAA1yB,KAAAgzB,GAAA,UAAA5lB,MACA,sCAAA4lB,QAIA5P,EAAA,mBAA4BA,EAAA,MAC5B4P,EAAA,MAGA5P,EAAA,4FAEAA,EAAA,gBAGA,IACA2P,EAAA,IAAA9K,SAAA+K,EAAA,IAAA5P,EACA,CAAI,MAAA3L,GAEJ,MADAA,EAAA2L,OAAAA,EACA3L,CACA,CAEA,IAAAkb,EAAA,SAAAvpB,GACA,OAAA2pB,EAAApP,KAAApe,KAAA6D,EAAmCikB,GACnC,EAKA,OAFAsF,EAAAvP,OAAA,YAAA4P,EAAA,OAAgD5P,EAAA,IAEhDuP,CACA,CC9Fe,SAAA5wB,GAAAioB,EAAA1K,EAAA4T,GAEf,IAAArzB,GADAyf,EAAS4Q,GAAM5Q,IACfzf,OACA,IAAAA,EACA,OAAWqrB,GAAUgI,GAAAA,EAAAvP,KAAAqG,GAAAkJ,EAErB,QAAA3jB,EAAA,EAAkBA,EAAA1P,EAAY0P,IAAA,CAC9B,IAAAyd,EAAA,MAAAhD,OAAA,EAAAA,EAAA1K,EAAA/P,SACA,IAAAyd,IACAA,EAAAkG,EACA3jB,EAAA1P,GAEAmqB,EAAUkB,GAAU8B,GAAAA,EAAArJ,KAAAqG,GAAAgD,CACpB,CACA,OAAAhD,CACA,CCnBA,IAAAmJ,GAAA,EACe,SAAAC,GAAAC,GACf,IAAApnB,IAAAknB,GAAA,GACA,OAAAE,EAAAA,EAAApnB,EAAAA,CACA,CCHe,SAAAqnB,GAAAtJ,GACf,IAAAuJ,EAAiBlG,GAACrD,GAElB,OADAuJ,EAAAC,QAAA,EACAD,CACA,CCDe,SAAAE,GAAAC,EAAAC,EAAAjD,EAAAkD,EAAA7U,GACf,KAAA6U,aAAAD,GAAA,OAAAD,EAAApd,MAAAoa,EAAA3R,GACA,IAAAgJ,EAAa6H,GAAU8D,EAAAhQ,WACvB3hB,EAAA2xB,EAAApd,MAAAyR,EAAAhJ,GACA,OAAMgL,GAAQhoB,GAAAA,EACdgmB,CACA,CCJA,IAAA8L,GAAcnK,GAAa,SAAAC,EAAAmK,GAC3B,IAAAtd,EAAAqd,GAAArd,YACAud,EAAA,WAGA,IAFA,IAAAp0B,EAAA,EAAAE,EAAAi0B,EAAAj0B,OACAkf,EAAAvc,MAAA3C,GACA0P,EAAA,EAAoBA,EAAA1P,EAAY0P,IAChCwP,EAAAxP,GAAAukB,EAAAvkB,KAAAiH,EAAAD,UAAA5W,KAAAm0B,EAAAvkB,GAEA,KAAA5P,EAAA4W,UAAA1W,QAAAkf,EAAA5F,KAAA5C,UAAA5W,MACA,OAAW8zB,GAAY9J,EAAAoK,EAAAxuB,KAAAA,KAAAwZ,EACvB,EACA,OAAAgV,CACA,GAEAF,GAAArd,YAAsB6W,GACtB,MAAA2G,GAAA,GCjBApvB,GAAe8kB,GAAa,SAAAC,EAAA+G,EAAA3R,GAC5B,IAAOmM,GAAUvB,GAAA,UAAAtoB,UAAA,qCACjB,IAAA0yB,EAAcrK,GAAa,SAAAuK,GAC3B,OAAWR,GAAY9J,EAAAoK,EAAArD,EAAAnrB,KAAAwZ,EAAAtG,OAAAwb,GACvB,GACA,OAAAF,CACA,GCLAG,GAAenI,GAAwBS,ICDxB,SAAA2H,GAAAz0B,EAAA00B,EAAAC,GACfD,GAAA,IAAAA,IAAAA,EAAAtD,KAEA,IADA,IAAArwB,EAAA,GAAA6zB,EAAA,EAAA/kB,EAAA,EAAA1P,EAA4C2sB,GAAS9sB,IAAA,EAAA60B,EAAA,KAErD,GAAAhlB,GAAA1P,EAAA,CACA,IAAA00B,EAAA10B,OAAA,MACA,IAAAouB,EAAAsG,EAAArG,MACA3e,EAAA0e,EAAA1e,EACA7P,EAAAuuB,EAAAuG,EACA30B,EAAe2sB,GAAS9sB,EAExB,KAPA,CAQA,IAAA+B,EAAA/B,EAAA6P,KACAglB,EAAA10B,QAAAu0B,EACA3zB,EAAA6zB,KAAA7yB,EACeyyB,GAAWzyB,KAAYgB,GAAOhB,IAAWiqB,GAAWjqB,KAEnE8yB,EAAApb,KAAA,CAAkB5J,EAAAA,EAAAilB,EAAA90B,IAClB6P,EAAA,EAEA1P,EAAe2sB,GADf9sB,EAAA+B,IAEM4yB,IACN5zB,EAAA6zB,KAAA7yB,EAXA,CAcA,OAAAhB,CACA,CCzBA,MAAAg0B,GAAe/K,GAAa,SAAAM,EAAA9nB,GAE5B,IAAAnB,GADAmB,EAASiyB,GAAOjyB,GAAA,OAChBrC,OACA,GAAAkB,EAAA,YAAAqM,MAAA,yCACA,KAAArM,KAAA,CACA,IAAAoB,EAAAD,EAAAnB,GACAipB,EAAA7nB,GAAeyC,GAAIolB,EAAA7nB,GAAA6nB,EACnB,CACA,OAAAA,CACA,GCbe,SAAA0K,GAAA/K,EAAAgL,GACf,IAAAD,EAAA,SAAAvyB,GACA,IAAAyyB,EAAAF,EAAAE,MACAC,EAAA,IAAAF,EAAAA,EAAAre,MAAA/Q,KAAAgR,WAAApU,GAEA,OADS0iB,GAAG+P,EAAAC,KAAAD,EAAAC,GAAAlL,EAAArT,MAAA/Q,KAAAgR,YACZqe,EAAAC,EACA,EAEA,OADAH,EAAAE,MAAA,GACAF,CACA,CCRA,MAAAI,GAAepL,GAAa,SAAAC,EAAAoL,EAAAhW,GAC5B,OAAA4H,WAAA,WACA,OAAAgD,EAAArT,MAAA,KAAAyI,EACA,EAAGgW,EACH,GCFAC,GAAehB,GAAQc,GAAOzH,GAAC,GCChB,SAAA4H,GAAAtL,EAAAoL,EAAArzB,GACf,IAAAwzB,EAAAxE,EAAA3R,EAAAhd,EACAozB,EAAA,EACAzzB,IAAAA,EAAA,IAEA,IAAA0zB,EAAA,WACAD,GAAA,IAAAzzB,EAAA2zB,QAAA,EAA+C1D,KAC/CuD,EAAA,KACAnzB,EAAA4nB,EAAArT,MAAAoa,EAAA3R,GACAmW,IAAAxE,EAAA3R,EAAA,KACA,EAEAuW,EAAA,WACA,IAAAC,EAAe5D,KACfwD,IAAA,IAAAzzB,EAAA2zB,UAAAF,EAAAI,GACA,IAAAC,EAAAT,GAAAQ,EAAAJ,GAcA,OAbAzE,EAAAnrB,KACAwZ,EAAAxI,UACAif,GAAA,GAAAA,EAAAT,GACAG,IACAO,aAAAP,GACAA,EAAA,MAEAC,EAAAI,EACAxzB,EAAA4nB,EAAArT,MAAAoa,EAAA3R,GACAmW,IAAAxE,EAAA3R,EAAA,OACMmW,IAAA,IAAAxzB,EAAAg0B,WACNR,EAAAvO,WAAAyO,EAAAI,IAEAzzB,CACA,EAQA,OANAuzB,EAAA9S,OAAA,WACAiT,aAAAP,GACAC,EAAA,EACAD,EAAAxE,EAAA3R,EAAA,IACA,EAEAuW,CACA,CCvCe,SAASK,GAAQhM,EAAAoL,EAAAa,GAChC,IAAAV,EAAAC,EAAApW,EAAAhd,EAAA2uB,EAEA0E,EAAA,WACA,IAAAS,EAAiBlE,KAAGwD,EACpBJ,EAAAc,EACAX,EAAAvO,WAAAyO,EAAAL,EAAAc,IAEAX,EAAA,KACAU,IAAA7zB,EAAA4nB,EAAArT,MAAAoa,EAAA3R,IAEAmW,IAAAnW,EAAA2R,EAAA,MAEA,EAEAoF,EAAkBpM,GAAa,SAAAqM,GAQ/B,OAPArF,EAAAnrB,KACAwZ,EAAAgX,EACAZ,EAAexD,KACfuD,IACAA,EAAAvO,WAAAyO,EAAAL,GACAa,IAAA7zB,EAAA4nB,EAAArT,MAAAoa,EAAA3R,KAEAhd,CACA,GAOA,OALA+zB,EAAAtT,OAAA,WACAiT,aAAAP,GACAA,EAAAnW,EAAA2R,EAAA,IACA,EAEAoF,CACA,CClCe,SAAAE,GAAArM,EAAAsM,GACf,OAASjC,GAAOiC,EAAAtM,EAChB,CCNe,SAAAuM,GAAAC,GACf,kBACA,OAAAA,EAAA7f,MAAA/Q,KAAAgR,UACA,CACA,CCHe,SAAA6f,KACf,IAAArX,EAAAxI,UACA8f,EAAAtX,EAAAlf,OAAA,EACA,kBAGA,IAFA,IAAA0P,EAAA8mB,EACAt0B,EAAAgd,EAAAsX,GAAA/f,MAAA/Q,KAAAgR,WACAhH,KAAAxN,EAAAgd,EAAAxP,GAAAoU,KAAApe,KAAAxD,GACA,OAAAA,CACA,CACA,CCVe,SAAAu0B,GAAAjF,EAAA1H,GACf,kBACA,KAAA0H,EAAA,EACA,OAAA1H,EAAArT,MAAA/Q,KAAAgR,UAEA,CACA,CCLe,SAAAggB,GAAAlF,EAAA1H,GACf,IAAA6M,EACA,kBAKA,QAJAnF,EAAA,IACAmF,EAAA7M,EAAArT,MAAA/Q,KAAAgR,YAEA8a,GAAA,IAAA1H,EAAA,MACA6M,CACA,CACA,CCNA,MAAAC,GAAezC,GAAQuC,GAAM,GCDd,SAAAG,GAAA1M,EAAAmM,EAAAzF,GACfyF,EAAcpF,GAAEoF,EAAAzF,GAEhB,IADA,IAAkBvuB,EAAlBirB,EAAclrB,GAAI8nB,GAClBza,EAAA,EAAA1P,EAAAutB,EAAAvtB,OAAyC0P,EAAA1P,EAAY0P,IAErD,GAAA4mB,EAAAnM,EADA7nB,EAAAirB,EAAA7d,IACApN,EAAA6nB,GAAA,OAAA7nB,CAEA,CCPe,SAAAw0B,GAAAC,GACf,gBAAAC,EAAAV,EAAAzF,GACAyF,EAAgBpF,GAAEoF,EAAAzF,GAGlB,IAFA,IAAA7wB,EAAiB2sB,GAASqK,GAC1B91B,EAAA61B,EAAA,IAAA/2B,EAAA,EACWkB,GAAA,GAAAA,EAAAlB,EAA8BkB,GAAA61B,EACzC,GAAAT,EAAAU,EAAA91B,GAAAA,EAAA81B,GAAA,OAAA91B,EAEA,QACA,CACA,CCXA,MAAA+1B,GAAeH,GAA0B,GCAzCI,GAAeJ,IAA0B,GCE1B,SAAAK,GAAAH,EAAA7M,EAAA6G,EAAAH,GAIf,IAFA,IAAAjvB,GADAovB,EAAaE,GAAEF,EAAAH,EAAA,IACf1G,GACAiN,EAAA,EAAAC,EAAsB1K,GAASqK,GAC/BI,EAAAC,GAAA,CACA,IAAAC,EAAA3N,KAAAkI,OAAAuF,EAAAC,GAAA,GACArG,EAAAgG,EAAAM,IAAA11B,EAAAw1B,EAAAE,EAAA,EAAqDD,EAAAC,CACrD,CACA,OAAAF,CACA,CCTe,SAAAG,GAAAR,EAAAS,EAAAL,GACf,gBAAAH,EAAAtd,EAAA+a,GACA,IAAA/kB,EAAA,EAAA1P,EAAwB2sB,GAASqK,GACjC,oBAAAvC,EACAsC,EAAA,EACArnB,EAAA+kB,GAAA,EAAAA,EAAA9K,KAAAK,IAAAyK,EAAAz0B,EAAA0P,GAEA1P,EAAAy0B,GAAA,EAAA9K,KAAAiI,IAAA6C,EAAA,EAAAz0B,GAAAy0B,EAAAz0B,EAAA,OAEM,GAAAm3B,GAAA1C,GAAAz0B,EAEN,OAAAg3B,EADAvC,EAAA0C,EAAAH,EAAAtd,MACAA,EAAA+a,GAAA,EAEA,GAAA/a,GAAAA,EAEA,OADA+a,EAAA+C,EAA0Bt3B,GAAK4jB,KAAAkT,EAAAtnB,EAAA1P,GAAyBgsB,MACxD,EAAAyI,EAAA/kB,GAAA,EAEA,IAAA+kB,EAAAsC,EAAA,EAAArnB,EAAA1P,EAAA,EAAyCy0B,GAAA,GAAAA,EAAAz0B,EAA0By0B,GAAAsC,EACnE,GAAAC,EAAAvC,KAAA/a,EAAA,OAAA+a,EAEA,QACA,CACA,CCnBA,MAAA/yB,GAAe61B,GAAiB,EAAIN,GAAWE,ICH/CM,GAAeF,IAAiB,EAAKL,ICAtB,SAAAQ,GAAAvN,EAAAmM,EAAAzF,GACf,IACAvuB,GADkB+xB,GAAWlK,GAAQ8M,GAAYJ,IACjD1M,EAAAmM,EAAAzF,GACA,YAAAvuB,IAAA,IAAAA,EAAA,OAAA6nB,EAAA7nB,EACA,CCJe,SAAAq1B,GAAAxN,EAAAtkB,GACf,OAAS6xB,GAAIvN,EAAMuG,GAAO7qB,GAC1B,CCCe,SAAA+xB,GAAAzN,EAAA6G,EAAAH,GAEf,IAAAnhB,EAAA1P,EACA,GAFAgxB,EAAaJ,GAAUI,EAAAH,GAEjBwD,GAAWlK,GACjB,IAAAza,EAAA,EAAA1P,EAAAmqB,EAAAnqB,OAAqC0P,EAAA1P,EAAY0P,IACjDshB,EAAA7G,EAAAza,GAAAA,EAAAya,OAEI,CACJ,IAAAoD,EAAgBlrB,GAAI8nB,GACpB,IAAAza,EAAA,EAAA1P,EAAAutB,EAAAvtB,OAAuC0P,EAAA1P,EAAY0P,IACnDshB,EAAA7G,EAAAoD,EAAA7d,IAAA6d,EAAA7d,GAAAya,EAEA,CACA,OAAAA,CACA,CCjBe,SAAAnnB,GAAAmnB,EAAA6G,EAAAH,GACfG,EAAaE,GAAEF,EAAAH,GAIf,IAHA,IAAAtD,GAAe8G,GAAWlK,IAAS9nB,GAAI8nB,GACvCnqB,GAAAutB,GAAApD,GAAAnqB,OACAoxB,EAAAzuB,MAAA3C,GACAkB,EAAA,EAAsBA,EAAAlB,EAAgBkB,IAAA,CACtC,IAAAmwB,EAAA9D,EAAAA,EAAArsB,GAAAA,EACAkwB,EAAAlwB,GAAA8vB,EAAA7G,EAAAkH,GAAAA,EAAAlH,EACA,CACA,OAAAiH,CACA,CCVe,SAAAyG,GAAAd,GAkBf,gBAAA5M,EAAA6G,EAAA2F,EAAA9F,GACA,IAAAiH,EAAAphB,UAAA1W,QAAA,EACA,OAjBA,SAAAmqB,EAAA6G,EAAA2F,EAAAmB,GACA,IAAAvK,GAAiB8G,GAAWlK,IAAS9nB,GAAI8nB,GACzCnqB,GAAAutB,GAAApD,GAAAnqB,OACAkB,EAAA61B,EAAA,IAAA/2B,EAAA,EAKA,IAJA83B,IACAnB,EAAAxM,EAAAoD,EAAAA,EAAArsB,GAAAA,GACAA,GAAA61B,GAEW71B,GAAA,GAAAA,EAAAlB,EAA8BkB,GAAA61B,EAAA,CACzC,IAAA1F,EAAA9D,EAAAA,EAAArsB,GAAAA,EACAy1B,EAAA3F,EAAA2F,EAAAxM,EAAAkH,GAAAA,EAAAlH,EACA,CACA,OAAAwM,CACA,CAIAoB,CAAA5N,EAAwByG,GAAUI,EAAAH,EAAA,GAAA8F,EAAAmB,EAClC,CACA,CCvBA,MAAAtd,GAAeqd,GAAY,GCD3BG,GAAeH,IAAY,GCCZ,SAAA5W,GAAAkJ,EAAAmM,EAAAzF,GACf,IAAAO,EAAA,GAKA,OAJAkF,EAAcpF,GAAEoF,EAAAzF,GACd+G,GAAIzN,EAAA,SAAAvoB,EAAAV,EAAA+2B,GACN3B,EAAA10B,EAAAV,EAAA+2B,IAAA7G,EAAA9X,KAAA1X,EACA,GACAwvB,CACA,CCNe,SAAA8G,GAAA/N,EAAAmM,EAAAzF,GACf,OAAS5P,GAAMkJ,EAAMkM,GAAOnF,GAAEoF,IAAAzF,EAC9B,CCFe,SAAAlmB,GAAAwf,EAAAmM,EAAAzF,GACfyF,EAAcpF,GAAEoF,EAAAzF,GAGhB,IAFA,IAAAtD,GAAe8G,GAAWlK,IAAS9nB,GAAI8nB,GACvCnqB,GAAAutB,GAAApD,GAAAnqB,OACAkB,EAAA,EAAsBA,EAAAlB,EAAgBkB,IAAA,CACtC,IAAAmwB,EAAA9D,EAAAA,EAAArsB,GAAAA,EACA,IAAAo1B,EAAAnM,EAAAkH,GAAAA,EAAAlH,GAAA,QACA,CACA,QACA,CCTe,SAAAgO,GAAAhO,EAAAmM,EAAAzF,GACfyF,EAAcpF,GAAEoF,EAAAzF,GAGhB,IAFA,IAAAtD,GAAe8G,GAAWlK,IAAS9nB,GAAI8nB,GACvCnqB,GAAAutB,GAAApD,GAAAnqB,OACAkB,EAAA,EAAsBA,EAAAlB,EAAgBkB,IAAA,CACtC,IAAAmwB,EAAA9D,EAAAA,EAAArsB,GAAAA,EACA,GAAAo1B,EAAAnM,EAAAkH,GAAAA,EAAAlH,GAAA,QACA,CACA,QACA,CCTe,SAAA4C,GAAA5C,EAAAzQ,EAAA0e,EAAAC,GAGf,OAFOhE,GAAWlK,KAAAA,EAAa7P,GAAM6P,KACrC,iBAAAiO,GAAAC,KAAAD,EAAA,GACS12B,GAAOyoB,EAAAzQ,EAAA0e,IAAA,CAChB,CCFA,MAAAE,GAAezO,GAAa,SAAAM,EAAA1K,EAAAP,GAC5B,IAAAqZ,EAAAzO,EAQA,OAPMuB,GAAU5L,GAChBqK,EAAArK,GAEAA,EAAW4Q,GAAM5Q,GACjB8Y,EAAA9Y,EAAAvf,MAAA,MACAuf,EAAAA,EAAAA,EAAAzf,OAAA,IAESgD,GAAGmnB,EAAA,SAAA0G,GACZ,IAAAjlB,EAAAke,EACA,IAAAle,EAAA,CAIA,GAHA2sB,GAAAA,EAAAv4B,SACA6wB,EAAkBP,GAAOO,EAAA0H,IAEzB,MAAA1H,EAAA,OACAjlB,EAAAilB,EAAApR,EACA,CACA,aAAA7T,EAAAA,EAAAA,EAAA6K,MAAAoa,EAAA3R,EACA,EACA,GCvBe,SAAAsZ,GAAArO,EAAA7nB,GACf,OAASU,GAAGmnB,EAAMwG,GAAQruB,GAC1B,CCDe,SAAAm2B,GAAAtO,EAAAtkB,GACf,OAASob,GAAMkJ,EAAMuG,GAAO7qB,GAC5B,CCDe,SAAAmkB,GAAAG,EAAA6G,EAAAH,GACf,IACAjvB,EAAAiF,EADA3E,GAAA,IAAAw2B,GAAA,IAEA,SAAA1H,GAAA,iBAAAA,GAAA,iBAAA7G,EAAA,UAAAA,EAEA,QAAAza,EAAA,EAAA1P,GADAmqB,EAAUkK,GAAWlK,GAAAA,EAAc7P,GAAM6P,IACzCnqB,OAAyC0P,EAAA1P,EAAY0P,IAErD,OADA9N,EAAAuoB,EAAAza,KACA9N,EAAAM,IACAA,EAAAN,QAIAovB,EAAeE,GAAEF,EAAAH,GACb+G,GAAIzN,EAAA,SAAAwK,EAAAzzB,EAAA+2B,KACRpxB,EAAAmqB,EAAA2D,EAAAzzB,EAAA+2B,IACAS,GAAA7xB,KAAA,KAAA3E,KAAA,OACAA,EAAAyyB,EACA+D,EAAA7xB,EAEA,GAEA,OAAA3E,CACA,CCtBe,SAAA0vB,GAAAzH,EAAA6G,EAAAH,GACf,IACAjvB,EAAAiF,EADA3E,EAAA+uB,IAAAyH,EAAAzH,IAEA,SAAAD,GAAA,iBAAAA,GAAA,iBAAA7G,EAAA,UAAAA,EAEA,QAAAza,EAAA,EAAA1P,GADAmqB,EAAUkK,GAAWlK,GAAAA,EAAc7P,GAAM6P,IACzCnqB,OAAyC0P,EAAA1P,EAAY0P,IAErD,OADA9N,EAAAuoB,EAAAza,KACA9N,EAAAM,IACAA,EAAAN,QAIAovB,EAAeE,GAAEF,EAAAH,GACb+G,GAAIzN,EAAA,SAAAwK,EAAAzzB,EAAA+2B,KACRpxB,EAAAmqB,EAAA2D,EAAAzzB,EAAA+2B,IACAS,GAAA7xB,IAAAoqB,KAAA/uB,IAAA+uB,OACA/uB,EAAAyyB,EACA+D,EAAA7xB,EAEA,GAEA,OAAA3E,CACA,CCnBA,IAAAy2B,GAAA,mEACe,SAAAC,GAAAzO,GACf,OAAAA,EACMvnB,GAAOunB,GAAcjqB,GAAK4jB,KAAAqG,GAC1BQ,GAAQR,GAEdA,EAAAnoB,MAAA22B,IAEMtE,GAAWlK,GAAcnnB,GAAGmnB,EAAMsG,IAC/BnW,GAAM6P,GAPf,EAQA,CCTe,SAAA0O,GAAA1O,EAAAsH,EAAA4G,GACf,SAAA5G,GAAA4G,EAEA,OADShE,GAAWlK,KAAAA,EAAa7P,GAAM6P,IACvCA,EAAewH,GAAMxH,EAAAnqB,OAAA,IAErB,IAAA64B,EAAeD,GAAOzO,GACtBnqB,EAAe2sB,GAASkM,GACxBpH,EAAA9H,KAAAK,IAAAL,KAAAiI,IAAAH,EAAAzxB,GAAA,GAEA,IADA,IAAA84B,EAAA94B,EAAA,EACAkB,EAAA,EAAsBA,EAAAuwB,EAAWvwB,IAAA,CACjC,IAAA63B,EAAepH,GAAMzwB,EAAA43B,GACrBE,EAAAH,EAAA33B,GACA23B,EAAA33B,GAAA23B,EAAAE,GACAF,EAAAE,GAAAC,CACA,CACA,OAAAH,EAAA34B,MAAA,EAAAuxB,EACA,CCvBe,SAAAwH,GAAA9O,GACf,OAAS0O,GAAM1O,EAAA8G,IACf,CCAe,SAAAiI,GAAA/O,EAAA6G,EAAAH,GACf,IAAA3vB,EAAA,EAEA,OADA8vB,EAAaE,GAAEF,EAAAH,GACN2H,GAAMx1B,GAAGmnB,EAAA,SAAAvoB,EAAAU,EAAA21B,GAClB,OACAr2B,MAAAA,EACAV,MAAAA,IACAi4B,SAAAnI,EAAApvB,EAAAU,EAAA21B,GAEA,GAAGp1B,KAAA,SAAAu2B,EAAAC,GACH,IAAAv2B,EAAAs2B,EAAAD,SACAp2B,EAAAs2B,EAAAF,SACA,GAAAr2B,IAAAC,EAAA,CACA,GAAAD,EAAAC,QAAA,IAAAD,EAAA,SACA,GAAAA,EAAAC,QAAA,IAAAA,EAAA,QACA,CACA,OAAAq2B,EAAAl4B,MAAAm4B,EAAAn4B,KACA,GAAG,QACH,CCnBe,SAAAo4B,GAAAC,EAAAC,GACf,gBAAArP,EAAA6G,EAAAH,GACA,IAAA3uB,EAAAs3B,EAAA,WAMA,OALAxI,EAAeE,GAAEF,EAAAH,GACb+G,GAAIzN,EAAA,SAAAvoB,EAAAV,GACR,IAAAoB,EAAA0uB,EAAApvB,EAAAV,EAAAipB,GACAoP,EAAAr3B,EAAAN,EAAAU,EACA,GACAJ,CACA,CACA,CCTA,MAAAu3B,GAAeH,GAAK,SAAAp3B,EAAAN,EAAAU,GACd0iB,GAAG9iB,EAAAI,GAAAJ,EAAAI,GAAAgX,KAAA1X,GAAwCM,EAAAI,GAAA,CAAAV,EACjD,GCHA83B,GAAeJ,GAAK,SAAAp3B,EAAAN,EAAAU,GACpBJ,EAAAI,GAAAV,CACA,GCAA+3B,GAAeL,GAAK,SAAAp3B,EAAAN,EAAAU,GACd0iB,GAAG9iB,EAAAI,GAAAJ,EAAAI,KAA8BJ,EAAAI,GAAA,CACvC,GCJAk3B,GAAeF,GAAK,SAAAp3B,EAAAN,EAAAg4B,GACpB13B,EAAA03B,EAAA,KAAAtgB,KAAA1X,EACA,GAAC,GCFc,SAAA+O,GAAAwZ,GACf,aAAAA,EAAA,EACSkK,GAAWlK,GAAAA,EAAAnqB,OAAqBqC,GAAI8nB,GAAAnqB,MAC7C,CCLe,SAAA65B,GAAAj4B,EAAAU,EAAA6nB,GACf,OAAA7nB,KAAA6nB,CACA,CCIA,MAAA2P,GAAejQ,GAAa,SAAAM,EAAA9nB,GAC5B,IAAAH,EAAA,GAAiB8uB,EAAA3uB,EAAA,GACjB,SAAA8nB,EAAA,OAAAjoB,EACMmpB,GAAU2F,IAChB3uB,EAAArC,OAAA,IAAAgxB,EAAoCJ,GAAUI,EAAA3uB,EAAA,KAC9CA,EAAWqsB,GAAOvE,KAElB6G,EAAe6I,GACfx3B,EAAWiyB,GAAOjyB,GAAA,MAClB8nB,EAAA/nB,OAAA+nB,IAEA,QAAAza,EAAA,EAAA1P,EAAAqC,EAAArC,OAAwC0P,EAAA1P,EAAY0P,IAAA,CACpD,IAAApN,EAAAD,EAAAqN,GACA9N,EAAAuoB,EAAA7nB,GACA0uB,EAAApvB,EAAAU,EAAA6nB,KAAAjoB,EAAAI,GAAAV,EACA,CACA,OAAAM,CACA,GChBA63B,GAAelQ,GAAa,SAAAM,EAAA9nB,GAC5B,IAAAwuB,EAAAG,EAAA3uB,EAAA,GAUA,OATMgpB,GAAU2F,IAChBA,EAAeqF,GAAMrF,GACrB3uB,EAAArC,OAAA,IAAA6wB,EAAAxuB,EAAA,MAEAA,EAAWW,GAAIsxB,GAAOjyB,GAAA,MAAA4B,QACtB+sB,EAAA,SAAApvB,EAAAU,GACA,OAAcyqB,GAAQ1qB,EAAAC,EACtB,GAESw3B,GAAI3P,EAAA6G,EAAAH,EACb,GChBe,SAAAiH,GAAAd,EAAAvF,EAAA4G,GACf,OAASn4B,GAAK4jB,KAAAkT,EAAA,EAAArN,KAAAK,IAAA,EAAAgN,EAAAh3B,QAAA,MAAAyxB,GAAA4G,EAAA,EAAA5G,IACd,CCHe,SAAAuI,GAAAhD,EAAAvF,EAAA4G,GACf,aAAArB,GAAAA,EAAAh3B,OAAA,QAAAyxB,GAAA4G,OAAA,KACA,MAAA5G,GAAA4G,EAAArB,EAAA,GACSc,GAAOd,EAAAA,EAAAh3B,OAAAyxB,EAChB,CCHe,SAAAxH,GAAA+M,EAAAvF,EAAA4G,GACf,OAASn4B,GAAK4jB,KAAAkT,EAAA,MAAAvF,GAAA4G,EAAA,EAAA5G,EACd,CCHe,SAAAqH,GAAA9B,EAAAvF,EAAA4G,GACf,aAAArB,GAAAA,EAAAh3B,OAAA,QAAAyxB,GAAA4G,OAAA,KACA,MAAA5G,GAAA4G,EAAArB,EAAAA,EAAAh3B,OAAA,GACSiqB,GAAI+M,EAAArN,KAAAK,IAAA,EAAAgN,EAAAh3B,OAAAyxB,GACb,CCLe,SAAAwI,GAAAjD,GACf,OAAS/V,GAAM+V,EAAA1yB,QACf,CCDe,SAAS41B,GAAOlD,EAAAzC,GAC/B,OAASD,GAAQ0C,EAAAzC,GAAA,EACjB,CCCA,MAAA4F,GAAetQ,GAAa,SAAAmN,EAAA/M,GAE5B,OADAA,EAASqK,GAAOrK,GAAA,MACPhJ,GAAM+V,EAAA,SAAAp1B,GACf,OAAYmrB,GAAQ9C,EAAAroB,EACpB,EACA,GCRAw4B,GAAevQ,GAAa,SAAAmN,EAAAqD,GAC5B,OAASF,GAAUnD,EAAAqD,EACnB,GCIe,SAAAC,GAAAtD,EAAAuD,EAAAvJ,EAAAH,GACRvG,GAASiQ,KAChB1J,EAAAG,EACAA,EAAAuJ,EACAA,GAAA,GAEA,MAAAvJ,IAAAA,EAAmCE,GAAEF,EAAAH,IAGrC,IAFA,IAAA3uB,EAAA,GACAs4B,EAAA,GACA9qB,EAAA,EAAA1P,EAA2B2sB,GAASqK,GAAStnB,EAAA1P,EAAY0P,IAAA,CACzD,IAAA9N,EAAAo1B,EAAAtnB,GACA7I,EAAAmqB,EAAAA,EAAApvB,EAAA8N,EAAAsnB,GAAAp1B,EACA24B,IAAAvJ,GACAthB,GAAA8qB,IAAA3zB,GAAA3E,EAAAoX,KAAA1X,GACA44B,EAAA3zB,GACMmqB,EACKjE,GAAQyN,EAAA3zB,KACnB2zB,EAAAlhB,KAAAzS,GACA3E,EAAAoX,KAAA1X,IAEgBmrB,GAAQ7qB,EAAAN,IACxBM,EAAAoX,KAAA1X,EAEA,CACA,OAAAM,CACA,CC7BA,MAAAu4B,GAAe5Q,GAAa,SAAA6Q,GAC5B,OAASJ,GAAKhG,GAAOoG,GAAA,MACrB,GCHe,SAAAC,GAAA3D,GAGf,IAFA,IAAA90B,EAAA,GACA04B,EAAAlkB,UAAA1W,OACA0P,EAAA,EAAA1P,EAA2B2sB,GAASqK,GAAStnB,EAAA1P,EAAY0P,IAAA,CACzD,IAAAgK,EAAAsd,EAAAtnB,GACA,IAAQqd,GAAQ7qB,EAAAwX,GAAhB,CACA,IAAAmhB,EACA,IAAAA,EAAA,EAAgBA,EAAAD,GACL7N,GAAQrW,UAAAmkB,GAAAnhB,GADamhB,KAGhCA,IAAAD,GAAA14B,EAAAoX,KAAAI,EALgB,CAMhB,CACA,OAAAxX,CACA,CCZe,SAAA44B,GAAA9D,GAIf,IAHA,IAAAh3B,EAAAg3B,GAAyBhN,GAAGgN,EAAQrK,IAAS3sB,QAAA,EAC7CkC,EAAAS,MAAA3C,GAEAkB,EAAA,EAAsBA,EAAAlB,EAAgBkB,IACtCgB,EAAAhB,GAAoBs3B,GAAKxB,EAAA91B,GAEzB,OAAAgB,CACA,CCTA,MAAA64B,GAAelR,GAAciR,ICAd,SAAAxN,GAAA2K,EAAA3d,GAEf,IADA,IAAApY,EAAA,GACAwN,EAAA,EAAA1P,EAA2B2sB,GAASsL,GAAQvoB,EAAA1P,EAAY0P,IACxD4K,EACApY,EAAA+1B,EAAAvoB,IAAA4K,EAAA5K,GAEAxN,EAAA+1B,EAAAvoB,GAAA,IAAAuoB,EAAAvoB,GAAA,GAGA,OAAAxN,CACA,CCZe,SAAA84B,GAAAxE,EAAAyE,EAAAC,GACf,MAAAD,IACAA,EAAAzE,GAAA,EACAA,EAAA,GAEA0E,IACAA,EAAAD,EAAAzE,GAAA,KAMA,IAHA,IAAAx2B,EAAA2pB,KAAAK,IAAAL,KAAAwR,MAAAF,EAAAzE,GAAA0E,GAAA,GACAF,EAAAr4B,MAAA3C,GAEAy0B,EAAA,EAAoBA,EAAAz0B,EAAcy0B,IAAA+B,GAAA0E,EAClCF,EAAAvG,GAAA+B,EAGA,OAAAwE,CACA,CChBe,SAAAI,GAAApE,EAAAqE,GACf,SAAAA,GAAAA,EAAA,WAGA,IAFA,IAAAn5B,EAAA,GACAwN,EAAA,EAAA1P,EAAAg3B,EAAAh3B,OACA0P,EAAA1P,GACAkC,EAAAoX,KAAgBpZ,GAAK4jB,KAAAkT,EAAAtnB,EAAAA,GAAA2rB,IAErB,OAAAn5B,CACA,CCTe,SAAAo5B,GAAA5H,EAAAvJ,GACf,OAAAuJ,EAAAC,OAA2BnG,GAACrD,GAAAsJ,QAAAtJ,CAC5B,CCEe,SAAAoR,GAAApR,GASf,OAREyN,GAAKpI,GAASrF,GAAA,SAAAxmB,GAChB,IAAAmmB,EAAe0D,GAAC7pB,GAAAwmB,EAAAxmB,GACZ6pB,GAAC3J,UAAAlgB,GAAA,WACL,IAAAub,EAAA,CAAAxZ,KAAA+nB,UAEA,OADMnU,GAAI7C,MAAAyI,EAAAxI,WACG4kB,GAAW51B,KAAAokB,EAAArT,MAAkB+W,GAACtO,GAC3C,CACA,GACSsO,EACT,CCXAoK,GAAI,oEAAAj0B,GACJ,IAAAiI,EAAeyc,GAAU1kB,GACvB6pB,GAAC3J,UAAAlgB,GAAA,WACH,IAAAwmB,EAAAzkB,KAAA+nB,SAOA,OANA,MAAAtD,IACAve,EAAA6K,MAAA0T,EAAAzT,WACA,UAAA/S,GAAA,WAAAA,GAAA,IAAAwmB,EAAAnqB,eACAmqB,EAAA,IAGWmR,GAAW51B,KAAAykB,EACtB,CACA,GAGAyN,GAAI,mCAAAj0B,GACJ,IAAAiI,EAAeyc,GAAU1kB,GACvB6pB,GAAC3J,UAAAlgB,GAAA,WACH,IAAAwmB,EAAAzkB,KAAA+nB,SAEA,OADA,MAAAtD,IAAAA,EAAAve,EAAA6K,MAAA0T,EAAAzT,YACW4kB,GAAW51B,KAAAykB,EACtB,CACA,GAEA,MAAAqR,GAAA,GCRA,IAAIC,GAAIF,GAAMG,GAEdD,GAACjO,EAAKiO,GAEN,MAAAE,GAAA,GCXAC,GAAA,CAECC,UAAW,GAcXC,UAAAA,CAAWjpB,EAAQG,EAAKzQ,GACvB,IAAIw5B,EAOJ,GALCA,EADuB,iBAAZlpB,EACCA,EAEAvK,GAAG0zB,iBAAiBnpB,GAG7B/J,OAAOmzB,QAAQC,UAAW,CAK7B,GAJAlpB,EAAMA,GAAO2B,SAASwnB,SAAW,IAAMJ,EAGrB1nB,UAAU+nB,UAAUj5B,cAAczB,QAAQ,YAAc,GACzDpB,SAAS+T,UAAU+nB,UAAU3iB,MAAM,KAAK4U,OAAS,GAAI,CACrE,MAAMgO,EAAWpoB,SAASC,iBAAiB,+DAC3C,IAAK,IAAiCooB,EAA7B5sB,EAAI,EAAG6sB,EAAKF,EAASr8B,OAAiB0P,EAAI6sB,EAAI7sB,IACtD4sB,EAAUD,EAAS3sB,GAEnB4sB,EAAQ/V,MAAMvV,KAAOsrB,EAAQ/V,MAAMvV,KAEnCsrB,EAAQ/V,MAAMiW,OAASF,EAAQ/V,MAAMiW,OACrCF,EAAQG,gBAAgB,UACxBH,EAAQI,aAAa,SAAU,eAEjC,CACIn6B,EACHuG,OAAOmzB,QAAQU,aAAa9pB,EAAQ,GAAIG,GAExClK,OAAOmzB,QAAQC,UAAUrpB,EAAQ,GAAIG,EAEvC,MAEClK,OAAO6L,SAASkY,KAAO,IAAMkP,EAG7Br2B,KAAKk3B,YAAa,CAEpB,EAWAV,SAAAA,CAAUrpB,EAAQG,GACjBtN,KAAKo2B,WAAWjpB,EAAQG,GAAK,EAC9B,EAaA2pB,YAAAA,CAAa9pB,EAAQG,GACpBtN,KAAKo2B,WAAWjpB,EAAQG,GAAK,EAC9B,EAOA6pB,oBAAAA,CAAqBC,GACpBp3B,KAAKm2B,UAAUviB,KAAKwjB,EACrB,EAQAC,eAAAA,GACC,MAAMlQ,EAAO/jB,OAAO6L,SAASkY,KACvBmQ,EAAMnQ,EAAKnrB,QAAQ,KACzB,OAAIs7B,GAAO,EACHnQ,EAAKoQ,OAAOD,EAAM,GAEtBnQ,EAAK7sB,OAED6sB,EAAKoQ,OAAO,GAEb,EACR,EAEAC,aAAankB,GACLA,EAAMxW,QAAQ,MAAO,KAS7B46B,aAAAA,GACC,MAAMpkB,EAAQrT,KAAKq3B,kBACnB,IAAIlqB,EAOJ,OALIkG,IACHlG,EAASvK,GAAG80B,iBAAiB13B,KAAKw3B,aAAankB,KAGhDlG,EAAS2a,GAAAA,OAAS3a,GAAU,CAAC,EAAGvK,GAAG80B,iBAAiB13B,KAAKw3B,aAAavoB,SAAS+F,UACxE7H,GAAU,CAAC,CACnB,EAEAwqB,WAAAA,CAAYzlB,GACX,GAAIlS,KAAKk3B,WAER,YADAl3B,KAAKk3B,YAAa,GAGnB,IAAI/pB,EACJ,GAAKnN,KAAKm2B,UAAU77B,OAApB,CAGA6S,EAAU+E,GAAKA,EAAEhN,MACb4iB,GAAAA,SAAW3a,GACdA,EAASvK,GAAG80B,iBAAiBvqB,GAClBA,IACXA,EAASnN,KAAKy3B,iBAAmB,CAAC,GAEnC,IAAK,IAAIztB,EAAI,EAAGA,EAAIhK,KAAKm2B,UAAU77B,OAAQ0P,IAC1ChK,KAAKm2B,UAAUnsB,GAAGmD,EARnB,CAUD,GCxJD,SAASyqB,GAASn5B,GAEjB,MAAMo5B,EAAK,GACX,IAGIC,EAHAC,EAAI,EACJC,GAAK,EACLjM,EAAI,EAGR,KAAOgM,EAAIt5B,EAAEnE,QAAQ,CACpBw9B,EAAIr5B,EAAEtD,OAAO48B,GAEb,MAAME,GAAOlM,GAAW,MAAN+L,GAAeA,GAAK,KAAOA,GAAK,IAC9CG,IAAMlM,IAETiM,IACAH,EAAGG,GAAK,GACRjM,EAAIkM,GAELJ,EAAGG,IAAMF,EACTC,GACD,CACA,OAAOF,CACR,CAOA,MAAAK,GAAA,CAECC,QAAOjC,GAKPkC,cAAaC,GAAAC,GAUbC,gBAAAA,CAAiB38B,GAChB,GAAsB,iBAAXA,EACV,OAAO,KAGR,MAAM48B,EAAI58B,EAAO6B,cAAcG,OAe/B,IAAIqL,EACJ,MAAMwvB,EAAUD,EAAEl8B,MAAM,mDACxB,OAAgB,OAAZm8B,EAMI,MALPxvB,EAAQod,WAAWmS,GACd5U,SAAS3a,IAMXwvB,EAAQ,KACXxvB,GAzBkB,CAClB5L,EAAG,EACHq7B,EAAG,KACHC,GAAI,KACJC,GAAI,QACJX,EAAG,QACHY,GAAI,WACJC,EAAG,WACHC,GAAI,cACJt6B,EAAG,cACHu6B,GAAI,gBACJC,EAAG,iBAcwBR,EAAQ,KAGpCxvB,EAAQgb,KAAKiV,MAAMjwB,GACZA,GAVE,KAWV,EAOAkwB,WAAUA,CAACC,EAAWC,UACEv2B,IAAnBM,OAAOk2B,SAAyB12B,GAAGsK,OACtCvB,GAAOkC,KAAK,+FAEbwrB,EAASA,GAAU,MACZE,KAAOH,GAAWC,OAAOA,IAOjCG,oBAAAA,CAAqBJ,QACGt2B,IAAnBM,OAAOk2B,SAAyB12B,GAAGsK,OACtCvB,GAAOkC,KAAK,yGAEb,MAAM4rB,EAAOF,OAASE,KAAKF,KAAOH,IAClC,OAAIK,GAAQ,GAAKA,EAAO,KAChBh7B,EAAE,OAAQ,eAEX86B,KAAOH,GAAWM,SAC1B,EAOAC,iBAAAA,GACC,GAAI35B,KAAK45B,gBACR,OAAO55B,KAAK45B,gBAGb,MAAMC,EAAQtrB,SAASurB,cAAc,KACrCD,EAAMhZ,MAAMtV,MAAQ,OACpBsuB,EAAMhZ,MAAMrV,OAAS,QAErB,MAAMuuB,EAAQxrB,SAASurB,cAAc,OACrCC,EAAMlZ,MAAMzmB,SAAW,WACvB2/B,EAAMlZ,MAAMmZ,IAAM,MAClBD,EAAMlZ,MAAM6S,KAAO,MACnBqG,EAAMlZ,MAAMoZ,WAAa,SACzBF,EAAMlZ,MAAMtV,MAAQ,QACpBwuB,EAAMlZ,MAAMrV,OAAS,QACrBuuB,EAAMlZ,MAAMqZ,SAAW,SACvBH,EAAMI,YAAYN,GAElBtrB,SAAS6rB,KAAKD,YAAYJ,GAC1B,MAAMM,EAAKR,EAAMS,YACjBP,EAAMlZ,MAAMqZ,SAAW,SACvB,IAAIK,EAAKV,EAAMS,YASf,OARID,IAAOE,IACVA,EAAKR,EAAMS,aAGZjsB,SAAS6rB,KAAKK,YAAYV,GAE1B/5B,KAAK45B,gBAAmBS,EAAKE,EAEtBv6B,KAAK45B,eACb,EAQAc,UAAUC,GAGF,IAAIh3B,KAAKg3B,EAAKC,cAAeD,EAAKE,WAAYF,EAAKG,WAW3DC,kBAAAA,CAAmB39B,EAAGC,GACrB,IAAI06B,EACJ,MAAMiD,EAAKpD,GAASx6B,GACd69B,EAAKrD,GAASv6B,GAEpB,IAAK06B,EAAI,EAAGiD,EAAGjD,IAAMkD,EAAGlD,GAAIA,IAC3B,GAAIiD,EAAGjD,KAAOkD,EAAGlD,GAAI,CACpB,MAAMmD,EAAOvgC,OAAOqgC,EAAGjD,IACjBoD,EAAOxgC,OAAOsgC,EAAGlD,IAGvB,OAAImD,GAAQF,EAAGjD,IAAMoD,GAAQF,EAAGlD,GACxBmD,EAAOC,EAIPH,EAAGjD,GAAGqD,cAAcH,EAAGlD,GAAIn1B,GAAGy4B,cAEvC,CAED,OAAOL,EAAG1gC,OAAS2gC,EAAG3gC,MACvB,EAQAghC,OAAAA,CAAQ9zB,EAAU+zB,GACjB,MAAMC,EAAmB,YACL,IAAfh0B,KACH4Z,WAAWoa,EAAkBD,EAE/B,EAEAC,GACD,EASAC,kBAAAA,CAAmBx9B,EAAM/B,GACxB,MAAMw/B,EAAUntB,SAASotB,OAAO5nB,MAAM,KACtC,IAAK,IAAI/J,EAAI,EAAGA,EAAI0xB,EAAQphC,OAAQ0P,IAAK,CACxC,MAAM2xB,EAASD,EAAQ1xB,GAAG+J,MAAM,KAChC,GAAI4nB,EAAO,GAAG/9B,SAAWK,GAAQ09B,EAAO,GAAG/9B,SAAW1B,EACrD,OAAO,CAET,CACA,OAAO,CACR,GC3OD,IAAI0/B,GAAUx4B,OAAOy4B,YAErB,QAAuB,IAAZD,GAAyB,CACnCA,GAAU3sB,SAASwnB,SACnB,MAAMa,EAAMsE,GAAQ5/B,QAAQ,eAE3B4/B,IADY,IAATtE,EACOsE,GAAQrE,OAAO,EAAGD,GAElBsE,GAAQrE,OAAO,EAAGqE,GAAQ7J,YAAY,KAElD,CAEA,MAAA+J,GAAA,GCkDAC,GAAA,CAICC,SClEuB,CAAC,GAAI,QAAS,MAAO,cAAe,OAAQ,YDmEnEC,UAAS,GACTC,eAAc,GACdC,kBAAiB,EACjBC,kBAAiB,EACjBC,gBAAe,EACfC,gBAAe,EACfC,iBAAgB,GAChBC,kBAAiB,EACjBC,aClE2B,mBDuE3B7lB,UAASA,GACT8lB,aAAY5lB,GACZ6lB,OAAQC,GAORtlB,YAAWA,GACX4F,QAAS1F,GACTsG,YAAWQ,GACXue,SAAQC,EAQRlxB,e7KxFM,WACN,MAAO,CACNK,IAAKqL,GACLD,eAEF,E6KoFC0lB,YjL7F0BA,IAAMrmB,GiL8FhCsmB,KAAIze,GAOJ0e,8BAA+BA,OAQ/BC,gBE3GM,WAIN,OAHIt6B,GAAGsK,OACNvB,GAAOkC,KAAK,sGAENsvB,EAAAA,GAAAA,IACR,EF8GCriB,SAAQsiB,GAAAC,GAIRC,WAAUF,GAAAG,GAIVC,QAAOJ,GAAAK,GAIPC,WAAUN,GAAAO,GAIVC,UAAW/oB,GAAAA,GAKXgpB,mBAAkBr7B,EAAAs7B,GAIlBC,UAASv7B,EAAAw7B,GAIT3C,YAAW74B,EAAAy7B,GAGX3H,iBG5IM,SAAenpB,GAClB,OAAKA,EAGU,IAAI+wB,gBAAgB/wB,GACrB4V,WAHH,EAIf,EHuIC2U,iBGxJM,SAAe3iB,GAClB,MAAM5H,EAAS,IAAI+wB,gBAAgBnpB,GACnC,OAAOrY,OAAOyhC,YAAYhxB,EAAO1Q,UACrC,EHuJCwV,IAAGA,GAIHmsB,qBAAoB5c,GACpB6c,QAAOvc,GACPjf,MAAKA,GACLy7B,KAAIpG,GACJhrB,MAAKA,GAILqxB,SAAUC,EAAAA,GAIVz5B,YAAW05B,EAAAC,GAIXC,YAAajf,EAAAA,GAIb7a,UAAS45B,EAAAG,GACTz7B,aAAcga,KAId0hB,OAAMJ,EAAAK,GAONC,UAAWA,CAACC,EAASC,KACbC,EAAAA,EAAAA,IAAeF,EAAS,CAAC,EAAG,CAClCG,WAAYF,GAAW,IACnB,IAKNG,aAAcC,EAAAA,GACdC,iBInMM,SAA0BN,GAChC,OAAOO,EAAAA,EAAAA,MAAmB,eAAiBP,CAC5C,EJ2MCpD,QAAOA,KAIR4D,EAAAA,GAAAA,IAAU,oBAAsBttB,IAC/BtP,GAAGO,aAAe+O,EAAEutB,MAGpB9zB,GAAOyM,KAAK,0BAA2B,CAAEqnB,MAAOvtB,EAAEutB,UK5NnD,MAAAC,GAAA,CACC77B,KAAIA,KACI,CACNjB,GAAEA,KAGJ6C,QAAS,CACRhH,EAAGkhC,GAAK7gB,UAAUzf,KAAKsgC,IACvB5T,EAAG4T,GAAK5gB,gBAAgB1f,KAAKsgC,MCL/BC,EAAAA,GAAI/J,MAAM6J,KAGV,IADaE,EAAAA,GAAIzV,OAAO0V,MACbC,OAAO,wECXlBC,QAA8BC,GAA4BC,KAE1DF,EAAAnsB,KAAA,CAAAssB,EAAAx5B,GAAA,iDAAwF,IAAOu4B,QAAA,EAAAkB,QAAA,0DAAApW,MAAA,GAAAqW,SAAA,mBAAAC,eAAA,+CAAoLC,WAAA,MAEnR,MAAAC,EAAA,iFCJAR,QAA8BC,GAA4BC,KAE1DF,EAAAnsB,KAAA,CAAAssB,EAAAx5B,GAAA,8WAAqZ,IAAOu4B,QAAA,EAAAkB,QAAA,wDAAApW,MAAA,GAAAqW,SAAA,mIAAAC,eAAA,ycAA4rBC,WAAA,MAExlC,MAAAC,EAAA,iFCJAR,QAA8BC,GAA4BC,KAE1DF,EAAAnsB,KAAA,CAAAssB,EAAAx5B,GAAA,oGAA2I,IAAOu4B,QAAA,EAAAkB,QAAA,oEAAApW,MAAA,GAAAqW,SAAA,iDAAAC,eAAA,kHAA+RC,WAAA,MAEjb,MAAAC,EAAA,gFCJAR,QAA8BC,GAA4BC,KAE1DF,EAAAnsB,KAAA,CAAAssB,EAAAx5B,GAAA,iGAAwI,IAAOu4B,QAAA,EAAAkB,QAAA,4DAAApW,MAAA,GAAAqW,SAAA,iDAAAC,eAAA,8GAAmRC,WAAA,MAEla,MAAAC,EAAA,iFCJAR,QAA8BC,GAA4BC,KAE1DF,EAAAnsB,KAAA,CAAAssB,EAAAx5B,GAAA,sbAA6d,IAAOu4B,QAAA,EAAAkB,QAAA,yCAAApW,MAAA,GAAAqW,SAAA,yIAAAC,eAAA,mfAA6tBC,WAAA,MAEjsC,MAAAC,EAAA,iFCJAR,QAA8BC,GAA4BC,KAE1DF,EAAAnsB,KAAA,CAAAssB,EAAAx5B,GAAA,2HAOA,IAAOu4B,QAAA,EAAAkB,QAAA,6DAAApW,MAAA,GAAAqW,SAAA,8CAAiJC,eAAA,+qGAAgrGC,WAAA,MAEx0G,MAAAC,EAAA,iCCdA,MAAAjjC,EAAA,CACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,kBACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,kBACA,gBACA,mBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,YACA,eACA,YACA,eACA,WACA,cACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,sBACA,mBACA,sBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,iBACA,oBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,iBACA,oBACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,cACA,iBACA,aACA,gBACA,cACA,iBACA,cACA,mBACA,sBACA,iBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,mBACA,sBACA,aACA,gBACA,gBACA,mBACA,eACA,kBACA,gBACA,mBACA,gBACA,oBAIA,SAAAkjC,EAAAC,GACA,MAAA/5B,EAAAg6B,EAAAD,GACA,OAAApnB,EAAA3S,EACA,CACA,SAAAg6B,EAAAD,GACA,IAAApnB,EAAAsnB,EAAArjC,EAAAmjC,GAAA,CACA,MAAAvuB,EAAA,IAAArK,MAAA,uBAAA44B,EAAA,KAEA,MADAvuB,EAAAnK,KAAA,mBACAmK,CACA,CACA,OAAA5U,EAAAmjC,EACA,CACAD,EAAA7jC,KAAA,WACA,OAAAD,OAAAC,KAAAW,EACA,EACAkjC,EAAAryB,QAAAuyB,EACAR,EAAAU,QAAAJ,EACAA,EAAA95B,GAAA,QCtSA,MAAAm6B,EAAA,GAGA,SAAAxnB,EAAAynB,GAEA,MAAAC,EAAAF,EAAAC,GACA,QAAAh+B,IAAAi+B,EACA,OAAAA,EAAAH,QAGA,MAAAV,EAAAW,EAAAC,GAAA,CACAp6B,GAAAo6B,EACAE,QAAA,EACAJ,QAAA,IAUA,OANAK,EAAAH,GAAA1iB,KAAA8hB,EAAAU,QAAAV,EAAAA,EAAAU,QAAAvnB,GAGA6mB,EAAAc,QAAA,EAGAd,EAAAU,OACA,CAGAvnB,EAAA4e,EAAAgJ,Q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","sources":["webpack:///nextcloud/node_modules/decode-uri-component/index.js","webpack:///nextcloud/node_modules/split-on-first/index.js","webpack:///nextcloud/node_modules/query-string/base.js","webpack:///nextcloud/core/src/components/login/LoginButton.vue","webpack:///nextcloud/core/src/components/login/LoginButton.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/login/LoginButton.vue?d26e","webpack://nextcloud/./core/src/components/login/LoginButton.vue?14f0","webpack://nextcloud/./core/src/components/login/LoginButton.vue?82aa","webpack:///nextcloud/core/src/mixins/auth.js","webpack:///nextcloud/core/src/components/login/LoginForm.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/login/LoginForm.vue","webpack://nextcloud/./core/src/components/login/LoginForm.vue?4ffc","webpack://nextcloud/./core/src/components/login/LoginForm.vue?a678","webpack://nextcloud/./core/src/components/login/LoginForm.vue?4366","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/webAuthnError.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/webAuthnAbortService.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/bufferToBase64URLString.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/base64URLStringToBuffer.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthn.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthnAutofill.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/toPublicKeyCredentialDescriptor.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/toAuthenticatorAttachment.js","webpack:///nextcloud/node_modules/vue-material-design-icons/LockOpen.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/LockOpen.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/LockOpen.vue?104d","webpack:///nextcloud/node_modules/vue-material-design-icons/LockOpen.vue?vue&type=template&id=d7513faa","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/WebAuthnAuthenticationService.ts","webpack:///nextcloud/core/src/components/login/PasswordLessLoginForm.vue","webpack:///nextcloud/core/src/components/login/PasswordLessLoginForm.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/methods/startAuthentication.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/identifyAuthenticationError.js","webpack:///nextcloud/node_modules/@simplewebauthn/browser/esm/helpers/isValidDomain.js","webpack://nextcloud/./core/src/components/login/PasswordLessLoginForm.vue?9fd4","webpack://nextcloud/./core/src/components/login/PasswordLessLoginForm.vue?09eb","webpack://nextcloud/./core/src/components/login/PasswordLessLoginForm.vue?16ec","webpack:///nextcloud/core/src/components/login/ResetPassword.vue?vue&type=script&lang=ts","webpack:///nextcloud/core/src/components/login/ResetPassword.vue","webpack://nextcloud/./core/src/components/login/ResetPassword.vue?728b","webpack://nextcloud/./core/src/components/login/ResetPassword.vue?9d75","webpack:///nextcloud/core/src/components/login/UpdatePassword.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/login/UpdatePassword.vue","webpack://nextcloud/./core/src/components/login/UpdatePassword.vue?84cd","webpack://nextcloud/./core/src/components/login/UpdatePassword.vue?30ca","webpack://nextcloud/./core/src/components/login/UpdatePassword.vue?1c8f","webpack:///nextcloud/core/src/views/Login.vue","webpack:///nextcloud/core/src/utils/xhr-request.js","webpack:///nextcloud/core/src/views/Login.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/Login.vue?6ce5","webpack://nextcloud/./core/src/views/Login.vue?3468","webpack://nextcloud/./core/src/views/Login.vue?ae59","webpack:///nextcloud/core/src/OC/admin.js","webpack:///nextcloud/core/src/OC/appconfig.js","webpack:///nextcloud/core/src/OC/appswebroots.js","webpack:///nextcloud/core/src/OC/config.js","webpack:///nextcloud/core/src/OC/currentuser.js","webpack:///nextcloud/core/src/OC/debug.js","webpack:///nextcloud/core/src/OC/dialogs.js","webpack:///nextcloud/core/src/OC/requesttoken.ts","webpack:///nextcloud/core/src/OC/eventsource.js","webpack:///nextcloud/core/src/OC/l10n.js","webpack:///nextcloud/core/src/OC/mimeType.js","webpack:///nextcloud/core/src/OC/msg.ts","webpack:///nextcloud/core/src/OC/password-confirmation.js","webpack:///nextcloud/core/src/OC/plugins.js","webpack:///nextcloud/core/src/OC/theme.js","webpack:///nextcloud/node_modules/underscore/modules/_setup.js","webpack:///nextcloud/node_modules/underscore/modules/restArguments.js","webpack:///nextcloud/node_modules/underscore/modules/isObject.js","webpack:///nextcloud/node_modules/underscore/modules/isNull.js","webpack:///nextcloud/node_modules/underscore/modules/isUndefined.js","webpack:///nextcloud/node_modules/underscore/modules/isBoolean.js","webpack:///nextcloud/node_modules/underscore/modules/isElement.js","webpack:///nextcloud/node_modules/underscore/modules/_tagTester.js","webpack:///nextcloud/node_modules/underscore/modules/isString.js","webpack:///nextcloud/node_modules/underscore/modules/isNumber.js","webpack:///nextcloud/node_modules/underscore/modules/isDate.js","webpack:///nextcloud/node_modules/underscore/modules/isRegExp.js","webpack:///nextcloud/node_modules/underscore/modules/isError.js","webpack:///nextcloud/node_modules/underscore/modules/isSymbol.js","webpack:///nextcloud/node_modules/underscore/modules/isArrayBuffer.js","webpack:///nextcloud/node_modules/underscore/modules/isFunction.js","webpack:///nextcloud/node_modules/underscore/modules/_hasObjectTag.js","webpack:///nextcloud/node_modules/underscore/modules/_stringTagBug.js","webpack:///nextcloud/node_modules/underscore/modules/isDataView.js","webpack:///nextcloud/node_modules/underscore/modules/isArray.js","webpack:///nextcloud/node_modules/underscore/modules/_has.js","webpack:///nextcloud/node_modules/underscore/modules/isArguments.js","webpack:///nextcloud/node_modules/underscore/modules/isFinite.js","webpack:///nextcloud/node_modules/underscore/modules/isNaN.js","webpack:///nextcloud/node_modules/underscore/modules/constant.js","webpack:///nextcloud/node_modules/underscore/modules/_createSizePropertyCheck.js","webpack:///nextcloud/node_modules/underscore/modules/_shallowProperty.js","webpack:///nextcloud/node_modules/underscore/modules/_getByteLength.js","webpack:///nextcloud/node_modules/underscore/modules/_isBufferLike.js","webpack:///nextcloud/node_modules/underscore/modules/isTypedArray.js","webpack:///nextcloud/node_modules/underscore/modules/_getLength.js","webpack:///nextcloud/node_modules/underscore/modules/_collectNonEnumProps.js","webpack:///nextcloud/node_modules/underscore/modules/keys.js","webpack:///nextcloud/node_modules/underscore/modules/isEmpty.js","webpack:///nextcloud/node_modules/underscore/modules/isMatch.js","webpack:///nextcloud/node_modules/underscore/modules/underscore.js","webpack:///nextcloud/node_modules/underscore/modules/_toBufferView.js","webpack:///nextcloud/node_modules/underscore/modules/isEqual.js","webpack:///nextcloud/node_modules/underscore/modules/allKeys.js","webpack:///nextcloud/node_modules/underscore/modules/_methodFingerprint.js","webpack:///nextcloud/node_modules/underscore/modules/isMap.js","webpack:///nextcloud/node_modules/underscore/modules/isWeakMap.js","webpack:///nextcloud/node_modules/underscore/modules/isSet.js","webpack:///nextcloud/node_modules/underscore/modules/isWeakSet.js","webpack:///nextcloud/node_modules/underscore/modules/values.js","webpack:///nextcloud/node_modules/underscore/modules/pairs.js","webpack:///nextcloud/node_modules/underscore/modules/invert.js","webpack:///nextcloud/node_modules/underscore/modules/functions.js","webpack:///nextcloud/node_modules/underscore/modules/_createAssigner.js","webpack:///nextcloud/node_modules/underscore/modules/extend.js","webpack:///nextcloud/node_modules/underscore/modules/extendOwn.js","webpack:///nextcloud/node_modules/underscore/modules/defaults.js","webpack:///nextcloud/node_modules/underscore/modules/_baseCreate.js","webpack:///nextcloud/node_modules/underscore/modules/create.js","webpack:///nextcloud/node_modules/underscore/modules/clone.js","webpack:///nextcloud/node_modules/underscore/modules/tap.js","webpack:///nextcloud/node_modules/underscore/modules/toPath.js","webpack:///nextcloud/node_modules/underscore/modules/_toPath.js","webpack:///nextcloud/node_modules/underscore/modules/_deepGet.js","webpack:///nextcloud/node_modules/underscore/modules/get.js","webpack:///nextcloud/node_modules/underscore/modules/has.js","webpack:///nextcloud/node_modules/underscore/modules/identity.js","webpack:///nextcloud/node_modules/underscore/modules/matcher.js","webpack:///nextcloud/node_modules/underscore/modules/property.js","webpack:///nextcloud/node_modules/underscore/modules/_optimizeCb.js","webpack:///nextcloud/node_modules/underscore/modules/_baseIteratee.js","webpack:///nextcloud/node_modules/underscore/modules/iteratee.js","webpack:///nextcloud/node_modules/underscore/modules/_cb.js","webpack:///nextcloud/node_modules/underscore/modules/mapObject.js","webpack:///nextcloud/node_modules/underscore/modules/noop.js","webpack:///nextcloud/node_modules/underscore/modules/propertyOf.js","webpack:///nextcloud/node_modules/underscore/modules/times.js","webpack:///nextcloud/node_modules/underscore/modules/random.js","webpack:///nextcloud/node_modules/underscore/modules/now.js","webpack:///nextcloud/node_modules/underscore/modules/_createEscaper.js","webpack:///nextcloud/node_modules/underscore/modules/_escapeMap.js","webpack:///nextcloud/node_modules/underscore/modules/escape.js","webpack:///nextcloud/node_modules/underscore/modules/unescape.js","webpack:///nextcloud/node_modules/underscore/modules/_unescapeMap.js","webpack:///nextcloud/node_modules/underscore/modules/templateSettings.js","webpack:///nextcloud/node_modules/underscore/modules/template.js","webpack:///nextcloud/node_modules/underscore/modules/result.js","webpack:///nextcloud/node_modules/underscore/modules/uniqueId.js","webpack:///nextcloud/node_modules/underscore/modules/chain.js","webpack:///nextcloud/node_modules/underscore/modules/_executeBound.js","webpack:///nextcloud/node_modules/underscore/modules/partial.js","webpack:///nextcloud/node_modules/underscore/modules/bind.js","webpack:///nextcloud/node_modules/underscore/modules/_isArrayLike.js","webpack:///nextcloud/node_modules/underscore/modules/_flatten.js","webpack:///nextcloud/node_modules/underscore/modules/bindAll.js","webpack:///nextcloud/node_modules/underscore/modules/memoize.js","webpack:///nextcloud/node_modules/underscore/modules/delay.js","webpack:///nextcloud/node_modules/underscore/modules/defer.js","webpack:///nextcloud/node_modules/underscore/modules/throttle.js","webpack:///nextcloud/node_modules/underscore/modules/debounce.js","webpack:///nextcloud/node_modules/underscore/modules/wrap.js","webpack:///nextcloud/node_modules/underscore/modules/negate.js","webpack:///nextcloud/node_modules/underscore/modules/compose.js","webpack:///nextcloud/node_modules/underscore/modules/after.js","webpack:///nextcloud/node_modules/underscore/modules/before.js","webpack:///nextcloud/node_modules/underscore/modules/once.js","webpack:///nextcloud/node_modules/underscore/modules/findKey.js","webpack:///nextcloud/node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack:///nextcloud/node_modules/underscore/modules/findIndex.js","webpack:///nextcloud/node_modules/underscore/modules/findLastIndex.js","webpack:///nextcloud/node_modules/underscore/modules/sortedIndex.js","webpack:///nextcloud/node_modules/underscore/modules/_createIndexFinder.js","webpack:///nextcloud/node_modules/underscore/modules/indexOf.js","webpack:///nextcloud/node_modules/underscore/modules/lastIndexOf.js","webpack:///nextcloud/node_modules/underscore/modules/find.js","webpack:///nextcloud/node_modules/underscore/modules/findWhere.js","webpack:///nextcloud/node_modules/underscore/modules/each.js","webpack:///nextcloud/node_modules/underscore/modules/map.js","webpack:///nextcloud/node_modules/underscore/modules/_createReduce.js","webpack:///nextcloud/node_modules/underscore/modules/reduce.js","webpack:///nextcloud/node_modules/underscore/modules/reduceRight.js","webpack:///nextcloud/node_modules/underscore/modules/filter.js","webpack:///nextcloud/node_modules/underscore/modules/reject.js","webpack:///nextcloud/node_modules/underscore/modules/every.js","webpack:///nextcloud/node_modules/underscore/modules/some.js","webpack:///nextcloud/node_modules/underscore/modules/contains.js","webpack:///nextcloud/node_modules/underscore/modules/invoke.js","webpack:///nextcloud/node_modules/underscore/modules/pluck.js","webpack:///nextcloud/node_modules/underscore/modules/where.js","webpack:///nextcloud/node_modules/underscore/modules/max.js","webpack:///nextcloud/node_modules/underscore/modules/min.js","webpack:///nextcloud/node_modules/underscore/modules/toArray.js","webpack:///nextcloud/node_modules/underscore/modules/sample.js","webpack:///nextcloud/node_modules/underscore/modules/shuffle.js","webpack:///nextcloud/node_modules/underscore/modules/sortBy.js","webpack:///nextcloud/node_modules/underscore/modules/_group.js","webpack:///nextcloud/node_modules/underscore/modules/groupBy.js","webpack:///nextcloud/node_modules/underscore/modules/indexBy.js","webpack:///nextcloud/node_modules/underscore/modules/countBy.js","webpack:///nextcloud/node_modules/underscore/modules/partition.js","webpack:///nextcloud/node_modules/underscore/modules/size.js","webpack:///nextcloud/node_modules/underscore/modules/_keyInObj.js","webpack:///nextcloud/node_modules/underscore/modules/pick.js","webpack:///nextcloud/node_modules/underscore/modules/omit.js","webpack:///nextcloud/node_modules/underscore/modules/initial.js","webpack:///nextcloud/node_modules/underscore/modules/first.js","webpack:///nextcloud/node_modules/underscore/modules/rest.js","webpack:///nextcloud/node_modules/underscore/modules/last.js","webpack:///nextcloud/node_modules/underscore/modules/compact.js","webpack:///nextcloud/node_modules/underscore/modules/flatten.js","webpack:///nextcloud/node_modules/underscore/modules/difference.js","webpack:///nextcloud/node_modules/underscore/modules/without.js","webpack:///nextcloud/node_modules/underscore/modules/uniq.js","webpack:///nextcloud/node_modules/underscore/modules/union.js","webpack:///nextcloud/node_modules/underscore/modules/intersection.js","webpack:///nextcloud/node_modules/underscore/modules/unzip.js","webpack:///nextcloud/node_modules/underscore/modules/zip.js","webpack:///nextcloud/node_modules/underscore/modules/object.js","webpack:///nextcloud/node_modules/underscore/modules/range.js","webpack:///nextcloud/node_modules/underscore/modules/chunk.js","webpack:///nextcloud/node_modules/underscore/modules/_chainResult.js","webpack:///nextcloud/node_modules/underscore/modules/mixin.js","webpack:///nextcloud/node_modules/underscore/modules/underscore-array-methods.js","webpack:///nextcloud/node_modules/underscore/modules/index-default.js","webpack:///nextcloud/core/src/OC/util-history.js","webpack:///nextcloud/core/src/OC/util.js","webpack:///nextcloud/core/src/OC/webroot.js","webpack:///nextcloud/core/src/OC/index.js","webpack:///nextcloud/core/src/OC/constants.js","webpack:///nextcloud/core/src/OC/capabilities.js","webpack:///nextcloud/core/src/OC/query-string.ts","webpack:///nextcloud/core/src/OC/routing.js","webpack:///nextcloud/core/src/mixins/Nextcloud.js","webpack:///nextcloud/core/src/login.js","webpack:///nextcloud/core/src/components/login/LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/login/LoginForm.vue?vue&type=style&index=0&id=1c88ccea&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/login/PasswordLessLoginForm.vue?vue&type=style&index=0&id=25758ef3&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/login/ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss","webpack:///nextcloud/core/src/components/login/UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/concatenation wrap","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/set anonymous default export name","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["// Matches one or more consecutive percent-encoded bytes (e.g. `%C3%A5`).\nconst token = '%[a-f0-9]{2}';\nconst multiMatcher = new RegExp(`(${token})+`, 'gi');\n\nconst hexPair = /^[a-f\\d]{2}$/i;\n\n// Read a `%XX` sequence at `position`, returning the byte value and where to continue scanning.\nfunction parsePercentByte(input, position) {\n\tif (input.codePointAt(position) !== 37 || position + 3 > input.length) {\n\t\treturn;\n\t}\n\n\tconst digits = input.slice(position + 1, position + 3);\n\n\tif (!hexPair.test(digits)) {\n\t\treturn;\n\t}\n\n\treturn {byte: Number.parseInt(digits, 16), next: position + 3};\n}\n\n/**\n * Return how many bytes a UTF-8 code point needs based on its lead byte.\n * Returns 0 for continuation bytes and other invalid lead bytes.\n */\nfunction utf8SequenceLength(byte) {\n\tif (byte <= 0x7F) {\n\t\treturn 1;\n\t}\n\n\t// Start at 0xC2 to exclude overlong 2-byte encodings (0xC0/0xC1).\n\tif (byte >= 0xC2 && byte <= 0xDF) {\n\t\treturn 2;\n\t}\n\n\tif (byte >= 0xE0 && byte <= 0xEF) {\n\t\treturn 3;\n\t}\n\n\tif (byte >= 0xF0 && byte <= 0xF4) {\n\t\treturn 4;\n\t}\n\n\treturn 0;\n}\n\nfunction isContinuationByte(byte) {\n\treturn byte >= 0x80 && byte <= 0xBF;\n}\n\n/**\n * Decode as much of `input` as possible without throwing.\n *Scans left-to-right in O(n), decoding valid UTF-8 runs and leaving the rest literal.\n */\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet output = '';\n\t\tlet position = 0;\n\n\t\twhile (position < input.length) {\n\t\t\tif (input.codePointAt(position) !== 37) {\n\t\t\t\toutput += input.charAt(position);\n\t\t\t\tposition++;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst firstByte = parsePercentByte(input, position);\n\n\t\t\t// `%` not followed by two hex digits (e.g. `%` or `%G`).\n\t\t\tif (!firstByte) {\n\t\t\t\toutput += input.charAt(position);\n\t\t\t\tposition++;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst sequenceLength = utf8SequenceLength(firstByte.byte);\n\n\t\t\t// Continuation byte or invalid lead byte — emit one `%XX` literally.\n\t\t\tif (sequenceLength === 0) {\n\t\t\t\toutput += input.slice(position, position + 3);\n\t\t\t\tposition += 3;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet end = firstByte.next;\n\t\t\tlet validSequence = true;\n\n\t\t\tfor (let index = 1; index < sequenceLength; index++) {\n\t\t\t\tconst nextByte = parsePercentByte(input, end);\n\n\t\t\t\tif (!nextByte || !isContinuationByte(nextByte.byte)) {\n\t\t\t\t\tvalidSequence = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tend = nextByte.next;\n\t\t\t}\n\n\t\t\tif (validSequence) {\n\t\t\t\tconst encodedSequence = input.slice(position, end);\n\n\t\t\t\ttry {\n\t\t\t\t\toutput += decodeURIComponent(encodedSequence);\n\t\t\t\t\tposition = end;\n\t\t\t\t\tcontinue;\n\t\t\t\t} catch {\n\t\t\t\t\t// Invalid UTF-8 despite correct structure — emit the first byte literally.\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Missing continuation bytes or decode failure — emit the first byte literally.\n\t\t\toutput += input.slice(position, position + 3);\n\t\t\tposition += 3;\n\t\t}\n\n\t\treturn output;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\t// Find percent-encoded runs separated by literal text or lone `%` characters.\n\tlet match = multiMatcher.exec(input);\n\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nexport default function decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError(`Expected \\`encodedURI\\` to be of type \\`string\\`, got \\`${typeof encodedURI}\\``);\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n","export default function splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n","import decodeComponent from 'decode-uri-component';\nimport {includeKeys} from 'filter-obj';\nimport splitOnFirst from 'split-on-first';\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replaceAll(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\tresult.push([encode(key, options), '[', index, ']'].join(''));\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tresult.push([encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''));\n\t\t\t\treturn result;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\tresult.push([encode(key, options), '[]'].join(''));\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tresult.push([encode(key, options), '[]=', encode(value, options)].join(''));\n\t\t\t\treturn result;\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\tresult.push([encode(key, options), ':list='].join(''));\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tresult.push([encode(key, options), ':list=', encode(value, options)].join(''));\n\t\t\t\treturn result;\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSeparator = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\tresult.push([encode(key, options), keyValueSeparator, encode(value, options)].join(''));\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tresult.push(encode(value, options));\n\t\t\t\treturn result;\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\tresult.push(encode(key, options));\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tresult.push([encode(key, options), '=', encode(value, options)].join(''));\n\t\t\t\treturn result;\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!Array.isArray(accumulator[key])) {\n\t\t\t\t\taccumulator[key] = [accumulator[key], value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key].push(value);\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!Array.isArray(accumulator[key])) {\n\t\t\t\t\taccumulator[key] = [accumulator[key], value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key].push(value);\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst newValue = isArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : (value === null ? value : decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: decode(value, options).split(options.arrayFormatSeparator);\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!Array.isArray(accumulator[key])) {\n\t\t\t\t\taccumulator[key] = [accumulator[key]];\n\t\t\t\t}\n\n\t\t\t\tfor (const item of arrayValue) {\n\t\t\t\t\taccumulator[key].push(item);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (Array.isArray(accumulator[key])) {\n\t\t\t\t\taccumulator[key].push(value);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [accumulator[key], value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction getUrlWithoutQuery(url) {\n\t// Avoid `split('?')` so query-heavy URLs don't allocate large arrays.\n\tconst queryStart = url.indexOf('?');\n\treturn queryStart === -1 ? url : url.slice(0, queryStart);\n}\n\nfunction parseValue(value, options, type) {\n\tif (type === 'string' && typeof value === 'string') {\n\t\treturn value;\n\t}\n\n\tif (typeof type === 'function' && typeof value === 'string') {\n\t\treturn type(value);\n\t}\n\n\tif (type === 'boolean' && value === null) {\n\t\treturn true;\n\t}\n\n\tif (type === 'boolean' && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\n\tif (type === 'boolean' && value !== null && (value.toLowerCase() === '1' || value.toLowerCase() === '0')) {\n\t\treturn value.toLowerCase() === '1';\n\t}\n\n\tif (type === 'string[]' && options.arrayFormat !== 'none' && typeof value === 'string') {\n\t\treturn [value];\n\t}\n\n\tif (type === 'number[]' && options.arrayFormat !== 'none' && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn [Number(value)];\n\t}\n\n\tif (type === 'number' && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\tif (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\treturn value;\n}\n\nexport function extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nexport function parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\ttypes: Object.create(null),\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tif (/^&+$/.test(query)) {\n\t\treturn returnValue;\n\t}\n\n\tlet parameterStart = 0;\n\tlet firstSeparator = query.indexOf('&');\n\tif (firstSeparator === -1) {\n\t\tfirstSeparator = query.length;\n\t}\n\n\tfor (let index = firstSeparator; index <= query.length; index++) {\n\t\tif (index < query.length && query[index] !== '&') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (index === parameterStart) {\n\t\t\tparameterStart = index + 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter = query.slice(parameterStart, index);\n\t\tconst parameter_ = options.decode ? parameter.replaceAll('+', ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options));\n\t\tformatter(decode(key, options), value, returnValue);\n\n\t\tparameterStart = index + 1;\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null && options.types[key] !== 'string') {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tconst typeOption = options.types[key];\n\t\t\t\tconst type = typeof typeOption === 'function' ? typeOption : (typeOption ? typeOption.replace('[]', '') : undefined);\n\t\t\t\tvalue[key2] = parseValue(value2, options, type);\n\t\t\t}\n\t\t} else if (typeof value === 'object' && value !== null && options.types[key] === 'string') {\n\t\t\treturnValue[key] = Object.values(value).join(options.arrayFormatSeparator);\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options, options.types[key]);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexport function stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tlet value = object[key];\n\n\t\t// Apply replacer function if provided\n\t\tif (options.replacer) {\n\t\t\tvalue = options.replacer(key, value);\n\n\t\t\t// If replacer returns undefined, skip this key\n\t\t\tif (value === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\t// Apply replacer to array elements if provided\n\t\t\t// Note: We don't re-apply replacer to the array itself, only to elements\n\t\t\tlet processedArray = value;\n\t\t\tif (options.replacer) {\n\t\t\t\tprocessedArray = value.map((item, index) =>\n\t\t\t\t\toptions.replacer(`${key}[${index}]`, item),\n\t\t\t\t).filter(item => item !== undefined);\n\t\t\t}\n\n\t\t\tconst result = processedArray.reduce(formatter(key), []);\n\t\t\tconst arrayFormatSeparator = ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? options.arrayFormatSeparator : '&';\n\t\t\treturn result.join(arrayFormatSeparator);\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nexport function parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: getUrlWithoutQuery(url_ ?? ''),\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}),\n\t};\n}\n\nexport function stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = getUrlWithoutQuery(removeHash(object.url)) || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false, ...options}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tqueryString &&= `?${queryString}`;\n\n\tlet hash = getHash(object.url);\n\tif (typeof object.fragmentIdentifier === 'string') {\n\t\thash = `#${object.fragmentIdentifier}`;\n\n\t\tif (options[encodeFragmentIdentifier]) {\n\t\t\t// Percent-encode the fragment with a throwaway URL. The fragment percent-encode set does not depend on the scheme, so the caller's URL is deliberately not parsed here; it may not even be parseable.\n\t\t\tconst throwawayUrl = new URL('https://query-string.invalid');\n\t\t\tthrowawayUrl.hash = hash;\n\t\t\thash = throwawayUrl.hash;\n\t\t}\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nexport function pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nexport function exclude(input, filter, options) {\n\tif (Array.isArray(filter)) {\n\t\tconst filterSet = new Set(filter);\n\t\treturn pick(input, key => !filterSet.has(key), options);\n\t}\n\n\treturn pick(input, (key, value) => !filter(key, value), options);\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LoginButton.vue?vue&type=template&id=bbf83d00&scoped=true\"\nimport script from \"./LoginButton.vue?vue&type=script&lang=js\"\nexport * from \"./LoginButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoginButton.vue?vue&type=style&index=0&id=bbf83d00&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bbf83d00\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcButton',{attrs:{\"variant\":\"primary\",\"type\":\"submit\",\"wide\":true,\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.$emit('click')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('div',{staticClass:\"submit-wrapper__icon icon-loading-small-dark\"}):_c('ArrowRight',{staticClass:\"submit-wrapper__icon\"})]},proxy:true}])},[_vm._v(\"\\n\\t\"+_vm._s(!_vm.loading ? _vm.value : _vm.valueLoading)+\"\\n\\t\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\tcomputed: {\n\t\tuserNameInputLengthIs255() {\n\t\t\treturn this.user.length >= 255\n\t\t},\n\t\tuserInputHelperText() {\n\t\t\tif (this.userNameInputLengthIs255) {\n\t\t\t\treturn t('core', 'Email length is at max (255)')\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=1c88ccea&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=1c88ccea&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LoginForm.vue?vue&type=template&id=1c88ccea&scoped=true\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=js\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoginForm.vue?vue&type=style&index=0&id=1c88ccea&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c88ccea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{ref:\"loginForm\",staticClass:\"login-form\",attrs:{\"method\":\"post\",\"name\":\"login\",\"action\":_vm.loginActionUrl},on:{\"submit\":_vm.submit}},[_c('fieldset',{staticClass:\"login-form__fieldset\",attrs:{\"data-login-form\":\"\"}},[(_vm.apacheAuthFailed)?_c('NcNoteCard',{attrs:{\"title\":_vm.t('core', 'Server side authentication failed!'),\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Please contact your administrator.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.csrfCheckFailed)?_c('NcNoteCard',{attrs:{\"heading\":_vm.t('core', 'Session error'),\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'It appears your session token has expired, please refresh the page and try again.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.messages.length > 0)?_c('NcNoteCard',_vm._l((_vm.messages),function(message,index){return _c('div',{key:index},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(message)),_c('br')])}),0):_vm._e(),_vm._v(\" \"),(_vm.internalException)?_c('NcNoteCard',{class:_vm.t('core', 'An internal error occurred.'),attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Please try again or contact your administrator.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"hidden\",attrs:{\"id\":\"message\"}},[_c('img',{staticClass:\"float-spinner\",attrs:{\"alt\":\"\",\"src\":_vm.loadingIcon}}),_vm._v(\" \"),_c('span',{attrs:{\"id\":\"messageText\"}}),_vm._v(\" \"),_c('div',{staticStyle:{\"clear\":\"both\"}})]),_vm._v(\" \"),_c('h2',{staticClass:\"login-form__headline\",attrs:{\"data-login-form-headline\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.headlineText)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcTextField',{ref:\"user\",class:{ shake: _vm.invalidPassword },attrs:{\"id\":\"user\",\"label\":_vm.loginText,\"name\":\"user\",\"maxlength\":255,\"autocapitalize\":\"none\",\"spellchecking\":false,\"autocomplete\":_vm.autoCompleteAllowed ? 'username' : 'off',\"required\":\"\",\"error\":_vm.userNameError,\"helper-text\":_vm.userInputHelperText,\"data-login-form-input-user\":\"\"},on:{\"change\":_vm.updateUsername},model:{value:(_vm.user),callback:function ($$v) {_vm.user=$$v},expression:\"user\"}}),_vm._v(\" \"),_c('NcPasswordField',{ref:\"password\",class:{ shake: _vm.invalidPassword },attrs:{\"id\":\"password\",\"name\":\"password\",\"spellchecking\":false,\"autocapitalize\":\"none\",\"autocomplete\":_vm.autoCompleteAllowed ? 'current-password' : 'off',\"label\":_vm.t('core', 'Password'),\"helper-text\":_vm.errorLabel,\"error\":_vm.isError,\"visible\":_vm.visible,\"data-login-form-input-password\":\"\",\"required\":\"\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_vm._v(\" \"),(_vm.remembermeAllowed)?_c('NcCheckboxRadioSwitch',{ref:\"rememberme\",attrs:{\"id\":\"rememberme\",\"name\":\"rememberme\",\"value\":\"1\",\"data-login-form-input-rememberme\":\"\"},model:{value:(_vm.rememberme),callback:function ($$v) {_vm.rememberme=$$v},expression:\"rememberme\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Remember me'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('LoginButton',{attrs:{\"data-login-form-submit\":\"\",\"loading\":_vm.loading}}),_vm._v(\" \"),(_vm.redirectUrl)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"redirect_url\"},domProps:{\"value\":_vm.redirectUrl}}):_vm._e(),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"timezone\"},domProps:{\"value\":_vm.timezone}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"timezone_offset\"},domProps:{\"value\":_vm.timezoneOffset}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"requesttoken\"},domProps:{\"value\":_vm.requestToken}}),_vm._v(\" \"),(_vm.directLogin)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"direct\",\"value\":\"1\"}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * A custom Error used to return a more nuanced error detailing _why_ one of the eight documented\n * errors in the spec was raised after calling `navigator.credentials.create()` or\n * `navigator.credentials.get()`:\n *\n * - `AbortError`\n * - `ConstraintError`\n * - `InvalidStateError`\n * - `NotAllowedError`\n * - `NotSupportedError`\n * - `SecurityError`\n * - `TypeError`\n * - `UnknownError`\n *\n * Error messages were determined through investigation of the spec to determine under which\n * scenarios a given error would be raised.\n */\nexport class WebAuthnError extends Error {\n constructor({ message, code, cause, name, }) {\n // @ts-ignore: help Rollup understand that `cause` is okay to set\n super(message, { cause });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = name ?? cause.name;\n this.code = code;\n }\n}\n","class BaseWebAuthnAbortService {\n constructor() {\n Object.defineProperty(this, \"controller\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n }\n createNewAbortSignal() {\n // Abort any existing calls to navigator.credentials.create() or navigator.credentials.get()\n if (this.controller) {\n const abortError = new Error('Cancelling existing WebAuthn API call for new one');\n abortError.name = 'AbortError';\n this.controller.abort(abortError);\n }\n const newController = new AbortController();\n this.controller = newController;\n return newController.signal;\n }\n cancelCeremony() {\n if (this.controller) {\n const abortError = new Error('Manually cancelling existing WebAuthn API call');\n abortError.name = 'AbortError';\n this.controller.abort(abortError);\n this.controller = undefined;\n }\n }\n}\n/**\n * A service singleton to help ensure that only a single WebAuthn ceremony is active at a time.\n *\n * Users of **@simplewebauthn/browser** shouldn't typically need to use this, but it can help e.g.\n * developers building projects that use client-side routing to better control the behavior of\n * their UX in response to router navigation events.\n */\nexport const WebAuthnAbortService = new BaseWebAuthnAbortService();\n","/**\n * Convert the given array buffer into a Base64URL-encoded string. Ideal for converting various\n * credential response ArrayBuffers to string for sending back to the server as JSON.\n *\n * Helper method to compliment `base64URLStringToBuffer`\n */\nexport function bufferToBase64URLString(buffer) {\n const bytes = new Uint8Array(buffer);\n let str = '';\n for (const charCode of bytes) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n return base64String.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n}\n","/**\n * Convert from a Base64URL-encoded string to an Array Buffer. Best used when converting a\n * credential ID from a JSON string to an ArrayBuffer, like in allowCredentials or\n * excludeCredentials\n *\n * Helper method to compliment `bufferToBase64URLString`\n */\nexport function base64URLStringToBuffer(base64URLString) {\n // Convert from Base64URL to Base64\n const base64 = base64URLString.replace(/-/g, '+').replace(/_/g, '/');\n /**\n * Pad with '=' until it's a multiple of four\n * (4 - (85 % 4 = 1) = 3) % 4 = 3 padding\n * (4 - (86 % 4 = 2) = 2) % 4 = 2 padding\n * (4 - (87 % 4 = 3) = 1) % 4 = 1 padding\n * (4 - (88 % 4 = 0) = 4) % 4 = 0 padding\n */\n const padLength = (4 - (base64.length % 4)) % 4;\n const padded = base64.padEnd(base64.length + padLength, '=');\n // Convert to a binary string\n const binary = atob(padded);\n // Convert binary string to buffer\n const buffer = new ArrayBuffer(binary.length);\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return buffer;\n}\n","/**\n * Determine if the browser is capable of Webauthn\n */\nexport function browserSupportsWebAuthn() {\n return _browserSupportsWebAuthnInternals.stubThis(globalThis?.PublicKeyCredential !== undefined &&\n typeof globalThis.PublicKeyCredential === 'function');\n}\n/**\n * Make it possible to stub the return value during testing\n * @ignore Don't include this in docs output\n */\nexport const _browserSupportsWebAuthnInternals = {\n stubThis: (value) => value,\n};\n","import { browserSupportsWebAuthn } from './browserSupportsWebAuthn.js';\n/**\n * Determine if the browser supports conditional UI, so that WebAuthn credentials can\n * be shown to the user in the browser's typical password autofill popup.\n */\nexport function browserSupportsWebAuthnAutofill() {\n if (!browserSupportsWebAuthn()) {\n return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n }\n /**\n * I don't like the `as unknown` here but there's a `declare var PublicKeyCredential` in\n * TS' DOM lib that's making it difficult for me to just go `as PublicKeyCredentialFuture` as I\n * want. I think I'm fine with this for now since it's _supposed_ to be temporary, until TS types\n * have a chance to catch up.\n */\n const globalPublicKeyCredential = globalThis\n .PublicKeyCredential;\n if (globalPublicKeyCredential?.isConditionalMediationAvailable === undefined) {\n return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n }\n return _browserSupportsWebAuthnAutofillInternals.stubThis(globalPublicKeyCredential.isConditionalMediationAvailable());\n}\n// Make it possible to stub the return value during testing\nexport const _browserSupportsWebAuthnAutofillInternals = {\n stubThis: (value) => value,\n};\n","import { base64URLStringToBuffer } from './base64URLStringToBuffer.js';\nexport function toPublicKeyCredentialDescriptor(descriptor) {\n const { id } = descriptor;\n return {\n ...descriptor,\n id: base64URLStringToBuffer(id),\n /**\n * `descriptor.transports` is an array of our `AuthenticatorTransportFuture` that includes newer\n * transports that TypeScript's DOM lib is ignorant of. Convince TS that our list of transports\n * are fine to pass to WebAuthn since browsers will recognize the new value.\n */\n transports: descriptor.transports,\n };\n}\n","const attachments = ['cross-platform', 'platform'];\n/**\n * If possible coerce a `string` value into a known `AuthenticatorAttachment`\n */\nexport function toAuthenticatorAttachment(attachment) {\n if (!attachment) {\n return;\n }\n if (attachments.indexOf(attachment) < 0) {\n return;\n }\n return attachment;\n}\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LockOpen.vue?vue&type=template&id=d7513faa\"\nimport script from \"./LockOpen.vue?vue&type=script&lang=js\"\nexport * from \"./LockOpen.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-open-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10A2,2 0 0,1 6,8H15V6A3,3 0 0,0 12,3A3,3 0 0,0 9,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\n/**\n *\n * @param user\n */\nfunction getLogger(user) {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport { startAuthentication as startWebauthnAuthentication } from '@simplewebauthn/browser';\nimport logger from '../logger.js';\nexport class NoValidCredentials extends Error {\n}\n/**\n * Start webautn authentication\n * This loads the challenge, connects to the authenticator and returns the repose that needs to be sent to the server.\n *\n * @param loginName Name to login\n */\nexport async function startAuthentication(loginName) {\n const url = generateUrl('/login/webauthn/start');\n const { data } = await Axios.post(url, { loginName });\n if (!data.allowCredentials || data.allowCredentials.length === 0) {\n logger.error('No valid credentials returned for webauthn');\n throw new NoValidCredentials();\n }\n return await startWebauthnAuthentication({ optionsJSON: data });\n}\n/**\n * Verify webauthn authentication\n *\n * @param authData The authentication data to sent to the server\n */\nexport async function finishAuthentication(authData) {\n const url = generateUrl('/login/webauthn/finish');\n const { data } = await Axios.post(url, { data: JSON.stringify(authData) });\n return data;\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=script&lang=js\"","import { bufferToBase64URLString } from '../helpers/bufferToBase64URLString.js';\nimport { base64URLStringToBuffer } from '../helpers/base64URLStringToBuffer.js';\nimport { browserSupportsWebAuthn } from '../helpers/browserSupportsWebAuthn.js';\nimport { browserSupportsWebAuthnAutofill } from '../helpers/browserSupportsWebAuthnAutofill.js';\nimport { toPublicKeyCredentialDescriptor } from '../helpers/toPublicKeyCredentialDescriptor.js';\nimport { identifyAuthenticationError } from '../helpers/identifyAuthenticationError.js';\nimport { WebAuthnAbortService } from '../helpers/webAuthnAbortService.js';\nimport { toAuthenticatorAttachment } from '../helpers/toAuthenticatorAttachment.js';\n/**\n * Begin authenticator \"login\" via WebAuthn assertion\n *\n * @param optionsJSON Output from **@simplewebauthn/server**'s `generateAuthenticationOptions()`\n * @param useBrowserAutofill (Optional) Initialize conditional UI to enable logging in via browser autofill prompts. Defaults to `false`.\n * @param verifyBrowserAutofillInput (Optional) Ensure a suitable `` element is present when `useBrowserAutofill` is `true`. Defaults to `true`.\n */\nexport async function startAuthentication(options) {\n // @ts-ignore: Intentionally check for old call structure to warn about improper API call\n if (!options.optionsJSON && options.challenge) {\n console.warn('startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.');\n // @ts-ignore: Reassign the options, passed in as a positional argument, to the expected variable\n options = { optionsJSON: options };\n }\n const { optionsJSON, useBrowserAutofill = false, verifyBrowserAutofillInput = true, } = options;\n if (!browserSupportsWebAuthn()) {\n throw new Error('WebAuthn is not supported in this browser');\n }\n // We need to avoid passing empty array to avoid blocking retrieval\n // of public key\n let allowCredentials;\n if (optionsJSON.allowCredentials?.length !== 0) {\n allowCredentials = optionsJSON.allowCredentials?.map(toPublicKeyCredentialDescriptor);\n }\n // We need to convert some values to Uint8Arrays before passing the credentials to the navigator\n const publicKey = {\n ...optionsJSON,\n challenge: base64URLStringToBuffer(optionsJSON.challenge),\n allowCredentials,\n };\n // Prepare options for `.get()`\n const getOptions = {};\n /**\n * Set up the page to prompt the user to select a credential for authentication via the browser's\n * input autofill mechanism.\n */\n if (useBrowserAutofill) {\n if (!(await browserSupportsWebAuthnAutofill())) {\n throw Error('Browser does not support WebAuthn autofill');\n }\n // Check for an with \"webauthn\" in its `autocomplete` attribute\n const eligibleInputs = document.querySelectorAll(\"input[autocomplete$='webauthn']\");\n // WebAuthn autofill requires at least one valid input\n if (eligibleInputs.length < 1 && verifyBrowserAutofillInput) {\n throw Error('No with \"webauthn\" as the only or last value in its `autocomplete` attribute was detected');\n }\n // `CredentialMediationRequirement` doesn't know about \"conditional\" yet as of\n // typescript@4.6.3\n getOptions.mediation = 'conditional';\n // Conditional UI requires an empty allow list\n publicKey.allowCredentials = [];\n }\n // Finalize options\n getOptions.publicKey = publicKey;\n // Set up the ability to cancel this request if the user attempts another\n getOptions.signal = WebAuthnAbortService.createNewAbortSignal();\n // Wait for the user to complete assertion\n let credential;\n try {\n credential = (await navigator.credentials.get(getOptions));\n }\n catch (err) {\n throw identifyAuthenticationError({ error: err, options: getOptions });\n }\n if (!credential) {\n throw new Error('Authentication was not completed');\n }\n const { id, rawId, response, type } = credential;\n let userHandle = undefined;\n if (response.userHandle) {\n userHandle = bufferToBase64URLString(response.userHandle);\n }\n // Convert values to base64 to make it easier to send back to the server\n return {\n id,\n rawId: bufferToBase64URLString(rawId),\n response: {\n authenticatorData: bufferToBase64URLString(response.authenticatorData),\n clientDataJSON: bufferToBase64URLString(response.clientDataJSON),\n signature: bufferToBase64URLString(response.signature),\n userHandle,\n },\n type,\n clientExtensionResults: credential.getClientExtensionResults(),\n authenticatorAttachment: toAuthenticatorAttachment(credential.authenticatorAttachment),\n };\n}\n","import { isValidDomain } from './isValidDomain.js';\nimport { WebAuthnError } from './webAuthnError.js';\n/**\n * Attempt to intuit _why_ an error was raised after calling `navigator.credentials.get()`\n */\nexport function identifyAuthenticationError({ error, options, }) {\n const { publicKey } = options;\n if (!publicKey) {\n throw Error('options was missing required publicKey property');\n }\n if (error.name === 'AbortError') {\n if (options.signal instanceof AbortSignal) {\n // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 16)\n return new WebAuthnError({\n message: 'Authentication ceremony was sent an abort signal',\n code: 'ERROR_CEREMONY_ABORTED',\n cause: error,\n });\n }\n }\n else if (error.name === 'NotAllowedError') {\n /**\n * Pass the error directly through. Platforms are overloading this error beyond what the spec\n * defines and we don't want to overwrite potentially useful error messages.\n */\n return new WebAuthnError({\n message: error.message,\n code: 'ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY',\n cause: error,\n });\n }\n else if (error.name === 'SecurityError') {\n const effectiveDomain = globalThis.location.hostname;\n if (!isValidDomain(effectiveDomain)) {\n // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 5)\n return new WebAuthnError({\n message: `${globalThis.location.hostname} is an invalid domain`,\n code: 'ERROR_INVALID_DOMAIN',\n cause: error,\n });\n }\n else if (publicKey.rpId !== effectiveDomain) {\n // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 6)\n return new WebAuthnError({\n message: `The RP ID \"${publicKey.rpId}\" is invalid for this domain`,\n code: 'ERROR_INVALID_RP_ID',\n cause: error,\n });\n }\n }\n else if (error.name === 'UnknownError') {\n // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 1)\n // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 12)\n return new WebAuthnError({\n message: 'The authenticator was unable to process the specified options, or could not create a new assertion signature',\n code: 'ERROR_AUTHENTICATOR_GENERAL_ERROR',\n cause: error,\n });\n }\n return error;\n}\n","/**\n * A simple test to determine if a hostname is a properly-formatted domain name\n *\n * A \"valid domain\" is defined here: https://url.spec.whatwg.org/#valid-domain\n *\n * Regex was originally sourced from here, then remixed to add punycode support:\n * https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html\n */\nexport function isValidDomain(hostname) {\n return (\n // Consider localhost valid as well since it's okay wrt Secure Contexts\n hostname === 'localhost' ||\n // Support punycode (ACE) or ascii labels and domains\n /^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(hostname));\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=style&index=0&id=25758ef3&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordLessLoginForm.vue?vue&type=style&index=0&id=25758ef3&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PasswordLessLoginForm.vue?vue&type=template&id=25758ef3&scoped=true\"\nimport script from \"./PasswordLessLoginForm.vue?vue&type=script&lang=js\"\nexport * from \"./PasswordLessLoginForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./PasswordLessLoginForm.vue?vue&type=style&index=0&id=25758ef3&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25758ef3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return ((_vm.isHttps || _vm.isLocalhost) && _vm.supportsWebauthn)?_c('form',{ref:\"loginForm\",staticClass:\"password-less-login-form\",attrs:{\"aria-labelledby\":\"password-less-login-form-title\",\"method\":\"post\",\"name\":\"login\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('h2',{attrs:{\"id\":\"password-less-login-form-title\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Log in with a device'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"required\":\"\",\"model-value\":_vm.user,\"autocomplete\":_vm.autoCompleteAllowed ? 'on' : 'off',\"error\":!_vm.validCredentials,\"label\":_vm.t('core', 'Login or email'),\"placeholder\":_vm.t('core', 'Login or email'),\"helper-text\":!_vm.validCredentials ? _vm.t('core', 'Your account is not setup for passwordless login.') : ''},on:{\"update:value\":_vm.changeUsername}}),_vm._v(\" \"),(_vm.validCredentials)?_c('LoginButton',{attrs:{\"loading\":_vm.loading},on:{\"click\":_vm.authenticate}}):_vm._e()],1):(!_vm.isHttps && !_vm.isLocalhost)?_c('NcEmptyContent',{attrs:{\"name\":_vm.t('core', 'Your connection is not secure'),\"description\":_vm.t('core', 'Passwordless authentication is only available over a secure connection.')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockOpenIcon')]},proxy:true}])}):_c('NcEmptyContent',{attrs:{\"name\":_vm.t('core', 'Browser not supported'),\"description\":_vm.t('core', 'Passwordless authentication is not supported in your browser.')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InformationIcon')]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"reset-password-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('h2',[_vm._v(_vm._s(_vm.t('core', 'Reset password')))]),_vm._v(\" \"),_c('NcTextField',{attrs:{\"id\":\"user\",\"name\":\"user\",\"maxlength\":255,\"autocapitalize\":\"off\",\"label\":_vm.t('core', 'Login or email'),\"error\":_vm.userNameInputLengthIs255,\"helper-text\":_vm.userInputHelperText,\"required\":\"\"},on:{\"change\":_vm.updateUsername},model:{value:(_vm.user),callback:function ($$v) {_vm.user=$$v},expression:\"user\"}}),_vm._v(\" \"),_c('LoginButton',{attrs:{\"loading\":_vm.loading,\"value\":_vm.t('core', 'Reset password')}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){return _vm.$emit('abort')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Back to login'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.message === 'send-success')?_c('NcNoteCard',{attrs:{\"type\":\"success\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'If this account exists, a password reset message has been sent to its email address. If you do not receive it, verify your email address and/or Login, check your spam/junk folders or ask your local administration for help.'))+\"\\n\\t\")]):(_vm.message === 'send-error')?_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Couldn\\'t send reset email. Please contact your administrator.'))+\"\\n\\t\")]):(_vm.message === 'reset-error')?_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'Password cannot be changed. Please contact your administrator.'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=759a0fdd&scoped=true\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ResetPassword.vue?vue&type=style&index=0&id=759a0fdd&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"759a0fdd\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UpdatePassword.vue?vue&type=template&id=2c0ecaf9&scoped=true\"\nimport script from \"./UpdatePassword.vue?vue&type=script&lang=js\"\nexport * from \"./UpdatePassword.vue?vue&type=script&lang=js\"\nimport style0 from \"./UpdatePassword.vue?vue&type=style&index=0&id=2c0ecaf9&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c0ecaf9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('fieldset',[_c('p',[_c('label',{staticClass:\"infield\",attrs:{\"for\":\"password\"}},[_vm._v(_vm._s(_vm.t('core', 'New password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],attrs:{\"id\":\"password\",\"type\":\"password\",\"name\":\"password\",\"autocomplete\":\"new-password\",\"autocapitalize\":\"none\",\"spellcheck\":\"false\",\"required\":\"\",\"placeholder\":_vm.t('core', 'New password')},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing)return;_vm.password=$event.target.value}}})]),_vm._v(\" \"),(_vm.encrypted)?_c('div',{staticClass:\"update\"},[_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your files are encrypted. There will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.proceed),expression:\"proceed\"}],staticClass:\"checkbox\",attrs:{\"id\":\"encrypted-continue\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.proceed)?_vm._i(_vm.proceed,null)>-1:(_vm.proceed)},on:{\"change\":function($event){var $$a=_vm.proceed,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.proceed=$$a.concat([$$v]))}else{$$i>-1&&(_vm.proceed=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.proceed=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"encrypted-continue\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'I know what I\\'m doing'))+\"\\n\\t\\t\\t\")])]):_vm._e(),_vm._v(\" \"),_c('LoginButton',{attrs:{\"loading\":_vm.loading,\"value\":_vm.t('core', 'Reset password'),\"value-loading\":_vm.t('core', 'Resetting password')}}),_vm._v(\" \"),(_vm.error && _vm.message)?_c('p',{class:{ warning: _vm.error }},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\\t\")]):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\n/**\n *\n * @param {string} url the URL to check\n * @return {boolean}\n */\nfunction isRelativeUrl(url) {\n\treturn !url.startsWith('https://') && !url.startsWith('http://')\n}\n\n/**\n * @param {string} url The URL to check\n * @return {boolean} true if the URL points to this nextcloud instance\n */\nfunction isNextcloudUrl(url) {\n\tconst nextcloudBaseUrl = window.location.protocol + '//' + window.location.host + getRootUrl()\n\t// if the URL is absolute and starts with the baseUrl+rootUrl\n\t// OR if the URL is relative and starts with rootUrl\n\treturn url.startsWith(nextcloudBaseUrl)\n\t\t|| (isRelativeUrl(url) && url.startsWith(getRootUrl()))\n}\n\n/**\n * Check if a user was logged in but is now logged-out.\n * If this is the case then the user will be forwarded to the login page.\n *\n * @return {Promise}\n */\nasync function checkLoginStatus() {\n\t// skip if no logged in user\n\tif (getCurrentUser() === null) {\n\t\treturn\n\t}\n\n\t// skip if already running\n\tif (checkLoginStatus.running === true) {\n\t\treturn\n\t}\n\n\t// only run one request in parallel\n\tcheckLoginStatus.running = true\n\n\ttry {\n\t\t// We need to check this as a 401 in the first place could also come from other reasons\n\t\tconst { status } = await window.fetch(generateUrl('/apps/files'))\n\t\tif (status === 401) {\n\t\t\tlogger.warn('User session was terminated, forwarding to login page.')\n\t\t\tawait wipeBrowserStorages()\n\t\t\twindow.location = generateUrl('/login?redirect_url={url}', {\n\t\t\t\turl: window.location.pathname + window.location.search + window.location.hash,\n\t\t\t})\n\t\t}\n\t} catch (error) {\n\t\tlogger.warn('Could not check login-state', { error })\n\t} finally {\n\t\tdelete checkLoginStatus.running\n\t}\n}\n\n/**\n * Clear all Browser storages connected to current origin.\n *\n * @return {Promise}\n */\nexport async function wipeBrowserStorages() {\n\ttry {\n\t\twindow.localStorage.clear()\n\t\twindow.sessionStorage.clear()\n\t\tconst indexedDBList = await window.indexedDB.databases()\n\t\tfor (const indexedDB of indexedDBList) {\n\t\t\tawait window.indexedDB.deleteDatabase(indexedDB.name)\n\t\t}\n\t\tlogger.debug('Browser storages cleared')\n\t} catch (error) {\n\t\tlogger.error('Could not clear browser storages', { error })\n\t}\n}\n\n/**\n * Intercept XMLHttpRequest and fetch API calls to add X-Requested-With header\n *\n * This is also done in @nextcloud/axios but not all requests pass through that\n */\nexport function interceptRequests() {\n\tXMLHttpRequest.prototype.open = (function(open) {\n\t\treturn function(method, url) {\n\t\t\topen.apply(this, arguments)\n\t\t\tif (isNextcloudUrl(url)) {\n\t\t\t\tif (!this.getResponseHeader('X-Requested-With')) {\n\t\t\t\t\tthis.setRequestHeader('X-Requested-With', 'XMLHttpRequest')\n\t\t\t\t}\n\t\t\t\tthis.addEventListener('loadend', function() {\n\t\t\t\t\tif (this.status === 401) {\n\t\t\t\t\t\tcheckLoginStatus()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t})(XMLHttpRequest.prototype.open)\n\n\twindow.fetch = (function(fetch) {\n\t\treturn async (resource, options) => {\n\t\t\t// fetch allows the `input` to be either a Request object or any stringifyable value\n\t\t\tif (!isNextcloudUrl(resource.url ?? resource.toString())) {\n\t\t\t\treturn await fetch(resource, options)\n\t\t\t}\n\t\t\tif (!options) {\n\t\t\t\toptions = {}\n\t\t\t}\n\t\t\tif (!options.headers) {\n\t\t\t\toptions.headers = new Headers()\n\t\t\t}\n\n\t\t\tif (options.headers instanceof Headers && !options.headers.has('X-Requested-With')) {\n\t\t\t\toptions.headers.append('X-Requested-With', 'XMLHttpRequest')\n\t\t\t} else if (options.headers instanceof Object && !options.headers['X-Requested-With']) {\n\t\t\t\toptions.headers['X-Requested-With'] = 'XMLHttpRequest'\n\t\t\t}\n\n\t\t\tconst response = await fetch(resource, options)\n\t\t\tif (response.status === 401) {\n\t\t\t\tcheckLoginStatus()\n\t\t\t}\n\t\t\treturn response\n\t\t}\n\t})(window.fetch)\n}\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=518c0816&scoped=true\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=518c0816&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"518c0816\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"guest-box login-box\"},[(!_vm.hideLoginForm || _vm.directLogin)?[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(!_vm.passwordlessLogin && !_vm.resetPassword && _vm.resetPasswordTarget === '')?_c('div',{staticClass:\"login-box__wrapper\"},[_c('LoginForm',{attrs:{\"username\":_vm.user,\"redirect-url\":_vm.redirectUrl,\"direct-login\":_vm.directLogin,\"messages\":_vm.messages,\"errors\":_vm.errors,\"throttle-delay\":_vm.throttleDelay,\"auto-complete-allowed\":_vm.autoCompleteAllowed,\"rememberme-allowed\":_vm.remembermeAllowed,\"email-states\":_vm.emailStates},on:{\"update:username\":function($event){_vm.user=$event},\"submit\":function($event){_vm.loading = true}}}),_vm._v(\" \"),(_vm.hasPasswordless)?_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){$event.preventDefault();_vm.passwordlessLogin = true}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Log in with a device'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.canResetPassword && _vm.resetPasswordLink !== '')?_c('NcButton',{attrs:{\"id\":\"lost-password\",\"href\":_vm.resetPasswordLink,\"variant\":\"tertiary-no-background\",\"wide\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Forgot password?'))+\"\\n\\t\\t\\t\\t\")]):(_vm.canResetPassword && !_vm.resetPassword)?_c('NcButton',{attrs:{\"id\":\"lost-password\",\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){$event.preventDefault();_vm.resetPassword = true}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Forgot password?'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1):(!_vm.loading && _vm.passwordlessLogin)?_c('div',{key:\"reset-pw-less\",staticClass:\"login-additional login-box__wrapper\"},[_c('PasswordLessLoginForm',{attrs:{\"username\":_vm.user,\"redirect-url\":_vm.redirectUrl,\"auto-complete-allowed\":_vm.autoCompleteAllowed,\"is-https\":_vm.isHttps,\"is-localhost\":_vm.isLocalhost},on:{\"update:username\":function($event){_vm.user=$event},\"submit\":function($event){_vm.loading = true}}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('core', 'Back to login form'),\"wide\":true},on:{\"click\":function($event){_vm.passwordlessLogin = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Back'))+\"\\n\\t\\t\\t\\t\")])],1):(!_vm.loading && _vm.canResetPassword)?_c('div',{key:\"reset-can-reset\",staticClass:\"login-additional\"},[_c('div',{staticClass:\"lost-password-container\"},[(_vm.resetPassword)?_c('ResetPassword',{attrs:{\"username\":_vm.user,\"reset-password-link\":_vm.resetPasswordLink},on:{\"update:username\":function($event){_vm.user=$event},\"abort\":function($event){_vm.resetPassword = false}}}):_vm._e()],1)]):(_vm.resetPasswordTarget !== '')?_c('div',[_c('UpdatePassword',{attrs:{\"username\":_vm.user,\"reset-password-target\":_vm.resetPasswordTarget},on:{\"update:username\":function($event){_vm.user=$event},\"done\":_vm.passwordResetFinished}})],1):_vm._e()])]:[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('NcNoteCard',{attrs:{\"type\":\"info\",\"title\":_vm.t('core', 'Login form is disabled.')}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'The Nextcloud login form is disabled. Use another login option if available or contact your administration.'))+\"\\n\\t\\t\\t\")])],1)],_vm._v(\" \"),_c('div',{staticClass:\"login-box__alternative-logins\",attrs:{\"id\":\"alternative-logins\"}},_vm._l((_vm.alternativeLogins),function(alternativeLogin,index){return _c('NcButton',{key:index,class:[alternativeLogin.class],attrs:{\"variant\":\"secondary\",\"wide\":true,\"role\":\"link\",\"href\":alternativeLogin.href}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(alternativeLogin.name)+\"\\n\\t\\t\")])}),1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst isAdmin = !!window._oc_isadmin\n\n/**\n * Returns whether the current user is an administrator\n *\n * @return {boolean} true if the user is an admin, false otherwise\n * @since 9.0.0\n */\nexport const isUserAdmin = () => isAdmin\n","/*!\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @deprecated 16.0.0 Use OCP.AppConfig instead\n */\nexport const appConfig = window.oc_appconfig || {}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst appswebroots = (window._oc_appswebroots !== undefined) ? window._oc_appswebroots : false\n\nexport default appswebroots\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst config = window._oc_config || {}\n\nexport default config\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst rawUid = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user')\nconst displayName = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user-displayname')\n\nexport const currentUser = rawUid !== undefined ? rawUid : false\n\n/**\n *\n */\nexport function getCurrentUser() {\n\treturn {\n\t\tuid: currentUser,\n\t\tdisplayName,\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst base = window._oc_debug\n\nexport const debug = base\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport IconMove from '@mdi/svg/svg/folder-move.svg?raw'\nimport IconCopy from '@mdi/svg/svg/folder-multiple-outline.svg?raw'\nimport { DialogBuilder, FilePickerType, getFilePickerBuilder } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport { basename } from 'path'\nimport { defineAsyncComponent } from 'vue'\nimport logger from '../logger.js'\n\n/**\n * this class to ease the usage of dialogs\n */\nconst Dialogs = {\n\t// dialog button types\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tYES_NO_BUTTONS: 70,\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tOK_BUTTONS: 71,\n\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CHOOSE: 1,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_MOVE: 2,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY: 3,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY_MOVE: 4,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CUSTOM: 5,\n\n\t/**\n\t * displays alert dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\talert: function(text, title, callback, modal) {\n\t\tthis.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'alert',\n\t\t\tDialogs.OK_BUTTON,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\n\t/**\n\t * displays info dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tinfo: function(text, title, callback, modal) {\n\t\tthis.message(text, title, 'info', Dialogs.OK_BUTTON, callback, modal)\n\t},\n\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirm: function(text, title, callback, modal) {\n\t\treturn this.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'notice',\n\t\t\tDialogs.YES_NO_BUTTONS,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {(number|{type: number, confirm: string, cancel: string, confirmClasses: string})} buttons text content of buttons\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmDestructive: function(text, title, buttons = Dialogs.OK_BUTTONS, callback = () => {}) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(text)\n\t\t\t.setButtons(buttons === Dialogs.OK_BUTTONS\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\t\t\tvariant: 'error',\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: Dialogs._getLegacyButtons(buttons, callback))\n\t\t\t.build()\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmHtml: function(text, title, callback) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText('')\n\t\t\t.setButtons([\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'No'),\n\t\t\t\t\tcallback: () => {},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t])\n\t\t\t.build()\n\t\t\t.setHTML(text)\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays prompt dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @param {string} name name of the input field\n\t * @param {boolean} password whether the input should be a password input\n\t * @return {Promise}\n\t *\n\t * @deprecated Use NcDialog from `@nextcloud/vue` instead\n\t */\n\tprompt: function(text, title, callback, modal, name, password) {\n\t\treturn new Promise((resolve) => {\n\t\t\tspawnDialog(\n\t\t\t\tdefineAsyncComponent(() => import('../components/LegacyDialogPrompt.vue')),\n\t\t\t\t{\n\t\t\t\t\ttext,\n\t\t\t\t\tname: title,\n\t\t\t\t\tcallback,\n\t\t\t\t\tinputName: name,\n\t\t\t\t\tisPassword: !!password,\n\t\t\t\t},\n\t\t\t\t(...args) => {\n\t\t\t\t\tcallback(...args)\n\t\t\t\t\tresolve()\n\t\t\t\t},\n\t\t\t)\n\t\t})\n\t},\n\n\t/**\n\t * Legacy wrapper to the new Vue based filepicker from `@nextcloud/dialogs`\n\t *\n\t * Prefer to use the Vue filepicker directly instead.\n\t *\n\t * In order to pick several types of mime types they need to be passed as an\n\t * array of strings.\n\t *\n\t * When no mime type filter is given only files can be selected. In order to\n\t * be able to select both files and folders \"['*', 'httpd/unix-directory']\"\n\t * should be used instead.\n\t *\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses Choose\n\t * @param {boolean} [multiselect] whether it should be possible to select multiple files\n\t * @param {string[]} [mimetype] mimetype to filter by - directories will always be included\n\t * @param {boolean} [_modal] do not use\n\t * @param {string} [type] Type of file picker : Choose, copy, move, copy and move\n\t * @param {string} [path] path to the folder that the the file can be picket from\n\t * @param {object} [options] additonal options that need to be set\n\t * @param {Function} [options.filter] filter function for advanced filtering\n\t * @param {boolean} [options.allowDirectoryChooser] Allow to select directories\n\t * @deprecated since 27.1.0 use the filepicker from `@nextcloud/dialogs` instead\n\t */\n\t// eslint-disable-next-line no-unused-vars\n\tfilepicker(title, callback, multiselect = false, mimetype = undefined, _modal = undefined, type = FilePickerType.Choose, path = undefined, options = undefined) {\n\t\t/**\n\t\t * Create legacy callback wrapper to support old filepicker syntax\n\t\t *\n\t\t * @param fn The original callback\n\t\t * @param type The file picker type which was used to pick the file(s)\n\t\t */\n\t\tconst legacyCallback = (fn, type) => {\n\t\t\tconst getPath = (node) => {\n\t\t\t\tconst root = node?.root || ''\n\t\t\t\tlet path = node?.path || ''\n\t\t\t\t// TODO: Fix this in @nextcloud/files\n\t\t\t\tif (path.startsWith(root)) {\n\t\t\t\t\tpath = path.slice(root.length) || '/'\n\t\t\t\t}\n\t\t\t\treturn path\n\t\t\t}\n\n\t\t\tif (multiselect) {\n\t\t\t\treturn (nodes) => fn(nodes.map(getPath), type)\n\t\t\t} else {\n\t\t\t\treturn (nodes) => fn(getPath(nodes[0]), type)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Coverting a Node into a legacy file info to support the OC.dialogs.filepicker filter function\n\t\t *\n\t\t * @param node The node to convert\n\t\t */\n\t\tconst nodeToLegacyFile = (node) => ({\n\t\t\tid: node.fileid || null,\n\t\t\tpath: node.path,\n\t\t\tmimetype: node.mime || null,\n\t\t\tmtime: node.mtime?.getTime() || null,\n\t\t\tpermissions: node.permissions,\n\t\t\tname: node.attributes?.displayName || node.basename,\n\t\t\tetag: node.attributes?.etag || null,\n\t\t\thasPreview: node.attributes?.hasPreview || null,\n\t\t\tmountType: node.attributes?.mountType || null,\n\t\t\tquotaAvailableBytes: node.attributes?.quotaAvailableBytes || null,\n\t\t\ticon: null,\n\t\t\tsharePermissions: null,\n\t\t})\n\n\t\tconst builder = getFilePickerBuilder(title)\n\n\t\t// Setup buttons\n\t\tif (type === this.FILEPICKER_TYPE_CUSTOM) {\n\t\t\t(options.buttons || []).forEach((button) => {\n\t\t\t\tbuilder.addButton({\n\t\t\t\t\tcallback: legacyCallback(callback, button.type),\n\t\t\t\t\tlabel: button.text,\n\t\t\t\t\tvariant: button.defaultButton ? 'primary' : 'secondary',\n\t\t\t\t})\n\t\t\t})\n\t\t} else {\n\t\t\tbuilder.setButtonFactory((nodes, path) => {\n\t\t\t\tconst buttons = []\n\t\t\t\tconst [node] = nodes\n\t\t\t\tconst target = node?.displayname || node?.basename || basename(path)\n\n\t\t\t\tif (type === FilePickerType.Choose) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Choose),\n\t\t\t\t\t\tlabel: node && !this.multiSelect ? t('core', 'Choose {file}', { file: target }) : t('core', 'Choose'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.CopyMove || type === FilePickerType.Copy) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Copy),\n\t\t\t\t\t\tlabel: target ? t('core', 'Copy to {target}', { target }) : t('core', 'Copy'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\ticon: IconCopy,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.Move || type === FilePickerType.CopyMove) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Move),\n\t\t\t\t\t\tlabel: target ? t('core', 'Move to {target}', { target }) : t('core', 'Move'),\n\t\t\t\t\t\tvariant: type === FilePickerType.Move ? 'primary' : 'secondary',\n\t\t\t\t\t\ticon: IconMove,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn buttons\n\t\t\t})\n\t\t}\n\n\t\tif (mimetype) {\n\t\t\tbuilder.setMimeTypeFilter(typeof mimetype === 'string' ? [mimetype] : (mimetype || []))\n\t\t}\n\t\tif (typeof options?.filter === 'function') {\n\t\t\tbuilder.setFilter((node) => options.filter(nodeToLegacyFile(node)))\n\t\t}\n\t\tbuilder.allowDirectories(options?.allowDirectoryChooser === true || mimetype?.includes('httpd/unix-directory') || false)\n\t\t\t.setMultiSelect(multiselect)\n\t\t\t.startAt(path)\n\t\t\t.build()\n\t\t\t.pick()\n\t},\n\n\t/**\n\t * Displays raw dialog\n\t * You better use a wrapper instead ...\n\t *\n\t * @param content\n\t * @param title\n\t * @param dialogType\n\t * @param buttons\n\t * @param callback\n\t * @param modal\n\t * @param allowHtml\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tmessage: function(content, title, dialogType, buttons, callback = () => {}, modal, allowHtml) {\n\t\tconst builder = (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(allowHtml ? '' : content)\n\t\t\t.setButtons(Dialogs._getLegacyButtons(buttons, callback))\n\n\t\tswitch (dialogType) {\n\t\t\tcase 'alert':\n\t\t\t\tbuilder.setSeverity('warning')\n\t\t\t\tbreak\n\t\t\tcase 'notice':\n\t\t\t\tbuilder.setSeverity('info')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst dialog = builder.build()\n\n\t\tif (allowHtml) {\n\t\t\tdialog.setHTML(content)\n\t\t}\n\n\t\treturn dialog.show().then(() => {\n\t\t\tif (!callback._clicked) {\n\t\t\t\tcallback(false)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Helper for legacy API\n\t *\n\t * @param buttons\n\t * @param callback\n\t * @deprecated\n\t */\n\t_getLegacyButtons(buttons, callback) {\n\t\tconst buttonList = []\n\n\t\tswitch (typeof buttons === 'object' ? buttons.type : buttons) {\n\t\t\tcase Dialogs.YES_NO_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.cancel ?? t('core', 'No'),\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(false)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase Dialogs.OK_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'OK'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error('Invalid call to OC.dialogs')\n\t\t\t\tbreak\n\t\t}\n\t\treturn buttonList\n\t},\n}\n\nexport default Dialogs\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\n/**\n * Get the current CSRF token.\n */\nexport function getRequestToken() {\n return document.head.dataset.requesttoken;\n}\n/**\n * Set a new CSRF token (e.g. because of session refresh).\n * This also emits an event bus event for the updated token.\n *\n * @param token - The new token\n * @fires Error - If the passed token is not a potential valid token\n */\nexport function setRequestToken(token) {\n if (!token || typeof token !== 'string') {\n throw new Error('Invalid CSRF token given', { cause: { token } });\n }\n document.head.dataset.requesttoken = token;\n emit('csrf-token-update', { token });\n}\n/**\n * Fetch the request token from the API.\n * This does also set it on the current context, see `setRequestToken`.\n *\n * @fires Error - If the request failed\n */\nexport async function fetchRequestToken() {\n const url = generateUrl('/csrftoken');\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error('Could not fetch CSRF token from API', { cause: response });\n }\n const { token } = await response.json();\n setRequestToken(token);\n return token;\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken } from './requesttoken.ts'\n\n/**\n * Create a new event source\n *\n * @param {string} src\n * @param {object} [data] to be send as GET\n *\n * @constructs OCEventSource\n */\nfunction OCEventSource(src, data) {\n\tlet dataStr = ''\n\tlet name\n\tlet joinChar\n\tthis.typelessListeners = []\n\tthis.closed = false\n\tif (data) {\n\t\tfor (name in data) {\n\t\t\tdataStr += name + '=' + encodeURIComponent(data[name]) + '&'\n\t\t}\n\t}\n\tdataStr += 'requesttoken=' + encodeURIComponent(getRequestToken())\n\tjoinChar = '&'\n\tif (src.indexOf('?') === -1) {\n\t\tjoinChar = '?'\n\t}\n\tthis.source = new EventSource(src + joinChar + dataStr)\n\tthis.source.onmessage = function(e) {\n\t\tfor (let i = 0; i < this.typelessListeners.length; i++) {\n\t\t\tthis.typelessListeners[i](JSON.parse(e.data))\n\t\t}\n\t}.bind(this)\n\t// add close listener\n\tthis.listen('__internal__', function(data) {\n\t\tif (data === 'close') {\n\t\t\tthis.close()\n\t\t}\n\t}.bind(this))\n}\nOCEventSource.prototype = {\n\ttypelessListeners: [],\n\t/**\n\t * Listen to a given type of events.\n\t *\n\t * @param {string} type event type\n\t * @param {Function} callback event callback\n\t */\n\tlisten: function(type, callback) {\n\t\tif (callback && callback.call) {\n\t\t\tif (type) {\n\t\t\t\tthis.source.addEventListener(type, function(e) {\n\t\t\t\t\tif (typeof e.data !== 'undefined') {\n\t\t\t\t\t\tcallback(JSON.parse(e.data))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback('')\n\t\t\t\t\t}\n\t\t\t\t}, false)\n\t\t\t} else {\n\t\t\t\tthis.typelessListeners.push(callback)\n\t\t\t}\n\t\t}\n\t},\n\t/**\n\t * Closes this event source.\n\t */\n\tclose: function() {\n\t\tthis.closed = true\n\t\tthis.source.close()\n\t},\n}\n\nexport default OCEventSource\n","/**\n * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-FileCopyrightText: 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tloadTranslations,\n\tregister,\n\ttranslate,\n\ttranslatePlural,\n\tunregister,\n} from '@nextcloud/l10n'\n\n/**\n * L10N namespace with localization functions.\n *\n * @namespace OC.L10n\n * @deprecated 26.0.0 use https://www.npmjs.com/package/@nextcloud/l10n\n */\nconst L10n = {\n\n\t/**\n\t * Load an app's translation bundle if not loaded already.\n\t *\n\t * @deprecated 26.0.0 use `loadTranslations` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Function} callback callback to be called when\n\t * the translations are loaded\n\t * @return {Promise} promise\n\t */\n\tload: loadTranslations,\n\n\t/**\n\t * Register an app's translation bundle.\n\t *\n\t * @deprecated 26.0.0 use `register` from https://www.npmjs.com/package/@nextcloud/l10\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Record} bundle bundle\n\t */\n\tregister,\n\n\t/**\n\t * @private\n\t * @deprecated 26.0.0 use `unregister` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\t_unregister: unregister,\n\n\t/**\n\t * Translate a string\n\t *\n\t * @deprecated 26.0.0 use `translate` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} text the string to translate\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {number} [count] number to replace %n with\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @param {boolean} [options.sanitize=true] enable/disable sanitization (by default enabled)\n\t * @return {string}\n\t */\n\ttranslate,\n\n\t/**\n\t * Translate a plural string\n\t *\n\t * @deprecated 26.0.0 use `translatePlural` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} textSingular the string to translate for exactly one object\n\t * @param {string} textPlural the string to translate for n objects\n\t * @param {number} count number to determine whether to use singular or plural\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @return {string} Translated string\n\t */\n\ttranslatePlural,\n}\n\nexport default L10n\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\n\nconst iconCache = new Map()\n\n/**\n * Return the url to icon of the given mimeType\n *\n * @param {string} mimeType The mimeType to get the icon for\n * @return {string} Url to the icon for mimeType\n */\nexport function getIconUrl(mimeType) {\n\tif (typeof mimeType === 'undefined') {\n\t\treturn undefined\n\t}\n\n\twhile (mimeType in window.OC.MimeTypeList.aliases) {\n\t\tmimeType = window.OC.MimeTypeList.aliases[mimeType]\n\t}\n\n\tif (!iconCache.has(mimeType)) {\n\t\tlet gotIcon = false\n\t\tlet path = ''\n\t\t// First try to get the correct icon from the current legacy-theme\n\t\tif (OC.theme.folder !== '' && Array.isArray(OC.MimeTypeList.themes[OC.theme.folder])) {\n\t\t\tpath = getRootUrl() + '/themes/' + window.OC.theme.folder + '/core/img/filetypes/'\n\t\t\tconst icon = getMimeTypeIcon(mimeType, window.OC.MimeTypeList.themes[OC.theme.folder])\n\t\t\tif (icon) {\n\t\t\t\tgotIcon = true\n\t\t\t\tpath += icon + '.svg'\n\t\t\t}\n\t\t}\n\n\t\t// theming is always enabled since Nextcloud 20 so we get it from that\n\t\tif (!gotIcon) {\n\t\t\tpath = generateUrl('/apps/theming/img/core/filetypes/' + getMimeTypeIcon(mimeType, window.OC.MimeTypeList.files) + '.svg')\n\t\t}\n\n\t\tpath += '?v=' + window.OCA.Theming.cacheBuster\n\t\t// Cache the result\n\t\ticonCache.set(mimeType, path)\n\t}\n\n\treturn iconCache.get(mimeType)\n}\n\n/**\n * Return the file icon we want to use for the given mimeType.\n * The file needs to be present in the supplied file list\n *\n * @param {string} mimeType The mimeType we want an icon for\n * @param {string[]} files The available icons in this theme\n * @return {string | null} The icon to use or null if there is no match\n */\nfunction getMimeTypeIcon(mimeType, files) {\n\tconst icon = mimeType.replace(new RegExp('/', 'g'), '-')\n\n\t// Generate path\n\tif (mimeType === 'dir' && files.includes('folder')) {\n\t\treturn 'folder'\n\t} else if (mimeType === 'dir-encrypted' && files.includes('folder-encrypted')) {\n\t\treturn 'folder-encrypted'\n\t} else if (mimeType === 'dir-shared' && files.includes('folder-shared')) {\n\t\treturn 'folder-shared'\n\t} else if (mimeType === 'dir-public' && files.includes('folder-public')) {\n\t\treturn 'folder-public'\n\t} else if ((mimeType === 'dir-external' || mimeType === 'dir-external-root') && files.includes('folder-external')) {\n\t\treturn 'folder-external'\n\t} else if (files.includes(icon)) {\n\t\treturn icon\n\t} else if (files.includes(icon.split('-')[0])) {\n\t\treturn icon.split('-')[0]\n\t} else if (files.includes('file')) {\n\t\treturn 'file'\n\t}\n\n\treturn null\n}\n\n/**\n * Clear the icon cache\n */\nexport function clearIconCache() {\n\ticonCache.clear()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\n/**\n * A little class to manage a status field for a \"saving\" process.\n * It can be used to display a starting message (e.g. \"Saving...\") and then\n * replace it with a green success message or a red error message.\n */\nexport default {\n /**\n * Displayes a \"Saving...\" message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n */\n startSaving(selector) {\n this.startAction(selector, t('core', 'Saving …'));\n },\n /**\n * Displayes a custom message in the given message placeholder\n *\n * @param selector - Query selectior for the element to display the message in\n * @param message - Plain text message to display (no HTML allowed)\n */\n startAction(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.remove('error');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n el.style.display = 'block';\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selectior for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status - is being used to decide whether the message is displayed as an error/success\n */\n finishedSaving(selector, response) {\n this.finishedAction(selector, response);\n },\n /**\n * Displayes an success/error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param response - Response of the server\n * @param response.data - Data of the servers response\n * @param response.data.message - Plain text message to display (no HTML allowed)\n * @param response.status . Is being used to decide whether the message is displayed as an error/success\n */\n finishedAction(selector, response) {\n if (response.status === 'success') {\n this.finishedSuccess(selector, response.data.message);\n }\n else {\n this.finishedError(selector, response.data.message);\n }\n },\n /**\n * Displayes an success message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text success message to display (no HTML allowed)\n */\n finishedSuccess(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('error');\n el.classList.add('success');\n el.getAnimations?.().forEach((animation) => animation.cancel());\n window.setTimeout(fadeOut, 3000);\n el.style.display = 'block';\n /**\n * Fades out the message element\n */\n function fadeOut() {\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n const animation = el.animate?.([\n { opacity: 1 },\n { opacity: 0 },\n ], {\n duration: 900,\n fill: 'forwards',\n });\n if (animation) {\n animation.addEventListener('finish', () => {\n el.style.display = 'none';\n });\n }\n else {\n window.setTimeout(() => {\n el.style.display = 'none';\n }, 900);\n }\n }\n },\n /**\n * Displayes an error message in the given selector\n *\n * @param selector - Query selector for the element to display the message in\n * @param message - Plain text error message to display (no HTML allowed)\n */\n finishedError(selector, message) {\n const el = document.querySelector(selector);\n if (!el || !(el instanceof HTMLElement)) {\n return;\n }\n el.textContent = message;\n el.classList.remove('success');\n el.classList.add('error');\n el.style.display = 'block';\n },\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { confirmPassword, isPasswordConfirmationRequired } from '@nextcloud/password-confirmation'\n\n/**\n * @namespace OC.PasswordConfirmation\n */\nexport default {\n\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequiresPasswordConfirmation() {\n\t\treturn isPasswordConfirmationRequired()\n\t},\n\n\t/**\n\t * @param {Function} callback success callback function\n\t * @param {object} options options currently not used by confirmPassword\n\t * @param {Function} rejectCallback error callback function\n\t *\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequirePasswordConfirmation(callback, options, rejectCallback) {\n\t\tconfirmPassword().then(callback, rejectCallback)\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\t/**\n\t * @type {Array.}\n\t */\n\t_plugins: {},\n\n\t/**\n\t * Register plugin\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @param {OC.Plugin} plugin plugin\n\t */\n\tregister(targetName, plugin) {\n\t\tlet plugins = this._plugins[targetName]\n\t\tif (!plugins) {\n\t\t\tplugins = this._plugins[targetName] = []\n\t\t}\n\t\tplugins.push(plugin)\n\t},\n\n\t/**\n\t * Returns all plugin registered to the given target\n\t * name / app name / class name.\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @return {Array.} array of plugins\n\t */\n\tgetPlugins(targetName) {\n\t\treturn this._plugins[targetName] || []\n\t},\n\n\t/**\n\t * Call attach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tattach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].attach) {\n\t\t\t\tplugins[i].attach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Call detach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tdetach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].detach) {\n\t\t\t\tplugins[i].detach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const theme = window._theme || {}\n","// Current version.\nexport var VERSION = '1.13.8';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = (typeof self == 'object' && self.self === self && self) ||\n (typeof global == 'object' && global.global === global && global) ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n","// Is a given value equal to null?\nexport default function isNull(obj) {\n return obj === null;\n}\n","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n return obj === void 0;\n}\n","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n","// Is a given value a DOM element?\nexport default function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\n// Also, there are cases where an application can override the native\n// `DataView` object, in cases like that we can't use the constructor\n// safely and should just rely on alternate `DataView` checks\nexport var hasDataViewBug = (\n supportsDataView && (!/\\[native code\\]/.test(String(DataView)) || hasObjectTag(new DataView(new ArrayBuffer(8))))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasDataViewBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\n// Also, in cases where the native `DataView` is\n// overridden we can't rely on the tag itself.\nfunction alternateIsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasDataViewBug ? alternateIsDataView : isDataView);\n","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n}());\n\nexport default isArguments;\n","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key] === true; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasDataViewBug } from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n var todo = [{a: a, b: b}];\n // Initializing stacks of traversed objects for cycle detection.\n var aStack = [], bStack = [];\n\n while (todo.length) {\n var frame = todo.pop();\n if (frame === true) {\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n continue;\n }\n a = frame.a;\n b = frame.b;\n\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n if (a !== 0 || 1 / a === 1 / b) continue;\n return false;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n if (b !== b) continue;\n return false;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n\n// Internal recursive comparison function for `_.isEqual`.\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasDataViewBug && className == '[object Object]' && isDataView(a)) {\n if (!isDataView(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n if ('' + a === '' + b) continue;\n return false;\n case '[object Number]':\n todo.push({a: +a, b: +b});\n continue;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n if (+a === +b) continue;\n return false;\n case '[object Symbol]':\n if (SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b)) continue;\n return false;\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n todo.push({a: toBufferView(a), b: toBufferView(b)});\n continue;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) continue;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n if (bStack[length] === b) break;\n return false;\n }\n }\n if (length >= 0) continue;\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n todo.push(true);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n todo.push({a: a[length], b: b[length]});\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!has(b, key)) return false;\n todo.push({a: a[key], b: b[key]});\n }\n }\n }\n return true;\n}\n","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\n","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n return _.toPath(path);\n}\n","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!_has(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n return value;\n}\n","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n return new Date().getTime();\n};\n","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n","// Internal list of HTML entities for escaping.\nexport default {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict) {\n if (!depth && depth !== 0) depth = Infinity;\n var output = [], idx = 0, i = 0, length = getLength(input) || 0, stack = [];\n while (true) {\n if (i >= length) {\n if (!stack.length) break;\n var frame = stack.pop();\n i = frame.i;\n input = frame.v;\n length = getLength(input);\n continue;\n }\n var value = input[i++];\n if (stack.length >= depth) {\n output[idx++] = value;\n } else if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n stack.push({i: i, v: input});\n i = 0;\n input = value;\n length = getLength(input);\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n return map(obj, property(key));\n}\n","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || (computed === Infinity && result === Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\nimport toArray from './toArray.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = toArray(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n return sample(obj, Infinity);\n}\n","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n result[key] = value;\n});\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n});\n","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n return key in obj;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n return filter(array, Boolean);\n}\n","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n return _flatten(array, depth, false);\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n return uniq(flatten(arrays, true, true));\n});\n","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n var length = (array && max(array, getLength).length) || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n","import getLength from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\nexport default _;\n","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport _ from 'underscore'\nimport OC from './index.js'\n\n/**\n * Utility class for the history API,\n * includes fallback to using the URL hash when\n * the browser doesn't support the history API.\n *\n * @namespace OC.Util.History\n */\nexport default {\n\n\t_handlers: [],\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t * @param {boolean} [replace] whether to replace instead of pushing\n\t */\n\t_pushState(params, url, replace) {\n\t\tlet strParams\n\t\tif (typeof (params) === 'string') {\n\t\t\tstrParams = params\n\t\t} else {\n\t\t\tstrParams = OC.buildQueryString(params)\n\t\t}\n\n\t\tif (window.history.pushState) {\n\t\t\turl = url || location.pathname + '?' + strParams\n\t\t\t// Workaround for bug with SVG and window.history.pushState on Firefox < 51\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=652991\n\t\t\tconst isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1\n\t\t\tif (isFirefox && parseInt(navigator.userAgent.split('/').pop()) < 51) {\n\t\t\t\tconst patterns = document.querySelectorAll('[fill^=\"url(#\"], [stroke^=\"url(#\"], [filter^=\"url(#invert\"]')\n\t\t\t\tfor (let i = 0, ii = patterns.length, pattern; i < ii; i++) {\n\t\t\t\t\tpattern = patterns[i]\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.fill = pattern.style.fill\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.stroke = pattern.style.stroke\n\t\t\t\t\tpattern.removeAttribute('filter')\n\t\t\t\t\tpattern.setAttribute('filter', 'url(#invert)')\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (replace) {\n\t\t\t\twindow.history.replaceState(params, '', url)\n\t\t\t} else {\n\t\t\t\twindow.history.pushState(params, '', url)\n\t\t\t}\n\t\t} else {\n\t\t\t// use URL hash for IE8\n\t\t\twindow.location.hash = '?' + strParams\n\t\t\t// inhibit next onhashchange that just added itself\n\t\t\t// to the event queue\n\t\t\tthis._cancelPop = true\n\t\t}\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used, using the params as query string\n\t */\n\tpushState(params, url) {\n\t\tthis._pushState(params, url, false)\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t */\n\treplaceState(params, url) {\n\t\tthis._pushState(params, url, true)\n\t},\n\n\t/**\n\t * Add a popstate handler\n\t *\n\t * @param {Function} handler handler\n\t */\n\taddOnPopStateHandler(handler) {\n\t\tthis._handlers.push(handler)\n\t},\n\n\t/**\n\t * Parse a query string from the hash part of the URL.\n\t * (workaround for IE8 / IE9)\n\t *\n\t * @return {string}\n\t */\n\t_parseHashQuery() {\n\t\tconst hash = window.location.hash\n\t\tconst pos = hash.indexOf('?')\n\t\tif (pos >= 0) {\n\t\t\treturn hash.substr(pos + 1)\n\t\t}\n\t\tif (hash.length) {\n\t\t\t// remove hash sign\n\t\t\treturn hash.substr(1)\n\t\t}\n\t\treturn ''\n\t},\n\n\t_decodeQuery(query) {\n\t\treturn query.replace(/\\+/g, ' ')\n\t},\n\n\t/**\n\t * Parse the query/search part of the URL.\n\t * Also try and parse it from the URL hash (for IE8)\n\t *\n\t * @return {object} map of parameters\n\t */\n\tparseUrlQuery() {\n\t\tconst query = this._parseHashQuery()\n\t\tlet params\n\t\t// try and parse from URL hash first\n\t\tif (query) {\n\t\t\tparams = OC.parseQueryString(this._decodeQuery(query))\n\t\t}\n\t\t// else read from query attributes\n\t\tparams = _.extend(params || {}, OC.parseQueryString(this._decodeQuery(location.search)))\n\t\treturn params || {}\n\t},\n\n\t_onPopState(e) {\n\t\tif (this._cancelPop) {\n\t\t\tthis._cancelPop = false\n\t\t\treturn\n\t\t}\n\t\tlet params\n\t\tif (!this._handlers.length) {\n\t\t\treturn\n\t\t}\n\t\tparams = (e && e.state)\n\t\tif (_.isString(params)) {\n\t\t\tparams = OC.parseQueryString(params)\n\t\t} else if (!params) {\n\t\t\tparams = this.parseUrlQuery() || {}\n\t\t}\n\t\tfor (let i = 0; i < this._handlers.length; i++) {\n\t\t\tthis._handlers[i](params)\n\t\t}\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { formatFileSize as humanFileSize } from '@nextcloud/files'\nimport moment from 'moment'\nimport logger from '../logger.js'\nimport OC from './index.js'\nimport History from './util-history.js'\n\n/**\n * @param {any} t -\n */\nfunction chunkify(t) {\n\t// Adapted from http://my.opera.com/GreyWyvern/blog/show.dml/1671288\n\tconst tz = []\n\tlet x = 0\n\tlet y = -1\n\tlet n = 0\n\tlet c\n\n\twhile (x < t.length) {\n\t\tc = t.charAt(x)\n\t\t// only include the dot in strings\n\t\tconst m = ((!n && c === '.') || (c >= '0' && c <= '9'))\n\t\tif (m !== n) {\n\t\t\t// next chunk\n\t\t\ty++\n\t\t\ttz[y] = ''\n\t\t\tn = m\n\t\t}\n\t\ttz[y] += c\n\t\tx++\n\t}\n\treturn tz\n}\n\n/**\n * Utility functions\n *\n * @namespace OC.Util\n */\nexport default {\n\n\tHistory,\n\n\t/**\n\t * @deprecated use https://nextcloud.github.io/nextcloud-files/functions/formatFileSize.html\n\t */\n\thumanFileSize,\n\n\t/**\n\t * Returns a file size in bytes from a humanly readable string\n\t * Makes 2kB to 2048.\n\t * Inspired by computerFileSize in helper.php\n\t *\n\t * @param {string} string file size in human-readable format\n\t * @return {number} or null if string could not be parsed\n\t */\n\tcomputerFileSize(string) {\n\t\tif (typeof string !== 'string') {\n\t\t\treturn null\n\t\t}\n\n\t\tconst s = string.toLowerCase().trim()\n\t\tconst bytesArray = {\n\t\t\tb: 1,\n\t\t\tk: 1024,\n\t\t\tkb: 1024,\n\t\t\tmb: 1024 * 1024,\n\t\t\tm: 1024 * 1024,\n\t\t\tgb: 1024 * 1024 * 1024,\n\t\t\tg: 1024 * 1024 * 1024,\n\t\t\ttb: 1024 * 1024 * 1024 * 1024,\n\t\t\tt: 1024 * 1024 * 1024 * 1024,\n\t\t\tpb: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t\tp: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t}\n\n\t\tlet bytes\n\t\tconst matches = s.match(/^[\\s+]?([0-9]*)(\\.([0-9]+))?( +)?([kmgtp]?b?)$/i)\n\t\tif (matches !== null) {\n\t\t\tbytes = parseFloat(s)\n\t\t\tif (!isFinite(bytes)) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t\tif (matches[5]) {\n\t\t\tbytes = bytes * bytesArray[matches[5]]\n\t\t}\n\n\t\tbytes = Math.round(bytes)\n\t\treturn bytes\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @param {string} format date format, see momentjs docs\n\t * @return {string} timestamp formatted as requested\n\t */\n\tformatDate(timestamp, format) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.formatDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tformat = format || 'LLL'\n\t\treturn moment(timestamp).format(format)\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @return {string} human readable difference from now\n\t */\n\trelativeModifiedDate(timestamp) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.relativeModifiedDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tconst diff = moment().diff(moment(timestamp))\n\t\tif (diff >= 0 && diff < 45000) {\n\t\t\treturn t('core', 'seconds ago')\n\t\t}\n\t\treturn moment(timestamp).fromNow()\n\t},\n\n\t/**\n\t * Returns the width of a generic browser scrollbar\n\t *\n\t * @return {number} width of scrollbar\n\t */\n\tgetScrollBarWidth() {\n\t\tif (this._scrollBarWidth) {\n\t\t\treturn this._scrollBarWidth\n\t\t}\n\n\t\tconst inner = document.createElement('p')\n\t\tinner.style.width = '100%'\n\t\tinner.style.height = '200px'\n\n\t\tconst outer = document.createElement('div')\n\t\touter.style.position = 'absolute'\n\t\touter.style.top = '0px'\n\t\touter.style.left = '0px'\n\t\touter.style.visibility = 'hidden'\n\t\touter.style.width = '200px'\n\t\touter.style.height = '150px'\n\t\touter.style.overflow = 'hidden'\n\t\touter.appendChild(inner)\n\n\t\tdocument.body.appendChild(outer)\n\t\tconst w1 = inner.offsetWidth\n\t\touter.style.overflow = 'scroll'\n\t\tlet w2 = inner.offsetWidth\n\t\tif (w1 === w2) {\n\t\t\tw2 = outer.clientWidth\n\t\t}\n\n\t\tdocument.body.removeChild(outer)\n\n\t\tthis._scrollBarWidth = (w1 - w2)\n\n\t\treturn this._scrollBarWidth\n\t},\n\n\t/**\n\t * Remove the time component from a given date\n\t *\n\t * @param {Date} date date\n\t * @return {Date} date with stripped time\n\t */\n\tstripTime(date) {\n\t\t// FIXME: likely to break when crossing DST\n\t\t// would be better to use a library like momentJS\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\t},\n\n\t/**\n\t * Compare two strings to provide a natural sort\n\t *\n\t * @param {string} a first string to compare\n\t * @param {string} b second string to compare\n\t * @return {number} -1 if b comes before a, 1 if a comes before b\n\t * or 0 if the strings are identical\n\t */\n\tnaturalSortCompare(a, b) {\n\t\tlet x\n\t\tconst aa = chunkify(a)\n\t\tconst bb = chunkify(b)\n\n\t\tfor (x = 0; aa[x] && bb[x]; x++) {\n\t\t\tif (aa[x] !== bb[x]) {\n\t\t\t\tconst aNum = Number(aa[x])\n\t\t\t\tconst bNum = Number(bb[x])\n\t\t\t\t// note: == is correct here to include null == undefined\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\tif (aNum == aa[x] && bNum == bb[x]) {\n\t\t\t\t\treturn aNum - bNum\n\t\t\t\t} else {\n\t\t\t\t\t// Note: This locale setting isn't supported by all browsers but for the ones\n\t\t\t\t\t// that do there will be more consistency between client-server sorting\n\t\t\t\t\treturn aa[x].localeCompare(bb[x], OC.getLanguage())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn aa.length - bb.length\n\t},\n\n\t/**\n\t * Calls the callback in a given interval until it returns true\n\t *\n\t * @param {Function} callback function to call on success\n\t * @param {number} interval in milliseconds\n\t */\n\twaitFor(callback, interval) {\n\t\tconst internalCallback = function() {\n\t\t\tif (callback() !== true) {\n\t\t\t\tsetTimeout(internalCallback, interval)\n\t\t\t}\n\t\t}\n\n\t\tinternalCallback()\n\t},\n\n\t/**\n\t * Checks if a cookie with the given name is present and is set to the provided value.\n\t *\n\t * @param {string} name name of the cookie\n\t * @param {string} value value of the cookie\n\t * @return {boolean} true if the cookie with the given name has the given value\n\t */\n\tisCookieSetToValue(name, value) {\n\t\tconst cookies = document.cookie.split(';')\n\t\tfor (let i = 0; i < cookies.length; i++) {\n\t\t\tconst cookie = cookies[i].split('=')\n\t\t\tif (cookie[0].trim() === name && cookie[1].trim() === value) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nlet webroot = window._oc_webroot\n\nif (typeof webroot === 'undefined') {\n\twebroot = location.pathname\n\tconst pos = webroot.indexOf('/index.php/')\n\tif (pos !== -1) {\n\t\twebroot = webroot.substr(0, pos)\n\t} else {\n\t\twebroot = webroot.substr(0, webroot.lastIndexOf('/'))\n\t}\n}\n\nexport default webroot\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { subscribe } from '@nextcloud/event-bus'\nimport {\n\tgetCanonicalLocale,\n\tgetLanguage,\n\tgetLocale,\n} from '@nextcloud/l10n'\nimport {\n\tbasename,\n\tdirname,\n\tencodePath,\n\tisSamePath,\n\tjoin,\n} from '@nextcloud/paths'\nimport {\n\tgenerateFilePath,\n\tgenerateOcsUrl,\n\tgenerateRemoteUrl,\n\tgenerateUrl,\n\tgetRootUrl,\n\timagePath,\n\tlinkTo,\n} from '@nextcloud/router'\nimport logger from '../logger.js'\nimport { isUserAdmin } from './admin.js'\nimport { appConfig } from './appconfig.js'\nimport appswebroots from './appswebroots.js'\nimport { getCapabilities } from './capabilities.js'\nimport Config from './config.js'\nimport {\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n} from './constants.js'\nimport { currentUser, getCurrentUser } from './currentuser.js'\nimport { debug } from './debug.js'\nimport Dialogs from './dialogs.js'\nimport EventSource from './eventsource.js'\nimport L10N from './l10n.js'\nimport * as MimeType from './mimeType.js'\nimport msg from './msg.js'\nimport PasswordConfirmation from './password-confirmation.js'\nimport Plugins from './plugins.js'\nimport {\n\tbuild as buildQueryString,\n\tparse as parseQueryString,\n} from './query-string.ts'\nimport { getRequestToken } from './requesttoken.ts'\nimport {\n\tlinkToRemoteBase,\n} from './routing.js'\nimport { theme } from './theme.js'\nimport Util from './util.js'\nimport webroot from './webroot.js'\n\n/** @namespace OC */\nexport default {\n\t/*\n\t * Constants\n\t */\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n\n\t/*\n\t * Deprecated helpers to be removed\n\t */\n\tappConfig,\n\tappswebroots,\n\tconfig: Config,\n\t/**\n\t * Currently logged in user or null if none\n\t *\n\t * @type {string}\n\t * @deprecated use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tcurrentUser,\n\tdialogs: Dialogs,\n\tEventSource,\n\tMimeType,\n\t/**\n\t * Returns the currently logged in user or null if there is no logged in\n\t * user (public page mode)\n\t *\n\t * @since 9.0.0\n\t * @deprecated 19.0.0 use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tgetCurrentUser,\n\tisUserAdmin,\n\tL10N,\n\n\t/**\n\t * This is already handled by `interceptRequests` in `core/src/init.js`.\n\t *\n\t * @deprecated 33.0.0 - unused by Nextcloud and only a stub remains. Just remove usage.\n\t */\n\tregisterXHRForErrorProcessing: () => {},\n\n\t/**\n\t * Capabilities\n\t *\n\t * @type {Array}\n\t * @deprecated 20.0.0 use @nextcloud/capabilities instead\n\t */\n\tgetCapabilities,\n\n\t/*\n\t * Path helpers\n\t */\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tbasename,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tencodePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tdirname,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tisSamePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tjoinPaths: join,\n\n\t/**\n\t * @deprecated 20.0.0 use `getCanonicalLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetCanonicalLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLanguage` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLanguage,\n\n\t// Query string helpers\n\tbuildQueryString,\n\tparseQueryString,\n\n\tmsg,\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\tPasswordConfirmation,\n\tPlugins,\n\ttheme,\n\tUtil,\n\tdebug,\n\t/**\n\t * @deprecated 19.0.0 use `generateFilePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tfilePath: generateFilePath,\n\t/**\n\t * @deprecated 19.0.0 use `WgenerateUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgenerateUrl,\n\t/**\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgetRootPath: getRootUrl,\n\t/**\n\t * @deprecated 19.0.0 use `imagePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\timagePath,\n\trequestToken: getRequestToken(),\n\t/**\n\t * @deprecated 19.0.0 use `linkTo` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkTo,\n\t/**\n\t * @param {string} service service name\n\t * @param {number} version OCS API version\n\t * @return {string} OCS API base path\n\t * @deprecated 19.0.0 use `generateOcsUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToOCS: (service, version) => {\n\t\treturn generateOcsUrl(service, {}, {\n\t\t\tocsVersion: version || 1,\n\t\t}) + '/'\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `generateRemoteUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToRemote: generateRemoteUrl,\n\tlinkToRemoteBase,\n\t/**\n\t * Relative path to Nextcloud root.\n\t * For example: \"/nextcloud\"\n\t *\n\t * @type {string}\n\t *\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t * @see OC#getRootPath\n\t */\n\twebroot,\n}\n\n// Keep the request token prop in sync\nsubscribe('csrf-token-update', (e) => {\n\tOC.requestToken = e.token\n\n\t// Logging might help debug (Sentry) issues\n\tlogger.info('OC.requestToken changed', { token: e.token })\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const coreApps = ['', 'admin', 'log', 'core/search', 'core', '3rdparty']\nexport const menuSpeed = 50\nexport const PERMISSION_NONE = 0\nexport const PERMISSION_CREATE = 4\nexport const PERMISSION_READ = 1\nexport const PERMISSION_UPDATE = 2\nexport const PERMISSION_DELETE = 8\nexport const PERMISSION_SHARE = 16\nexport const PERMISSION_ALL = 31\nexport const TAG_FAVORITE = '_$!!$_'\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCapabilities as realGetCapabilities } from '@nextcloud/capabilities'\nimport logger from '../logger.js'\n\n/**\n * Returns the capabilities\n *\n * @return {Array} capabilities\n *\n * @since 14.0.0\n */\nexport function getCapabilities() {\n\tif (OC.debug) {\n\t\tlogger.warn('OC.getCapabilities is deprecated and will be removed in Nextcloud 21. See @nextcloud/capabilities')\n\t}\n\treturn realGetCapabilities()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Parses a URL query string into a JS map\n *\n * @param queryString - Query string in the format param1=1234¶m2=abcde¶m3=xyz\n * @return Object containing key/values matching the URL parameters\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function parse(queryString) {\n const params = new URLSearchParams(queryString);\n return Object.fromEntries(params.entries());\n}\n/**\n * Builds a URL query from a JS map.\n *\n * @param params - Object containing key/values matching the URL parameters\n * @return String containing a URL query (without question) mark\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function build(params) {\n if (!params) {\n return '';\n }\n const search = new URLSearchParams(params);\n return search.toString();\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tgetRootUrl as realGetRootUrl,\n} from '@nextcloud/router'\n\n/**\n * Creates a relative url for remote use\n *\n * @param {string} service id\n * @return {string} the url\n */\nexport function linkToRemoteBase(service) {\n\treturn realGetRootUrl() + '/remote.php/' + service\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport OC from '../OC/index.js'\nimport L10n from '../OC/l10n.js'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tOC,\n\t\t}\n\t},\n\tmethods: {\n\t\tt: L10n.translate.bind(L10n),\n\t\tn: L10n.translatePlural.bind(L10n),\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport LoginView from './views/Login.vue'\nimport Nextcloud from './mixins/Nextcloud.js'\n// eslint-disable-next-line no-unused-vars\nimport OC from './OC/index.js' // TODO: Not needed but L10n breaks if removed\n\nVue.mixin(Nextcloud)\n\nconst View = Vue.extend(LoginView)\nnew View().$mount('#login')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.button-vue[data-v-bbf83d00]{margin-top:.5rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/LoginButton.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,gBAAA\",\"sourcesContent\":[\"\\n.button-vue {\\n\\tmargin-top: .5rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-form[data-v-1c88ccea]{text-align:start;font-size:1rem;margin:0}.login-form__fieldset[data-v-1c88ccea]{width:100%;display:flex;flex-direction:column;gap:.5rem}.login-form__headline[data-v-1c88ccea]{text-align:center;overflow-wrap:anywhere}.login-form[data-v-1c88ccea] input:invalid:not(:user-invalid){border-color:var(--color-border-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/LoginForm.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,gBAAA,CACA,cAAA,CACA,QAAA,CAEA,uCACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,SAAA,CAGD,uCACC,iBAAA,CACA,sBAAA,CAID,8DACC,uDAAA\",\"sourcesContent\":[\"\\n.login-form {\\n\\ttext-align: start;\\n\\tfont-size: 1rem;\\n\\tmargin: 0;\\n\\n\\t&__fieldset {\\n\\t\\twidth: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: .5rem;\\n\\t}\\n\\n\\t&__headline {\\n\\t\\ttext-align: center;\\n\\t\\toverflow-wrap: anywhere;\\n\\t}\\n\\n\\t// Only show the error state if the user interacted with the login box\\n\\t:deep(input:invalid:not(:user-invalid)) {\\n\\t\\tborder-color: var(--color-border-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.password-less-login-form[data-v-25758ef3]{display:flex;flex-direction:column;gap:.5rem;margin:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/PasswordLessLoginForm.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,QAAA\",\"sourcesContent\":[\"\\n.password-less-login-form {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 0.5rem;\\n\\tmargin: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.reset-password-form[data-v-759a0fdd]{display:flex;flex-direction:column;gap:.5rem;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/ResetPassword.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.reset-password-form {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: .5rem;\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-box[data-v-518c0816]{width:320px;box-sizing:border-box}.login-box__wrapper[data-v-518c0816]{display:flex;flex-direction:column;gap:calc(2*var(--default-grid-baseline))}.login-box__alternative-logins[data-v-518c0816]{display:flex;flex-direction:column;gap:.75rem}.fade-enter-active[data-v-518c0816],.fade-leave-active[data-v-518c0816]{transition:opacity .3s}.fade-enter[data-v-518c0816],.fade-leave-to[data-v-518c0816]{opacity:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/Login.vue\"],\"names\":[],\"mappings\":\"AACA,4BAEC,WAAA,CACA,qBAAA,CAEA,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CAGD,gDACC,YAAA,CACA,qBAAA,CACA,UAAA,CAIF,wEACC,sBAAA,CAGD,6DACC,SAAA\",\"sourcesContent\":[\"\\n.login-box {\\n\\t// Same size as dashboard panels\\n\\twidth: 320px;\\n\\tbox-sizing: border-box;\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(2 * var(--default-grid-baseline));\\n\\t}\\n\\n\\t&__alternative-logins {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 0.75rem;\\n\\t}\\n}\\n\\n.fade-enter-active, .fade-leave-active {\\n\\ttransition: opacity .3s;\\n}\\n\\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\\n\\topacity: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\nfieldset[data-v-2c0ecaf9] {\n\ttext-align: center;\n}\ninput[type=submit][data-v-2c0ecaf9] {\n\tmargin-top: 20px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/login/UpdatePassword.vue\"],\"names\":[],\"mappings\":\";AAmIA;CACA,kBAAA;AACA;AAEA;CACA,gBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","const map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 82682,\n\t\"./ar-sa.js\": 82682,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 44429,\n\t\"./bs.js\": 44429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tconst id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tconst e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority ||= 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tlet notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn, priority] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => (chunkId + \"-\" + chunkId + \".js?v=\" + {\"3108\":\"71c2314a13f8bd9bb9f3\",\"4005\":\"aee79e7f1049b5e8188f\",\"4017\":\"d1523b8db423fbe47986\",\"5236\":\"ffeb871fa5beda99d3b3\",\"7859\":\"0aa7564896cee7ea552c\",\"8259\":\"e914ef6a65a38374620a\",\"8374\":\"e925f5901b71aeaa37db\",\"8689\":\"5fcce4026be999b251c3\"}[chunkId] + \"\");","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","const inProgress = {};\nconst dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tlet script, needAttach;\n\tif(key !== undefined) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tconst s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tconst onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tconst doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode?.removeChild(script);\n\t\tdoneFns?.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tconst timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1418;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","let scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nconst document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript?.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tlet i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^https?:/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:|[?#].*$/g, \"\").replace(/\\/[^/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t1418: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tlet installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tconst promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tconst error = new Error();\n\t\t\t\t\tconst loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tconst errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tconst realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\terror.event = event;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(__webpack_require__.p + __webpack_require__.u(chunkId), loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(6213)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["multiMatcher","RegExp","hexPair","parsePercentByte","input","position","codePointAt","length","digits","slice","test","byte","Number","parseInt","next","utf8SequenceLength","isContinuationByte","decode","decodeURIComponent","output","charAt","firstByte","sequenceLength","end","validSequence","index","nextByte","encodedSequence","splitOnFirst","string","separator","TypeError","separatorIndex","indexOf","base_decode","value","options","encodedURI","replaceMap","match","exec","result","entries","Object","keys","key","replace","customDecodeURIComponent","decodeUriComponent","keysSorter","Array","isArray","sort","a","b","map","parseValue","type","toLowerCase","arrayFormat","isNaN","trim","parseBooleans","parseNumbers","Symbol","login_LoginButtonvue_type_script_lang_js","name","components","ArrowRight","A","NcButton","props","String","default","t","valueLoading","loading","Boolean","required","invertedColors","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","LoginButtonvue_type_style_index_0_id_bbf83d00_prod_lang_scss_scoped_true","locals","LoginButton","componentNormalizer","_vm","this","_c","_self","attrs","variant","wide","disabled","on","click","$event","$emit","scopedSlots","_u","fn","staticClass","proxy","_v","_s","auth","computed","userNameInputLengthIs255","user","userInputHelperText","login_LoginFormvue_type_script_lang_js","NcCheckboxRadioSwitch","NcPasswordField","NcTextField","NcNoteCard","mixins","AuthMixin","username","redirectUrl","errors","messages","throttleDelay","autoCompleteAllowed","remembermeAllowed","directLogin","emailStates","setup","l10n_dist","Tl","headlineText","productName","OC","theme","undefined","sanitize","escape","loginTimeout","loadState","requestToken","window","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","timezoneOffset","Date","getTimezoneOffset","data","password","rememberme","visible","resetFormTimeout","debounce","handleResetForm","isError","invalidPassword","userDisabled","userNameError","errorLabel","apacheAuthFailed","csrfCheckFailed","internalException","loadingIcon","imagePath","loginActionUrl","generateUrl","emailEnabled","every","state","loginText","watch","mounted","$refs","inputField","focus","methods","updateUsername","submit","event","preventDefault","LoginFormvue_type_style_index_0_id_1c88ccea_prod_lang_scss_scoped_true_options","LoginFormvue_type_style_index_0_id_1c88ccea_prod_lang_scss_scoped_true","LoginForm","ref","method","action","title","_e","heading","_l","message","class","id","alt","src","staticStyle","clear","shake","label","maxlength","autocapitalize","spellchecking","autocomplete","error","change","model","callback","$$v","expression","domProps","WebAuthnError","Error","constructor","code","cause","super","defineProperty","enumerable","configurable","writable","WebAuthnAbortService","createNewAbortSignal","controller","abortError","abort","newController","AbortController","signal","cancelCeremony","bufferToBase64URLString_bufferToBase64URLString","buffer","bytes","Uint8Array","str","charCode","fromCharCode","btoa","base64URLStringToBuffer_base64URLStringToBuffer","base64URLString","base64","padLength","padded","padEnd","binary","atob","ArrayBuffer","i","charCodeAt","browserSupportsWebAuthn_browserSupportsWebAuthn","_browserSupportsWebAuthnInternals","stubThis","globalThis","PublicKeyCredential","_browserSupportsWebAuthnAutofillInternals","toPublicKeyCredentialDescriptor_toPublicKeyCredentialDescriptor","descriptor","transports","attachments","toAuthenticatorAttachment_toAuthenticatorAttachment","attachment","vue_material_design_icons_LockOpenvue_type_script_lang_js","emits","fillColor","size","LockOpen","_b","role","$attrs","fill","width","height","viewBox","d","logger","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","detectUser","NoValidCredentials","login_PasswordLessLoginFormvue_type_script_lang_js","defineComponent","InformationIcon","InformationOutline","LockOpenIcon","NcEmptyContent","isHttps","isLocalhost","supportsWebauthn","browserSupportsWebAuthn","validCredentials","authenticate","loginForm","checkValidity","debug","params","async","loginName","url","Axios","post","allowCredentials","optionsJSON","challenge","console","warn","useBrowserAutofill","verifyBrowserAutofillInput","publicKey","getOptions","Promise","resolve","globalPublicKeyCredential","isConditionalMediationAvailable","browserSupportsWebAuthnAutofill","document","querySelectorAll","mediation","credential","navigator","credentials","get","err","AbortSignal","effectiveDomain","location","hostname","rpId","identifyAuthenticationError","rawId","response","userHandle","authenticatorData","clientDataJSON","signature","clientExtensionResults","getClientExtensionResults","authenticatorAttachment","startWebauthnAuthentication","startAuthentication","completeAuthentication","changeUsername","authData","JSON","stringify","finishAuthentication","then","defaultRedirectUrl","href","getBaseUrl","catch","PasswordLessLoginFormvue_type_style_index_0_id_25758ef3_prod_lang_scss_scoped_true_options","PasswordLessLoginFormvue_type_style_index_0_id_25758ef3_prod_lang_scss_scoped_true","PasswordLessLoginForm_component","_setupProxy","apply","arguments","placeholder","description","PasswordLessLoginForm","login_ResetPasswordvue_type_script_lang_ts","resetPasswordLink","axios","status","ResetPasswordvue_type_style_index_0_id_759a0fdd_prod_lang_scss_scoped_true_options","ResetPasswordvue_type_style_index_0_id_759a0fdd_prod_lang_scss_scoped_true","ResetPassword_component","ResetPassword","login_UpdatePasswordvue_type_script_lang_js","resetPasswordTarget","encrypted","proceed","encryption","msg","e","UpdatePasswordvue_type_style_index_0_id_2c0ecaf9_prod_scoped_true_lang_css_options","UpdatePasswordvue_type_style_index_0_id_2c0ecaf9_prod_scoped_true_lang_css","UpdatePassword_component","for","directives","rawName","spellcheck","target","composing","checked","_i","$$a","$$el","$$c","$$i","concat","warning","UpdatePassword","query","validateArrayFormatSeparator","arrayFormatSeparator","types","create","formatter","accumulator","push","newValue","includes","split","item","arrayValue","parserForArrayFormat","returnValue","parameterStart","firstSeparator","parameter","parameter_","replaceAll","key2","value2","typeOption","values","join","reduce","queryString","search","localStorage","sessionStorage","indexedDBList","indexedDB","databases","deleteDatabase","wipeBrowserStorages","views_Loginvue_type_script_lang_js","passwordlessLogin","resetPassword","canResetPassword","resetPasswordUser","direct","hasPasswordless","countAlternativeLogins","alternativeLogins","protocol","hideLoginForm","passwordResetFinished","Loginvue_type_style_index_0_id_518c0816_prod_scoped_true_lang_scss_options","Loginvue_type_style_index_0_id_518c0816_prod_scoped_true_lang_scss","Login","mode","done","alternativeLogin","isAdmin","_oc_isadmin","appConfig","oc_appconfig","OC_appswebroots","_oc_appswebroots","OC_config","_oc_config","rawUid","getElementsByTagName","getAttribute","displayName","currentUser","_oc_debug","Dialogs","YES_NO_BUTTONS","OK_BUTTONS","FILEPICKER_TYPE_CHOOSE","FILEPICKER_TYPE_MOVE","FILEPICKER_TYPE_COPY","FILEPICKER_TYPE_COPY_MOVE","FILEPICKER_TYPE_CUSTOM","alert","text","modal","OK_BUTTON","info","confirm","confirmDestructive","buttons","DialogBuilder","setName","setText","setButtons","clicked","_getLegacyButtons","show","confirmHtml","setHTML","prompt","spawnDialog","defineAsyncComponent","all","__webpack_require__","inputName","isPassword","args","filepicker","multiselect","mimetype","_modal","FilePickerType","Choose","path","legacyCallback","getPath","node","root","startsWith","nodes","builder","getFilePickerBuilder","forEach","button","addButton","defaultButton","setButtonFactory","displayname","basename","multiSelect","file","CopyMove","Copy","icon","IconCopy","Move","setMimeTypeFilter","filter","setFilter","fileid","mime","mtime","getTime","permissions","attributes","etag","hasPreview","mountType","quotaAvailableBytes","sharePermissions","nodeToLegacyFile","allowDirectories","allowDirectoryChooser","setMultiSelect","startAt","pick","content","dialogType","allowHtml","setSeverity","dialog","_clicked","buttonList","cancel","dialogs","getRequestToken","head","dataset","requesttoken","OCEventSource","joinChar","dataStr","typelessListeners","closed","encodeURIComponent","source","EventSource","onmessage","parse","listen","close","prototype","call","addEventListener","eventsource","l10n","load","loadTranslations","register","kz","_unregister","unregister","translate","translatePlural","iconCache","Map","getIconUrl","mimeType","MimeTypeList","aliases","has","gotIcon","folder","themes","getRootUrl","getMimeTypeIcon","files","OCA","Theming","cacheBuster","set","clearIconCache","startSaving","selector","startAction","el","querySelector","HTMLElement","textContent","classList","remove","getAnimations","animation","style","display","finishedSaving","finishedAction","finishedSuccess","finishedError","add","setTimeout","animate","opacity","duration","password_confirmation","requiresPasswordConfirmation","isPasswordConfirmationRequired","requirePasswordConfirmation","rejectCallback","confirmPassword","plugins","_plugins","targetName","plugin","getPlugins","attach","targetObject","detach","_theme","VERSION","self","global","Function","ArrayProto","ObjProto","SymbolProto","_setup_toString","toString","_setup_hasOwnProperty","hasOwnProperty","supportsArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","isFinite","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","MAX_ARRAY_INDEX","Math","pow","restArguments","func","startIndex","max","rest","isObject","obj","isNull","isUndefined","isBoolean","isElement","nodeType","tagTester","tag","isString","isNumber","isDate","isRegExp","isSymbol","isArrayBuffer","isFunction","nodelist","childNodes","Int8Array","modules_isFunction","_hasObjectTag","hasDataViewBug","isIE11","isDataView","modules_isDataView","getInt8","isArguments","modules_isArguments","isFinite_isFinite","parseFloat","isNaN_isNaN","constant","createSizePropertyCheck","getSizeProperty","collection","sizeProperty","shallowProperty","_getByteLength","_isBufferLike","typedArrayPattern","modules_isTypedArray","_getLength","collectNonEnumProps","hash","l","contains","emulatedSet","nonEnumIdx","proto","prop","isEmpty","isMatch","object","_keys","_","_wrapped","toBufferView","bufferSource","byteOffset","valueOf","toJSON","tagDataView","isEqual","todo","aStack","bStack","frame","pop","className","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","isMap","isWeakMap","isSet","isWeakSet","pairs","invert","functions","names","createAssigner","keysFunc","defaults","extend","extendOwn","baseCreate","Ctor","clone","tap","interceptor","toPath","_toPath_toPath","deepGet","defaultValue","has_has","identity","matcher","property","optimizeCb","context","argCount","baseIteratee","iteratee","Infinity","cb","mapObject","results","currentKey","noop","propertyOf","times","n","accum","random","min","floor","now","createEscaper","escaper","testRegexp","replaceRegexp","_escapeMap","modules_escape","modules_unescape","templateSettings","evaluate","interpolate","noMatch","escapes","escapeRegExp","escapeChar","bareIdentifier","template","settings","oldSettings","offset","render","argument","variable","fallback","idCounter","uniqueId","prefix","chain","instance","_chain","executeBound","sourceFunc","boundFunc","callingContext","partial","boundArgs","bound","modules_partial","callArgs","_isArrayLike","flatten","depth","strict","idx","stack","v","bindAll","memoize","hasher","cache","address","delay","wait","defer","throttle","timeout","previous","later","leading","throttled","_now","remaining","clearTimeout","trailing","debounce_debounce","immediate","passed","debounced","_args","wrap","wrapper","negate","predicate","compose","start","after","before","memo","once","findKey","createPredicateIndexFinder","dir","array","findIndex","findLastIndex","sortedIndex","low","high","mid","createIndexFinder","predicateFind","lastIndexOf","find","findWhere","each","createReduce","initial","reducer","reduceRight","list","reject","some","fromIndex","guard","invoke","contextPath","pluck","where","lastComputed","reStrSymbol","toArray","sample","last","rand","temp","shuffle","sortBy","criteria","left","right","group","behavior","partition","groupBy","indexBy","countBy","pass","keyInObj","modules_pick","omit","first","compact","flatten_flatten","difference","without","otherArrays","uniq","isSorted","seen","union","arrays","intersection","argsLength","j","unzip","zip","range","stop","step","ceil","chunk","count","chainResult","mixin","underscore_array_methods","index_default_","modules_namespaceObject","index_default","util_history","_handlers","_pushState","strParams","buildQueryString","history","pushState","pathname","userAgent","patterns","pattern","ii","stroke","removeAttribute","setAttribute","replaceState","_cancelPop","addOnPopStateHandler","handler","_parseHashQuery","pos","substr","_decodeQuery","parseUrlQuery","parseQueryString","_onPopState","chunkify","tz","c","x","y","m","util","History","humanFileSize","files_dist","v7","computerFileSize","s","matches","k","kb","mb","gb","g","tb","pb","p","round","formatDate","timestamp","format","TESTING","moment","relativeModifiedDate","diff","fromNow","getScrollBarWidth","_scrollBarWidth","inner","createElement","outer","top","visibility","overflow","appendChild","body","w1","offsetWidth","w2","clientWidth","removeChild","stripTime","date","getFullYear","getMonth","getDate","naturalSortCompare","aa","bb","aNum","bNum","localeCompare","getLanguage","waitFor","interval","internalCallback","isCookieSetToValue","cookies","cookie","webroot","_oc_webroot","OC_webroot","src_OC","coreApps","menuSpeed","PERMISSION_ALL","PERMISSION_CREATE","PERMISSION_DELETE","PERMISSION_NONE","PERMISSION_READ","PERMISSION_SHARE","PERMISSION_UPDATE","TAG_FAVORITE","appswebroots","config","Config","MimeType","mimeType_namespaceObject","isUserAdmin","L10N","registerXHRForErrorProcessing","getCapabilities","realGetCapabilities","paths_dist","P8","encodePath","O0","dirname","pD","isSamePath","ys","joinPaths","getCanonicalLocale","lO","getLocale","JK","Z0","URLSearchParams","fromEntries","PasswordConfirmation","Plugins","Util","filePath","generateFilePath","router_dist","Jv","getRootPath","d0","linkTo","uM","linkToOCS","service","version","generateOcsUrl","ocsVersion","linkToRemote","generateRemoteUrl","linkToRemoteBase","realGetRootUrl","subscribe","token","Nextcloud","L10n","Vue","LoginView","$mount","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","module","sources","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","webpackContext","req","webpackContextResolve","o","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","deferred","O","chunkIds","priority","notFulfilled","fulfilled","splice","r","getter","__esModule","cw","mod","definition","binding","f","chunkId","promises","u","hasOwn","inProgress","dataWebpackPrefix","script","needAttach","scripts","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","toStringTag","nmd","paths","children","dn","getOwnPropertyDescriptor","scriptUrl","importScripts","currentScript","tagName","toUpperCase","baseURI","installedChunks","installedChunkData","promise","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/files_sharing-files_sharing_tab.js b/dist/files_sharing-files_sharing_tab.js index babdbccdeead2..0508366bfc2c1 100644 --- a/dist/files_sharing-files_sharing_tab.js +++ b/dist/files_sharing-files_sharing_tab.js @@ -1,2 +1,2 @@ -(()=>{var e={28237(e,t,r){"use strict";var i=r(21777),n=r(35810),o=r(53334),a=r(26422),s=r(85471),c=r(48564);r.nc=(0,i.aV)(),window.OCA.Sharing??={},Object.assign(window.OCA.Sharing,{ShareSearch:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.results=[],c.A.debug("OCA.Sharing.ShareSearch initialized")}get state(){return this._state}addNewResult(e){return""!==e.displayName.trim()&&"function"==typeof e.handler?(this._state.results.push(e),!0):(c.A.error("Invalid search result provided",{result:e}),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalShareActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],c.A.debug("OCA.Sharing.ExternalShareActions initialized")}get state(){return this._state}registerAction(e){return c.A.warn("OCA.Sharing.ExternalShareActions is deprecated, use `registerSidebarAction` from `@nextcloud/sharing` instead"),"object"==typeof e&&"string"==typeof e.id&&"function"==typeof e.data&&Array.isArray(e.shareType)&&"object"==typeof e.handlers&&Object.values(e.handlers).every(e=>"function"==typeof e)?this._state.actions.findIndex(t=>t.id===e.id)>-1?(c.A.error(`An action with the same id ${e.id} already exists`,e),!1):(this._state.actions.push(e),!0):(c.A.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ShareTabSections:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_sections"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._sections=[]}registerSection(e){this._sections.push(e)}getSections(){return this._sections}}}),s.Ay.prototype.t=o.t,s.Ay.prototype.n=o.n;const l="files_sharing-sidebar-tab";(0,n.dC)().registerTab({id:"sharing",displayName:(0,o.t)("files_sharing","Sharing"),iconSvgInline:'',order:10,tagName:l,async onInit(){const{default:e}=await Promise.all([r.e(4208),r.e(1458)]).then(()=>r(71458)),t=(0,a.A)(s.Ay,e);Object.defineProperty(t.prototype,"attachShadow",{value(){return this}}),Object.defineProperty(t.prototype,"shadowRoot",{get(){return this}}),window.customElements.define(l,t)}})},48564(e,t,r){"use strict";const i=(0,r(35947).YK)().setApp("files_sharing").detectUser().build();r.d(t,["A",0,i])},63779(){},77199(){}};const t={};function r(i){const n=t[i];if(void 0!==n)return n.exports;const o=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}r.m=e,(()=>{const e=[];r.O=(t,i,n,o)=>{if(i){o||=0;for(var a=e.length;a>0&&e[a-1][2]>o;a--)e[a]=e[a-1];return void(e[a]=[i,n,o])}let s=1/0;for(a=0;a=o)||!Object.keys(r.O).every(e=>r.O[e](i[c]))?(l=!1,o{const t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.cw=e=>{var t;return()=>{if(e){var r=e;e=0,t={exports:{}},r.call(t.exports,t,t.exports)}return t.exports}},r.d=(e,t)=>{if(Array.isArray(t))for(var i=0;iPromise.all(Object.keys(r.f).reduce((t,i)=>(r.f[i](e,t),t),[])),r.u=e=>e+"-"+e+".js?v="+{857:"7df76d83ddc257b2632e",1458:"60d9f8fabd48280148eb",4005:"f2b35c8f02e136bf5a37",4017:"808775e77c7d18946064",5236:"12345564233a9b536e29",6798:"93837c551f35879aa50f",7471:"e1dc641ea8726e1b57ce",7859:"90097d6186e001a6fb28",8259:"79b917f7438068af7e66",8374:"baf178fdc31f0e575ab0",8689:"2a36f0347d469ae8619d"}[e],r.o=(e,t)=>Object.hasOwn(e,t),(()=>{const e={},t="nextcloud-ui-legacy:";r.l=(i,n,o,a)=>{if(e[i])return void e[i].push(n);let s,c;if(void 0!==o){const e=document.getElementsByTagName("script");for(var l=0;l{s.onerror=s.onload=null,clearTimeout(d);const n=e[i];if(delete e[i],s.parentNode?.removeChild(s),n?.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=u.bind(null,s.onerror),s.onload=u.bind(null,s.onload),c&&document.head.appendChild(s)}})(),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=4958,r.dn=e=>{var t=Object.getOwnPropertyDescriptor(e,"name");(!t||!t.writable&&t.configurable)&&Object.defineProperty(e,"name",{value:"default",configurable:!0})},(()=>{let e;globalThis.importScripts&&(e=globalThis.location+"");const t=globalThis.document;if(!e&&t&&("SCRIPT"===t.currentScript?.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){const r=t.getElementsByTagName("script");if(r.length){let t=r.length-1;for(;t>-1&&(!e||!/^https?:/.test(e));)e=r[t--].src}}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:|[?#].*$/g,"").replace(/\/[^/]+$/,"/"),r.p=e})(),(()=>{r.b="undefined"!=typeof document&&document.baseURI||self.location.href;const e={4958:0};r.f.j=(t,i)=>{let n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)i.push(n[2]);else{const o=new Promise((r,i)=>n=e[t]=[r,i]);i.push(n[2]=o);const a=new Error,s=i=>{if(r.o(e,t)&&(n=e[t],0!==n&&(e[t]=void 0),n)){const e=i&&("load"===i.type?"missing":i.type),r=i&&i.target&&i.target.src;a.message="Loading chunk "+t+" failed.\n("+e+": "+r+")",a.name="ChunkLoadError",a.type=e,a.request=r,a.event=i,n[1](a)}};r.l(r.p+r.u(t),s,"chunk-"+t,t)}},r.O.j=t=>0===e[t];const t=(t,i)=>{let[n,o,a]=i;var s,c,l=0;if(n.some(t=>0!==e[t])){for(s in o)r.o(o,s)&&(r.m[s]=o[s]);if(a)var u=a(r)}for(t&&t(i);lr(28237));i=r.O(i)})(); -//# sourceMappingURL=files_sharing-files_sharing_tab.js.map?v=f21b6c88f8e5b963b2da \ No newline at end of file +(()=>{var e={28237(e,t,r){"use strict";var i=r(21777),n=r(35810),o=r(53334),a=r(26422),s=r(85471),c=r(48564);r.nc=(0,i.aV)(),window.OCA.Sharing??={},Object.assign(window.OCA.Sharing,{ShareSearch:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.results=[],c.A.debug("OCA.Sharing.ShareSearch initialized")}get state(){return this._state}addNewResult(e){return""!==e.displayName.trim()&&"function"==typeof e.handler?(this._state.results.push(e),!0):(c.A.error("Invalid search result provided",{result:e}),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalShareActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],c.A.debug("OCA.Sharing.ExternalShareActions initialized")}get state(){return this._state}registerAction(e){return c.A.warn("OCA.Sharing.ExternalShareActions is deprecated, use `registerSidebarAction` from `@nextcloud/sharing` instead"),"object"==typeof e&&"string"==typeof e.id&&"function"==typeof e.data&&Array.isArray(e.shareType)&&"object"==typeof e.handlers&&Object.values(e.handlers).every(e=>"function"==typeof e)?this._state.actions.findIndex(t=>t.id===e.id)>-1?(c.A.error(`An action with the same id ${e.id} already exists`,e),!1):(this._state.actions.push(e),!0):(c.A.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ShareTabSections:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_sections"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._sections=[]}registerSection(e){this._sections.push(e)}getSections(){return this._sections}}}),s.Ay.prototype.t=o.t,s.Ay.prototype.n=o.n;const l="files_sharing-sidebar-tab";(0,n.dC)().registerTab({id:"sharing",displayName:(0,o.t)("files_sharing","Sharing"),iconSvgInline:'',order:10,tagName:l,async onInit(){const{default:e}=await Promise.all([r.e(4208),r.e(5482)]).then(()=>r(85482)),t=(0,a.A)(s.Ay,e);Object.defineProperty(t.prototype,"attachShadow",{value(){return this}}),Object.defineProperty(t.prototype,"shadowRoot",{get(){return this}}),window.customElements.define(l,t)}})},48564(e,t,r){"use strict";const i=(0,r(35947).YK)().setApp("files_sharing").detectUser().build();r.d(t,["A",0,i])},63779(){},77199(){}};const t={};function r(i){const n=t[i];if(void 0!==n)return n.exports;const o=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}r.m=e,(()=>{const e=[];r.O=(t,i,n,o)=>{if(i){o||=0;for(var a=e.length;a>0&&e[a-1][2]>o;a--)e[a]=e[a-1];return void(e[a]=[i,n,o])}let s=1/0;for(a=0;a=o)||!Object.keys(r.O).every(e=>r.O[e](i[c]))?(l=!1,o{const t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.cw=e=>{var t;return()=>{if(e){var r=e;e=0,t={exports:{}},r.call(t.exports,t,t.exports)}return t.exports}},r.d=(e,t)=>{if(Array.isArray(t))for(var i=0;iPromise.all(Object.keys(r.f).reduce((t,i)=>(r.f[i](e,t),t),[])),r.u=e=>e+"-"+e+".js?v="+{857:"7df76d83ddc257b2632e",4005:"f2b35c8f02e136bf5a37",4017:"808775e77c7d18946064",5236:"12345564233a9b536e29",5482:"eb03405a8616359ce7a5",6798:"93837c551f35879aa50f",7471:"e1dc641ea8726e1b57ce",7859:"90097d6186e001a6fb28",8259:"79b917f7438068af7e66",8374:"baf178fdc31f0e575ab0",8689:"2a36f0347d469ae8619d"}[e],r.o=(e,t)=>Object.hasOwn(e,t),(()=>{const e={},t="nextcloud-ui-legacy:";r.l=(i,n,o,a)=>{if(e[i])return void e[i].push(n);let s,c;if(void 0!==o){const e=document.getElementsByTagName("script");for(var l=0;l{s.onerror=s.onload=null,clearTimeout(d);const n=e[i];if(delete e[i],s.parentNode?.removeChild(s),n?.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=u.bind(null,s.onerror),s.onload=u.bind(null,s.onload),c&&document.head.appendChild(s)}})(),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=4958,r.dn=e=>{var t=Object.getOwnPropertyDescriptor(e,"name");(!t||!t.writable&&t.configurable)&&Object.defineProperty(e,"name",{value:"default",configurable:!0})},(()=>{let e;globalThis.importScripts&&(e=globalThis.location+"");const t=globalThis.document;if(!e&&t&&("SCRIPT"===t.currentScript?.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){const r=t.getElementsByTagName("script");if(r.length){let t=r.length-1;for(;t>-1&&(!e||!/^https?:/.test(e));)e=r[t--].src}}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:|[?#].*$/g,"").replace(/\/[^/]+$/,"/"),r.p=e})(),(()=>{r.b="undefined"!=typeof document&&document.baseURI||self.location.href;const e={4958:0};r.f.j=(t,i)=>{let n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)i.push(n[2]);else{const o=new Promise((r,i)=>n=e[t]=[r,i]);i.push(n[2]=o);const a=new Error,s=i=>{if(r.o(e,t)&&(n=e[t],0!==n&&(e[t]=void 0),n)){const e=i&&("load"===i.type?"missing":i.type),r=i&&i.target&&i.target.src;a.message="Loading chunk "+t+" failed.\n("+e+": "+r+")",a.name="ChunkLoadError",a.type=e,a.request=r,a.event=i,n[1](a)}};r.l(r.p+r.u(t),s,"chunk-"+t,t)}},r.O.j=t=>0===e[t];const t=(t,i)=>{let[n,o,a]=i;var s,c,l=0;if(n.some(t=>0!==e[t])){for(s in o)r.o(o,s)&&(r.m[s]=o[s]);if(a)var u=a(r)}for(t&&t(i);lr(28237));i=r.O(i)})(); +//# sourceMappingURL=files_sharing-files_sharing_tab.js.map?v=67b0544eb6368e7664d8 \ No newline at end of file diff --git a/dist/files_sharing-files_sharing_tab.js.map b/dist/files_sharing-files_sharing_tab.js.map index 57affa8339d46..ae8d7ec8db918 100644 --- a/dist/files_sharing-files_sharing_tab.js.map +++ b/dist/files_sharing-files_sharing_tab.js.map @@ -1 +1 @@ -{"version":3,"file":"files_sharing-files_sharing_tab.js?v=eea927b44b32998ae1ff","mappings":"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","sources":["webpack:///nextcloud/apps/files_sharing/src/files-sidebar.ts","webpack:///nextcloud/apps/files_sharing/src/services/ShareSearch.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalShareActions.js","webpack:///nextcloud/apps/files_sharing/src/services/TabSections.js","webpack:///nextcloud/apps/files_sharing/src/services/logger.ts","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/concatenation wrap","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/set anonymous default export name","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport ShareVariant from '@mdi/svg/svg/share-variant.svg?raw';\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { getSidebar } from '@nextcloud/files';\nimport { n, t } from '@nextcloud/l10n';\nimport wrap from '@vue/web-component-wrapper';\nimport Vue from 'vue';\nimport ExternalShareActions from './services/ExternalShareActions.js';\nimport ShareSearch from './services/ShareSearch.js';\nimport TabSections from './services/TabSections.js';\n__webpack_nonce__ = getCSPNonce();\n// Init Sharing Tab Service\nwindow.OCA.Sharing ??= {};\nObject.assign(window.OCA.Sharing, { ShareSearch: new ShareSearch() });\nObject.assign(window.OCA.Sharing, { ExternalShareActions: new ExternalShareActions() });\nObject.assign(window.OCA.Sharing, { ShareTabSections: new TabSections() });\nVue.prototype.t = t;\nVue.prototype.n = n;\nconst tagName = 'files_sharing-sidebar-tab';\ngetSidebar().registerTab({\n id: 'sharing',\n displayName: t('files_sharing', 'Sharing'),\n iconSvgInline: ShareVariant,\n order: 10,\n tagName,\n async onInit() {\n const { default: FilesSidebarTab } = await import('./views/FilesSidebarTab.vue');\n const webComponent = wrap(Vue, FilesSidebarTab);\n // In Vue 2, wrap doesn't support diseabling shadow. Disable with a hack\n Object.defineProperty(webComponent.prototype, 'attachShadow', {\n value() { return this; },\n });\n Object.defineProperty(webComponent.prototype, 'shadowRoot', {\n get() { return this; },\n });\n window.customElements.define(tagName, webComponent);\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport logger from './logger.ts'\n\nexport default class ShareSearch {\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.results = []\n\t\tlogger.debug('OCA.Sharing.ShareSearch initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ShareSearch\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new result\n\t * Mostly used by the guests app.\n\t * We should consider deprecation and add results via php ?\n\t *\n\t * @param {object} result entry to append\n\t * @param {string} [result.user] entry user\n\t * @param {string} result.displayName entry first line\n\t * @param {string} [result.desc] entry second line\n\t * @param {string} [result.icon] entry icon\n\t * @param {Function} result.handler function to run on entry selection\n\t * @param {Function} [result.condition] condition to add entry or not\n\t * @return {boolean}\n\t */\n\taddNewResult(result) {\n\t\tif (result.displayName.trim() !== ''\n\t\t\t&& typeof result.handler === 'function') {\n\t\t\tthis._state.results.push(result)\n\t\t\treturn true\n\t\t}\n\t\tlogger.error('Invalid search result provided', { result })\n\t\treturn false\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport logger from './logger.ts'\n\nexport default class ExternalShareActions {\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tlogger.debug('OCA.Sharing.ExternalShareActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * @typedef ExternalShareActionData\n\t * @property {import('vue').Component} is Vue component to render, for advanced actions the `async onSave` method of the component will be called when saved\n\t */\n\n\t/**\n\t * Register a new option/entry for the a given share type\n\t *\n\t * @param {object} action new action component to register\n\t * @param {string} action.id unique action id\n\t * @param {(data: any) => ExternalShareActionData & Record} action.data data to bind the component to\n\t * @param {Array} action.shareType list of \\@nextcloud/sharing.Types.SHARE_XXX to be mounted on\n\t * @param {boolean} action.advanced `true` if the action entry should be rendered within advanced settings\n\t * @param {object} action.handlers list of listeners\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\tlogger.warn('OCA.Sharing.ExternalShareActions is deprecated, use `registerSidebarAction` from `@nextcloud/sharing` instead')\n\n\t\t// Validate action\n\t\tif (typeof action !== 'object'\n\t\t\t|| typeof action.id !== 'string'\n\t\t\t|| typeof action.data !== 'function' // () => {disabled: true}\n\t\t\t|| !Array.isArray(action.shareType) // [\\@nextcloud/sharing.Types.Link, ...]\n\t\t\t|| typeof action.handlers !== 'object' // {click: () => {}, ...}\n\t\t\t|| !Object.values(action.handlers).every((handler) => typeof handler === 'function')) {\n\t\t\tlogger.error('Invalid action provided', action)\n\t\t\treturn false\n\t\t}\n\n\t\t// Check duplicates\n\t\tconst hasDuplicate = this._state.actions.findIndex((check) => check.id === action.id) > -1\n\t\tif (hasDuplicate) {\n\t\t\tlogger.error(`An action with the same id ${action.id} already exists`, action)\n\t\t\treturn false\n\t\t}\n\n\t\tthis._state.actions.push(action)\n\t\treturn true\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Callback to render a section in the sharing tab.\n *\n * @callback registerSectionCallback\n * @param {undefined} el - Deprecated and will always be undefined (formerly the root element)\n * @param {object} fileInfo - File info object\n */\n\nexport default class TabSections {\n\t_sections\n\n\tconstructor() {\n\t\tthis._sections = []\n\t}\n\n\t/**\n\t * @param {registerSectionCallback} section To be called to mount the section to the sharing sidebar\n\t */\n\tregisterSection(section) {\n\t\tthis._sections.push(section)\n\t}\n\n\tgetSections() {\n\t\treturn this._sections\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files_sharing')\n .detectUser()\n .build();\n","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority ||= 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tlet notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn, priority] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => (chunkId + \"-\" + chunkId + \".js?v=\" + {\"857\":\"c78894d5df34d854f7aa\",\"1458\":\"a63165555b28180254bf\",\"4005\":\"aee79e7f1049b5e8188f\",\"4017\":\"d1523b8db423fbe47986\",\"5236\":\"ffeb871fa5beda99d3b3\",\"6798\":\"38b417c535f358052c1a\",\"7471\":\"34493087eb2469ae6e25\",\"7859\":\"0aa7564896cee7ea552c\",\"8259\":\"e914ef6a65a38374620a\",\"8374\":\"e925f5901b71aeaa37db\",\"8689\":\"5fcce4026be999b251c3\"}[chunkId] + \"\");","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","const inProgress = {};\nconst dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tlet script, needAttach;\n\tif(key !== undefined) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tconst s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tconst onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tconst doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode?.removeChild(script);\n\t\tdoneFns?.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tconst timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4958;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","let scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nconst document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript?.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tlet i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^https?:/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:|[?#].*$/g, \"\").replace(/\\/[^/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t4958: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tlet installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tconst promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tconst error = new Error();\n\t\t\t\t\tconst loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tconst errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tconst realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\terror.event = event;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(__webpack_require__.p + __webpack_require__.u(chunkId), loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(28237)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["__webpack_nonce__","getCSPNonce","window","OCA","Sharing","Object","assign","ShareSearch","constructor","this","_state","results","logger","debug","state","addNewResult","result","displayName","trim","handler","push","error","ExternalShareActions","actions","registerAction","action","warn","id","data","Array","isArray","shareType","handlers","values","every","findIndex","check","ShareTabSections","_sections","registerSection","section","getSections","Vue","prototype","t","n","tagName","getSidebar","registerTab","iconSvgInline","order","onInit","default","FilesSidebarTab","Promise","all","__webpack_require__","e","then","webComponent","wrap","defineProperty","value","get","customElements","define","__WEBPACK_DEFAULT_EXPORT__","getLoggerBuilder","setApp","detectUser","build","__webpack_module_cache__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","deferred","O","chunkIds","fn","priority","i","length","notFulfilled","Infinity","fulfilled","j","keys","key","splice","r","getter","__esModule","d","a","cw","body","mod","definition","binding","descriptor","enumerable","o","f","chunkId","reduce","promises","u","obj","prop","hasOwn","inProgress","dataWebpackPrefix","l","url","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","dn","x","getOwnPropertyDescriptor","writable","configurable","scriptUrl","globalThis","importScripts","location","currentScript","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","loadingEnded","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"files_sharing-files_sharing_tab.js?v=a74865d64d6fa06c6508","mappings":"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","sources":["webpack:///nextcloud/apps/files_sharing/src/files-sidebar.ts","webpack:///nextcloud/apps/files_sharing/src/services/ShareSearch.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalShareActions.js","webpack:///nextcloud/apps/files_sharing/src/services/TabSections.js","webpack:///nextcloud/apps/files_sharing/src/services/logger.ts","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/concatenation wrap","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/set anonymous default export name","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport ShareVariant from '@mdi/svg/svg/share-variant.svg?raw';\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { getSidebar } from '@nextcloud/files';\nimport { n, t } from '@nextcloud/l10n';\nimport wrap from '@vue/web-component-wrapper';\nimport Vue from 'vue';\nimport ExternalShareActions from './services/ExternalShareActions.js';\nimport ShareSearch from './services/ShareSearch.js';\nimport TabSections from './services/TabSections.js';\n__webpack_nonce__ = getCSPNonce();\n// Init Sharing Tab Service\nwindow.OCA.Sharing ??= {};\nObject.assign(window.OCA.Sharing, { ShareSearch: new ShareSearch() });\nObject.assign(window.OCA.Sharing, { ExternalShareActions: new ExternalShareActions() });\nObject.assign(window.OCA.Sharing, { ShareTabSections: new TabSections() });\nVue.prototype.t = t;\nVue.prototype.n = n;\nconst tagName = 'files_sharing-sidebar-tab';\ngetSidebar().registerTab({\n id: 'sharing',\n displayName: t('files_sharing', 'Sharing'),\n iconSvgInline: ShareVariant,\n order: 10,\n tagName,\n async onInit() {\n const { default: FilesSidebarTab } = await import('./views/FilesSidebarTab.vue');\n const webComponent = wrap(Vue, FilesSidebarTab);\n // In Vue 2, wrap doesn't support diseabling shadow. Disable with a hack\n Object.defineProperty(webComponent.prototype, 'attachShadow', {\n value() { return this; },\n });\n Object.defineProperty(webComponent.prototype, 'shadowRoot', {\n get() { return this; },\n });\n window.customElements.define(tagName, webComponent);\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport logger from './logger.ts'\n\nexport default class ShareSearch {\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.results = []\n\t\tlogger.debug('OCA.Sharing.ShareSearch initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ShareSearch\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new result\n\t * Mostly used by the guests app.\n\t * We should consider deprecation and add results via php ?\n\t *\n\t * @param {object} result entry to append\n\t * @param {string} [result.user] entry user\n\t * @param {string} result.displayName entry first line\n\t * @param {string} [result.desc] entry second line\n\t * @param {string} [result.icon] entry icon\n\t * @param {Function} result.handler function to run on entry selection\n\t * @param {Function} [result.condition] condition to add entry or not\n\t * @return {boolean}\n\t */\n\taddNewResult(result) {\n\t\tif (result.displayName.trim() !== ''\n\t\t\t&& typeof result.handler === 'function') {\n\t\t\tthis._state.results.push(result)\n\t\t\treturn true\n\t\t}\n\t\tlogger.error('Invalid search result provided', { result })\n\t\treturn false\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport logger from './logger.ts'\n\nexport default class ExternalShareActions {\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tlogger.debug('OCA.Sharing.ExternalShareActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * @typedef ExternalShareActionData\n\t * @property {import('vue').Component} is Vue component to render, for advanced actions the `async onSave` method of the component will be called when saved\n\t */\n\n\t/**\n\t * Register a new option/entry for the a given share type\n\t *\n\t * @param {object} action new action component to register\n\t * @param {string} action.id unique action id\n\t * @param {(data: any) => ExternalShareActionData & Record} action.data data to bind the component to\n\t * @param {Array} action.shareType list of \\@nextcloud/sharing.Types.SHARE_XXX to be mounted on\n\t * @param {boolean} action.advanced `true` if the action entry should be rendered within advanced settings\n\t * @param {object} action.handlers list of listeners\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\tlogger.warn('OCA.Sharing.ExternalShareActions is deprecated, use `registerSidebarAction` from `@nextcloud/sharing` instead')\n\n\t\t// Validate action\n\t\tif (typeof action !== 'object'\n\t\t\t|| typeof action.id !== 'string'\n\t\t\t|| typeof action.data !== 'function' // () => {disabled: true}\n\t\t\t|| !Array.isArray(action.shareType) // [\\@nextcloud/sharing.Types.Link, ...]\n\t\t\t|| typeof action.handlers !== 'object' // {click: () => {}, ...}\n\t\t\t|| !Object.values(action.handlers).every((handler) => typeof handler === 'function')) {\n\t\t\tlogger.error('Invalid action provided', action)\n\t\t\treturn false\n\t\t}\n\n\t\t// Check duplicates\n\t\tconst hasDuplicate = this._state.actions.findIndex((check) => check.id === action.id) > -1\n\t\tif (hasDuplicate) {\n\t\t\tlogger.error(`An action with the same id ${action.id} already exists`, action)\n\t\t\treturn false\n\t\t}\n\n\t\tthis._state.actions.push(action)\n\t\treturn true\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Callback to render a section in the sharing tab.\n *\n * @callback registerSectionCallback\n * @param {undefined} el - Deprecated and will always be undefined (formerly the root element)\n * @param {object} fileInfo - File info object\n */\n\nexport default class TabSections {\n\t_sections\n\n\tconstructor() {\n\t\tthis._sections = []\n\t}\n\n\t/**\n\t * @param {registerSectionCallback} section To be called to mount the section to the sharing sidebar\n\t */\n\tregisterSection(section) {\n\t\tthis._sections.push(section)\n\t}\n\n\tgetSections() {\n\t\treturn this._sections\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files_sharing')\n .detectUser()\n .build();\n","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority ||= 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tlet notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn, priority] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => (chunkId + \"-\" + chunkId + \".js?v=\" + {\"857\":\"c78894d5df34d854f7aa\",\"4005\":\"aee79e7f1049b5e8188f\",\"4017\":\"d1523b8db423fbe47986\",\"5236\":\"ffeb871fa5beda99d3b3\",\"5482\":\"6fe2de072c30c0efb79b\",\"6798\":\"38b417c535f358052c1a\",\"7471\":\"34493087eb2469ae6e25\",\"7859\":\"0aa7564896cee7ea552c\",\"8259\":\"e914ef6a65a38374620a\",\"8374\":\"e925f5901b71aeaa37db\",\"8689\":\"5fcce4026be999b251c3\"}[chunkId] + \"\");","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","const inProgress = {};\nconst dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tlet script, needAttach;\n\tif(key !== undefined) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tconst s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tconst onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tconst doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode?.removeChild(script);\n\t\tdoneFns?.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tconst timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4958;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","let scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nconst document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript?.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tlet i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^https?:/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:|[?#].*$/g, \"\").replace(/\\/[^/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t4958: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tlet installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tconst promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tconst error = new Error();\n\t\t\t\t\tconst loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tconst errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tconst realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\terror.event = event;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(__webpack_require__.p + __webpack_require__.u(chunkId), loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(28237)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["__webpack_nonce__","getCSPNonce","window","OCA","Sharing","Object","assign","ShareSearch","constructor","this","_state","results","logger","debug","state","addNewResult","result","displayName","trim","handler","push","error","ExternalShareActions","actions","registerAction","action","warn","id","data","Array","isArray","shareType","handlers","values","every","findIndex","check","ShareTabSections","_sections","registerSection","section","getSections","Vue","prototype","t","n","tagName","getSidebar","registerTab","iconSvgInline","order","onInit","default","FilesSidebarTab","Promise","all","__webpack_require__","e","then","webComponent","wrap","defineProperty","value","get","customElements","define","__WEBPACK_DEFAULT_EXPORT__","getLoggerBuilder","setApp","detectUser","build","__webpack_module_cache__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","deferred","O","chunkIds","fn","priority","i","length","notFulfilled","Infinity","fulfilled","j","keys","key","splice","r","getter","__esModule","d","a","cw","body","mod","definition","binding","descriptor","enumerable","o","f","chunkId","reduce","promises","u","obj","prop","hasOwn","inProgress","dataWebpackPrefix","l","url","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","dn","x","getOwnPropertyDescriptor","writable","configurable","scriptUrl","globalThis","importScripts","location","currentScript","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","loadingEnded","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/settings-vue-settings-admin-ai.js b/dist/settings-vue-settings-admin-ai.js index c07214249049a..3922aaf9ff255 100644 --- a/dist/settings-vue-settings-admin-ai.js +++ b/dist/settings-vue-settings-admin-ai.js @@ -1,2 +1,2 @@ -(()=>{var e={77870(e,n,r){"use strict";var i=r(21777),o=r(85471),a=r(44368),s=r(81222),l=r(63814),c=r(432),u=r.n(c),d=r(74095),p=r(32073),f=r(48240),h=r(67607),g=r(88837);const v={name:"ArrowDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var m=r(14486);const b=(0,m.A)(v,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon arrow-down-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,y={name:"ArrowUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},x=(0,m.A)(y,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon arrow-up-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,_={name:"DragVerticalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},w=(0,m.A)(_,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon drag-vertical-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,3H11V5H9V3M13,3H15V5H13V3M9,7H11V9H9V7M13,7H15V9H13V7M9,11H11V13H9V11M13,11H15V13H13V11M9,15H11V17H9V15M13,15H15V17H13V15M9,19H11V21H9V19M13,19H15V21H13V19Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,A=(0,r(35947).YK)().setApp("settings").detectUser().build(),S={name:"AdminAI",components:{NcCheckboxRadioSwitch:p.A,NcSettingsSection:g.A,NcSelect:h.default,VueDraggable:u(),DragVerticalIcon:w,ArrowDownIcon:b,ArrowUpIcon:x,NcButton:d.A,NcNoteCard:f.A},data:()=>({loading:!1,dirty:!1,groups:[],loadingGroups:!1,sttProviders:(0,s.C)("settings","ai-stt-providers"),translationProviders:(0,s.C)("settings","ai-translation-providers"),textProcessingProviders:(0,s.C)("settings","ai-text-processing-providers"),textProcessingTaskTypes:(0,s.C)("settings","ai-text-processing-task-types"),text2imageProviders:(0,s.C)("settings","ai-text2image-providers"),taskProcessingProviders:(0,s.C)("settings","ai-task-processing-providers"),taskProcessingTaskTypes:(0,s.C)("settings","ai-task-processing-task-types"),settings:(0,s.C)("settings","ai-settings")}),computed:{hasTextProcessing(){return Object.keys(this.settings["ai.textprocessing_provider_preferences"]).length>0&&Array.isArray(this.textProcessingTaskTypes)},tpTaskTypes(){const t=["OCP\\TextProcessing\\FreePromptTaskType","OCP\\TextProcessing\\HeadlineTaskType","OCP\\TextProcessing\\SummaryTaskType","OCP\\TextProcessing\\TopicsTaskType"];return Object.keys(this.settings["ai.textprocessing_provider_preferences"]).filter(t=>!!this.getTextProcessingTaskType(t)).filter(e=>!t.includes(e))},hasText2ImageProviders(){return this.text2imageProviders.length>0},hasTaskProcessing(){return Object.keys(this.settings["ai.taskprocessing_provider_preferences"]).length>0&&Array.isArray(this.taskProcessingTaskTypes)}},methods:{moveUp(t){this.settings["ai.translation_provider_preferences"].splice(Math.min(t-1,0),0,...this.settings["ai.translation_provider_preferences"].splice(t,1)),this.saveChanges()},moveDown(t){this.settings["ai.translation_provider_preferences"].splice(t+1,0,...this.settings["ai.translation_provider_preferences"].splice(t,1)),this.saveChanges()},async saveChanges(){this.loading=!0,await(0,o.dY)();const t={settings:this.settings};try{await a.Ay.put((0,l.Jv)("/settings/api/admin/ai"),t)}catch(t){A.error("could not save changes",{error:t})}this.loading=!1},getTextProcessingTaskType(t){return Array.isArray(this.textProcessingTaskTypes)?this.textProcessingTaskTypes.find(e=>e.class===t):null}}};var C=r(85072),T=r.n(C),k=r(97825),E=r.n(k),D=r(77659),O=r.n(D),P=r(55056),N=r.n(P),I=r(10540),M=r.n(I),j=r(41113),L=r.n(j),R=r(29608),V={};V.styleTagTransform=L(),V.setAttributes=N(),V.insert=O().bind(null,"head"),V.domAPI=E(),V.insertStyleElement=M(),T()(R.A,V),R.A&&R.A.locals&&R.A.locals;const H=(0,m.A)(S,function(){var t=this,e=t._self._c;return e("div",{staticClass:"ai-settings"},[e("NcSettingsSection",{attrs:{name:t.t("settings","Unified task processing"),description:t.t("settings","AI tasks can be implemented by different apps. Here you can set which app should be used for which task.")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch"},on:{"update:modelValue":t.saveChanges},model:{value:t.settings["ai.taskprocessing_guests"],callback:function(e){t.$set(t.settings,"ai.taskprocessing_guests",e)},expression:"settings['ai.taskprocessing_guests']"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Allow AI usage for guest users"))+"\n\t\t")]),t._v(" "),e("h3",[t._v(t._s(t.t("settings","Provider for Task types")))]),t._v(" "),t._l(t.taskProcessingTaskTypes,function(n){return[e("div",{key:n,staticClass:"tasktype-item"},[e("p",{staticClass:"tasktype-name"},[t._v("\n\t\t\t\t\t"+t._s(n.name)+"\n\t\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch"},on:{"update:modelValue":t.saveChanges},model:{value:t.settings["ai.taskprocessing_type_preferences"][n.id],callback:function(e){t.$set(t.settings["ai.taskprocessing_type_preferences"],n.id,e)},expression:"settings['ai.taskprocessing_type_preferences'][type.id]"}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Enable"))+"\n\t\t\t\t")]),e("NcSelect",{staticClass:"provider-select",attrs:{clearable:!1,disabled:!t.settings["ai.taskprocessing_type_preferences"][n.id],options:t.taskProcessingProviders.filter(t=>t.taskType===n.id).map(t=>t.id)},on:{input:t.saveChanges},scopedSlots:t._u([{key:"option",fn:function({label:e}){return[t._v("\n\t\t\t\t\t\t"+t._s(t.taskProcessingProviders.find(t=>t.id===e)?.name)+"\n\t\t\t\t\t")]}},{key:"selected-option",fn:function({label:e}){return[t._v("\n\t\t\t\t\t\t"+t._s(t.taskProcessingProviders.find(t=>t.id===e)?.name)+"\n\t\t\t\t\t")]}}],null,!0),model:{value:t.settings["ai.taskprocessing_provider_preferences"][n.id],callback:function(e){t.$set(t.settings["ai.taskprocessing_provider_preferences"],n.id,e)},expression:"settings['ai.taskprocessing_provider_preferences'][type.id]"}})],1)]}),t._v(" "),t.hasTaskProcessing?t._e():[e("NcNoteCard",{attrs:{type:"info"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","None of your currently installed apps provide Task processing functionality"))+"\n\t\t\t")])]],2),t._v(" "),e("NcSettingsSection",{attrs:{name:t.t("settings","Machine translation"),description:t.t("settings","Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment.")}},[e("VueDraggable",{on:{change:t.saveChanges},model:{value:t.settings["ai.translation_provider_preferences"],callback:function(e){t.$set(t.settings,"ai.translation_provider_preferences",e)},expression:"settings['ai.translation_provider_preferences']"}},t._l(t.settings["ai.translation_provider_preferences"],function(n,r){return e("div",{key:n,staticClass:"draggable__item"},[e("DragVerticalIcon"),t._v(" "),e("span",{staticClass:"draggable__number"},[t._v(t._s(r+1))]),t._v(" "+t._s(t.translationProviders.find(t=>t.class===n)?.name)+"\n\t\t\t\t"),e("NcButton",{attrs:{"aria-label":"Move up",variant:"tertiary"},on:{click:function(e){return t.moveUp(r)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ArrowUpIcon")]},proxy:!0}],null,!0)}),t._v(" "),e("NcButton",{attrs:{"aria-label":"Move down",variant:"tertiary"},on:{click:function(e){return t.moveDown(r)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ArrowDownIcon")]},proxy:!0}],null,!0)})],1)}),0)],1),t._v(" "),e("NcSettingsSection",{attrs:{name:t.t("settings","Image generation"),description:t.t("settings","Image generation can be implemented by different apps. Here you can set which app should be used.")}},[t._l(t.text2imageProviders,function(n){return[e("NcCheckboxRadioSwitch",{key:n.id,attrs:{value:n.id,name:"text2image_provider",type:"radio"},on:{"update:modelValue":t.saveChanges},model:{value:t.settings["ai.text2image_provider"],callback:function(e){t.$set(t.settings,"ai.text2image_provider",e)},expression:"settings['ai.text2image_provider']"}},[t._v("\n\t\t\t\t"+t._s(n.name)+"\n\t\t\t")])]}),t._v(" "),t.hasText2ImageProviders?t._e():[e("NcNoteCard",{attrs:{type:"info"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","None of your currently installed apps provide image generation functionality"))+"\n\t\t\t")])]],2),t._v(" "),e("NcSettingsSection",{attrs:{name:t.t("settings","Text processing"),description:t.t("settings","Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task.")}},[t._l(t.tpTaskTypes,function(n){return[e("div",{key:n},[e("h3",[t._v(t._s(t.t("settings","Task:"))+" "+t._s(t.getTextProcessingTaskType(n).name))]),t._v(" "),e("p",[t._v(t._s(t.getTextProcessingTaskType(n).description))]),t._v(" "),e("p",[t._v(" ")]),t._v(" "),e("NcSelect",{staticClass:"provider-select",attrs:{clearable:!1,options:t.textProcessingProviders.filter(t=>t.taskType===n).map(t=>t.class)},on:{input:t.saveChanges},scopedSlots:t._u([{key:"option",fn:function({label:e}){return[t._v("\n\t\t\t\t\t\t"+t._s(t.textProcessingProviders.find(t=>t.class===e)?.name)+"\n\t\t\t\t\t")]}},{key:"selected-option",fn:function({label:e}){return[t._v("\n\t\t\t\t\t\t"+t._s(t.textProcessingProviders.find(t=>t.class===e)?.name)+"\n\t\t\t\t\t")]}}],null,!0),model:{value:t.settings["ai.textprocessing_provider_preferences"][n],callback:function(e){t.$set(t.settings["ai.textprocessing_provider_preferences"],n,e)},expression:"settings['ai.textprocessing_provider_preferences'][type]"}}),t._v(" "),e("p",[t._v(" ")])],1)]}),t._v(" "),0===t.tpTaskTypes.length?[e("NcNoteCard",{attrs:{type:"info"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","None of your currently installed apps provide text processing functionality using the Text Processing API."))+"\n\t\t\t")])]:t._e()],2)],1)},[],!1,null,"9a99aeba",null).exports;r.nc=(0,i.aV)(),o.Ay.prototype.t=t,(new(o.Ay.extend(H))).$mount("#ai-settings")},29608(t,e,n){"use strict";var r=n(71354),i=n.n(r),o=n(76314),a=n.n(o)()(i());a.push([t.id,"\n.draggable__item[data-v-9a99aeba] {\n\tmargin-bottom: 5px;\n display: flex;\n align-items: center;\n}\n.draggable__item[data-v-9a99aeba],\n.draggable__item *[data-v-9a99aeba] {\n cursor: grab;\n}\n.draggable__number[data-v-9a99aeba] {\n\tborder-radius: 20px;\n\tborder: 2px solid var(--color-primary-element);\n\tcolor: var(--color-primary-element);\n\tpadding: 0px 7px;\n\tmargin-inline-end: 3px;\n}\n.drag-vertical-icon[data-v-9a99aeba] {\n float: left;\n}\n.ai-settings h3[data-v-9a99aeba] {\n\tfont-size: 16px; /* to offset against the 20px section heading */\n}\n.provider-select[data-v-9a99aeba] {\n\tmin-width: 350px !important;\n}\n.tasktype-item[data-v-9a99aeba] {\n display: flex;\n align-items: center;\n gap: 8px;\n.tasktype-name[data-v-9a99aeba] {\n flex: 1;\n margin: 0;\n}\n}\n","",{version:3,sources:["webpack://./apps/settings/src/components/AdminAI.vue"],names:[],mappings:";AA4OA;CACA,kBAAA;EACA,aAAA;EACA,mBAAA;AACA;AAEA;;EAEA,YAAA;AACA;AAEA;CACA,mBAAA;CACA,8CAAA;CACA,mCAAA;CACA,gBAAA;CACA,sBAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;CACA,eAAA,EAAA,+CAAA;AACA;AAEA;CACA,2BAAA;AACA;AAEA;EACA,aAAA;EACA,mBAAA;EACA,QAAA;AACA;IACA,OAAA;IACA,SAAA;AACA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowDown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ArrowDown.vue?vue&type=template&id=78385c0a\"\nimport script from \"./ArrowDown.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowUp.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ArrowUp.vue?vue&type=template&id=94c28324\"\nimport script from \"./ArrowUp.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowUp.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-up-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./DragVertical.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./DragVertical.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./DragVertical.vue?vue&type=template&id=8540f63c\"\nimport script from \"./DragVertical.vue?vue&type=script&lang=js\"\nexport * from \"./DragVertical.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon drag-vertical-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,3H11V5H9V3M13,3H15V5H13V3M9,7H11V9H9V7M13,7H15V9H13V7M9,11H11V13H9V11M13,11H15V13H13V11M9,15H11V17H9V15M13,15H15V17H13V15M9,19H11V21H9V19M13,19H15V21H13V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('settings')\n .detectUser()\n .build();\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAI.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAI.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAI.vue?vue&type=style&index=0&id=9a99aeba&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAI.vue?vue&type=style&index=0&id=9a99aeba&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AdminAI.vue?vue&type=template&id=9a99aeba&scoped=true\"\nimport script from \"./AdminAI.vue?vue&type=script&lang=js\"\nexport * from \"./AdminAI.vue?vue&type=script&lang=js\"\nimport style0 from \"./AdminAI.vue?vue&type=style&index=0&id=9a99aeba&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9a99aeba\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ai-settings\"},[_c('NcSettingsSection',{attrs:{\"name\":_vm.t('settings', 'Unified task processing'),\"description\":_vm.t('settings', 'AI tasks can be implemented by different apps. Here you can set which app should be used for which task.')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\"},on:{\"update:modelValue\":_vm.saveChanges},model:{value:(_vm.settings['ai.taskprocessing_guests']),callback:function ($$v) {_vm.$set(_vm.settings, 'ai.taskprocessing_guests', $$v)},expression:\"settings['ai.taskprocessing_guests']\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Allow AI usage for guest users'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('settings', 'Provider for Task types')))]),_vm._v(\" \"),_vm._l((_vm.taskProcessingTaskTypes),function(type){return [_c('div',{key:type,staticClass:\"tasktype-item\"},[_c('p',{staticClass:\"tasktype-name\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(type.name)+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\"},on:{\"update:modelValue\":_vm.saveChanges},model:{value:(_vm.settings['ai.taskprocessing_type_preferences'][type.id]),callback:function ($$v) {_vm.$set(_vm.settings['ai.taskprocessing_type_preferences'], type.id, $$v)},expression:\"settings['ai.taskprocessing_type_preferences'][type.id]\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Enable'))+\"\\n\\t\\t\\t\\t\")]),_c('NcSelect',{staticClass:\"provider-select\",attrs:{\"clearable\":false,\"disabled\":!_vm.settings['ai.taskprocessing_type_preferences'][type.id],\"options\":_vm.taskProcessingProviders.filter(p => p.taskType === type.id).map(p => p.id)},on:{\"input\":_vm.saveChanges},scopedSlots:_vm._u([{key:\"option\",fn:function({ label }){return [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.taskProcessingProviders.find(p => p.id === label)?.name)+\"\\n\\t\\t\\t\\t\\t\")]}},{key:\"selected-option\",fn:function({ label }){return [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.taskProcessingProviders.find(p => p.id === label)?.name)+\"\\n\\t\\t\\t\\t\\t\")]}}],null,true),model:{value:(_vm.settings['ai.taskprocessing_provider_preferences'][type.id]),callback:function ($$v) {_vm.$set(_vm.settings['ai.taskprocessing_provider_preferences'], type.id, $$v)},expression:\"settings['ai.taskprocessing_provider_preferences'][type.id]\"}})],1)]}),_vm._v(\" \"),(!_vm.hasTaskProcessing)?[_c('NcNoteCard',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'None of your currently installed apps provide Task processing functionality'))+\"\\n\\t\\t\\t\")])]:_vm._e()],2),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('settings', 'Machine translation'),\"description\":_vm.t('settings', 'Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment.')}},[_c('VueDraggable',{on:{\"change\":_vm.saveChanges},model:{value:(_vm.settings['ai.translation_provider_preferences']),callback:function ($$v) {_vm.$set(_vm.settings, 'ai.translation_provider_preferences', $$v)},expression:\"settings['ai.translation_provider_preferences']\"}},_vm._l((_vm.settings['ai.translation_provider_preferences']),function(providerClass,i){return _c('div',{key:providerClass,staticClass:\"draggable__item\"},[_c('DragVerticalIcon'),_vm._v(\" \"),_c('span',{staticClass:\"draggable__number\"},[_vm._v(_vm._s(i + 1))]),_vm._v(\" \"+_vm._s(_vm.translationProviders.find(p => p.class === providerClass)?.name)+\"\\n\\t\\t\\t\\t\"),_c('NcButton',{attrs:{\"aria-label\":\"Move up\",\"variant\":\"tertiary\"},on:{\"click\":function($event){return _vm.moveUp(i)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowUpIcon')]},proxy:true}],null,true)}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":\"Move down\",\"variant\":\"tertiary\"},on:{\"click\":function($event){return _vm.moveDown(i)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowDownIcon')]},proxy:true}],null,true)})],1)}),0)],1),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('settings', 'Image generation'),\"description\":_vm.t('settings', 'Image generation can be implemented by different apps. Here you can set which app should be used.')}},[_vm._l((_vm.text2imageProviders),function(provider){return [_c('NcCheckboxRadioSwitch',{key:provider.id,attrs:{\"value\":provider.id,\"name\":\"text2image_provider\",\"type\":\"radio\"},on:{\"update:modelValue\":_vm.saveChanges},model:{value:(_vm.settings['ai.text2image_provider']),callback:function ($$v) {_vm.$set(_vm.settings, 'ai.text2image_provider', $$v)},expression:\"settings['ai.text2image_provider']\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(provider.name)+\"\\n\\t\\t\\t\")])]}),_vm._v(\" \"),(!_vm.hasText2ImageProviders)?[_c('NcNoteCard',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'None of your currently installed apps provide image generation functionality'))+\"\\n\\t\\t\\t\")])]:_vm._e()],2),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('settings', 'Text processing'),\"description\":_vm.t('settings', 'Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task.')}},[_vm._l((_vm.tpTaskTypes),function(type){return [_c('div',{key:type},[_c('h3',[_vm._v(_vm._s(_vm.t('settings', 'Task:'))+\" \"+_vm._s(_vm.getTextProcessingTaskType(type).name))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.getTextProcessingTaskType(type).description))]),_vm._v(\" \"),_c('p',[_vm._v(\" \")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"provider-select\",attrs:{\"clearable\":false,\"options\":_vm.textProcessingProviders.filter(p => p.taskType === type).map(p => p.class)},on:{\"input\":_vm.saveChanges},scopedSlots:_vm._u([{key:\"option\",fn:function({ label }){return [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.textProcessingProviders.find(p => p.class === label)?.name)+\"\\n\\t\\t\\t\\t\\t\")]}},{key:\"selected-option\",fn:function({ label }){return [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.textProcessingProviders.find(p => p.class === label)?.name)+\"\\n\\t\\t\\t\\t\\t\")]}}],null,true),model:{value:(_vm.settings['ai.textprocessing_provider_preferences'][type]),callback:function ($$v) {_vm.$set(_vm.settings['ai.textprocessing_provider_preferences'], type, $$v)},expression:\"settings['ai.textprocessing_provider_preferences'][type]\"}}),_vm._v(\" \"),_c('p',[_vm._v(\" \")])],1)]}),_vm._v(\" \"),(_vm.tpTaskTypes.length === 0)?[_c('NcNoteCard',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'None of your currently installed apps provide text processing functionality using the Text Processing API.'))+\"\\n\\t\\t\\t\")])]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth'\nimport Vue from 'vue'\nimport ArtificialIntelligence from './components/AdminAI.vue'\n\n__webpack_nonce__ = getCSPNonce()\n\nVue.prototype.t = t\n\nconst View = Vue.extend(ArtificialIntelligence)\nnew View().$mount('#ai-settings')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.draggable__item[data-v-9a99aeba] {\n\tmargin-bottom: 5px;\n display: flex;\n align-items: center;\n}\n.draggable__item[data-v-9a99aeba],\n.draggable__item *[data-v-9a99aeba] {\n cursor: grab;\n}\n.draggable__number[data-v-9a99aeba] {\n\tborder-radius: 20px;\n\tborder: 2px solid var(--color-primary-element);\n\tcolor: var(--color-primary-element);\n\tpadding: 0px 7px;\n\tmargin-inline-end: 3px;\n}\n.drag-vertical-icon[data-v-9a99aeba] {\n float: left;\n}\n.ai-settings h3[data-v-9a99aeba] {\n\tfont-size: 16px; /* to offset against the 20px section heading */\n}\n.provider-select[data-v-9a99aeba] {\n\tmin-width: 350px !important;\n}\n.tasktype-item[data-v-9a99aeba] {\n display: flex;\n align-items: center;\n gap: 8px;\n.tasktype-name[data-v-9a99aeba] {\n flex: 1;\n margin: 0;\n}\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AdminAI.vue\"],\"names\":[],\"mappings\":\";AA4OA;CACA,kBAAA;EACA,aAAA;EACA,mBAAA;AACA;AAEA;;EAEA,YAAA;AACA;AAEA;CACA,mBAAA;CACA,8CAAA;CACA,mCAAA;CACA,gBAAA;CACA,sBAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;CACA,eAAA,EAAA,+CAAA;AACA;AAEA;CACA,2BAAA;AACA;AAEA;EACA,aAAA;EACA,mBAAA;EACA,QAAA;AACA;IACA,OAAA;IACA,SAAA;AACA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority ||= 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tlet notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn, priority] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 3012;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t3012: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(77870)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["vue_material_design_icons_ArrowDownvue_type_script_lang_js","name","emits","props","title","type","String","fillColor","default","size","Number","ArrowDown","componentNormalizer","A","_vm","this","_c","_self","_b","staticClass","attrs","role","on","click","$event","$emit","$attrs","fill","width","height","viewBox","d","_v","_s","_e","vue_material_design_icons_ArrowUpvue_type_script_lang_js","ArrowUp","vue_material_design_icons_DragVerticalvue_type_script_lang_js","DragVertical","logger","getLoggerBuilder","setApp","detectUser","build","components_AdminAIvue_type_script_lang_js","components","NcCheckboxRadioSwitch","NcSettingsSection","NcSelect","VueDraggable","vuedraggable_umd_default","DragVerticalIcon","ArrowDownIcon","ArrowUpIcon","NcButton","NcNoteCard","data","loading","dirty","groups","loadingGroups","sttProviders","loadState","translationProviders","textProcessingProviders","textProcessingTaskTypes","text2imageProviders","taskProcessingProviders","taskProcessingTaskTypes","settings","computed","hasTextProcessing","Object","keys","length","Array","isArray","tpTaskTypes","builtinTextProcessingTypes","filter","getTextProcessingTaskType","includes","hasText2ImageProviders","hasTaskProcessing","methods","moveUp","i","splice","Math","min","saveChanges","moveDown","nextTick","axios","put","generateUrl","error","find","taskType","class","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","AdminAIvue_type_style_index_0_id_9a99aeba_prod_scoped_true_lang_css","locals","AdminAI","t","description","model","value","callback","$$v","$set","expression","_l","key","id","clearable","disabled","p","map","input","scopedSlots","_u","fn","label","change","providerClass","variant","proxy","provider","__webpack_nonce__","getCSPNonce","Vue","prototype","extend","ArtificialIntelligence","$mount","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","push","module","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","_typeof","obj","Symbol","iterator","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","assign","target","arguments","source","hasOwnProperty","call","apply","_objectSpread","ownKeys","getOwnPropertySymbols","concat","sym","getOwnPropertyDescriptor","forEach","userAgent","pattern","window","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","event","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","document","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","classList","className","replace","css","prop","val","style","defaultView","getComputedStyle","currentStyle","indexOf","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","a","scaleY","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","isRectEqual","rect1","rect2","round","throttle","ms","args","setTimeout","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","Date","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","evt","_this","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","item","pullMode","lastPutMode","undefined","allEventProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","createElement","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","split","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","join","originalGroup","checkPull","checkPut","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","toString","animationCallbackId","animationStates","sort","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","get","captureAnimationState","slice","child","fromRect","thisAnimationDuration","childMatrix","f","e","addAnimationState","removeAnimationState","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","animated","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","str","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","path","composedPath","root","inputs","idx","checked","_saveInputCheckedState","button","isContentEditable","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","b","c","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","items","set","destroy","querySelectorAll","removeAttribute","utils","is","dst","cancelNextTick","detectDirection","element","_len","_key","create","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","_ref2","swap","prevSwapEl","_ref3","n1","n2","i1","i2","p1","p2","isEqualNode","nulling","swapItem","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","lastIndex","currentIndex","multiDragIndex","update","nullingGlobal","destroyGlobal","shift","select","deselect","_this3","oldIndicies","newIndicies","arr2","_arrayWithoutHoles","iter","_iterableToArray","TypeError","_nonIterableSpread","clones","toLowerCase","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","factory","self","__WEBPACK_EXTERNAL_MODULE_a352__","modules","installedModules","__nested_webpack_require_688__","moduleId","exports","l","m","getter","o","r","toStringTag","mode","__esModule","ns","object","property","s","__nested_webpack_require_4164__","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","P","F","__nested_webpack_require_7070__","toInteger","defined","TO_STRING","that","pos","__nested_webpack_require_7783__","at","S","unicode","__nested_webpack_require_8134__","anObject","result","global","ignoreCase","multiline","sticky","__nested_webpack_require_8593__","$keys","enumBugKeys","O","__nested_webpack_require_8892__","dP","getKeys","defineProperties","Properties","__nested_webpack_require_9392__","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","done","strfn","rxfn","RegExp","string","arg","__nested_webpack_require_12849__","isObject","it","__nested_webpack_require_13233__","cof","ARG","T","B","tryGet","callee","__nested_webpack_require_14160__","has","SRC","$toString","TPL","inspectSource","safe","isFunction","Function","__nested_webpack_require_15334__","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","contentWindow","open","write","lt","close","__nested_webpack_require_16945__","uid","USE_SYMBOL","__nested_webpack_require_17667__","context","INCLUDES","searchString","__nested_webpack_require_18235__","createDesc","__nested_webpack_require_18611__","toObject","ObjectProto","__nested_webpack_require_19205__","descriptor","__nested_webpack_require_19831__","ceil","isNaN","bitmap","__nested_webpack_require_20609__","__nested_webpack_require_20831__","MATCH","__nested_webpack_require_21176__","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","__nested_webpack_require_23109__","core","SHARED","copyright","__nested_webpack_require_23642__","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","__nested_webpack_require_25367__","__nested_webpack_require_25845__","classof","builtinExec","__nested_webpack_require_26551__","shared","__nested_webpack_require_26811__","__nested_webpack_require_27194__","$includes","__nested_webpack_require_27659__","IObject","__nested_webpack_require_28155__","valueOf","__nested_webpack_require_28898__","gOPS","pIE","$assign","K","k","aLen","getSymbols","isEnum","j","__g","__nested_webpack_require_30635__","__nested_webpack_require_31112__","def","tag","stat","__e","__nested_webpack_require_31751__","IE8_DOM_DEFINE","toPrimitive","Attributes","__nested_webpack_require_32441__","aFunction","__nested_webpack_require_33048__","UNSCOPABLES","ArrayProto","__nested_webpack_require_33448__","__nested_webpack_require_33750__","a352","a481","__nested_webpack_require_34139__","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","aae3","__nested_webpack_require_38885__","isRegExp","ac6a","__nested_webpack_require_39282__","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","b0c5","__nested_webpack_require_41209__","forced","be13","c366","__nested_webpack_require_41706__","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","c649","__nested_webpack_exports__","__nested_webpack_require_42729__","insertNodeAt","camelize","console","removeNode","cache","regex","node","parentElement","fatherNode","refNode","c69a","__nested_webpack_require_44512__","c8ba","g","ca5a","px","random","cadf","__nested_webpack_require_45568__","addToUnscopables","step","iterated","_t","_i","_k","Arguments","cb7c","__nested_webpack_require_46777__","ce10","__nested_webpack_require_47019__","arrayIndexOf","d2c8","__nested_webpack_require_47655__","d3f4","d53b","d8e8","e11e","f559","__nested_webpack_require_48796__","STARTS_WITH","$startsWith","startsWith","search","f6fd","currentScript","scripts","Error","stack","readyState","f751","__nested_webpack_require_50913__","fa5b","__nested_webpack_require_51166__","fab2","__nested_webpack_require_51344__","fb15","__nested_webpack_require_51548__","setPublicPath_i","_arrayLikeToArray","len","_unsupportedIterableToArray","minLen","_toConsumableArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","emit","evtName","evtData","$nextTick","delegateAndEmit","realList","isTransitionName","getSlot","slot","scopedSlot","eventsListened","eventsToEmit","readonlyProperties","draggingElement","draggableComponent","inheritAttrs","required","noTransitionOnDrag","Boolean","original","move","componentData","transitionMode","noneFunctionalComponentMode","render","h","slots","$slots","componentOptions","_arrayWithHoles","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","header","footer","computeChildrenAndOffsets","$scopedSlots","attributes","propName","buildAttribute","reduce","componentDataAttrs","getComponentAttributes","getTag","created","warn","mounted","$el","getIsFunctional","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","beforeDestroy","watch","handler","newOptionValue","updateOptions","deep","fnOptions","_vnode","functional","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","isTransition","elmFromNodes","elm","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","vnodes","getUnderlyingPotencialDraggableComponent","vue","__vue__","$options","_componentTag","$parent","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","component","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedContext","futureIndex","onDragEnd","vuedraggable","__webpack_require__","__webpack_module_cache__","cachedModule","loaded","__webpack_modules__","deferred","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","cw","mod","definition","binding","Promise","resolve","hasOwn","nmd","paths","dn","baseURI","location","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","globalThis","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"settings-vue-settings-admin-ai.js?v=ecb623ce269ca282ae46","mappings":"2KAoBA,MCpB4GA,EDoB5G,CACAC,KAAA,gBACAC,MAAA,UACAC,MAAA,CACAC,MAAA,CACAC,KAAAC,QAEAC,UAAA,CACAF,KAAAC,OACAE,QAAA,gBAEAC,KAAA,CACAJ,KAAAK,OACAF,QAAA,qBEfA,MAAAG,GAXgB,EAAAC,EAAAC,GACdb,ECRQ,WAAqB,IAAAc,EAAAC,KAAAC,EAAAF,EAAAG,MAAAD,GAA6B,OAAAA,EAAA,OAAAF,EAAAI,GAAA,CAAyBC,YAAA,uCAAAC,MAAA,CAA0D,cAAAN,EAAAV,MAAA,yBAAAU,EAAAV,MAAAiB,KAAA,OAA4EC,GAAA,CAAKC,MAAA,SAAAC,GAAyB,OAAAV,EAAAW,MAAA,QAAAD,EAAA,IAAoC,OAAAV,EAAAY,QAAA,IAAAV,EAAA,OAAqCG,YAAA,4BAAAC,MAAA,CAA+CO,KAAAb,EAAAP,UAAAqB,MAAAd,EAAAL,KAAAoB,OAAAf,EAAAL,KAAAqB,QAAA,cAA+E,CAAAd,EAAA,QAAaI,MAAA,CAAOW,EAAA,4EAA+E,CAAAjB,EAAA,MAAAE,EAAA,SAAAF,EAAAkB,GAAAlB,EAAAmB,GAAAnB,EAAAV,UAAAU,EAAAoB,UACniB,EACmB,IDSnB,EACA,KACA,KACA,cEd0GC,ECoB1G,CACAlC,KAAA,cACAC,MAAA,UACAC,MAAA,CACAC,MAAA,CACAC,KAAAC,QAEAC,UAAA,CACAF,KAAAC,OACAE,QAAA,gBAEAC,KAAA,CACAJ,KAAAK,OACAF,QAAA,MCfA4B,GAXgB,EAAAxB,EAAAC,GACdsB,ECRQ,WAAqB,IAAArB,EAAAC,KAAAC,EAAAF,EAAAG,MAAAD,GAA6B,OAAAA,EAAA,OAAAF,EAAAI,GAAA,CAAyBC,YAAA,qCAAAC,MAAA,CAAwD,cAAAN,EAAAV,MAAA,yBAAAU,EAAAV,MAAAiB,KAAA,OAA4EC,GAAA,CAAKC,MAAA,SAAAC,GAAyB,OAAAV,EAAAW,MAAA,QAAAD,EAAA,IAAoC,OAAAV,EAAAY,QAAA,IAAAV,EAAA,OAAqCG,YAAA,4BAAAC,MAAA,CAA+CO,KAAAb,EAAAP,UAAAqB,MAAAd,EAAAL,KAAAoB,OAAAf,EAAAL,KAAAqB,QAAA,cAA+E,CAAAd,EAAA,QAAaI,MAAA,CAAOW,EAAA,2EAA8E,CAAAjB,EAAA,MAAAE,EAAA,SAAAF,EAAAkB,GAAAlB,EAAAmB,GAAAnB,EAAAV,UAAAU,EAAAoB,UAChiB,EACmB,IDSnB,EACA,KACA,KACA,cEd+GG,ECoB/G,CACApC,KAAA,mBACAC,MAAA,UACAC,MAAA,CACAC,MAAA,CACAC,KAAAC,QAEAC,UAAA,CACAF,KAAAC,OACAE,QAAA,gBAEAC,KAAA,CACAJ,KAAAK,OACAF,QAAA,MCfA8B,GAXgB,EAAA1B,EAAAC,GACdwB,ECRQ,WAAqB,IAAAvB,EAAAC,KAAAC,EAAAF,EAAAG,MAAAD,GAA6B,OAAAA,EAAA,OAAAF,EAAAI,GAAA,CAAyBC,YAAA,0CAAAC,MAAA,CAA6D,cAAAN,EAAAV,MAAA,yBAAAU,EAAAV,MAAAiB,KAAA,OAA4EC,GAAA,CAAKC,MAAA,SAAAC,GAAyB,OAAAV,EAAAW,MAAA,QAAAD,EAAA,IAAoC,OAAAV,EAAAY,QAAA,IAAAV,EAAA,OAAqCG,YAAA,4BAAAC,MAAA,CAA+CO,KAAAb,EAAAP,UAAAqB,MAAAd,EAAAL,KAAAoB,OAAAf,EAAAL,KAAAqB,QAAA,cAA+E,CAAAd,EAAA,QAAaI,MAAA,CAAOW,EAAA,oKAAuK,CAAAjB,EAAA,MAAAE,EAAA,SAAAF,EAAAkB,GAAAlB,EAAAmB,GAAAnB,EAAAV,UAAAU,EAAAoB,UAC9nB,EACmB,IDSnB,EACA,KACA,KACA,cETAK,GAAeC,WAAAA,MACVC,OAAO,YACPC,aACAC,QCR8KC,ECyInL,CACA3C,KAAA,UACA4C,WAAA,CACAC,sBAAAA,EAAAjC,EACAkC,kBAAAA,EAAAlC,EACAmC,SAAAA,EAAA,QACAC,aAAAC,IACAC,iBAAAb,EACAc,cAAAzC,EACA0C,YAAAjB,EACAkB,SAAAA,EAAAzC,EACA0C,WAAAA,EAAAA,GAGAC,KAAAA,KACA,CACAC,SAAA,EACAC,OAAA,EACAC,OAAA,GACAC,eAAA,EACAC,cAAAC,EAAAA,EAAAA,GAAA,+BACAC,sBAAAD,EAAAA,EAAAA,GAAA,uCACAE,yBAAAF,EAAAA,EAAAA,GAAA,2CACAG,yBAAAH,EAAAA,EAAAA,GAAA,4CACAI,qBAAAJ,EAAAA,EAAAA,GAAA,sCACAK,yBAAAL,EAAAA,EAAAA,GAAA,2CACAM,yBAAAN,EAAAA,EAAAA,GAAA,4CACAO,UAAAP,EAAAA,EAAAA,GAAA,4BAIAQ,SAAA,CACAC,iBAAAA,GACA,OAAAC,OAAAC,KAAA1D,KAAAsD,SAAA,2CAAAK,OAAA,GAAAC,MAAAC,QAAA7D,KAAAkD,wBACA,EAEAY,WAAAA,GACA,MAAAC,EAAA,CACA,0CACA,wCACA,uCACA,uCAEA,OAAAN,OAAAC,KAAA1D,KAAAsD,SAAA,2CACAU,OAAA1E,KAAAU,KAAAiE,0BAAA3E,IACA0E,OAAA1E,IAAAyE,EAAAG,SAAA5E,GACA,EAEA6E,sBAAAA,GACA,OAAAnE,KAAAmD,oBAAAQ,OAAA,CACA,EAEAS,iBAAAA,GACA,OAAAX,OAAAC,KAAA1D,KAAAsD,SAAA,2CAAAK,OAAA,GAAAC,MAAAC,QAAA7D,KAAAqD,wBACA,GAGAgB,QAAA,CACAC,MAAAA,CAAAC,GACAvE,KAAAsD,SAAA,uCAAAkB,OACAC,KAAAC,IAAAH,EAAA,KACA,KACAvE,KAAAsD,SAAA,uCAAAkB,OAAAD,EAAA,IAEAvE,KAAA2E,aACA,EAEAC,QAAAA,CAAAL,GACAvE,KAAAsD,SAAA,uCAAAkB,OACAD,EAAA,EACA,KACAvE,KAAAsD,SAAA,uCAAAkB,OAAAD,EAAA,IAEAvE,KAAA2E,aACA,EAEA,iBAAAA,GACA3E,KAAA0C,SAAA,QACAmC,EAAAA,EAAAA,MACA,MAAApC,EAAA,CAAAa,SAAAtD,KAAAsD,UACA,UACAwB,EAAAA,GAAAC,KAAAC,EAAAA,EAAAA,IAAA,0BAAAvC,EACA,OAAAwC,GACAzD,EAAAyD,MAAA,0BAAAA,SACA,CACAjF,KAAA0C,SAAA,CACA,EAEAuB,yBAAAA,CAAA3E,GACA,OAAAsE,MAAAC,QAAA7D,KAAAkD,yBAGAlD,KAAAkD,wBAAAgC,KAAAC,GAAAA,EAAAC,QAAA9F,GAFA,IAGA,0IC3NA+F,EAAA,GAEAA,EAAAC,kBAA4BC,IAC5BF,EAAAG,cAAwBC,IACxBJ,EAAAK,OAAiBC,IAAAC,KAAa,aAC9BP,EAAAQ,OAAiBC,IACjBT,EAAAU,mBAA6BC,IAEhBC,IAAIC,EAAApG,EAAOuF,GAKFa,EAAApG,GAAWoG,EAAApG,EAAOqG,QAAUD,EAAApG,EAAOqG,OCLzD,MAAAC,GAXgB,EAAAvG,EAAAC,GACd+B,ECTW,WAAkB,IAAI9B,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,YAAY,eAAe,CAACH,EAAG,oBAAoB,CAACI,MAAM,CAACnB,KAAOa,EAAIsG,EAAE,WAAY,2BAA2BC,YAAcvG,EAAIsG,EAAE,WAAY,8GAA8G,CAACpG,EAAG,wBAAwB,CAACI,MAAM,CAACf,KAAO,UAAUiB,GAAG,CAAC,oBAAoBR,EAAI4E,aAAa4B,MAAM,CAACC,MAAOzG,EAAIuD,SAAS,4BAA6BmD,SAAS,SAAUC,GAAM3G,EAAI4G,KAAK5G,EAAIuD,SAAU,2BAA4BoD,EAAI,EAAEE,WAAW,yCAAyC,CAAC7G,EAAIkB,GAAG,WAAWlB,EAAImB,GAAGnB,EAAIsG,EAAE,WAAY,mCAAmC,YAAYtG,EAAIkB,GAAG,KAAKhB,EAAG,KAAK,CAACF,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAIsG,EAAE,WAAY,+BAA+BtG,EAAIkB,GAAG,KAAKlB,EAAI8G,GAAI9G,EAAIsD,wBAAyB,SAAS/D,GAAM,MAAO,CAACW,EAAG,MAAM,CAAC6G,IAAIxH,EAAKc,YAAY,iBAAiB,CAACH,EAAG,IAAI,CAACG,YAAY,iBAAiB,CAACL,EAAIkB,GAAG,eAAelB,EAAImB,GAAG5B,EAAKJ,MAAM,gBAAgBa,EAAIkB,GAAG,KAAKhB,EAAG,wBAAwB,CAACI,MAAM,CAACf,KAAO,UAAUiB,GAAG,CAAC,oBAAoBR,EAAI4E,aAAa4B,MAAM,CAACC,MAAOzG,EAAIuD,SAAS,sCAAsChE,EAAKyH,IAAKN,SAAS,SAAUC,GAAM3G,EAAI4G,KAAK5G,EAAIuD,SAAS,sCAAuChE,EAAKyH,GAAIL,EAAI,EAAEE,WAAW,4DAA4D,CAAC7G,EAAIkB,GAAG,eAAelB,EAAImB,GAAGnB,EAAIsG,EAAE,WAAY,WAAW,gBAAgBpG,EAAG,WAAW,CAACG,YAAY,kBAAkBC,MAAM,CAAC2G,WAAY,EAAMC,UAAYlH,EAAIuD,SAAS,sCAAsChE,EAAKyH,IAAI1B,QAAUtF,EAAIqD,wBAAwBY,OAAOkD,GAAKA,EAAE/B,WAAa7F,EAAKyH,IAAII,IAAID,GAAKA,EAAEH,KAAKxG,GAAG,CAAC6G,MAAQrH,EAAI4E,aAAa0C,YAAYtH,EAAIuH,GAAG,CAAC,CAACR,IAAI,SAASS,GAAG,UAASC,MAAEA,IAAS,MAAO,CAACzH,EAAIkB,GAAG,iBAAiBlB,EAAImB,GAAGnB,EAAIqD,wBAAwB8B,KAAKgC,GAAKA,EAAEH,KAAOS,IAAQtI,MAAM,gBAAgB,GAAG,CAAC4H,IAAI,kBAAkBS,GAAG,UAASC,MAAEA,IAAS,MAAO,CAACzH,EAAIkB,GAAG,iBAAiBlB,EAAImB,GAAGnB,EAAIqD,wBAAwB8B,KAAKgC,GAAKA,EAAEH,KAAOS,IAAQtI,MAAM,gBAAgB,IAAI,MAAK,GAAMqH,MAAM,CAACC,MAAOzG,EAAIuD,SAAS,0CAA0ChE,EAAKyH,IAAKN,SAAS,SAAUC,GAAM3G,EAAI4G,KAAK5G,EAAIuD,SAAS,0CAA2ChE,EAAKyH,GAAIL,EAAI,EAAEE,WAAW,kEAAkE,GAAG,GAAG7G,EAAIkB,GAAG,KAAOlB,EAAIqE,kBAAyMrE,EAAIoB,KAA1L,CAAClB,EAAG,aAAa,CAACI,MAAM,CAACf,KAAO,SAAS,CAACS,EAAIkB,GAAG,aAAalB,EAAImB,GAAGnB,EAAIsG,EAAE,WAAY,gFAAgF,gBAAyB,GAAGtG,EAAIkB,GAAG,KAAKhB,EAAG,oBAAoB,CAACI,MAAM,CAACnB,KAAOa,EAAIsG,EAAE,WAAY,uBAAuBC,YAAcvG,EAAIsG,EAAE,WAAY,oKAAoK,CAACpG,EAAG,eAAe,CAACM,GAAG,CAACkH,OAAS1H,EAAI4E,aAAa4B,MAAM,CAACC,MAAOzG,EAAIuD,SAAS,uCAAwCmD,SAAS,SAAUC,GAAM3G,EAAI4G,KAAK5G,EAAIuD,SAAU,sCAAuCoD,EAAI,EAAEE,WAAW,oDAAoD7G,EAAI8G,GAAI9G,EAAIuD,SAAS,uCAAwC,SAASoE,EAAcnD,GAAG,OAAOtE,EAAG,MAAM,CAAC6G,IAAIY,EAActH,YAAY,mBAAmB,CAACH,EAAG,oBAAoBF,EAAIkB,GAAG,KAAKhB,EAAG,OAAO,CAACG,YAAY,qBAAqB,CAACL,EAAIkB,GAAGlB,EAAImB,GAAGqD,EAAI,MAAMxE,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGnB,EAAIiD,qBAAqBkC,KAAKgC,GAAKA,EAAE9B,QAAUsC,IAAgBxI,MAAM,cAAce,EAAG,WAAW,CAACI,MAAM,CAAC,aAAa,UAAUsH,QAAU,YAAYpH,GAAG,CAACC,MAAQ,SAASC,GAAQ,OAAOV,EAAIuE,OAAOC,EAAE,GAAG8C,YAAYtH,EAAIuH,GAAG,CAAC,CAACR,IAAI,OAAOS,GAAG,WAAW,MAAO,CAACtH,EAAG,eAAe,EAAE2H,OAAM,IAAO,MAAK,KAAQ7H,EAAIkB,GAAG,KAAKhB,EAAG,WAAW,CAACI,MAAM,CAAC,aAAa,YAAYsH,QAAU,YAAYpH,GAAG,CAACC,MAAQ,SAASC,GAAQ,OAAOV,EAAI6E,SAASL,EAAE,GAAG8C,YAAYtH,EAAIuH,GAAG,CAAC,CAACR,IAAI,OAAOS,GAAG,WAAW,MAAO,CAACtH,EAAG,iBAAiB,EAAE2H,OAAM,IAAO,MAAK,MAAS,EAAE,GAAG,IAAI,GAAG7H,EAAIkB,GAAG,KAAKhB,EAAG,oBAAoB,CAACI,MAAM,CAACnB,KAAOa,EAAIsG,EAAE,WAAY,oBAAoBC,YAAcvG,EAAIsG,EAAE,WAAY,uGAAuG,CAACtG,EAAI8G,GAAI9G,EAAIoD,oBAAqB,SAAS0E,GAAU,MAAO,CAAC5H,EAAG,wBAAwB,CAAC6G,IAAIe,EAASd,GAAG1G,MAAM,CAACmG,MAAQqB,EAASd,GAAG7H,KAAO,sBAAsBI,KAAO,SAASiB,GAAG,CAAC,oBAAoBR,EAAI4E,aAAa4B,MAAM,CAACC,MAAOzG,EAAIuD,SAAS,0BAA2BmD,SAAS,SAAUC,GAAM3G,EAAI4G,KAAK5G,EAAIuD,SAAU,yBAA0BoD,EAAI,EAAEE,WAAW,uCAAuC,CAAC7G,EAAIkB,GAAG,aAAalB,EAAImB,GAAG2G,EAAS3I,MAAM,cAAc,GAAGa,EAAIkB,GAAG,KAAOlB,EAAIoE,uBAA+MpE,EAAIoB,KAA3L,CAAClB,EAAG,aAAa,CAACI,MAAM,CAACf,KAAO,SAAS,CAACS,EAAIkB,GAAG,aAAalB,EAAImB,GAAGnB,EAAIsG,EAAE,WAAY,iFAAiF,gBAAyB,GAAGtG,EAAIkB,GAAG,KAAKhB,EAAG,oBAAoB,CAACI,MAAM,CAACnB,KAAOa,EAAIsG,EAAE,WAAY,mBAAmBC,YAAcvG,EAAIsG,EAAE,WAAY,2HAA2H,CAACtG,EAAI8G,GAAI9G,EAAI+D,YAAa,SAASxE,GAAM,MAAO,CAACW,EAAG,MAAM,CAAC6G,IAAIxH,GAAM,CAACW,EAAG,KAAK,CAACF,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAIsG,EAAE,WAAY,UAAU,IAAItG,EAAImB,GAAGnB,EAAIkE,0BAA0B3E,GAAMJ,SAASa,EAAIkB,GAAG,KAAKhB,EAAG,IAAI,CAACF,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAIkE,0BAA0B3E,GAAMgH,gBAAgBvG,EAAIkB,GAAG,KAAKhB,EAAG,IAAI,CAACF,EAAIkB,GAAG,OAAOlB,EAAIkB,GAAG,KAAKhB,EAAG,WAAW,CAACG,YAAY,kBAAkBC,MAAM,CAAC2G,WAAY,EAAM3B,QAAUtF,EAAIkD,wBAAwBe,OAAOkD,GAAKA,EAAE/B,WAAa7F,GAAM6H,IAAID,GAAKA,EAAE9B,QAAQ7E,GAAG,CAAC6G,MAAQrH,EAAI4E,aAAa0C,YAAYtH,EAAIuH,GAAG,CAAC,CAACR,IAAI,SAASS,GAAG,UAASC,MAAEA,IAAS,MAAO,CAACzH,EAAIkB,GAAG,iBAAiBlB,EAAImB,GAAGnB,EAAIkD,wBAAwBiC,KAAKgC,GAAKA,EAAE9B,QAAUoC,IAAQtI,MAAM,gBAAgB,GAAG,CAAC4H,IAAI,kBAAkBS,GAAG,UAASC,MAAEA,IAAS,MAAO,CAACzH,EAAIkB,GAAG,iBAAiBlB,EAAImB,GAAGnB,EAAIkD,wBAAwBiC,KAAKgC,GAAKA,EAAE9B,QAAUoC,IAAQtI,MAAM,gBAAgB,IAAI,MAAK,GAAMqH,MAAM,CAACC,MAAOzG,EAAIuD,SAAS,0CAA0ChE,GAAOmH,SAAS,SAAUC,GAAM3G,EAAI4G,KAAK5G,EAAIuD,SAAS,0CAA2ChE,EAAMoH,EAAI,EAAEE,WAAW,8DAA8D7G,EAAIkB,GAAG,KAAKhB,EAAG,IAAI,CAACF,EAAIkB,GAAG,QAAQ,GAAG,GAAGlB,EAAIkB,GAAG,KAAiC,IAA3BlB,EAAI+D,YAAYH,OAAc,CAAC1D,EAAG,aAAa,CAACI,MAAM,CAACf,KAAO,SAAS,CAACS,EAAIkB,GAAG,aAAalB,EAAImB,GAAGnB,EAAIsG,EAAE,WAAY,+GAA+G,eAAetG,EAAIoB,MAAM,IAAI,EACp3M,EACsB,IDUtB,EACA,KACA,WACA,cEPA2G,EAAAA,IAAoBC,EAAAA,EAAAA,MAEpBC,EAAAA,GAAIC,UAAU5B,EAAIA,GAGlB,IADa2B,EAAAA,GAAIE,OAAOC,KACbC,OAAO,6ECVlBC,QAA8BC,GAA4BC,KAE1DF,EAAAG,KAAA,CAAAC,EAAA1B,GAAA,0yBAmCA,IAAO2B,QAAA,EAAAC,QAAA,yDAAAC,MAAA,GAAAC,SAAA,mRAAkXC,eAAA,+tUAA0tUC,WAAA,MAEnlV,MAAAC,EAAA,8CCpCA,SAAAC,EAAAC,GAWA,OATAD,EADA,mBAAAE,QAAA,iBAAAA,OAAAC,SACA,SAAAF,GACA,cAAAA,CACA,EAEA,SAAAA,GACA,OAAAA,GAAA,mBAAAC,QAAAD,EAAAG,cAAAF,QAAAD,IAAAC,OAAAlB,UAAA,gBAAAiB,CACA,EAGAD,EAAAC,EACA,CAEA,SAAAI,EAAAJ,EAAApC,EAAAN,GAYA,OAXAM,KAAAoC,EACAzF,OAAA8F,eAAAL,EAAApC,EAAA,CACAN,MAAAA,EACAgD,YAAA,EACAC,cAAA,EACAC,UAAA,IAGAR,EAAApC,GAAAN,EAGA0C,CACA,CAEA,SAAAS,IAeA,OAdAA,EAAAlG,OAAAmG,QAAA,SAAAC,GACA,QAAAtF,EAAA,EAAoBA,EAAAuF,UAAAnG,OAAsBY,IAAA,CAC1C,IAAAwF,EAAAD,UAAAvF,GAEA,QAAAuC,KAAAiD,EACAtG,OAAAwE,UAAA+B,eAAAC,KAAAF,EAAAjD,KACA+C,EAAA/C,GAAAiD,EAAAjD,GAGA,CAEA,OAAA+C,CACA,EAEAF,EAAAO,MAAAlK,KAAA8J,UACA,CAEA,SAAAK,EAAAN,GACA,QAAAtF,EAAA,EAAkBA,EAAAuF,UAAAnG,OAAsBY,IAAA,CACxC,IAAAwF,EAAA,MAAAD,UAAAvF,GAAAuF,UAAAvF,GAAA,GACA6F,EAAA3G,OAAAC,KAAAqG,GAEA,mBAAAtG,OAAA4G,wBACAD,EAAAA,EAAAE,OAAA7G,OAAA4G,sBAAAN,GAAA/F,OAAA,SAAAuG,GACA,OAAA9G,OAAA+G,yBAAAT,EAAAQ,GAAAf,UACA,KAGAY,EAAAK,QAAA,SAAA3D,GACAwC,EAAAO,EAAA/C,EAAAiD,EAAAjD,GACA,EACA,CAEA,OAAA+C,CACA,CA4DA,SAAAa,EAAAC,GACA,uBAAAC,QAAAA,OAAAC,UACA,QAEAA,UAAAH,UAAAI,MAAAH,EAEA,8DAEA,IAAAI,EAAAL,EAAA,yDACAM,EAAAN,EAAA,SACAO,EAAAP,EAAA,YACAQ,EAAAR,EAAA,aAAAA,EAAA,aAAAA,EAAA,YACAS,EAAAT,EAAA,mBACAU,EAAAV,EAAA,YAAAA,EAAA,YAEAW,EAAA,CACAC,SAAA,EACAC,SAAA,GAGA,SAAAhL,EAAAiL,EAAAC,EAAAlE,GACAiE,EAAAE,iBAAAD,EAAAlE,GAAAwD,GAAAM,EACA,CAEA,SAAAM,EAAAH,EAAAC,EAAAlE,GACAiE,EAAAI,oBAAAH,EAAAlE,GAAAwD,GAAAM,EACA,CAEA,SAAAQ,EAEAL,EAEAM,GACA,GAAAA,EAAA,CAGA,GAFA,MAAAA,EAAA,KAAAA,EAAAA,EAAAC,UAAA,IAEAP,EACA,IACA,GAAAA,EAAAK,QACA,OAAAL,EAAAK,QAAAC,GACQ,GAAAN,EAAAQ,kBACR,OAAAR,EAAAQ,kBAAAF,GACQ,GAAAN,EAAAS,sBACR,OAAAT,EAAAS,sBAAAH,EAEA,CAAM,MAAAI,GACN,QACA,CAGA,QAjBA,CAkBA,CAEA,SAAAC,EAAAX,GACA,OAAAA,EAAAY,MAAAZ,IAAAa,UAAAb,EAAAY,KAAAE,SAAAd,EAAAY,KAAAZ,EAAAe,UACA,CAEA,SAAAC,EAEAhB,EAEAM,EAEAW,EAAAC,GACA,GAAAlB,EAAA,CACAiB,EAAAA,GAAAJ,SAEA,GACA,SAAAP,IAAA,MAAAA,EAAA,GAAAN,EAAAe,aAAAE,GAAAZ,EAAAL,EAAAM,GAAAD,EAAAL,EAAAM,KAAAY,GAAAlB,IAAAiB,EACA,OAAAjB,EAGA,GAAAA,IAAAiB,EAAA,KAEA,OAAMjB,EAAAW,EAAAX,GACN,CAEA,WACA,CAEA,IAgWAmB,EAhWAC,EAAA,OAEA,SAAAC,EAAArB,EAAAtM,EAAA4N,GACA,GAAAtB,GAAAtM,EACA,GAAAsM,EAAAuB,UACAvB,EAAAuB,UAAAD,EAAA,gBAAA5N,OACM,CACN,IAAA8N,GAAA,IAAAxB,EAAAwB,UAAA,KAAAC,QAAAL,EAAA,KAAAK,QAAA,IAAA/N,EAAA,SACAsM,EAAAwB,WAAAA,GAAAF,EAAA,IAAA5N,EAAA,KAAA+N,QAAAL,EAAA,IACA,CAEA,CAEA,SAAAM,EAAA1B,EAAA2B,EAAAC,GACA,IAAAC,EAAA7B,GAAAA,EAAA6B,MAEA,GAAAA,EAAA,CACA,YAAAD,EAOA,OANAf,SAAAiB,aAAAjB,SAAAiB,YAAAC,iBACAH,EAAAf,SAAAiB,YAAAC,iBAAA/B,EAAA,IACQA,EAAAgC,eACRJ,EAAA5B,EAAAgC,mBAGA,IAAAL,EAAAC,EAAAA,EAAAD,GAEAA,KAAAE,IAAA,IAAAF,EAAAM,QAAA,YACAN,EAAA,WAAAA,GAGAE,EAAAF,GAAAC,GAAA,iBAAAA,EAAA,QAEA,CACA,CAEA,SAAAM,EAAAlC,EAAAmC,GACA,IAAAC,EAAA,GAEA,oBAAApC,EACAoC,EAAApC,OAEA,GACA,IAAAqC,EAAAX,EAAA1B,EAAA,aAEAqC,GAAA,SAAAA,IACAD,EAAAC,EAAA,IAAAD,EAIA,QAAMD,IAAAnC,EAAAA,EAAAe,aAGN,IAAAuB,EAAAlD,OAAAmD,WAAAnD,OAAAoD,iBAAApD,OAAAqD,WAAArD,OAAAsD,YAGA,OAAAJ,GAAA,IAAAA,EAAAF,EACA,CAEA,SAAA1I,EAAAuH,EAAA0B,EAAA/E,GACA,GAAAqD,EAAA,CACA,IAAA2B,EAAA3B,EAAA4B,qBAAAF,GACA5J,EAAA,EACA+J,EAAAF,EAAAzK,OAEA,GAAAyF,EACA,KAAa7E,EAAA+J,EAAO/J,IACpB6E,EAAAgF,EAAA7J,GAAAA,GAIA,OAAA6J,CACA,CAEA,QACA,CAEA,SAAAG,IAGA,OAFAlC,SAAAmC,kBAKAnC,SAAAoC,eAEA,CAYA,SAAAC,EAAAlD,EAAAmD,EAAAC,EAAAC,EAAAC,GACA,GAAAtD,EAAAuD,uBAAAvD,IAAAZ,OAAA,CACA,IAAAoE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAtO,EAAAD,EAmBA,GAjBA2K,IAAAZ,QAAAY,IAAA+C,KAEAU,GADAD,EAAAxD,EAAAuD,yBACAE,IACAC,EAAAF,EAAAE,KACAC,EAAAH,EAAAG,OACAC,EAAAJ,EAAAI,MACAtO,EAAAkO,EAAAlO,OACAD,EAAAmO,EAAAnO,QAEAoO,EAAA,EACAC,EAAA,EACAC,EAAAvE,OAAAyE,YACAD,EAAAxE,OAAA0E,WACAxO,EAAA8J,OAAAyE,YACAxO,EAAA+J,OAAA0E,aAGAX,GAAAC,IAAApD,IAAAZ,SAEAkE,EAAAA,GAAAtD,EAAAe,YAGAxB,GACA,GACA,GAAA+D,GAAAA,EAAAC,wBAAA,SAAA7B,EAAA4B,EAAA,cAAAF,GAAA,WAAA1B,EAAA4B,EAAA,cACA,IAAAS,EAAAT,EAAAC,wBAEAE,GAAAM,EAAAN,IAAAO,SAAAtC,EAAA4B,EAAA,qBACAI,GAAAK,EAAAL,KAAAM,SAAAtC,EAAA4B,EAAA,sBACAK,EAAAF,EAAAD,EAAAlO,OACAsO,EAAAF,EAAAF,EAAAnO,MACA,KACA,QAGQiO,EAAAA,EAAAvC,YAIR,GAAAsC,GAAArD,IAAAZ,OAAA,CAEA,IAAA6E,EAAA/B,EAAAoB,GAAAtD,GACAkE,EAAAD,GAAAA,EAAAE,EACAC,EAAAH,GAAAA,EAAAzO,EAEAyO,IAKAN,GAJAF,GAAAW,IAGA9O,GAAA8O,GAEAR,GAJAF,GAAAQ,IACA7O,GAAA6O,GAKA,CAEA,OACAT,IAAAA,EACAC,KAAAA,EACAC,OAAAA,EACAC,MAAAA,EACAvO,MAAAA,EACAC,OAAAA,EAhEA,CAkEA,CAUA,SAAA+O,EAAArE,EAAAsE,EAAAC,GAKA,IAJA,IAAAC,EAAAC,EAAAzE,GAAA,GACA0E,EAAAxB,EAAAlD,GAAAsE,GAGAE,GAAA,CACA,IAAAG,EAAAzB,EAAAsB,GAAAD,GASA,KANA,QAAAA,GAAA,SAAAA,EACAG,GAAAC,EAEAD,GAAAC,GAGA,OAAAH,EACA,GAAAA,IAAAzB,IAAA,MACAyB,EAAAC,EAAAD,GAAA,EACA,CAEA,QACA,CAWA,SAAAI,EAAA5E,EAAA6E,EAAAhL,GAKA,IAJA,IAAAiL,EAAA,EACA/L,EAAA,EACAgM,EAAA/E,EAAA+E,SAEAhM,EAAAgM,EAAA5M,QAAA,CACA,YAAA4M,EAAAhM,GAAA8I,MAAAmD,SAAAD,EAAAhM,KAAAkM,GAAAC,OAAAH,EAAAhM,KAAAkM,GAAAE,SAAAnE,EAAA+D,EAAAhM,GAAAc,EAAAuL,UAAApF,GAAA,IACA,GAAA8E,IAAAD,EACA,OAAAE,EAAAhM,GAGA+L,GACA,CAEA/L,GACA,CAEA,WACA,CASA,SAAAsM,EAAArF,EAAAM,GAGA,IAFA,IAAAgF,EAAAtF,EAAAuF,iBAEAD,IAAAA,IAAAL,GAAAC,OAAA,SAAAxD,EAAA4D,EAAA,YAAAhF,IAAAD,EAAAiF,EAAAhF,KACAgF,EAAAA,EAAAE,uBAGA,OAAAF,GAAA,IACA,CAUA,SAAAG,EAAAzF,EAAAM,GACA,IAAAmF,EAAA,EAEA,IAAAzF,IAAAA,EAAAe,WACA,SAKA,KAAAf,EAAAA,EAAAwF,wBACA,aAAAxF,EAAA0F,SAAAC,eAAA3F,IAAAiF,GAAAW,OAAAtF,IAAAD,EAAAL,EAAAM,IACAmF,IAIA,OAAAA,CACA,CASA,SAAAI,EAAA7F,GACA,IAAA8F,EAAA,EACAC,EAAA,EACAC,EAAAjD,IAEA,GAAA/C,EACA,GACA,IAAAiE,EAAA/B,EAAAlC,GACAkE,EAAAD,EAAAE,EACAC,EAAAH,EAAAzO,EACAsQ,GAAA9F,EAAAiG,WAAA/B,EACA6B,GAAA/F,EAAAkG,UAAA9B,CACA,OAAMpE,IAAAgG,IAAAhG,EAAAA,EAAAe,aAGN,OAAA+E,EAAAC,EACA,CAqBA,SAAAtB,EAAAzE,EAAAmG,GAEA,IAAAnG,IAAAA,EAAAuD,sBAAA,OAAAR,IACA,IAAAqD,EAAApG,EACAqG,GAAA,EAEA,GAEA,GAAAD,EAAAE,YAAAF,EAAAG,aAAAH,EAAAI,aAAAJ,EAAAK,aAAA,CACA,IAAAC,EAAAhF,EAAA0E,GAEA,GAAAA,EAAAE,YAAAF,EAAAG,cAAA,QAAAG,EAAAC,WAAA,UAAAD,EAAAC,YAAAP,EAAAI,aAAAJ,EAAAK,eAAA,QAAAC,EAAAE,WAAA,UAAAF,EAAAE,WAAA,CACA,IAAAR,EAAA7C,uBAAA6C,IAAAvF,SAAAgG,KAAA,OAAA9D,IACA,GAAAsD,GAAAF,EAAA,OAAAC,EACAC,GAAA,CACA,CACA,QAGID,EAAAA,EAAArF,YAEJ,OAAAgC,GACA,CAcA,SAAA+D,EAAAC,EAAAC,GACA,OAAA/N,KAAAgO,MAAAF,EAAAtD,OAAAxK,KAAAgO,MAAAD,EAAAvD,MAAAxK,KAAAgO,MAAAF,EAAArD,QAAAzK,KAAAgO,MAAAD,EAAAtD,OAAAzK,KAAAgO,MAAAF,EAAAzR,UAAA2D,KAAAgO,MAAAD,EAAA1R,SAAA2D,KAAAgO,MAAAF,EAAA1R,SAAA4D,KAAAgO,MAAAD,EAAA3R,MACA,CAIA,SAAA6R,EAAAjM,EAAAkM,GACA,kBACA,IAAAhG,EAAA,CACA,IAAAiG,EAAA9I,UAGA,IAAA8I,EAAAjP,OACA8C,EAAAwD,KAHAjK,KAGA4S,EAAA,IAEAnM,EAAAyD,MALAlK,KAKA4S,GAGAjG,EAAAkG,WAAA,WACAlG,OAAA,CACA,EAAOgG,EACP,CACA,CACA,CAOA,SAAAG,EAAAtH,EAAAuH,EAAAC,GACAxH,EAAAiG,YAAAsB,EACAvH,EAAAkG,WAAAsB,CACA,CAEA,SAAA5B,EAAA5F,GACA,IAAAyH,EAAArI,OAAAqI,QACAC,EAAAtI,OAAAuI,QAAAvI,OAAAwI,MAEA,OAAAH,GAAAA,EAAAI,IACAJ,EAAAI,IAAA7H,GAAA8H,WAAA,GACIJ,EACJA,EAAA1H,GAAA4F,OAAA,MAEA5F,EAAA8H,WAAA,EAEA,CAEA,SAAAC,EAAA/H,EAAAgI,GACAtG,EAAA1B,EAAA,uBACA0B,EAAA1B,EAAA,MAAAgI,EAAAvE,KACA/B,EAAA1B,EAAA,OAAAgI,EAAAtE,MACAhC,EAAA1B,EAAA,QAAAgI,EAAA3S,OACAqM,EAAA1B,EAAA,SAAAgI,EAAA1S,OACA,CAEA,SAAA2S,EAAAjI,GACA0B,EAAA1B,EAAA,eACA0B,EAAA1B,EAAA,UACA0B,EAAA1B,EAAA,WACA0B,EAAA1B,EAAA,YACA0B,EAAA1B,EAAA,YACA,CAEA,IAAAkI,EAAA,gBAAAC,MAAAC,UAyJA,IAAAC,EAAA,GACAC,EAAA,CACAC,qBAAA,GAEAC,EAAA,CACAC,MAAA,SAAAC,GAEA,QAAAC,KAAAL,EACAA,EAAA9J,eAAAmK,MAAAA,KAAAD,KACAA,EAAAC,GAAAL,EAAAK,IAIAN,EAAArL,KAAA0L,EACA,EACAE,YAAA,SAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAxU,KAEAA,KAAAyU,eAAA,EAEAF,EAAAG,OAAA,WACAF,EAAAC,eAAA,CACA,EAEA,IAAAE,EAAAN,EAAA,SACAR,EAAApJ,QAAA,SAAAyJ,GACAI,EAAAJ,EAAAU,cAEAN,EAAAJ,EAAAU,YAAAD,IACAL,EAAAJ,EAAAU,YAAAD,GAAAxK,EAAA,CACAmK,SAAAA,GACSC,IAKTD,EAAAjP,QAAA6O,EAAAU,aAAAN,EAAAJ,EAAAU,YAAAP,IACAC,EAAAJ,EAAAU,YAAAP,GAAAlK,EAAA,CACAmK,SAAAA,GACSC,IAET,EACA,EACAM,kBAAA,SAAAP,EAAA9I,EAAAsI,EAAAzO,GAYA,QAAA8O,KAXAN,EAAApJ,QAAA,SAAAyJ,GACA,IAAAU,EAAAV,EAAAU,WACA,GAAAN,EAAAjP,QAAAuP,IAAAV,EAAAH,oBAAA,CACA,IAAAe,EAAA,IAAAZ,EAAAI,EAAA9I,EAAA8I,EAAAjP,SACAyP,EAAAR,SAAAA,EACAQ,EAAAzP,QAAAiP,EAAAjP,QACAiP,EAAAM,GAAAE,EAEAnL,EAAAmK,EAAAgB,EAAAhB,SANA,CAOA,GAEAQ,EAAAjP,QACA,GAAAiP,EAAAjP,QAAA2E,eAAAmK,GAAA,CACA,IAAAY,EAAA/U,KAAAgV,aAAAV,EAAAH,EAAAG,EAAAjP,QAAA8O,SAEA,IAAAY,IACAT,EAAAjP,QAAA8O,GAAAY,EAJA,CAOA,EACAE,mBAAA,SAAA/V,EAAAoV,GACA,IAAAY,EAAA,GAMA,OALArB,EAAApJ,QAAA,SAAAyJ,GACA,mBAAAA,EAAAgB,iBAEAvL,EAAAuL,EAAAhB,EAAAgB,gBAAAjL,KAAAqK,EAAAJ,EAAAU,YAAA1V,GACA,GACAgW,CACA,EACAF,aAAA,SAAAV,EAAApV,EAAAsH,GACA,IAAA2O,EASA,OARAtB,EAAApJ,QAAA,SAAAyJ,GAEAI,EAAAJ,EAAAU,aAEAV,EAAAkB,iBAAA,mBAAAlB,EAAAkB,gBAAAlW,KACAiW,EAAAjB,EAAAkB,gBAAAlW,GAAA+K,KAAAqK,EAAAJ,EAAAU,YAAApO,GAEA,GACA2O,CACA,GAGA,SAAAE,EAAAC,GACA,IAAAhB,EAAAgB,EAAAhB,SACAiB,EAAAD,EAAAC,OACArW,EAAAoW,EAAApW,KACAsW,EAAAF,EAAAE,SACAC,EAAAH,EAAAG,QACAC,EAAAJ,EAAAI,KACAC,EAAAL,EAAAK,OACAC,EAAAN,EAAAM,SACAC,EAAAP,EAAAO,SACAC,EAAAR,EAAAQ,kBACAC,EAAAT,EAAAS,kBACAC,EAAAV,EAAAU,cACAC,EAAAX,EAAAW,YACAC,EAAAZ,EAAAY,qBAEA,GADA5B,EAAAA,GAAAiB,GAAAA,EAAA7B,GACA,CACA,IAAAa,EACAlP,EAAAiP,EAAAjP,QACA8Q,EAAA,KAAAjX,EAAAkX,OAAA,GAAAjF,cAAAjS,EAAAmX,OAAA,IAEAzL,OAAA0L,aAAAvL,GAAAC,GAMAuJ,EAAAlI,SAAAkK,YAAA,UACAC,UAAAtX,GAAA,MANAqV,EAAA,IAAA+B,YAAApX,EAAA,CACAuX,SAAA,EACAC,YAAA,IAOAnC,EAAAoC,GAAAjB,GAAAH,EACAhB,EAAAqC,KAAAjB,GAAAJ,EACAhB,EAAAsC,KAAArB,GAAAD,EACAhB,EAAAnD,MAAAqE,EACAlB,EAAAqB,SAAAA,EACArB,EAAAsB,SAAAA,EACAtB,EAAAuB,kBAAAA,EACAvB,EAAAwB,kBAAAA,EACAxB,EAAAyB,cAAAA,EACAzB,EAAAuC,SAAAb,EAAAA,EAAAc,iBAAAC,EAEA,IAAAC,EAAA9M,EAAA,GAA2C+L,EAAAlC,EAAAiB,mBAAA/V,EAAAoV,IAE3C,QAAAH,KAAA8C,EACA1C,EAAAJ,GAAA8C,EAAA9C,GAGAoB,GACAA,EAAAF,cAAAd,GAGAlP,EAAA8Q,IACA9Q,EAAA8Q,GAAAlM,KAAAqK,EAAAC,EArCA,CAuCA,CAEA,IAAAH,EAAA,SAAAC,EAAAC,GACA,IAAAgB,EAAAxL,UAAAnG,OAAA,QAAAqT,IAAAlN,UAAA,GAAAA,UAAA,MACAkM,EAAAV,EAAAf,IACA9R,EAn0BA,SAAAsH,EAAAmN,GACA,SAAAnN,EAAA,SAEA,IAEAjD,EAAAvC,EAFAsF,EAlBA,SAAAE,EAAAmN,GACA,SAAAnN,EAAA,SACA,IAEAjD,EAAAvC,EAFAsF,EAAA,GACAsN,EAAA1T,OAAAC,KAAAqG,GAGA,IAAAxF,EAAA,EAAcA,EAAA4S,EAAAxT,OAAuBY,IACrCuC,EAAAqQ,EAAA5S,GACA2S,EAAAzJ,QAAA3G,IAAA,IACA+C,EAAA/C,GAAAiD,EAAAjD,IAGA,OAAA+C,CACA,CAKAuN,CAAArN,EAAAmN,GAIA,GAAAzT,OAAA4G,sBAAA,CACA,IAAAgN,EAAA5T,OAAA4G,sBAAAN,GAEA,IAAAxF,EAAA,EAAgBA,EAAA8S,EAAA1T,OAA6BY,IAC7CuC,EAAAuQ,EAAA9S,GACA2S,EAAAzJ,QAAA3G,IAAA,GACArD,OAAAwE,UAAAqP,qBAAArN,KAAAF,EAAAjD,KACA+C,EAAA/C,GAAAiD,EAAAjD,GAEA,CAEA,OAAA+C,CACA,CAgzBA0N,CAAAjC,EAAA,SAEAtB,EAAAI,YAAAxO,KAAA6K,GAAAuD,CAAAK,EAAAC,EAAAnK,EAAA,CACAqN,OAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAnC,OAAAA,EACAoC,OAAAA,EACAC,WAAAA,EACAnC,QAAAA,EACAoC,YAAAA,GACAC,YAAAC,GACA9B,YAAAA,GACA+B,eAAAvH,GAAAwH,OACAjC,cAAAA,EACAJ,SAAAA,GACAE,kBAAAA,GACAD,SAAAA,GACAE,kBAAAA,GACAmC,mBAAAC,GACAC,qBAAAC,GACAC,eAAA,WACAT,IAAA,CACA,EACAU,cAAA,WACAV,IAAA,CACA,EACAW,sBAAA,SAAAtZ,GACAuZ,EAAA,CACAnE,SAAAA,EACApV,KAAAA,EACA8W,cAAAA,GAEA,GACGvT,GACH,EAEA,SAAAgW,EAAAC,GACArD,EAAAlL,EAAA,CACA8L,YAAAA,GACAR,QAAAA,EACAD,SAAAgC,EACAjC,OAAAA,EACAK,SAAAA,GACAE,kBAAAA,GACAD,SAAAA,GACAE,kBAAAA,IACG2C,GACH,CAEA,IAAAlB,EACAC,EACAC,EACAnC,EACAoC,EACAC,EACAnC,EACAoC,GACAjC,GACAC,GACAC,GACAC,GACA4C,GACA1C,GAIA2C,GACAC,GACAC,GACAC,GACAC,GACAC,GACAlB,GACAmB,GACAC,GAGAC,GAEAC,GAhBAC,IAAA,EACAC,IAAA,EACAC,GAAA,GAUAC,IAAA,EACAC,IAAA,EAIAC,GAAA,GAEAC,IAAA,EACAC,GAAA,GAGAC,GAAA,oBAAAzN,SACA0N,GAAA5O,EACA6O,GAAAhP,GAAAD,EAAA,mBAEAkP,GAAAH,KAAA1O,IAAAD,GAAA,cAAAkB,SAAA6N,cAAA,OACAC,GAAA,WACA,GAAAL,GAAA,CAEA,GAAA/O,EACA,SAGA,IAAAS,EAAAa,SAAA6N,cAAA,KAEA,OADA1O,EAAA6B,MAAA+M,QAAA,sBACA,SAAA5O,EAAA6B,MAAAgN,aARA,CASA,CAVA,GAWAC,GAAA,SAAA9O,EAAAnG,GACA,IAAAkV,EAAArN,EAAA1B,GACAgP,EAAAhL,SAAA+K,EAAA1Z,OAAA2O,SAAA+K,EAAAE,aAAAjL,SAAA+K,EAAAG,cAAAlL,SAAA+K,EAAAI,iBAAAnL,SAAA+K,EAAAK,kBACAC,EAAAzK,EAAA5E,EAAA,EAAAnG,GACAyV,EAAA1K,EAAA5E,EAAA,EAAAnG,GACA0V,EAAAF,GAAA3N,EAAA2N,GACAG,EAAAF,GAAA5N,EAAA4N,GACAG,EAAAF,GAAAvL,SAAAuL,EAAAG,YAAA1L,SAAAuL,EAAAI,aAAAzM,EAAAmM,GAAAha,MACAua,EAAAJ,GAAAxL,SAAAwL,EAAAE,YAAA1L,SAAAwL,EAAAG,aAAAzM,EAAAoM,GAAAja,MAEA,YAAA0Z,EAAA/J,QACA,iBAAA+J,EAAAc,eAAA,mBAAAd,EAAAc,cAAA,wBAGA,YAAAd,EAAA/J,QACA,OAAA+J,EAAAe,oBAAAC,MAAA,KAAA5X,QAAA,0BAGA,GAAAkX,GAAAE,EAAA,gBAAAA,EAAA,OACA,IAAAS,EAAA,SAAAT,EAAA,qBACA,OAAAD,GAAA,SAAAE,EAAAS,OAAAT,EAAAS,QAAAD,EAAA,uBACA,CAEA,OAAAX,IAAA,UAAAE,EAAAvK,SAAA,SAAAuK,EAAAvK,SAAA,UAAAuK,EAAAvK,SAAA,SAAAuK,EAAAvK,SAAAyK,GAAAT,GAAA,SAAAD,EAAAP,KAAAc,GAAA,SAAAP,EAAAP,KAAAiB,EAAAG,EAAAZ,GAAA,uBACA,EAgCAkB,GAAA,SAAArW,GACA,SAAAsW,EAAAnV,EAAAoV,GACA,gBAAAjF,EAAAC,EAAAY,EAAAjD,GACA,IAAAsH,EAAAlF,EAAAtR,QAAAyW,MAAA5c,MAAA0X,EAAAvR,QAAAyW,MAAA5c,MAAAyX,EAAAtR,QAAAyW,MAAA5c,OAAA0X,EAAAvR,QAAAyW,MAAA5c,KAEA,SAAAsH,IAAAoV,GAAAC,GAGA,SACQ,SAAArV,IAAA,IAAAA,EACR,SACQ,GAAAoV,GAAA,UAAApV,EACR,OAAAA,EACQ,sBAAAA,EACR,OAAAmV,EAAAnV,EAAAmQ,EAAAC,EAAAY,EAAAjD,GAAAqH,EAAAD,CAAAhF,EAAAC,EAAAY,EAAAjD,GAEA,IAAAwH,GAAAH,EAAAjF,EAAAC,GAAAvR,QAAAyW,MAAA5c,KACA,WAAAsH,GAAA,iBAAAA,GAAAA,IAAAuV,GAAAvV,EAAAwV,MAAAxV,EAAAiH,QAAAsO,IAAA,CAEA,CACA,CAEA,IAAAD,EAAA,GACAG,EAAA5W,EAAAyW,MAEAG,GAAA,UAAAhT,EAAAgT,KACAA,EAAA,CACA/c,KAAA+c,IAIAH,EAAA5c,KAAA+c,EAAA/c,KACA4c,EAAAI,UAAAP,EAAAM,EAAAL,MAAA,GACAE,EAAAK,SAAAR,EAAAM,EAAAlX,KACA+W,EAAAM,YAAAH,EAAAG,YACA/W,EAAAyW,MAAAA,CACA,EACA3D,GAAA,YACAgC,IAAAzC,GACAxK,EAAAwK,EAAA,iBAEA,EACAW,GAAA,YACA8B,IAAAzC,GACAxK,EAAAwK,EAAA,aAEA,EAGAoC,IACAzN,SAAAX,iBAAA,iBAAA6I,GACA,GAAAgF,GAKA,OAJAhF,EAAA8H,iBACA9H,EAAA+H,iBAAA/H,EAAA+H,kBACA/H,EAAAgI,0BAAAhI,EAAAgI,2BACAhD,IAAA,GACA,CAEA,GAAG,GAGH,IAAAiD,GAAA,SAAAjI,GACA,GAAAiD,EAAA,CACAjD,EAAAA,EAAAkI,QAAAlI,EAAAkI,QAAA,GAAAlI,EAEA,IAAAmI,GAhFA3J,EAgFAwB,EAAAoI,QAhFA3J,EAgFAuB,EAAAqI,QA9EApD,GAAAqD,KAAA,SAAAvI,GACA,IAAAzD,EAAAyD,GAAA,CACA,IAAAd,EAAA9E,EAAA4F,GACAwI,EAAAxI,EAAAZ,GAAArO,QAAA0X,qBACAC,EAAAjK,GAAAS,EAAAtE,KAAA4N,GAAA/J,GAAAS,EAAApE,MAAA0N,EACAG,EAAAjK,GAAAQ,EAAAvE,IAAA6N,GAAA9J,GAAAQ,EAAArE,OAAA2N,EAEA,OAAAA,GAAAE,GAAAC,EACAC,EAAA5I,OADA,CANA,CASA,GACA4I,GAqEA,GAAAR,EAAA,CAEA,IAAAjR,EAAA,GAEA,QAAAlH,KAAAgQ,EACAA,EAAAvK,eAAAzF,KACAkH,EAAAlH,GAAAgQ,EAAAhQ,IAIAkH,EAAA5B,OAAA4B,EAAA8J,OAAAmH,EACAjR,EAAA4Q,oBAAA,EACA5Q,EAAA6Q,qBAAA,EAEAI,EAAAhJ,GAAAyJ,YAAA1R,EACA,CACA,CAlGA,IAAAsH,EAAAC,EACAkK,CAkGA,EAEAE,GAAA,SAAA7I,GACAiD,GACAA,EAAAjL,WAAAmH,GAAA2J,iBAAA9I,EAAA1K,OAEA,EAQA,SAAA4G,GAAAjF,EAAAnG,GACA,IAAAmG,IAAAA,EAAAc,UAAA,IAAAd,EAAAc,SACA,mDAAAhC,OAAA,GAAiEgT,SAAArT,KAAAuB,IAGjExL,KAAAwL,GAAAA,EAEAxL,KAAAqF,QAAAA,EAAAsE,EAAA,GAAsCtE,GAEtCmG,EAAAkI,GAAA1T,KACA,IAnjBAud,EADAC,EAojBA1J,EAAA,CACAgI,MAAA,KACA2B,MAAA,EACAxW,UAAA,EACAyW,MAAA,KACAC,OAAA,KACA/M,UAAA,WAAAgN,KAAApS,EAAA0F,UAAA,WACA2M,cAAA,EAEAC,YAAA,EAEAC,sBAAA,KAEAC,mBAAA,EACAC,UAAA,WACA,OAAA3D,GAAA9O,EAAAxL,KAAAqF,QACA,EACA6Y,WAAA,iBACAC,YAAA,kBACAC,UAAA,gBACAC,OAAA,SACAra,OAAA,KACAsa,iBAAA,EACAC,UAAA,EACAC,OAAA,KACAC,QAAA,SAAAC,EAAAlH,GACAkH,EAAAD,QAAA,OAAAjH,EAAAmH,YACA,EACAC,YAAA,EACAC,gBAAA,EACAC,WAAA,UACAC,MAAA,EACAC,kBAAA,EACAC,qBAAAtf,OAAA6P,SAAA7P,OAAAiL,QAAA4E,SAAA5E,OAAAsU,iBAAA,OACAC,eAAA,EACAC,cAAA,oBACAC,gBAAA,EACAC,kBAAA,EACAC,eAAA,CACAxM,EAAA,EACAC,EAAA,GAEAwM,gBAAA,IAAA/O,GAAA+O,gBAAA,iBAAA5U,OACAmS,qBAAA,GAIA,QAAA7d,KAFA8U,EAAAa,kBAAA7U,KAAAwL,EAAAsI,GAEAA,IACA5U,KAAAmG,KAAAA,EAAAnG,GAAA4U,EAAA5U,IAMA,QAAAqI,KAHAmU,GAAArW,GAGArF,KACA,MAAAuH,EAAA6O,OAAA,uBAAApW,KAAAuH,KACAvH,KAAAuH,GAAAvH,KAAAuH,GAAA3B,KAAA5F,OAKAA,KAAAyf,iBAAApa,EAAA8Z,eAAAlF,GAEAja,KAAAyf,kBAEAzf,KAAAqF,QAAA4Z,oBAAA,GAIA5Z,EAAAma,eACAjf,EAAAiL,EAAA,cAAAxL,KAAA0f,cAEAnf,EAAAiL,EAAA,YAAAxL,KAAA0f,aACAnf,EAAAiL,EAAA,aAAAxL,KAAA0f,cAGA1f,KAAAyf,kBACAlf,EAAAiL,EAAA,WAAAxL,MACAO,EAAAiL,EAAA,YAAAxL,OAGAwZ,GAAAhR,KAAAxI,KAAAwL,IAEAnG,EAAAqY,OAAArY,EAAAqY,MAAAiC,KAAA3f,KAAAyd,KAAApY,EAAAqY,MAAAiC,IAAA3f,OAAA,IAEA2J,EAAA3J,MAzoBAwd,EAAA,GAEA,CACAoC,sBAAA,WACApC,EAAA,GACAxd,KAAAqF,QAAAkZ,WACA,GAAAsB,MAAA5V,KAAAjK,KAAAwL,GAAA+E,UACA9F,QAAA,SAAAqV,GACA,YAAA5S,EAAA4S,EAAA,YAAAA,IAAArP,GAAAC,MAAA,CACA8M,EAAAhV,KAAA,CACAqB,OAAAiW,EACAtM,KAAA9E,EAAAoR,KAGA,IAAAC,EAAA5V,EAAA,GAAuCqT,EAAAA,EAAA7Z,OAAA,GAAA6P,MAGvC,GAAAsM,EAAAE,sBAAA,CACA,IAAAC,EAAAvS,EAAAoS,GAAA,GAEAG,IACAF,EAAA9Q,KAAAgR,EAAAC,EACAH,EAAA7Q,MAAA+Q,EAAAE,EAEA,CAEAL,EAAAC,SAAAA,CAlBA,CAmBA,EACA,EACAK,kBAAA,SAAAtT,GACA0Q,EAAAhV,KAAAsE,EACA,EACAuT,qBAAA,SAAAxW,GACA2T,EAAAhZ,OApJA,SAAA8b,EAAApX,GACA,QAAA3E,KAAA+b,EACA,GAAAA,EAAAtW,eAAAzF,GAEA,QAAAuC,KAAAoC,EACA,GAAAA,EAAAc,eAAAlD,IAAAoC,EAAApC,KAAAwZ,EAAA/b,GAAAuC,GAAA,OAAAnH,OAAA4E,GAIA,QACA,CA0IAgc,CAAA/C,EAAA,CACA3T,OAAAA,IACO,EACP,EACA2W,WAAA,SAAA/Z,GACA,IAAA+N,EAAAxU,KAEA,IAAAA,KAAAqF,QAAAkZ,UAGA,OAFAkC,aAAAlD,QACA,mBAAA9W,GAAAA,KAIA,IAAAia,GAAA,EACAC,EAAA,EACAnD,EAAA/S,QAAA,SAAAqC,GACA,IAAA8T,EAAA,EACA/W,EAAAiD,EAAAjD,OACAkW,EAAAlW,EAAAkW,SACAc,EAAAnS,EAAA7E,GACAiX,EAAAjX,EAAAiX,aACAC,EAAAlX,EAAAkX,WACAC,EAAAlU,EAAA0G,KACAyN,EAAAvT,EAAA7D,GAAA,GAEAoX,IAEAJ,EAAA5R,KAAAgS,EAAAf,EACAW,EAAA3R,MAAA+R,EAAAd,GAGAtW,EAAAgX,OAAAA,EAEAhX,EAAAmW,uBAEA1N,EAAAwO,EAAAD,KAAAvO,EAAAyN,EAAAc,KACAG,EAAA/R,IAAA4R,EAAA5R,MAAA+R,EAAA9R,KAAA2R,EAAA3R,SAAA6Q,EAAA9Q,IAAA4R,EAAA5R,MAAA8Q,EAAA7Q,KAAA2R,EAAA3R,QAEA0R,EA2EA,SAAAI,EAAAjB,EAAAc,EAAAxb,GACA,OAAAZ,KAAAyc,KAAAzc,KAAA0c,IAAApB,EAAA9Q,IAAA+R,EAAA/R,IAAA,GAAAxK,KAAA0c,IAAApB,EAAA7Q,KAAA8R,EAAA9R,KAAA,IAAAzK,KAAAyc,KAAAzc,KAAA0c,IAAApB,EAAA9Q,IAAA4R,EAAA5R,IAAA,GAAAxK,KAAA0c,IAAApB,EAAA7Q,KAAA2R,EAAA3R,KAAA,IAAA7J,EAAAkZ,SACA,CA7EA6C,CAAAJ,EAAAF,EAAAC,EAAAvM,EAAAnP,UAKAiN,EAAAuO,EAAAd,KACAlW,EAAAiX,aAAAf,EACAlW,EAAAkX,WAAAF,EAEAD,IACAA,EAAApM,EAAAnP,QAAAkZ,WAGA/J,EAAA6M,QAAAxX,EAAAmX,EAAAH,EAAAD,IAGAA,IACAF,GAAA,EACAC,EAAAlc,KAAA6c,IAAAX,EAAAC,GACAH,aAAA5W,EAAA0X,qBACA1X,EAAA0X,oBAAA1O,WAAA,WACAhJ,EAAA8W,cAAA,EACA9W,EAAAiX,aAAA,KACAjX,EAAAkW,SAAA,KACAlW,EAAAkX,WAAA,KACAlX,EAAAmW,sBAAA,IACA,EAAWY,GACX/W,EAAAmW,sBAAAY,EAEA,GACAH,aAAAlD,GAEAmD,EAGAnD,EAAA1K,WAAA,WACA,mBAAApM,GAAAA,GACA,EAASka,GAJT,mBAAAla,GAAAA,IAOA+W,EAAA,EACA,EACA6D,QAAA,SAAAxX,EAAA2X,EAAAX,EAAAY,GACA,GAAAA,EAAA,CACAvU,EAAArD,EAAA,iBACAqD,EAAArD,EAAA,gBACA,IAAA4F,EAAA/B,EAAA1N,KAAAwL,IACAkE,EAAAD,GAAAA,EAAAE,EACAC,EAAAH,GAAAA,EAAAzO,EACA0gB,GAAAF,EAAAtS,KAAA2R,EAAA3R,OAAAQ,GAAA,GACAiS,GAAAH,EAAAvS,IAAA4R,EAAA5R,MAAAW,GAAA,GACA/F,EAAA+X,aAAAF,EACA7X,EAAAgY,aAAAF,EACAzU,EAAArD,EAAA,2BAAA6X,EAAA,MAAAC,EAAA,SAkBA,SAAA9X,GACAA,EAAAiY,WACA,CAnBAC,CAAAlY,GAEAqD,EAAArD,EAAA,0BAAA4X,EAAA,MAAAzhB,KAAAqF,QAAAmZ,OAAA,IAAAxe,KAAAqF,QAAAmZ,OAAA,KACAtR,EAAArD,EAAA,kCACA,iBAAAA,EAAAmY,UAAAvB,aAAA5W,EAAAmY,UACAnY,EAAAmY,SAAAnP,WAAA,WACA3F,EAAArD,EAAA,iBACAqD,EAAArD,EAAA,gBACAA,EAAAmY,UAAA,EACAnY,EAAA+X,YAAA,EACA/X,EAAAgY,YAAA,CACA,EAASJ,EACT,CACA,IAggBA,CA8pCA,SAAAQ,GAAAtM,EAAAD,EAAA8B,EAAA0K,EAAA1M,EAAA2M,EAAAnM,EAAAoM,GACA,IAAA7N,EAGA8N,EAFA/N,EAAAqB,EAAAjC,GACA4O,EAAAhO,EAAAjP,QAAAkd,OA2BA,OAxBA3X,OAAA0L,aAAAvL,GAAAC,GAMAuJ,EAAAlI,SAAAkK,YAAA,UACAC,UAAA,cANAjC,EAAA,IAAA+B,YAAA,QACAG,SAAA,EACAC,YAAA,IAOAnC,EAAAoC,GAAAjB,EACAnB,EAAAqC,KAAAjB,EACApB,EAAA5D,QAAA6G,EACAjD,EAAAiO,YAAAN,EACA3N,EAAAkO,QAAAjN,GAAAE,EACAnB,EAAAmO,YAAAP,GAAAzT,EAAAgH,GACAnB,EAAA6N,gBAAAA,EACA7N,EAAAyB,cAAAA,EACAL,EAAAN,cAAAd,GAEA+N,IACAD,EAAAC,EAAArY,KAAAqK,EAAAC,EAAAyB,IAGAqM,CACA,CAEA,SAAAM,GAAAnX,GACAA,EAAAoF,WAAA,CACA,CAEA,SAAAgS,KACAhJ,IAAA,CACA,CA4EA,SAAAiJ,GAAArX,GAKA,IAJA,IAAAsX,EAAAtX,EAAA2C,QAAA3C,EAAAwB,UAAAxB,EAAAuX,IAAAvX,EAAAwX,KAAAxX,EAAAmT,YACApa,EAAAue,EAAAnf,OACAsf,EAAA,EAEA1e,KACA0e,GAAAH,EAAAI,WAAA3e,GAGA,OAAA0e,EAAA3F,SAAA,GACA,CAaA,SAAA6F,GAAA5b,GACA,OAAAsL,WAAAtL,EAAA,EACA,CAEA,SAAA6b,GAAArc,GACA,OAAA0Z,aAAA1Z,EACA,CA5yCA0J,GAAAxI,UAEA,CACAoB,YAAAoH,GACA4M,iBAAA,SAAAxT,GACA7J,KAAAwL,GAAA6X,SAAAxZ,IAAAA,IAAA7J,KAAAwL,KACA0N,GAAA,KAEA,EACAoK,cAAA,SAAA/O,EAAA1K,GACA,yBAAA7J,KAAAqF,QAAA4Y,UAAAje,KAAAqF,QAAA4Y,UAAAhU,KAAAjK,KAAAuU,EAAA1K,EAAA2N,GAAAxX,KAAAqF,QAAA4Y,SACA,EACAyB,YAAA,SAEAnL,GACA,GAAAA,EAAAmC,WAAA,CAEA,IAAAlC,EAAAxU,KACAwL,EAAAxL,KAAAwL,GACAnG,EAAArF,KAAAqF,QACAiZ,EAAAjZ,EAAAiZ,gBACAhf,EAAAiV,EAAAjV,KACAikB,EAAAhP,EAAAkI,SAAAlI,EAAAkI,QAAA,IAAAlI,EAAAiP,aAAA,UAAAjP,EAAAiP,aAAAjP,EACA1K,GAAA0Z,GAAAhP,GAAA1K,OACA4Z,EAAAlP,EAAA1K,OAAA6Z,aAAAnP,EAAAoP,MAAApP,EAAAoP,KAAA,IAAApP,EAAAqP,cAAArP,EAAAqP,eAAA,KAAA/Z,EACA7F,EAAAqB,EAAArB,OAKA,GA6vCA,SAAA6f,GACAhK,GAAAlW,OAAA,EAIA,IAHA,IAAAmgB,EAAAD,EAAAxV,qBAAA,SACA0V,EAAAD,EAAAngB,OAEAogB,KAAA,CACA,IAAAvY,EAAAsY,EAAAC,GACAvY,EAAAwY,SAAAnK,GAAArR,KAAAgD,EACA,CACA,CAzwCAyY,CAAAzY,IAGAgM,KAIA,wBAAAoG,KAAAte,IAAA,IAAAiV,EAAA2P,QAAA7e,EAAA4B,UAKAwc,EAAAU,oBAIAta,EAAA2C,EAAA3C,EAAAxE,EAAAuL,UAAApF,GAAA,KAEA3B,EAAAmY,UAIApK,IAAA/N,GAAA,CASA,GAHA+L,GAAA3E,EAAApH,GACAiM,GAAA7E,EAAApH,EAAAxE,EAAAuL,WAEA,mBAAA5M,GACA,GAAAA,EAAAiG,KAAAjK,KAAAuU,EAAA1K,EAAA7J,MAcA,OAbAyY,EAAA,CACAnE,SAAAE,EACAe,OAAAkO,EACAvkB,KAAA,SACAsW,SAAA3L,EACA6L,KAAAlK,EACAmK,OAAAnK,IAGA4I,EAAA,SAAAI,EAAA,CACAD,IAAAA,SAEA+J,GAAA/J,EAAAmC,YAAAnC,EAAA8H,uBAGM,GAAArY,IACNA,EAAAA,EAAAuX,MAAA,KAAAsB,KAAA,SAAAuH,GAGA,GAFAA,EAAA5X,EAAAiX,EAAAW,EAAAC,OAAA7Y,GAAA,GAeA,OAZAiN,EAAA,CACAnE,SAAAE,EACAe,OAAA6O,EACAllB,KAAA,SACAsW,SAAA3L,EACA8L,OAAAnK,EACAkK,KAAAlK,IAGA4I,EAAA,SAAAI,EAAA,CACAD,IAAAA,KAEA,CAEA,IAIA,YADA+J,GAAA/J,EAAAmC,YAAAnC,EAAA8H,kBAKAhX,EAAAsY,SAAAnR,EAAAiX,EAAApe,EAAAsY,OAAAnS,GAAA,IAKAxL,KAAAskB,kBAAA/P,EAAAgP,EAAA1Z,EAvDA,CArCA,CA6FA,EACAya,kBAAA,SAEA/P,EAEAgP,EAEA1Z,GACA,IAIA0a,EAJA/P,EAAAxU,KACAwL,EAAAgJ,EAAAhJ,GACAnG,EAAAmP,EAAAnP,QACAmf,EAAAhZ,EAAAgZ,cAGA,GAAA3a,IAAA2N,GAAA3N,EAAA0C,aAAAf,EAAA,CACA,IAAA0W,EAAAxT,EAAA7E,GAwEA,GAvEA0L,EAAA/J,EAEAiM,GADAD,EAAA3N,GACA0C,WACAoL,EAAAH,EAAAiN,YACA7M,EAAA/N,EACA8O,GAAAtT,EAAAyW,MACArL,GAAAE,QAAA6G,EACAoB,GAAA,CACA/O,OAAA2N,EACAmF,SAAA4G,GAAAhP,GAAAoI,QACAC,SAAA2G,GAAAhP,GAAAqI,SAEA5D,GAAAJ,GAAA+D,QAAAuF,EAAAhT,KACA+J,GAAAL,GAAAgE,QAAAsF,EAAAjT,IACAjP,KAAA0kB,QAAAnB,GAAAhP,GAAAoI,QACA3c,KAAA2kB,QAAApB,GAAAhP,GAAAqI,QACApF,EAAAnK,MAAA,qBAEAkX,EAAA,WACAnQ,EAAA,aAAAI,EAAA,CACAD,IAAAA,IAGA9D,GAAAgE,cACAD,EAAAoQ,WAOApQ,EAAAqQ,6BAEA5Z,GAAAuJ,EAAAiL,kBACAjI,EAAA5G,WAAA,GAIA4D,EAAAsQ,kBAAAvQ,EAAAgP,GAGA9K,EAAA,CACAnE,SAAAE,EACAtV,KAAA,SACA8W,cAAAzB,IAIA1H,EAAA2K,EAAAnS,EAAA8Y,aAAA,GACA,EAGA9Y,EAAAgZ,OAAA9C,MAAA,KAAA9Q,QAAA,SAAA2Z,GACAlf,EAAAsS,EAAA4M,EAAAC,OAAA1B,GACA,GACApiB,EAAAikB,EAAA,WAAAhI,IACAjc,EAAAikB,EAAA,YAAAhI,IACAjc,EAAAikB,EAAA,YAAAhI,IACAjc,EAAAikB,EAAA,UAAAhQ,EAAAoQ,SACArkB,EAAAikB,EAAA,WAAAhQ,EAAAoQ,SACArkB,EAAAikB,EAAA,cAAAhQ,EAAAoQ,SAEA3Z,GAAAjL,KAAAyf,kBACAzf,KAAAqF,QAAA4Z,oBAAA,EACAzH,EAAA5G,WAAA,GAGAwD,EAAA,aAAApU,KAAA,CACAuU,IAAAA,KAGAlP,EAAA0Z,OAAA1Z,EAAA2Z,mBAAAuE,GAAAvjB,KAAAyf,kBAAAzU,GAAAD,GAkBAwZ,QAlBA,CACA,GAAA9T,GAAAgE,cAGA,YAFAzU,KAAA4kB,UAQArkB,EAAAikB,EAAA,UAAAhQ,EAAAuQ,qBACAxkB,EAAAikB,EAAA,WAAAhQ,EAAAuQ,qBACAxkB,EAAAikB,EAAA,cAAAhQ,EAAAuQ,qBACAxkB,EAAAikB,EAAA,YAAAhQ,EAAAwQ,8BACAzkB,EAAAikB,EAAA,YAAAhQ,EAAAwQ,8BACA3f,EAAAma,gBAAAjf,EAAAikB,EAAA,cAAAhQ,EAAAwQ,8BACAxQ,EAAAyQ,gBAAApS,WAAA0R,EAAAlf,EAAA0Z,MACA,CAGA,CACA,EACAiG,6BAAA,SAEA7E,GACA,IAAAoD,EAAApD,EAAA1D,QAAA0D,EAAA1D,QAAA,GAAA0D,EAEA1b,KAAA6c,IAAA7c,KAAAygB,IAAA3B,EAAA5G,QAAA3c,KAAA0kB,QAAAjgB,KAAAygB,IAAA3B,EAAA3G,QAAA5c,KAAA2kB,UAAAlgB,KAAA0gB,MAAAnlB,KAAAqF,QAAA4Z,qBAAAjf,KAAAyf,iBAAA7U,OAAAsU,kBAAA,KACAlf,KAAA+kB,qBAEA,EACAA,oBAAA,WACAvN,GAAAmL,GAAAnL,GACAiJ,aAAAzgB,KAAAilB,iBAEAjlB,KAAA6kB,2BACA,EACAA,0BAAA,WACA,IAAAL,EAAAxkB,KAAAwL,GAAAgZ,cACA7Y,EAAA6Y,EAAA,UAAAxkB,KAAA+kB,qBACApZ,EAAA6Y,EAAA,WAAAxkB,KAAA+kB,qBACApZ,EAAA6Y,EAAA,cAAAxkB,KAAA+kB,qBACApZ,EAAA6Y,EAAA,YAAAxkB,KAAAglB,8BACArZ,EAAA6Y,EAAA,YAAAxkB,KAAAglB,8BACArZ,EAAA6Y,EAAA,cAAAxkB,KAAAglB,6BACA,EACAF,kBAAA,SAEAvQ,EAEAgP,GACAA,EAAAA,GAAA,SAAAhP,EAAAiP,aAAAjP,GAEAvU,KAAAyf,iBAAA8D,EACAvjB,KAAAqF,QAAAma,eACAjf,EAAA8L,SAAA,cAAArM,KAAAolB,cAEA7kB,EAAA8L,SADQkX,EACR,YAEA,YAFAvjB,KAAAolB,eAKA7kB,EAAAiX,EAAA,UAAAxX,MACAO,EAAAgV,EAAA,YAAAvV,KAAAqlB,eAGA,IACAhZ,SAAAiZ,UAEAnC,GAAA,WACA9W,SAAAiZ,UAAAC,OACA,GAEA3a,OAAA4a,eAAAC,iBAEA,CAAM,MAAAC,GAAA,CACN,EACAC,aAAA,SAAAC,EAAArR,GAIA,GAFA+E,IAAA,EAEA/D,GAAAiC,EAAA,CACApD,EAAA,cAAApU,KAAA,CACAuU,IAAAA,IAGAvU,KAAAyf,iBACAlf,EAAA8L,SAAA,WAAA+Q,IAGA,IAAA/X,EAAArF,KAAAqF,SAEAugB,GAAA/Y,EAAA2K,EAAAnS,EAAA+Y,WAAA,GACAvR,EAAA2K,EAAAnS,EAAA6Y,YAAA,GACAzN,GAAAwH,OAAAjY,KACA4lB,GAAA5lB,KAAA6lB,eAEApN,EAAA,CACAnE,SAAAtU,KACAd,KAAA,QACA8W,cAAAzB,GAEA,MACAvU,KAAA8lB,UAEA,EACAC,iBAAA,WACA,GAAAlN,GAAA,CACA7Y,KAAA0kB,OAAA7L,GAAA8D,QACA3c,KAAA2kB,OAAA9L,GAAA+D,QAEAzE,KAKA,IAHA,IAAAtO,EAAAwC,SAAA2Z,iBAAAnN,GAAA8D,QAAA9D,GAAA+D,SACA5M,EAAAnG,EAEAA,GAAAA,EAAA6Z,aACA7Z,EAAAA,EAAA6Z,WAAAsC,iBAAAnN,GAAA8D,QAAA9D,GAAA+D,YACA5M,GACAA,EAAAnG,EAKA,GAFA2N,EAAAjL,WAAAmH,GAAA2J,iBAAAxT,GAEAmG,EACA,GACA,GAAAA,EAAA0D,IAEA1D,EAAA0D,GAAAyJ,YAAA,CACAR,QAAA9D,GAAA8D,QACAC,QAAA/D,GAAA+D,QACA/S,OAAAA,EACA0L,OAAAvF,MAGAhQ,KAAAqF,QAAAwZ,eACA,MAIAhV,EAAAmG,CACA,OAEAA,EAAAA,EAAAzD,YAGA8L,IACA,CACA,EACA+M,aAAA,SAEA7Q,GACA,GAAAqE,GAAA,CACA,IAAAvT,EAAArF,KAAAqF,QACAia,EAAAja,EAAAia,kBACAC,EAAAla,EAAAka,eACAgE,EAAAhP,EAAAkI,QAAAlI,EAAAkI,QAAA,GAAAlI,EACA0R,EAAAvO,GAAAhK,EAAAgK,GAAA,GACAhI,EAAAgI,GAAAuO,GAAAA,EAAAtW,EACAC,EAAA8H,GAAAuO,GAAAA,EAAAjlB,EACAklB,EAAAnM,IAAAV,IAAAhI,EAAAgI,IACA8M,GAAA5C,EAAA5G,QAAA/D,GAAA+D,QAAA4C,EAAAxM,IAAArD,GAAA,IAAAwW,EAAAA,EAAA,GAAAvM,GAAA,OAAAjK,GAAA,GACA0W,GAAA7C,EAAA3G,QAAAhE,GAAAgE,QAAA2C,EAAAvM,IAAApD,GAAA,IAAAsW,EAAAA,EAAA,GAAAvM,GAAA,OAAA/J,GAAA,GAEA,IAAAa,GAAAwH,SAAAqB,GAAA,CACA,GAAAgG,GAAA7a,KAAA6c,IAAA7c,KAAAygB,IAAA3B,EAAA5G,QAAA3c,KAAA0kB,QAAAjgB,KAAAygB,IAAA3B,EAAA3G,QAAA5c,KAAA2kB,SAAArF,EACA,OAGAtf,KAAAqlB,aAAA9Q,GAAA,EACA,CAEA,GAAAmD,EAAA,CACAuO,GACAA,EAAA9F,GAAAgG,GAAArN,IAAA,GACAmN,EAAA/F,GAAAkG,GAAArN,IAAA,IAEAkN,EAAA,CACAtW,EAAA,EACA0W,EAAA,EACAC,EAAA,EACAtlB,EAAA,EACAmf,EAAAgG,EACAjG,EAAAkG,GAIA,IAAAG,EAAA,UAAAjc,OAAA2b,EAAAtW,EAAA,KAAArF,OAAA2b,EAAAI,EAAA,KAAA/b,OAAA2b,EAAAK,EAAA,KAAAhc,OAAA2b,EAAAjlB,EAAA,KAAAsJ,OAAA2b,EAAA9F,EAAA,KAAA7V,OAAA2b,EAAA/F,EAAA,KACAhT,EAAAwK,EAAA,kBAAA6O,GACArZ,EAAAwK,EAAA,eAAA6O,GACArZ,EAAAwK,EAAA,cAAA6O,GACArZ,EAAAwK,EAAA,YAAA6O,GACAzN,GAAAqN,EACApN,GAAAqN,EACAvN,GAAA0K,CACA,CAEAhP,EAAAmC,YAAAnC,EAAA8H,gBACA,CACA,EACAwJ,aAAA,WAGA,IAAAnO,EAAA,CACA,IAAA5I,EAAA9O,KAAAqF,QAAAga,eAAAhT,SAAAgG,KAAAkD,EACA/B,EAAA9E,EAAA8I,GAAA,EAAAuC,IAAA,EAAAjL,GACAzJ,EAAArF,KAAAqF,QAEA,GAAA0U,GAAA,CAIA,IAFAV,GAAAvK,EAEA,WAAA5B,EAAAmM,GAAA,sBAAAnM,EAAAmM,GAAA,cAAAA,KAAAhN,UACAgN,GAAAA,GAAA9M,WAGA8M,KAAAhN,SAAAgG,MAAAgH,KAAAhN,SAAAoC,iBACA4K,KAAAhN,WAAAgN,GAAA9K,KACAiF,EAAAvE,KAAAoK,GAAA3H,UACA8B,EAAAtE,MAAAmK,GAAA5H,YAEA4H,GAAA9K,IAGAoL,GAAAtI,EAAAgI,GACA,CAGAxM,EADA6K,EAAAF,EAAAlE,WAAA,GACAjO,EAAA6Y,YAAA,GACArR,EAAA6K,EAAArS,EAAA+Z,eAAA,GACAvS,EAAA6K,EAAArS,EAAA+Y,WAAA,GACAlR,EAAAwK,EAAA,iBACAxK,EAAAwK,EAAA,gBACAxK,EAAAwK,EAAA,2BACAxK,EAAAwK,EAAA,YACAxK,EAAAwK,EAAA,MAAAlE,EAAAvE,KACA/B,EAAAwK,EAAA,OAAAlE,EAAAtE,MACAhC,EAAAwK,EAAA,QAAAlE,EAAA3S,OACAqM,EAAAwK,EAAA,SAAAlE,EAAA1S,QACAoM,EAAAwK,EAAA,iBACAxK,EAAAwK,EAAA,WAAAqC,GAAA,oBACA7M,EAAAwK,EAAA,mBACAxK,EAAAwK,EAAA,wBACAjH,GAAAC,MAAAgH,EACA5I,EAAA0X,YAAA9O,GAEAxK,EAAAwK,EAAA,mBAAAsB,GAAAxJ,SAAAkI,EAAArK,MAAAxM,OAAA,SAAAoY,GAAAzJ,SAAAkI,EAAArK,MAAAvM,QAAA,QACA,CACA,EACAukB,aAAA,SAEA9Q,EAEAqR,GACA,IAAApR,EAAAxU,KAEA0e,EAAAnK,EAAAmK,aACArZ,EAAAmP,EAAAnP,QACA+O,EAAA,YAAApU,KAAA,CACAuU,IAAAA,IAGA9D,GAAAgE,cACAzU,KAAA4kB,WAKAxQ,EAAA,aAAApU,MAEAyQ,GAAAgE,iBACAgB,EAAArE,EAAAoG,IACA5G,WAAA,EACA6E,EAAApI,MAAA,kBAEArN,KAAAymB,aAEA5Z,EAAA4I,EAAAzV,KAAAqF,QAAA8Y,aAAA,GACA1N,GAAAW,MAAAqE,GAIAjB,EAAAkS,QAAAvD,GAAA,WACA/O,EAAA,QAAAI,GACA/D,GAAAgE,gBAEAD,EAAAnP,QAAA2Y,mBACAzI,EAAAoR,aAAAlR,EAAA+B,GAGAhD,EAAAiS,aAEAhO,EAAA,CACAnE,SAAAE,EACAtV,KAAA,UAEA,IACA0mB,GAAA/Y,EAAA2K,EAAAnS,EAAA+Y,WAAA,GAEAwH,GACArM,IAAA,EACA/E,EAAAoS,QAAAC,YAAArS,EAAAuR,iBAAA,MAGApa,EAAAU,SAAA,UAAAmI,EAAAoQ,SACAjZ,EAAAU,SAAA,WAAAmI,EAAAoQ,SACAjZ,EAAAU,SAAA,cAAAmI,EAAAoQ,SAEAlG,IACAA,EAAAoI,cAAA,OACAzhB,EAAAoZ,SAAApZ,EAAAoZ,QAAAxU,KAAAuK,EAAAkK,EAAAlH,IAGAjX,EAAA8L,SAAA,OAAAmI,GAEAtH,EAAAsK,EAAA,8BAGA8B,IAAA,EACA9E,EAAAuS,aAAA5D,GAAA3O,EAAAmR,aAAA/f,KAAA4O,EAAAoR,EAAArR,IACAhU,EAAA8L,SAAA,cAAAmI,GACAuD,IAAA,EAEA7M,GACAgC,EAAAb,SAAAgG,KAAA,sBAEA,EAEA8K,YAAA,SAEA5I,GACA,IAEA2N,EACAC,EACA6E,EAOAC,EAXAzb,EAAAxL,KAAAwL,GACA3B,EAAA0K,EAAA1K,OAIAxE,EAAArF,KAAAqF,QACAyW,EAAAzW,EAAAyW,MACA9D,EAAAvH,GAAAwH,OACAiP,EAAAvO,KAAAmD,EACAqL,EAAA9hB,EAAAoY,KACA2J,EAAAnR,IAAA+B,EAEAxD,EAAAxU,KACAqnB,GAAA,EAEA,IAAAzN,GAAA,CAgHA,QANA,IAAArF,EAAA8H,gBACA9H,EAAAmC,YAAAnC,EAAA8H,iBAGAxS,EAAA2C,EAAA3C,EAAAxE,EAAAuL,UAAApF,GAAA,GACA8b,EAAA,YACA7W,GAAAgE,cAAA,OAAA4S,EAEA,GAAA7P,EAAA6L,SAAA9O,EAAA1K,SAAAA,EAAAmY,UAAAnY,EAAA+X,YAAA/X,EAAAgY,YAAArN,EAAA+S,wBAAA1d,EACA,OAAA2d,GAAA,GAKA,GAFAjO,IAAA,EAEAvB,IAAA3S,EAAA4B,WAAAigB,EAAAC,IAAAH,GAAAzR,EAAA8N,SAAA7L,IACAvB,KAAAjW,OAAAA,KAAA+W,YAAA4B,GAAAuD,UAAAlc,KAAAgY,EAAAR,EAAAjD,KAAAuH,EAAAK,SAAAnc,KAAAgY,EAAAR,EAAAjD,IAAA,CAIA,GAHA0S,EAAA,aAAAjnB,KAAAsjB,cAAA/O,EAAA1K,GACAqY,EAAAxT,EAAA8I,GACA8P,EAAA,iBACA7W,GAAAgE,cAAA,OAAA4S,EAEA,GAAAL,EAiBA,OAhBAvP,EAAAlC,EAEAjK,IAEAtL,KAAAymB,aAEAa,EAAA,UAEA7W,GAAAgE,gBACAkD,EACApC,EAAAoR,aAAAnP,EAAAG,GAEApC,EAAAiR,YAAAhP,IAIAgQ,GAAA,GAGA,IAAAC,EAAA5W,EAAArF,EAAAnG,EAAAuL,WAEA,IAAA6W,GAmhBA,SAAAlT,EAAA0S,EAAA3S,GACA,IAAAd,EAAA9E,EAAAmC,EAAAyD,EAAA9I,GAAA8I,EAAAjP,QAAAuL,YAEA,OAAAqW,EAAA1S,EAAAoI,QAAAnJ,EAAApE,MADA,IACAmF,EAAAoI,SAAAnJ,EAAApE,OAAAmF,EAAAqI,QAAApJ,EAAArE,QAAAoF,EAAAoI,SAAAnJ,EAAAtE,KAAAqF,EAAAoI,QAAAnJ,EAAApE,OAAAmF,EAAAqI,QAAApJ,EAAAvE,KAAAsF,EAAAoI,SAAAnJ,EAAApE,OAAAmF,EAAAqI,QAAApJ,EAAArE,OADA,EAEA,CAvhBAuY,CAAAnT,EAAA0S,EAAAjnB,QAAAynB,EAAAzF,SAAA,CAEA,GAAAyF,IAAAjQ,EACA,OAAAgQ,GAAA,GAYA,GARAC,GAAAjc,IAAA+I,EAAA1K,SACAA,EAAA4d,GAGA5d,IACAsY,EAAAzT,EAAA7E,KAGA,IAAAoY,GAAA1M,EAAA/J,EAAAgM,EAAA0K,EAAArY,EAAAsY,EAAA5N,IAAA1K,GAMA,OALAyB,IACAE,EAAAgb,YAAAhP,GACAC,EAAAjM,EAEAmc,IACAH,GAAA,EAEA,MAAQ,GAAA3d,EAAA0C,aAAAf,EAAA,CACR2W,EAAAzT,EAAA7E,GACA,IAAAoU,EACA2J,EAcAC,EAbAC,EAAAtQ,EAAAjL,aAAAf,EACAuc,GAj7BA,SAAA7F,EAAAC,EAAA8E,GACA,IAAAe,EAAAf,EAAA/E,EAAAhT,KAAAgT,EAAAjT,IACAgZ,EAAAhB,EAAA/E,EAAA9S,MAAA8S,EAAA/S,OACA+Y,EAAAjB,EAAA/E,EAAArhB,MAAAqhB,EAAAphB,OACAqnB,EAAAlB,EAAA9E,EAAAjT,KAAAiT,EAAAlT,IACAmZ,EAAAnB,EAAA9E,EAAA/S,MAAA+S,EAAAhT,OACAkZ,EAAApB,EAAA9E,EAAAthB,MAAAshB,EAAArhB,OACA,OAAAknB,IAAAG,GAAAF,IAAAG,GAAAJ,EAAAE,EAAA,IAAAC,EAAAE,EAAA,CACA,CAy6BAC,CAAA9Q,EAAAwK,UAAAxK,EAAAqJ,QAAAqB,EAAArY,EAAAmY,UAAAnY,EAAAgX,QAAAsB,EAAA8E,GACAsB,EAAAtB,EAAA,aACAuB,EAAA3Y,EAAAhG,EAAA,cAAAgG,EAAA2H,EAAA,aACAiR,EAAAD,EAAAA,EAAA9W,eAAA,EAWA,GATAwH,KAAArP,IACA+d,EAAAzF,EAAAoG,GACA9O,IAAA,EACAC,IAAAqO,GAAA1iB,EAAAyY,YAAAgK,GAGA7J,EAkfA,SAAA1J,EAAA1K,EAAAsY,EAAA8E,EAAApJ,EAAAE,EAAAD,EAAA4K,GACA,IAAAC,EAAA1B,EAAA1S,EAAAqI,QAAArI,EAAAoI,QACAiM,EAAA3B,EAAA9E,EAAArhB,OAAAqhB,EAAAthB,MACAgoB,EAAA5B,EAAA9E,EAAAlT,IAAAkT,EAAAjT,KACA4Z,EAAA7B,EAAA9E,EAAAhT,OAAAgT,EAAA/S,MACA2Z,GAAA,EAEA,IAAAjL,EAEA,GAAA4K,GAAAtP,GAAAwP,EAAA/K,GAQA,IALApE,KAAA,IAAAN,GAAAwP,EAAAE,EAAAD,EAAA7K,EAAA,EAAA4K,EAAAG,EAAAF,EAAA7K,EAAA,KAEAtE,IAAA,GAGAA,GAOAsP,GAAA,OALA,OAAA5P,GAAAwP,EAAAE,EAAAzP,GACAuP,EAAAG,EAAA1P,GACA,OAAAD,QAOA,GAAAwP,EAAAE,EAAAD,GAAA,EAAA/K,GAAA,GAAA8K,EAAAG,EAAAF,GAAA,EAAA/K,GAAA,EACA,OAwBA,SAAAhU,GACA,OAAAoH,EAAAuG,GAAAvG,EAAApH,GACA,GAEA,CAEA,CA9BAmf,CAAAnf,GAOA,OAFAkf,EAAAA,GAAAjL,KAIA6K,EAAAE,EAAAD,EAAA7K,EAAA,GAAA4K,EAAAG,EAAAF,EAAA7K,EAAA,GACA4K,EAAAE,EAAAD,EAAA,OAIA,CACA,CA9hBAK,CAAA1U,EAAA1K,EAAAsY,EAAA8E,EAAAc,EAAA,EAAA1iB,EAAAwY,cAAA,MAAAxY,EAAA0Y,sBAAA1Y,EAAAwY,cAAAxY,EAAA0Y,sBAAArE,GAAAR,KAAArP,GAGA,IAAAoU,EAAA,CAEA,IAAAiL,EAAAjY,EAAAuG,GAEA,GACA0R,GAAAjL,EACA4J,EAAApQ,EAAAlH,SAAA2Y,SACYrB,IAAA,SAAA3a,EAAA2a,EAAA,YAAAA,IAAAnQ,GACZ,CAGA,OAAAuG,GAAA4J,IAAAhe,EACA,OAAA2d,GAAA,GAGAtO,GAAArP,EACAsP,GAAA8E,EACA,IAAAwG,EAAA5a,EAAAsf,mBACAC,GAAA,EAGAC,EAAApH,GAAA1M,EAAA/J,EAAAgM,EAAA0K,EAAArY,EAAAsY,EAAA5N,EAFA6U,EAAA,IAAAnL,GAIA,QAAAoL,EA4BA,OA3BA,IAAAA,IAAA,IAAAA,IACAD,EAAA,IAAAC,GAGAzP,IAAA,EACA/G,WAAA+P,GAAA,IACAtX,IAEA8d,IAAA3E,EACAjZ,EAAAgb,YAAAhP,GAEA3N,EAAA0C,WAAAoa,aAAAnP,EAAA4R,EAAA3E,EAAA5a,GAIA2e,GACA1V,EAAA0V,EAAA,EAAAC,EAAAD,EAAA9W,WAGA+F,EAAAD,EAAAjL,gBAGAyK,IAAA4Q,GAAAlO,KACAN,GAAA3U,KAAAygB,IAAA0C,EAAAlZ,EAAA7E,GAAA0e,KAGAZ,IACAH,GAAA,EAEA,CAEA,GAAAhc,EAAA6X,SAAA7L,GACA,OAAAgQ,GAAA,EAEA,CAEA,QA3PA,CAEA,SAAAF,EAAApoB,EAAAoqB,GACAlV,EAAAlV,EAAAsV,EAAArK,EAAA,CACAoK,IAAAA,EACA2S,QAAAA,EACAqC,KAAAtC,EAAA,wBACAD,OAAAA,EACA9E,SAAAA,EACAC,WAAAA,EACAgF,QAAAA,EACAC,aAAAA,EACAvd,OAAAA,EACA2d,UAAAA,EACAjF,OAAA,SAAA1Y,EAAAuf,GACA,OAAAnH,GAAA1M,EAAA/J,EAAAgM,EAAA0K,EAAArY,EAAA6E,EAAA7E,GAAA0K,EAAA6U,EACA,EACAzB,QAAAA,GACO2B,GACP,CAGA,SAAAhe,IACAgc,EAAA,4BAEA9S,EAAAoL,wBAEApL,IAAA4S,GACAA,EAAAxH,uBAEA,CAGA,SAAA4H,EAAAgC,GAuDA,OAtDAlC,EAAA,qBACAkC,UAAAA,IAGAA,IAEAtC,EACAlP,EAAAyO,aAEAzO,EAAAyR,WAAAjV,GAGAA,IAAA4S,IAEAva,EAAA2K,EAAAvB,GAAAA,GAAA5Q,QAAA6Y,WAAAlG,EAAA3S,QAAA6Y,YAAA,GACArR,EAAA2K,EAAAnS,EAAA6Y,YAAA,IAGAjI,KAAAzB,GAAAA,IAAA/D,GAAAwH,OACAhC,GAAAzB,EACUA,IAAA/D,GAAAwH,QAAAhC,KACVA,GAAA,MAIAmR,IAAA5S,IACAA,EAAA+S,sBAAA1d,GAGA2K,EAAAgM,WAAA,WACA8G,EAAA,6BACA9S,EAAA+S,sBAAA,IACA,GAEA/S,IAAA4S,IACAA,EAAA5G,aACA4G,EAAAG,sBAAA,QAKA1d,IAAA2N,IAAAA,EAAAwK,UAAAnY,IAAA2B,IAAA3B,EAAAmY,YACA9I,GAAA,MAIA7T,EAAAwZ,gBAAAtK,EAAAgB,QAAA1L,IAAAwC,WACAmL,EAAAjL,WAAAmH,GAAA2J,iBAAA9I,EAAA1K,SAGA2f,GAAAhN,GAAAjI,KAGAlP,EAAAwZ,gBAAAtK,EAAA+H,iBAAA/H,EAAA+H,kBACA+K,GAAA,CACA,CAGA,SAAAM,IACA9R,GAAA5E,EAAAuG,GACAzB,GAAA9E,EAAAuG,EAAAnS,EAAAuL,WAEA6H,EAAA,CACAnE,SAAAE,EACAtV,KAAA,SACAwW,KAAAlK,EACAqK,SAAAA,GACAE,kBAAAA,GACAC,cAAAzB,GAEA,CAoJA,EACAgT,sBAAA,KACAmC,eAAA,WACA/d,EAAAU,SAAA,YAAArM,KAAAolB,cACAzZ,EAAAU,SAAA,YAAArM,KAAAolB,cACAzZ,EAAAU,SAAA,cAAArM,KAAAolB,cACAzZ,EAAAU,SAAA,WAAAmQ,IACA7Q,EAAAU,SAAA,YAAAmQ,IACA7Q,EAAAU,SAAA,YAAAmQ,GACA,EACAmN,aAAA,WACA,IAAAnF,EAAAxkB,KAAAwL,GAAAgZ,cACA7Y,EAAA6Y,EAAA,UAAAxkB,KAAA4kB,SACAjZ,EAAA6Y,EAAA,WAAAxkB,KAAA4kB,SACAjZ,EAAA6Y,EAAA,YAAAxkB,KAAA4kB,SACAjZ,EAAA6Y,EAAA,cAAAxkB,KAAA4kB,SACAjZ,EAAAU,SAAA,cAAArM,KACA,EACA4kB,QAAA,SAEArQ,GACA,IAAA/I,EAAAxL,KAAAwL,GACAnG,EAAArF,KAAAqF,QAEAwQ,GAAA5E,EAAAuG,GACAzB,GAAA9E,EAAAuG,EAAAnS,EAAAuL,WACAwD,EAAA,OAAApU,KAAA,CACAuU,IAAAA,IAEAkD,EAAAD,GAAAA,EAAAjL,WAEAsJ,GAAA5E,EAAAuG,GACAzB,GAAA9E,EAAAuG,EAAAnS,EAAAuL,WAEAH,GAAAgE,gBAMA6E,IAAA,EACAI,IAAA,EACAD,IAAA,EACAmQ,cAAA5pB,KAAA4mB,SACAnG,aAAAzgB,KAAAilB,iBAEA7B,GAAApjB,KAAA0mB,SAEAtD,GAAApjB,KAAA+mB,cAGA/mB,KAAAyf,kBACA9T,EAAAU,SAAA,OAAArM,MACA2L,EAAAH,EAAA,YAAAxL,KAAAqlB,eAGArlB,KAAA0pB,iBAEA1pB,KAAA2pB,eAEAze,GACAgC,EAAAb,SAAAgG,KAAA,kBAGAnF,EAAAsK,EAAA,gBAEAjD,IACAwD,KACAxD,EAAAmC,YAAAnC,EAAA8H,kBACAhX,EAAAuZ,YAAArK,EAAA+H,mBAGA5E,GAAAA,EAAAnL,YAAAmL,EAAAnL,WAAAsd,YAAAnS,IAEAnC,IAAAkC,GAAAxB,IAAA,UAAAA,GAAAc,cAEAtB,GAAAA,EAAAlJ,YAAAkJ,EAAAlJ,WAAAsd,YAAApU,GAGA+B,IACAxX,KAAAyf,iBACA9T,EAAA6L,EAAA,UAAAxX,MAGA2iB,GAAAnL,GAEAA,EAAAnK,MAAA,kBAGA0K,KAAAuB,IACAzM,EAAA2K,EAAAvB,GAAAA,GAAA5Q,QAAA6Y,WAAAle,KAAAqF,QAAA6Y,YAAA,GAGArR,EAAA2K,EAAAxX,KAAAqF,QAAA8Y,aAAA,GAEA1F,EAAA,CACAnE,SAAAtU,KACAd,KAAA,WACAwW,KAAA+B,EACA5B,SAAA,KACAE,kBAAA,KACAC,cAAAzB,IAGAgB,IAAAkC,GACA5B,IAAA,IAEA4C,EAAA,CACAlD,OAAAkC,EACAvY,KAAA,MACAwW,KAAA+B,EACA9B,OAAAJ,EACAS,cAAAzB,IAIAkE,EAAA,CACAnE,SAAAtU,KACAd,KAAA,SACAwW,KAAA+B,EACAzB,cAAAzB,IAIAkE,EAAA,CACAlD,OAAAkC,EACAvY,KAAA,OACAwW,KAAA+B,EACA9B,OAAAJ,EACAS,cAAAzB,IAGAkE,EAAA,CACAnE,SAAAtU,KACAd,KAAA,OACAwW,KAAA+B,EACAzB,cAAAzB,KAIA0B,IAAAA,GAAA6T,QAEAjU,KAAAD,IACAC,IAAA,IAEA4C,EAAA,CACAnE,SAAAtU,KACAd,KAAA,SACAwW,KAAA+B,EACAzB,cAAAzB,IAGAkE,EAAA,CACAnE,SAAAtU,KACAd,KAAA,OACAwW,KAAA+B,EACAzB,cAAAzB,KAMA9D,GAAAwH,SAEA,MAAApC,KAAA,IAAAA,KACAA,GAAAD,GACAG,GAAAD,IAGA2C,EAAA,CACAnE,SAAAtU,KACAd,KAAA,MACAwW,KAAA+B,EACAzB,cAAAzB,IAIAvU,KAAA8pB,WA9IA9pB,KAAA8lB,UAoJA,EACAA,SAAA,WACA1R,EAAA,UAAApU,MACAuV,EAAAiC,EAAAC,EAAAC,EAAAC,EAAAlC,EAAAmC,EAAAC,GAAAe,GAAAC,GAAAd,GAAAlC,GAAAE,GAAAH,GAAAE,GAAAoD,GAAAC,GAAAlD,GAAA0C,GAAAlI,GAAAE,QAAAF,GAAAC,MAAAD,GAAAW,MAAAX,GAAAwH,OAAA,KACA4B,GAAApP,QAAA,SAAAe,GACAA,EAAAwY,SAAA,CACA,GACAnK,GAAAlW,OAAAmV,GAAAC,GAAA,CACA,EACAgR,YAAA,SAEAxV,GACA,OAAAA,EAAAjV,MACA,WACA,cACAU,KAAA4kB,QAAArQ,GAEA,MAEA,gBACA,eACAiD,IACAxX,KAAAmd,YAAA5I,GA4KA,SAEAA,GACAA,EAAAmK,eACAnK,EAAAmK,aAAAsL,WAAA,QAGAzV,EAAAmC,YAAAnC,EAAA8H,gBACA,CAlLA4N,CAAA1V,IAGA,MAEA,kBACAA,EAAA8H,iBAGA,EAMA6N,QAAA,WAQA,IAPA,IACA1e,EADA2e,EAAA,GAEA5Z,EAAAvQ,KAAAwL,GAAA+E,SACAhM,EAAA,EACA+J,EAAAiC,EAAA5M,OACA0B,EAAArF,KAAAqF,QAEWd,EAAA+J,EAAO/J,IAGlBiI,EAFAhB,EAAA+E,EAAAhM,GAEAc,EAAAuL,UAAA5Q,KAAAwL,IAAA,IACA2e,EAAA3hB,KAAAgD,EAAA4e,aAAA/kB,EAAAyZ,aAAA+D,GAAArX,IAIA,OAAA2e,CACA,EAMA1M,KAAA,SAAA0M,GACA,IAAAE,EAAA,GACA9U,EAAAvV,KAAAwL,GACAxL,KAAAkqB,UAAAzf,QAAA,SAAA1D,EAAAxC,GACA,IAAAiH,EAAA+J,EAAAhF,SAAAhM,GAEAiI,EAAAhB,EAAAxL,KAAAqF,QAAAuL,UAAA2E,GAAA,KACA8U,EAAAtjB,GAAAyE,EAEA,EAAKxL,MACLmqB,EAAA1f,QAAA,SAAA1D,GACAsjB,EAAAtjB,KACAwO,EAAAsU,YAAAQ,EAAAtjB,IACAwO,EAAAiR,YAAA6D,EAAAtjB,IAEA,EACA,EAKA+iB,KAAA,WACA,IAAApM,EAAA1d,KAAAqF,QAAAqY,MACAA,GAAAA,EAAA4M,KAAA5M,EAAA4M,IAAAtqB,KACA,EAQAwM,QAAA,SAAAhB,EAAAM,GACA,OAAAU,EAAAhB,EAAAM,GAAA9L,KAAAqF,QAAAuL,UAAA5Q,KAAAwL,IAAA,EACA,EAQA2I,OAAA,SAAAjV,EAAAsH,GACA,IAAAnB,EAAArF,KAAAqF,QAEA,YAAAmB,EACA,OAAAnB,EAAAnG,GAEA,IAAAiW,EAAAnB,EAAAgB,aAAAhV,KAAAd,EAAAsH,GAGAnB,EAAAnG,QADA,IAAAiW,EACAA,EAEA3O,EAGA,UAAAtH,GACAwc,GAAArW,EAGA,EAKAklB,QAAA,WACAnW,EAAA,UAAApU,MACA,IAAAwL,EAAAxL,KAAAwL,GACAA,EAAAkI,GAAA,KACA/H,EAAAH,EAAA,YAAAxL,KAAA0f,aACA/T,EAAAH,EAAA,aAAAxL,KAAA0f,aACA/T,EAAAH,EAAA,cAAAxL,KAAA0f,aAEA1f,KAAAyf,kBACA9T,EAAAH,EAAA,WAAAxL,MACA2L,EAAAH,EAAA,YAAAxL,OAIA4D,MAAAqE,UAAAwC,QAAAR,KAAAuB,EAAAgf,iBAAA,wBAAAhf,GACAA,EAAAif,gBAAA,YACA,GAEAzqB,KAAA4kB,UAEA5kB,KAAA6kB,4BAEArL,GAAAhV,OAAAgV,GAAA/L,QAAAzN,KAAAwL,IAAA,GACAxL,KAAAwL,GAAAA,EAAA,IACA,EACAib,WAAA,WACA,IAAA5O,GAAA,CAEA,GADAzD,EAAA,YAAApU,MACAyQ,GAAAgE,cAAA,OACAvH,EAAAuI,EAAA,kBAEAzV,KAAAqF,QAAA2Y,mBAAAvI,EAAAlJ,YACAkJ,EAAAlJ,WAAAsd,YAAApU,GAGAoC,IAAA,CACA,CACA,EACA4R,WAAA,SAAAxT,GACA,aAAAA,EAAAc,aAMA,GAAAc,GAAA,CAEA,GADAzD,EAAA,YAAApU,MACAyQ,GAAAgE,cAAA,OAEAc,EAAA8N,SAAA7L,KAAAxX,KAAAqF,QAAAyW,MAAAM,YACA7G,EAAAoR,aAAAlR,EAAA+B,GACQG,EACRpC,EAAAoR,aAAAlR,EAAAkC,GAEApC,EAAAiR,YAAA/Q,GAGAzV,KAAAqF,QAAAyW,MAAAM,aACApc,KAAAqhB,QAAA7J,EAAA/B,GAGAvI,EAAAuI,EAAA,cACAoC,IAAA,CACA,OAvBA7X,KAAAymB,YAwBA,GAgKA3M,IACAvZ,EAAA8L,SAAA,qBAAAkI,IACA9D,GAAAwH,QAAAqB,KAAA/E,EAAAmC,YACAnC,EAAA8H,gBAEA,GAIA5L,GAAAia,MAAA,CACAnqB,GAAAA,EACAoL,IAAAA,EACAuB,IAAAA,EACAhI,KAAAA,EACAylB,GAAA,SAAAnf,EAAAM,GACA,QAAAU,EAAAhB,EAAAM,EAAAN,GAAA,EACA,EACAtD,OA3hEA,SAAA0iB,EAAA7H,GACA,GAAA6H,GAAA7H,EACA,QAAAjc,KAAAic,EACAA,EAAA/Y,eAAAlD,KACA8jB,EAAA9jB,GAAAic,EAAAjc,IAKA,OAAA8jB,CACA,EAkhEAlY,SAAAA,EACAlG,QAAAA,EACAK,YAAAA,EACAuE,MAAAA,EACAH,MAAAA,EACApM,SAAAse,GACA0H,eAAAzH,GACA0H,gBAAAxQ,GACAlK,SAAAA,GAQAK,GAAAkP,IAAA,SAAAoL,GACA,OAAAA,EAAArX,EACA,EAOAjD,GAAAwD,MAAA,WACA,QAAA+W,EAAAlhB,UAAAnG,OAAAkQ,EAAA,IAAAjQ,MAAAonB,GAAAC,EAAA,EAAyEA,EAAAD,EAAaC,IACtFpX,EAAAoX,GAAAnhB,UAAAmhB,GAGApX,EAAA,GAAAxK,cAAAzF,QAAAiQ,EAAAA,EAAA,IACAA,EAAApJ,QAAA,SAAAyJ,GACA,IAAAA,EAAAjM,YAAAiM,EAAAjM,UAAAoB,YACA,qEAAAiB,OAAA,GAAqFgT,SAAArT,KAAAiK,IAGrFA,EAAAwW,QAAAja,GAAAia,MAAAvgB,EAAA,GAAuDsG,GAAAia,MAAAxW,EAAAwW,QACvD1W,EAAAC,MAAAC,EACA,EACA,EAQAzD,GAAAya,OAAA,SAAA1f,EAAAnG,GACA,WAAAoL,GAAAjF,EAAAnG,EACA,EAGAoL,GAAA/H,QAl/EA,SAo/EA,IACAyiB,GACAC,GAEAC,GACAC,GACAC,GACAC,GAPAC,GAAA,GAGAC,IAAA,EAmHA,SAAAC,KACAF,GAAAhhB,QAAA,SAAAmhB,GACAhC,cAAAgC,EAAAC,IACA,GACAJ,GAAA,EACA,CAEA,SAAAK,KACAlC,cAAA4B,GACA,CAEA,IAoLAO,GApLAH,GAAAlZ,EAAA,SAAA6B,EAAAlP,EAAAkQ,EAAAyW,GAEA,GAAA3mB,EAAA4mB,OAAA,CACA,IAMAC,EANAnZ,GAAAwB,EAAAkI,QAAAlI,EAAAkI,QAAA,GAAAlI,GAAAoI,QACA3J,GAAAuB,EAAAkI,QAAAlI,EAAAkI,QAAA,GAAAlI,GAAAqI,QACAuP,EAAA9mB,EAAA+mB,kBACAC,EAAAhnB,EAAAinB,YACA9a,EAAAjD,IACAge,GAAA,EAGAnB,KAAA7V,IACA6V,GAAA7V,EACAoW,KACAR,GAAA9lB,EAAA4mB,OACAC,EAAA7mB,EAAAmnB,UAEA,IAAArB,KACAA,GAAAlb,EAAAsF,GAAA,KAIA,IAAAkX,EAAA,EACAC,EAAAvB,GAEA,GACA,IAAA3f,EAAAkhB,EACAlZ,EAAA9E,EAAAlD,GACAyD,EAAAuE,EAAAvE,IACAE,EAAAqE,EAAArE,OACAD,EAAAsE,EAAAtE,KACAE,EAAAoE,EAAApE,MACAvO,EAAA2S,EAAA3S,MACAC,EAAA0S,EAAA1S,OACA6rB,OAAA,EACAC,OAAA,EACA7a,EAAAvG,EAAAuG,YACAE,EAAAzG,EAAAyG,aACAsI,EAAArN,EAAA1B,GACAqhB,EAAArhB,EAAAiG,WACAqb,EAAAthB,EAAAkG,UAEAlG,IAAAgG,GACAmb,EAAA9rB,EAAAkR,IAAA,SAAAwI,EAAApI,WAAA,WAAAoI,EAAApI,WAAA,YAAAoI,EAAApI,WACAya,EAAA9rB,EAAAmR,IAAA,SAAAsI,EAAAnI,WAAA,WAAAmI,EAAAnI,WAAA,YAAAmI,EAAAnI,aAEAua,EAAA9rB,EAAAkR,IAAA,SAAAwI,EAAApI,WAAA,WAAAoI,EAAApI,WACAya,EAAA9rB,EAAAmR,IAAA,SAAAsI,EAAAnI,WAAA,WAAAmI,EAAAnI,YAGA,IAAA2a,EAAAJ,IAAAloB,KAAAygB,IAAA9V,EAAA2D,IAAAoZ,GAAAU,EAAAhsB,EAAAkR,IAAAtN,KAAAygB,IAAAhW,EAAA6D,IAAAoZ,KAAAU,GACAG,EAAAJ,IAAAnoB,KAAAygB,IAAA/V,EAAA6D,IAAAmZ,GAAAW,EAAAhsB,EAAAmR,IAAAxN,KAAAygB,IAAAjW,EAAA+D,IAAAmZ,KAAAW,GAEA,IAAArB,GAAAgB,GACA,QAAAloB,EAAA,EAAsBA,GAAAkoB,EAAgBloB,IACtCknB,GAAAlnB,KACAknB,GAAAlnB,GAAA,IAKAknB,GAAAgB,GAAAM,IAAAA,GAAAtB,GAAAgB,GAAAO,IAAAA,GAAAvB,GAAAgB,GAAAjhB,KAAAA,IACAigB,GAAAgB,GAAAjhB,GAAAA,EACAigB,GAAAgB,GAAAM,GAAAA,EACAtB,GAAAgB,GAAAO,GAAAA,EACApD,cAAA6B,GAAAgB,GAAAZ,KAEA,GAAAkB,GAAA,GAAAC,IACAT,GAAA,EAGAd,GAAAgB,GAAAZ,IAAAhF,YAAA,WAEAmF,GAAA,IAAAhsB,KAAAitB,OACAxc,GAAAwH,OAAAmN,aAAAmG,IAIA,IAAA2B,EAAAzB,GAAAzrB,KAAAitB,OAAAD,GAAAvB,GAAAzrB,KAAAitB,OAAAD,GAAAX,EAAA,EACAc,EAAA1B,GAAAzrB,KAAAitB,OAAAF,GAAAtB,GAAAzrB,KAAAitB,OAAAF,GAAAV,EAAA,EAEA,mBAAAH,GACA,aAAAA,EAAAjiB,KAAAwG,GAAAE,QAAApE,WAAAmH,GAAAyZ,EAAAD,EAAA3Y,EAAAgX,GAAAE,GAAAzrB,KAAAitB,OAAAzhB,KAKAsH,EAAA2Y,GAAAzrB,KAAAitB,OAAAzhB,GAAA2hB,EAAAD,EACA,EAAStnB,KAAA,CACTqnB,MAAAR,IACS,MAITA,GACA,OAAIpnB,EAAA+nB,cAAAV,IAAAlb,IAAAkb,EAAAzc,EAAAyc,GAAA,KAEJhB,GAAAa,CA/FA,CAgGA,EAAC,IAEDc,GAAA,SAAA/X,GACA,IAAAU,EAAAV,EAAAU,cACAC,EAAAX,EAAAW,YACAuB,EAAAlC,EAAAkC,OACAQ,EAAA1C,EAAA0C,eACAQ,EAAAlD,EAAAkD,sBACAN,EAAA5C,EAAA4C,mBACAE,EAAA9C,EAAA8C,qBACA,GAAApC,EAAA,CACA,IAAAsX,EAAArX,GAAA+B,EACAE,IACA,IAAAqL,EAAAvN,EAAAuX,gBAAAvX,EAAAuX,eAAA5pB,OAAAqS,EAAAuX,eAAA,GAAAvX,EACAnM,EAAAwC,SAAA2Z,iBAAAzC,EAAA5G,QAAA4G,EAAA3G,SACAxE,IAEAkV,IAAAA,EAAA9hB,GAAA6X,SAAAxZ,KACA2O,EAAA,SACAxY,KAAAwtB,QAAA,CACAhW,OAAAA,EACAvB,YAAAA,IAXA,CAcA,EAEA,SAAAwX,KAAA,CAsCA,SAAAC,KAAA,CAoBA,SAAAC,KACA,SAAAC,IACA5tB,KAAA8T,SAAA,CACA+Z,UAAA,0BAEA,CA2DA,OAzDAD,EAAA3lB,UAAA,CACA6lB,UAAA,SAAAxY,GACA,IAAAkC,EAAAlC,EAAAkC,OACAuU,GAAAvU,CACA,EACAuW,cAAA,SAAAC,GACA,IAAAxG,EAAAwG,EAAAxG,UACA3d,EAAAmkB,EAAAnkB,OACA0Y,EAAAyL,EAAAzL,OACAvK,EAAAgW,EAAAhW,eACA2P,EAAAqG,EAAArG,QACAjT,EAAAsZ,EAAAtZ,OACA,GAAAsD,EAAA3S,QAAA4oB,KAAA,CACA,IAAAziB,EAAAxL,KAAAsU,SAAA9I,GACAnG,EAAArF,KAAAqF,QAEA,GAAAwE,GAAAA,IAAA2B,EAAA,CACA,IAAA0iB,EAAAnC,IAEA,IAAAxJ,EAAA1Y,IACAgD,EAAAhD,EAAAxE,EAAAwoB,WAAA,GACA9B,GAAAliB,GAEAkiB,GAAA,KAGAmC,GAAAA,IAAAnC,IACAlf,EAAAqhB,EAAA7oB,EAAAwoB,WAAA,EAEA,CAEAlG,IACAH,GAAA,GACA9S,GArBA,CAsBA,EACA2Y,KAAA,SAAAc,GACA,IA+BAC,EAAAC,EAGAC,EACAC,EAHAC,EACAC,EAjCAzW,EAAAmW,EAAAnW,eACA/B,EAAAkY,EAAAlY,YACAuB,EAAA2W,EAAA3W,OACA8V,EAAArX,GAAAjW,KAAAsU,SACAjP,EAAArF,KAAAqF,QACA0mB,IAAAlf,EAAAkf,GAAA1mB,EAAAwoB,WAAA,GAEA9B,KAAA1mB,EAAA4oB,MAAAhY,GAAAA,EAAA5Q,QAAA4oB,OACAzW,IAAAuU,KACAuB,EAAA1N,wBACA0N,IAAAtV,GAAAA,EAAA4H,wBAqBAyO,EApBAtC,GAqBAyC,GADAJ,EApBA5W,GAqBAjL,WACAkiB,EAAAJ,EAAA9hB,WAGAiiB,GAAAC,IAAAD,EAAAE,YAAAL,KAAAI,EAAAC,YAAAN,KACAE,EAAArd,EAAAmd,GACAG,EAAAtd,EAAAod,GAEAG,EAAAE,YAAAD,IAAAH,EAAAC,GACAA,IAGAC,EAAA7H,aAAA0H,EAAAG,EAAAje,SAAA+d,IACAG,EAAA9H,aAAAyH,EAAAK,EAAAle,SAAAge,KAjCAjB,EAAA9M,aACA8M,IAAAtV,GAAAA,EAAAwI,aAGA,EACAmO,QAAA,WACA5C,GAAA,IACA,GAEApiB,EAAAikB,EAAA,CACAhZ,WAAA,OACAM,gBAAA,WACA,OACA0Z,SAAA7C,GAEA,GAEA,CAhIA0B,GAAAxlB,UAAA,CACA4mB,WAAA,KACAf,UAAA,SAAAE,GACA,IAAAlY,EAAAkY,EAAAlY,kBACA9V,KAAA6uB,WAAA/Y,CACA,EACA0X,QAAA,SAAAW,GACA,IAAA3W,EAAA2W,EAAA3W,OACAvB,EAAAkY,EAAAlY,YACAjW,KAAAsU,SAAAsL,wBAEA3J,GACAA,EAAA2J,wBAGA,IAAA6E,EAAArU,EAAApQ,KAAAsU,SAAA9I,GAAAxL,KAAA6uB,WAAA7uB,KAAAqF,SAEAof,EACAzkB,KAAAsU,SAAA9I,GAAAmb,aAAAnP,EAAAiN,GAEAzkB,KAAAsU,SAAA9I,GAAAgb,YAAAhP,GAGAxX,KAAAsU,SAAAkM,aAEAvK,GACAA,EAAAuK,YAEA,EACA6M,KAAAA,IAGA1jB,EAAA8jB,GAAA,CACA7Y,WAAA,kBAKA8Y,GAAAzlB,UAAA,CACAulB,QAAA,SAAAsB,GACA,IAAAtX,EAAAsX,EAAAtX,OAEAuX,EADAD,EAAA7Y,aACAjW,KAAAsU,SACAya,EAAAnP,wBACApI,EAAAjL,YAAAiL,EAAAjL,WAAAsd,YAAArS,GACAuX,EAAAvO,YACA,EACA6M,KAAAA,IAGA1jB,EAAA+jB,GAAA,CACA9Y,WAAA,kBAgGA,IAEAoa,GAEAC,GAMAC,GACAC,GACAC,GAZAC,GAAA,GACAC,GAAA,GAIAC,IAAA,EAEAC,IAAA,EAEA1X,IAAA,EAKA,SAAA2X,KACA,SAAAC,EAAApb,GAEA,QAAA/M,KAAAvH,KACA,MAAAuH,EAAA6O,OAAA,uBAAApW,KAAAuH,KACAvH,KAAAuH,GAAAvH,KAAAuH,GAAA3B,KAAA5F,OAIAsU,EAAAjP,QAAAma,eACAjf,EAAA8L,SAAA,YAAArM,KAAA2vB,qBAEApvB,EAAA8L,SAAA,UAAArM,KAAA2vB,oBACApvB,EAAA8L,SAAA,WAAArM,KAAA2vB,qBAGApvB,EAAA8L,SAAA,UAAArM,KAAA4vB,eACArvB,EAAA8L,SAAA,QAAArM,KAAA6vB,aACA7vB,KAAA8T,SAAA,CACAgc,cAAA,oBACAC,aAAA,KACAtR,QAAA,SAAAC,EAAAlH,GACA,IAAA/U,EAAA,GAEA4sB,GAAA1rB,QAAAsrB,KAAA3a,EACA+a,GAAA5kB,QAAA,SAAAulB,EAAAzrB,GACA9B,IAAA8B,EAAA,SAAAyrB,EAAArR,WACA,GAEAlc,EAAA+U,EAAAmH,YAGAD,EAAAD,QAAA,OAAAhc,EACA,EAEA,CA+bA,OA7bAitB,EAAAznB,UAAA,CACAgoB,kBAAA,EACAC,aAAA,EACAC,iBAAA,SAAA7a,GACA,IAAA3E,EAAA2E,EAAAkC,OACA0X,GAAAve,CACA,EACAyf,WAAA,WACApwB,KAAAkwB,aAAAb,GAAA5hB,QAAAyhB,GACA,EACAmB,WAAA,SAAArC,GACA,IAAA1Z,EAAA0Z,EAAA1Z,SACAI,EAAAsZ,EAAAtZ,OACA,GAAA1U,KAAAkwB,YAAA,CAEA,QAAA3rB,EAAA,EAAsBA,EAAA8qB,GAAA1rB,OAA8BY,IACpD+qB,GAAA9mB,KAAA4I,EAAAie,GAAA9qB,KACA+qB,GAAA/qB,GAAA+rB,cAAAjB,GAAA9qB,GAAA+rB,cACAhB,GAAA/qB,GAAAqM,WAAA,EACA0e,GAAA/qB,GAAA8I,MAAA,kBACAR,EAAAyiB,GAAA/qB,GAAAvE,KAAAqF,QAAAyqB,eAAA,GACAT,GAAA9qB,KAAA2qB,IAAAriB,EAAAyiB,GAAA/qB,GAAAvE,KAAAqF,QAAA8Y,aAAA,GAGA7J,EAAAmS,aAEA/R,GAbA,CAcA,EACAtD,MAAA,SAAA+c,GACA,IAAA7Z,EAAA6Z,EAAA7Z,SACAiB,EAAA4Y,EAAA5Y,OACAiD,EAAA2V,EAAA3V,sBACA9D,EAAAyZ,EAAAzZ,OACA1U,KAAAkwB,cAEAlwB,KAAAqF,QAAA2Y,mBACAqR,GAAA1rB,QAAAsrB,KAAA3a,IACAic,IAAA,EAAAhb,GACAiD,EAAA,SACA9D,KAGA,EACA8b,UAAA,SAAA1B,GACA,IAAAvW,EAAAuW,EAAAvW,cACAhD,EAAAuZ,EAAAvZ,OACAb,EAAAoa,EAAApa,OACA1U,KAAAkwB,cACAK,IAAA,EAAAhb,GACA+Z,GAAA7kB,QAAA,SAAA2G,GACAlE,EAAAkE,EAAA,aACA,GACAmH,IACA6W,IAAA,EACA1a,IACA,EACA+b,UAAA,SAAAC,GACA,IAAAlc,EAAAxU,KAGAsY,GADAoY,EAAApc,SACAoc,EAAApY,gBACA5D,EAAAgc,EAAAhc,OACA1U,KAAAkwB,cACAZ,GAAA7kB,QAAA,SAAA2G,GACAlE,EAAAkE,EAAA,kBAEAoD,EAAAnP,QAAA2Y,mBAAA5M,EAAA7E,YACA6E,EAAA7E,WAAAsd,YAAAzY,EAEA,GACAkH,IACA8W,IAAA,EACA1a,IACA,EACAic,gBAAA,SAAAC,GACAA,EAAAtc,UAEAtU,KAAAkwB,aAAAjB,IACAA,GAAA4B,UAAAlB,qBAGAN,GAAA5kB,QAAA,SAAAulB,GACAA,EAAAM,cAAArf,EAAA+e,EACA,GAEAX,GAAAA,GAAA5R,KAAA,SAAA9N,EAAA0W,GACA,OAAA1W,EAAA2gB,cAAAjK,EAAAiK,aACA,GACAxY,IAAA,CACA,EACAA,YAAA,SAAAgZ,GACA,IAAAC,EAAA/wB,KAEAsU,EAAAwc,EAAAxc,SACA,GAAAtU,KAAAkwB,YAAA,CAEA,GAAAlwB,KAAAqF,QAAAoY,OAOAnJ,EAAAsL,wBAEA5f,KAAAqF,QAAAkZ,WAAA,CACA8Q,GAAA5kB,QAAA,SAAAulB,GACAA,IAAAd,IACAhiB,EAAA8iB,EAAA,sBACA,GACA,IAAA9N,EAAAxT,EAAAwgB,IAAA,SACAG,GAAA5kB,QAAA,SAAAulB,GACAA,IAAAd,IACA3b,EAAAyc,EAAA9N,EACA,GACAsN,IAAA,EACAD,IAAA,CACA,CAGAjb,EAAAkM,WAAA,WACAgP,IAAA,EACAD,IAAA,EAEAwB,EAAA1rB,QAAAkZ,WACA8Q,GAAA5kB,QAAA,SAAAulB,GACAvc,EAAAuc,EACA,GAIAe,EAAA1rB,QAAAoY,MACAuT,IAEA,EAxCA,CAyCA,EACAC,SAAA,SAAAC,GACA,IAAArnB,EAAAqnB,EAAArnB,OACA2d,EAAA0J,EAAA1J,UACA9S,EAAAwc,EAAAxc,OAEA8a,KAAAH,GAAA5hB,QAAA5D,KACA2d,GAAA,GACA9S,IAEA,EACAsS,OAAA,SAAAmK,GACA,IAAA/J,EAAA+J,EAAA/J,aACA7R,EAAA4b,EAAA5b,OACAjB,EAAA6c,EAAA7c,SACA4N,EAAAiP,EAAAjP,SAEAmN,GAAA1rB,OAAA,IAEA0rB,GAAA5kB,QAAA,SAAAulB,GACA1b,EAAA8L,kBAAA,CACAvW,OAAAmmB,EACAxc,KAAAgc,GAAA9gB,EAAAshB,GAAA9N,IAEAzO,EAAAuc,GACAA,EAAAjQ,SAAAmC,EACAkF,EAAA/G,qBAAA2P,EACA,GACAR,IAAA,EA6WA,SAAA4B,EAAA7b,GACA8Z,GAAA5kB,QAAA,SAAAulB,EAAAzrB,GACA,IAAAsF,EAAA0L,EAAAhF,SAAAyf,EAAAM,eAAAc,EAAAzxB,OAAA4E,GAAA,IAEAsF,EACA0L,EAAAoR,aAAAqJ,EAAAnmB,GAEA0L,EAAAiR,YAAAwJ,EAEA,EACA,CAtXAqB,EAAArxB,KAAAqF,QAAA2Y,kBAAAzI,GAEA,EACA+b,kBAAA,SAAAC,GACA,IAAAjd,EAAAid,EAAAjd,SACA4S,EAAAqK,EAAArK,QACAsC,EAAA+H,EAAA/H,UACAxR,EAAAuZ,EAAAvZ,eACAP,EAAA8Z,EAAA9Z,SACAxB,EAAAsb,EAAAtb,YACA5Q,EAAArF,KAAAqF,QAEA,GAAAmkB,EAAA,CAQA,GANAtC,GACAlP,EAAAyO,aAGA8I,IAAA,EAEAlqB,EAAAkZ,WAAA8Q,GAAA1rB,OAAA,IAAA6rB,KAAAtI,IAAAlP,EAAA3S,QAAAoY,OAAAxH,GAAA,CAEA,IAAAub,EAAA9iB,EAAAwgB,IAAA,SACAG,GAAA5kB,QAAA,SAAAulB,GACAA,IAAAd,KACA3b,EAAAyc,EAAAwB,GAGA/Z,EAAA+O,YAAAwJ,GACA,GACAR,IAAA,CACA,CAGA,IAAAtI,EAMA,GAJAsI,IACAwB,KAGA3B,GAAA1rB,OAAA,GACA,IAAA8tB,EAAArC,GAEApX,EAAAyR,WAAAnV,GAGA0D,EAAA3S,QAAAkZ,YAAA6Q,IAAAqC,GACAnC,GAAA7kB,QAAA,SAAA2G,GACA4G,EAAAoI,kBAAA,CACAvW,OAAAuH,EACAoC,KAAA2b,KAEA/d,EAAA2O,SAAAoP,GACA/d,EAAA4O,sBAAA,IACA,EAEA,MACAhI,EAAAyR,WAAAnV,EAGA,CACA,EACAod,yBAAA,SAAAC,GACA,IAAAzP,EAAAyP,EAAAzP,SACAgF,EAAAyK,EAAAzK,QACAlP,EAAA2Z,EAAA3Z,eAKA,GAJAqX,GAAA5kB,QAAA,SAAAulB,GACAA,EAAAhQ,sBAAA,IACA,GAEAhI,EAAA3S,QAAAkZ,YAAA2I,GAAAlP,EAAA6Y,UAAAX,YAAA,CACAf,GAAAxlB,EAAA,GAAoCuY,GACpC,IAAA0P,EAAAlkB,EAAAwhB,IAAA,GACAC,GAAAlgB,KAAA2iB,EAAA1R,EACAiP,GAAAjgB,MAAA0iB,EAAAzR,CACA,CACA,EACA0R,0BAAA,WACArC,KACAA,IAAA,EACAwB,KAEA,EACA3D,KAAA,SAAAyE,GACA,IAAAvd,EAAAud,EAAA9b,cACAT,EAAAuc,EAAAvc,OACAkC,EAAAqa,EAAAra,SACAnD,EAAAwd,EAAAxd,SACAkE,EAAAsZ,EAAAtZ,sBACA5C,EAAAkc,EAAAlc,SACAK,EAAA6b,EAAA7b,YACAqX,EAAArX,GAAAjW,KAAAsU,SACA,GAAAC,EAAA,CACA,IAAAlP,EAAArF,KAAAqF,QACAkL,EAAAkH,EAAAlH,SAEA,IAAAuH,GAOA,GANAzS,EAAA0qB,eAAA/vB,KAAAiwB,kBACAjwB,KAAA2vB,qBAGA9iB,EAAAqiB,GAAA7pB,EAAAyqB,gBAAAT,GAAA5hB,QAAAyhB,MAEAG,GAAA5hB,QAAAyhB,IA8CAG,GAAA7qB,OAAA6qB,GAAA5hB,QAAAyhB,IAAA,GACAF,GAAA,KACA3Z,EAAA,CACAf,SAAAA,EACAiB,OAAAA,EACArW,KAAA,WACAsW,SAAA0Z,GACA6C,YAAAxd,QArDA,CAUA,GATA8a,GAAA7mB,KAAA0mB,IACA7Z,EAAA,CACAf,SAAAA,EACAiB,OAAAA,EACArW,KAAA,SACAsW,SAAA0Z,GACA6C,YAAAxd,IAGAA,EAAAyd,UAAAhD,IAAA1a,EAAA9I,GAAA6X,SAAA2L,IAAA,CACA,IAMA1gB,EAAA/J,EANA0tB,EAAAhhB,EAAA+d,IACAkD,EAAAjhB,EAAAie,IAEA,IAAA+C,IAAAC,GAAAD,IAAAC,EAaA,IARAA,EAAAD,GACA1tB,EAAA0tB,EACA3jB,EAAA4jB,IAEA3tB,EAAA2tB,EACA5jB,EAAA2jB,EAAA,GAGqB1tB,EAAA+J,EAAO/J,KAC5B8qB,GAAA5hB,QAAA8C,EAAAhM,MACAsI,EAAA0D,EAAAhM,GAAAc,EAAAyqB,eAAA,GACAT,GAAA7mB,KAAA+H,EAAAhM,IACA8Q,EAAA,CACAf,SAAAA,EACAiB,OAAAA,EACArW,KAAA,SACAsW,SAAAjF,EAAAhM,GACAwtB,YAAAxd,IAIA,MACAya,GAAAE,GAGAD,GAAA3B,CACA,CAcA,GAAAxV,IAAA9X,KAAAkwB,YAAA,CAEA,IAAAzY,EAAA/D,GAAArO,QAAAoY,MAAAhG,IAAAlC,IAAA8Z,GAAA1rB,OAAA,GACA,IAAAue,EAAAxT,EAAAwgB,IACAiD,EAAAlhB,EAAAie,GAAA,SAAAlvB,KAAAqF,QAAAyqB,cAAA,KAIA,IAHAP,IAAAlqB,EAAAkZ,YAAA2Q,GAAAlP,sBAAA,MACAsN,EAAA1N,yBAEA2P,KACAlqB,EAAAkZ,YACA2Q,GAAAnP,SAAAmC,EACAmN,GAAA5kB,QAAA,SAAAulB,GAGA,GAFAA,EAAAhQ,sBAAA,KAEAgQ,IAAAd,GAAA,CACA,IAAA1b,EAAAgc,GAAA9gB,EAAAshB,GAAA9N,EACA8N,EAAAjQ,SAAAvM,EAEA8Z,EAAAlN,kBAAA,CACAvW,OAAAmmB,EACAxc,KAAAA,GAEA,CACA,IAKAwd,KACA3B,GAAA5kB,QAAA,SAAAulB,GACAzf,EAAA4hB,GACA1a,EAAAkP,aAAAqJ,EAAAzf,EAAA4hB,IAEA1a,EAAA+O,YAAAwJ,GAGAmC,GACA,GAIAvc,IAAA3E,EAAAie,KAAA,CACA,IAAAkD,GAAA,EACA/C,GAAA5kB,QAAA,SAAAulB,GACAA,EAAAM,gBAAArf,EAAA+e,KACAoC,GAAA,EAGA,GAEAA,GACA5Z,EAAA,SAEA,CAIA6W,GAAA5kB,QAAA,SAAAulB,GACAvc,EAAAuc,EACA,GACA1C,EAAA9M,YACA,CAEAyO,GAAA3B,CACA,EAGA/X,IAAAkC,GAAAxB,GAAA,UAAAA,EAAAc,cACAuY,GAAA7kB,QAAA,SAAA2G,GACAA,EAAA7E,YAAA6E,EAAA7E,WAAAsd,YAAAzY,EACA,EA5IA,CA8IA,EACAihB,cAAA,WACAryB,KAAAkwB,YAAApY,IAAA,EACAwX,GAAA3rB,OAAA,CACA,EACA2uB,cAAA,WACAtyB,KAAA2vB,qBAEAhkB,EAAAU,SAAA,YAAArM,KAAA2vB,oBACAhkB,EAAAU,SAAA,UAAArM,KAAA2vB,oBACAhkB,EAAAU,SAAA,WAAArM,KAAA2vB,oBACAhkB,EAAAU,SAAA,UAAArM,KAAA4vB,eACAjkB,EAAAU,SAAA,QAAArM,KAAA6vB,YACA,EACAF,mBAAA,SAAApb,GACA,cAAAuD,IAAAA,IAEAmX,KAAAjvB,KAAAsU,UAEAC,GAAA/H,EAAA+H,EAAA1K,OAAA7J,KAAAqF,QAAAuL,UAAA5Q,KAAAsU,SAAA9I,IAAA,IAEA+I,GAAA,IAAAA,EAAA2P,QAEA,KAAAmL,GAAA1rB,QAAA,CACA,IAAA6H,EAAA6jB,GAAA,GACAxiB,EAAArB,EAAAxL,KAAAqF,QAAAyqB,eAAA,GACAT,GAAAkD,QACAld,EAAA,CACAf,SAAAtU,KAAAsU,SACAiB,OAAAvV,KAAAsU,SAAA9I,GACAtM,KAAA,WACAsW,SAAAhK,EACAumB,YAAAxd,GAEA,CACA,EACAqb,cAAA,SAAArb,GACAA,EAAAzN,MAAA9G,KAAAqF,QAAA0qB,eACA/vB,KAAAiwB,kBAAA,EAEA,EACAJ,YAAA,SAAAtb,GACAA,EAAAzN,MAAA9G,KAAAqF,QAAA0qB,eACA/vB,KAAAiwB,kBAAA,EAEA,GAEAtmB,EAAA+lB,EAAA,CAEA9a,WAAA,YACA8V,MAAA,CAKA8H,OAAA,SAAAhnB,GACA,IAAA8I,EAAA9I,EAAAe,WAAAmH,GACAY,GAAAA,EAAAjP,QAAAwrB,aAAAxB,GAAA5hB,QAAAjC,KAEAyjB,IAAAA,KAAA3a,IACA2a,GAAA4B,UAAAlB,qBAEAV,GAAA3a,GAGAzH,EAAArB,EAAA8I,EAAAjP,QAAAyqB,eAAA,GACAT,GAAA7mB,KAAAgD,GACA,EAMAinB,SAAA,SAAAjnB,GACA,IAAA8I,EAAA9I,EAAAe,WAAAmH,GACAzC,EAAAoe,GAAA5hB,QAAAjC,GACA8I,GAAAA,EAAAjP,QAAAwrB,YAAA5f,IACApE,EAAArB,EAAA8I,EAAAjP,QAAAyqB,eAAA,GACAT,GAAA7qB,OAAAyM,EAAA,GACA,GAEAiE,gBAAA,WACA,IA76GAoL,EA66GAoS,EAAA1yB,KAEA2yB,EAAA,GACAC,EAAA,GAsBA,OArBAvD,GAAA5kB,QAAA,SAAAulB,GAMA,IAAAna,EALA8c,EAAAnqB,KAAA,CACAwnB,iBAAAA,EACA/e,MAAA+e,EAAAM,gBAMAza,EADA2Z,IAAAQ,IAAAd,IACA,EACUM,GACVve,EAAA+e,EAAA,SAAA0C,EAAArtB,QAAAyqB,cAAA,KAEA7e,EAAA+e,GAGA4C,EAAApqB,KAAA,CACAwnB,iBAAAA,EACA/e,MAAA4E,GAEA,GACA,CACAwU,OAv8GA/J,EAu8GA+O,GAn8GA,SAAA/O,GACA,GAAA1c,MAAAC,QAAAyc,GAAA,CACA,QAAA/b,EAAA,EAAAsuB,EAAA,IAAAjvB,MAAA0c,EAAA3c,QAAkDY,EAAA+b,EAAA3c,OAAgBY,IAAAsuB,EAAAtuB,GAAA+b,EAAA/b,GAElE,OAAAsuB,CACA,CACA,CATAC,CAAAxS,IAWA,SAAAyS,GACA,GAAA5pB,OAAAC,YAAA3F,OAAAsvB,IAAA,uBAAAtvB,OAAAwE,UAAAqV,SAAArT,KAAA8oB,GAAA,OAAAnvB,MAAAgT,KAAAmc,EACA,CAbAC,CAAA1S,IAeA,WACA,UAAA2S,UAAA,kDACA,CAjBAC,IAu8GAC,OAAA,GAAA7oB,OAAAglB,IACAqD,YAAAA,EACAC,YAAAA,EAEA,EACAxd,gBAAA,CACA2a,aAAA,SAAAjpB,GASA,MANA,UAFAA,EAAAA,EAAAssB,eAGAtsB,EAAA,UACUA,EAAAnD,OAAA,IACVmD,EAAAA,EAAAsP,OAAA,GAAAjF,cAAArK,EAAAuP,OAAA,IAGAvP,CACA,IAGA,CAoBA,SAAAypB,GAAA8C,EAAA9d,GACA+Z,GAAA7kB,QAAA,SAAA2G,EAAA7M,GACA,IAAAsF,EAAA0L,EAAAhF,SAAAa,EAAAkf,eAAA+C,EAAA1zB,OAAA4E,GAAA,IAEAsF,EACA0L,EAAAoR,aAAAvV,EAAAvH,GAEA0L,EAAAiR,YAAApV,EAEA,EACA,CAEA,SAAA4f,KACA3B,GAAA5kB,QAAA,SAAAulB,GACAA,IAAAd,IACAc,EAAAzjB,YAAAyjB,EAAAzjB,WAAAsd,YAAAmG,EACA,EACA,CAEAvf,GAAAwD,MAAA,IAj/BA,WACA,SAAAqf,IAQA,QAAA/rB,KAPAvH,KAAA8T,SAAA,CACAmY,QAAA,EACAG,kBAAA,GACAE,YAAA,GACAc,cAAA,GAGAptB,KACA,MAAAuH,EAAA6O,OAAA,uBAAApW,KAAAuH,KACAvH,KAAAuH,GAAAvH,KAAAuH,GAAA3B,KAAA5F,MAGA,CAyFA,OAvFAszB,EAAArrB,UAAA,CACA6P,YAAA,SAAAxC,GACA,IAAAU,EAAAV,EAAAU,cAEAhW,KAAAsU,SAAAmL,gBACAlf,EAAA8L,SAAA,WAAArM,KAAAuzB,mBAEAvzB,KAAAqF,QAAAma,eACAjf,EAAA8L,SAAA,cAAArM,KAAAwzB,2BACUxd,EAAAyG,QACVlc,EAAA8L,SAAA,YAAArM,KAAAwzB,2BAEAjzB,EAAA8L,SAAA,YAAArM,KAAAwzB,0BAGA,EACAlC,kBAAA,SAAAtD,GACA,IAAAhY,EAAAgY,EAAAhY,cAGAhW,KAAAqF,QAAAouB,gBAAAzd,EAAAT,QACAvV,KAAAuzB,kBAAAvd,EAEA,EACAqX,KAAA,WACArtB,KAAAsU,SAAAmL,gBACA9T,EAAAU,SAAA,WAAArM,KAAAuzB,oBAEA5nB,EAAAU,SAAA,cAAArM,KAAAwzB,2BACA7nB,EAAAU,SAAA,YAAArM,KAAAwzB,2BACA7nB,EAAAU,SAAA,YAAArM,KAAAwzB,4BAGA1H,KACAH,KAvmEAlL,aAAA9T,GACAA,OAAA,CAwmEA,EACAgiB,QAAA,WACApD,GAAAH,GAAAD,GAAAO,GAAAF,GAAAH,GAAAC,GAAA,KACAG,GAAA9nB,OAAA,CACA,EACA6vB,0BAAA,SAAAjf,GACAvU,KAAAuzB,kBAAAhf,GAAA,EACA,EACAgf,kBAAA,SAAAhf,EAAAqR,GACA,IAAApR,EAAAxU,KAEA+S,GAAAwB,EAAAkI,QAAAlI,EAAAkI,QAAA,GAAAlI,GAAAoI,QACA3J,GAAAuB,EAAAkI,QAAAlI,EAAAkI,QAAA,GAAAlI,GAAAqI,QACAhL,EAAAvF,SAAA2Z,iBAAAjT,EAAAC,GAMA,GALAuY,GAAAhX,EAKAqR,GAAA5a,GAAAD,GAAAG,EAAA,CACA0gB,GAAArX,EAAAvU,KAAAqF,QAAAuM,EAAAgU,GAEA,IAAA8N,EAAAzjB,EAAA2B,GAAA,IAEA8Z,IAAAF,IAAAzY,IAAAsY,IAAArY,IAAAsY,KACAE,IAAAM,KAEAN,GAAA3E,YAAA,WACA,IAAA8M,EAAA1jB,EAAA5D,SAAA2Z,iBAAAjT,EAAAC,IAAA,GAEA2gB,IAAAD,IACAA,EAAAC,EACAhI,MAGAC,GAAArX,EAAAC,EAAAnP,QAAAsuB,EAAA/N,EACA,EAAW,IACXyF,GAAAtY,EACAuY,GAAAtY,EAEA,KAAQ,CAER,IAAAhT,KAAAqF,QAAA+nB,cAAAnd,EAAA2B,GAAA,KAAArD,IAEA,YADAod,KAIAC,GAAArX,EAAAvU,KAAAqF,QAAA4K,EAAA2B,GAAA,MACA,CACA,GAEAjI,EAAA2pB,EAAA,CACA1e,WAAA,SACAb,qBAAA,GAEA,GAu4BAtD,GAAAwD,MAAAyZ,GAAAD,IAEA,MAAAzkB,GAAA,uCCjnHA,IAAA4qB,EASC,oBAAAC,MAAAA,KATDD,EASC,SAAAE,GACD,gBAAAC,GAEA,IAAAC,EAAA,GAGA,SAAmBC,EAAmBC,GAGtC,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAC,QAGA,IAAA1rB,EAAAurB,EAAAE,GAAA,CACA3vB,EAAA2vB,EACAE,GAAA,EACAD,QAAA,IAUA,OANAJ,EAAAG,GAAAjqB,KAAAxB,EAAA0rB,QAAA1rB,EAAAA,EAAA0rB,QAA0EF,GAG1ExrB,EAAA2rB,GAAA,EAGA3rB,EAAA0rB,OACA,CAyDA,OArDUF,EAAmBI,EAAAN,EAGnBE,EAAmB3N,EAAA0N,EAGnBC,EAAmBjzB,EAAA,SAAAmzB,EAAAj1B,EAAAo1B,GACdL,EAAmBM,EAAAJ,EAAAj1B,IAClCuE,OAAA8F,eAAA4qB,EAAAj1B,EAAA,CAAmDsK,YAAA,EAAAmW,IAAA2U,GAEnD,EAGUL,EAAmBO,EAAA,SAAAL,GAC7B,oBAAAhrB,QAAAA,OAAAsrB,aACAhxB,OAAA8F,eAAA4qB,EAAAhrB,OAAAsrB,YAAA,CAAiEjuB,MAAA,WAEjE/C,OAAA8F,eAAA4qB,EAAA,cAA0D3tB,OAAA,GAC1D,EAOUytB,EAAmB5tB,EAAA,SAAAG,EAAAkuB,GAE7B,GADA,EAAAA,IAAAluB,EAAgCytB,EAAmBztB,IACnD,EAAAkuB,EAAA,OAAAluB,EACA,KAAAkuB,GAAA,iBAAAluB,GAAAA,GAAAA,EAAAmuB,WAAA,OAAAnuB,EACA,IAAAouB,EAAAnxB,OAAAynB,OAAA,MAGA,GAFW+I,EAAmBO,EAAAI,GAC9BnxB,OAAA8F,eAAAqrB,EAAA,WAAkDprB,YAAA,EAAAhD,MAAAA,IAClD,EAAAkuB,GAAA,iBAAAluB,EAAA,QAAAM,KAAAN,EAA0EytB,EAAmBjzB,EAAA4zB,EAAA9tB,EAAA,SAAAA,GAA4B,OAAAN,EAAAM,EAAA,EAAoBlB,KAAA,KAAAkB,IAC7I,OAAA8tB,CACA,EAGUX,EAAmB3lB,EAAA,SAAA7F,GAC7B,IAAA6rB,EAAA7rB,GAAAA,EAAAksB,WACA,WAAoC,OAAAlsB,EAAA,SACpC,WAA0C,OAAAA,CAAA,EAE1C,OADWwrB,EAAmBjzB,EAAAszB,EAAA,IAAAA,GAC9BA,CACA,EAGUL,EAAmBM,EAAA,SAAAM,EAAAC,GAAkC,OAAArxB,OAAAwE,UAAA+B,eAAAC,KAAA4qB,EAAAC,EAAA,EAGrDb,EAAmB/sB,EAAA,GAIZ+sB,EAAoBA,EAAmBc,EAAA,OAC9C,CApFV,CAsFA,CAEA,OACA,SAAAtsB,EAAA0rB,EAAiCa,GAEjC,aAEA,IAAAC,EAAcD,EAAmB,QACjCE,EAAcF,EAAmB,QACjCG,EAAeH,EAAmB,QAClCI,EAAWJ,EAAmB,QAC9BK,EAAgBL,EAAmB,QACnCM,EAAkBN,EAAmB,QACrCO,EAAqBP,EAAmB,QACxCQ,EAAqBR,EAAmB,QACxCS,EAAeT,EAAmB,OAAnBA,CAAmB,YAClCU,IAAA,GAAAhyB,MAAA,WAAAA,QAEAiyB,EAAA,OACAC,EAAA,SAEAC,EAAA,WAA+B,OAAA71B,IAAA,EAE/ByI,EAAA0rB,QAAA,SAAA2B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACAd,EAAAU,EAAAD,EAAAE,GACA,IAeA5xB,EAAAyC,EAAAuvB,EAfAC,EAAA,SAAAC,GACA,IAAAb,GAAAa,KAAAC,EAAA,OAAAA,EAAAD,GACA,OAAAA,GACA,KAAAZ,EACA,KAAAC,EAAA,kBAA8C,WAAAI,EAAAh2B,KAAAu2B,EAAA,EACxC,kBAA4B,WAAAP,EAAAh2B,KAAAu2B,EAAA,CAClC,EACAE,EAAAV,EAAA,YACAW,EAAAR,GAAAN,EACAe,GAAA,EACAH,EAAAV,EAAA7tB,UACA2uB,EAAAJ,EAAAf,IAAAe,EAnBA,eAmBAN,GAAAM,EAAAN,GACAW,EAAAD,GAAAN,EAAAJ,GACAY,EAAAZ,EAAAQ,EAAAJ,EAAA,WAAAO,OAAA7f,EACA+f,EAAA,SAAAhB,GAAAS,EAAAQ,SAAAJ,EAwBA,GArBAG,IACAV,EAAAb,EAAAuB,EAAA9sB,KAAA,IAAA6rB,OACAryB,OAAAwE,WAAAouB,EAAAJ,OAEAV,EAAAc,EAAAI,GAAA,GAEAxB,GAAA,mBAAAoB,EAAAZ,IAAAL,EAAAiB,EAAAZ,EAAAI,IAIAa,GAAAE,GAAAA,EAAA13B,OAAA02B,IACAe,GAAA,EACAE,EAAA,WAAmC,OAAAD,EAAA3sB,KAAAjK,KAAA,GAGnCi1B,IAAAmB,IAAAV,IAAAiB,GAAAH,EAAAf,IACAL,EAAAoB,EAAAf,EAAAoB,GAGAxB,EAAAU,GAAAc,EACAxB,EAAAoB,GAAAZ,EACAK,EAMA,GALA7xB,EAAA,CACA4yB,OAAAP,EAAAG,EAAAP,EAAAV,GACAlyB,KAAAyyB,EAAAU,EAAAP,EAAAX,GACAqB,QAAAF,GAEAV,EAAA,IAAAtvB,KAAAzC,EACAyC,KAAA0vB,GAAArB,EAAAqB,EAAA1vB,EAAAzC,EAAAyC,SACMouB,EAAAA,EAAAgC,EAAAhC,EAAAiC,GAAAzB,GAAAiB,GAAAZ,EAAA1xB,GAEN,OAAAA,CACA,CAGO,EAEP,OACA,SAAAoE,EAAA0rB,EAAiCiD,GAEjC,IAAAC,EAAgBD,EAAmB,QACnCE,EAAcF,EAAmB,QAGjC3uB,EAAA0rB,QAAA,SAAAoD,GACA,gBAAAC,EAAAC,GACA,IAGA9nB,EAAA0W,EAHA0O,EAAAx1B,OAAA+3B,EAAAE,IACAjzB,EAAA8yB,EAAAI,GACArD,EAAAW,EAAApxB,OAEA,OAAAY,EAAA,GAAAA,GAAA6vB,EAAAmD,EAAA,QAAAvgB,GACArH,EAAAolB,EAAA7R,WAAA3e,IACA,OAAAoL,EAAA,OAAApL,EAAA,IAAA6vB,IAAA/N,EAAA0O,EAAA7R,WAAA3e,EAAA,WAAA8hB,EAAA,MACAkR,EAAAxC,EAAA3e,OAAA7R,GAAAoL,EACA4nB,EAAAxC,EAAAlV,MAAAtb,EAAAA,EAAA,GAAA8hB,EAAA,OAAA1W,EAAA,gBACA,CACA,CAGO,EAEP,OACA,SAAAlH,EAAA0rB,EAAiCuD,GAEjC,aAEA,IAAAC,EAASD,EAAmB,OAAnBA,EAAmB,GAI5BjvB,EAAA0rB,QAAA,SAAAyD,EAAA3mB,EAAA4mB,GACA,OAAA5mB,GAAA4mB,EAAAF,EAAAC,EAAA3mB,GAAAtN,OAAA,EACA,CAGO,EAEP,OACA,SAAA8E,EAAA0rB,EAAiC2D,GAEjC,aAGA,IAAAC,EAAeD,EAAmB,QAClCrvB,EAAA0rB,QAAA,WACA,IAAAqD,EAAAO,EAAA/3B,MACAg4B,EAAA,GAMA,OALAR,EAAAS,SAAAD,GAAA,KACAR,EAAAU,aAAAF,GAAA,KACAR,EAAAW,YAAAH,GAAA,KACAR,EAAAK,UAAAG,GAAA,KACAR,EAAAY,SAAAJ,GAAA,KACAA,CACA,CAGO,EAEP,OACA,SAAAvvB,EAAA0rB,EAAiCkE,GAGjC,IAAAC,EAAYD,EAAmB,QAC/BE,EAAkBF,EAAmB,QAErC5vB,EAAA0rB,QAAA1wB,OAAAC,MAAA,SAAA80B,GACA,OAAAF,EAAAE,EAAAD,EACA,CAGO,EAEP,KACA,SAAA9vB,EAAA0rB,EAAiCsE,GAEjC,IAAAC,EAASD,EAAmB,QAC5BV,EAAeU,EAAmB,QAClCE,EAAcF,EAAmB,QAEjChwB,EAAA0rB,QAAiBsE,EAAmB,QAAAh1B,OAAAm1B,iBAAA,SAAAJ,EAAAK,GACpCd,EAAAS,GAKA,IAJA,IAGAtB,EAHAxzB,EAAAi1B,EAAAE,GACAl1B,EAAAD,EAAAC,OACAY,EAAA,EAEAZ,EAAAY,GAAAm0B,EAAAxY,EAAAsY,EAAAtB,EAAAxzB,EAAAa,KAAAs0B,EAAA3B,IACA,OAAAsB,CACA,CAGO,EAEP,OACA,SAAA/vB,EAAA0rB,EAAiC2E,GAEjC,aAEAA,EAAmB,QACnB,IAAA3D,EAAe2D,EAAmB,QAClC1D,EAAW0D,EAAmB,QAC9BC,EAAYD,EAAmB,QAC/BxB,EAAcwB,EAAmB,QACjCE,EAAUF,EAAmB,QAC7BG,EAAiBH,EAAmB,QAEpCI,EAAAF,EAAA,WAEAG,GAAAJ,EAAA,WAIA,IAAAK,EAAA,IAMA,OALAA,EAAAC,KAAA,WACA,IAAArB,EAAA,GAEA,OADAA,EAAAp1B,OAAA,CAAsB+M,EAAA,KACtBqoB,CACA,EACA,SAAA/qB,QAAAmsB,EAAA,OACA,GAEAE,EAAA,WAEA,IAAAF,EAAA,OACAG,EAAAH,EAAAC,KACAD,EAAAC,KAAA,WAA0B,OAAAE,EAAArvB,MAAAlK,KAAA8J,UAAA,EAC1B,IAAAkuB,EAAA,KAAAzc,MAAA6d,GACA,WAAApB,EAAAr0B,QAAA,MAAAq0B,EAAA,UAAAA,EAAA,EACC,CAPD,GASAvvB,EAAA0rB,QAAA,SAAAqF,EAAA71B,EAAA01B,GACA,IAAAI,EAAAT,EAAAQ,GAEAE,GAAAX,EAAA,WAEA,IAAAP,EAAA,GAEA,OADAA,EAAAiB,GAAA,WAA8B,UAC9B,MAAAD,GAAAhB,EACA,GAEAmB,EAAAD,GAAAX,EAAA,WAEA,IAAAa,GAAA,EACAR,EAAA,IASA,OARAA,EAAAC,KAAA,WAA+C,OAAnBO,GAAA,EAAmB,MAC/C,UAAAJ,IAGAJ,EAAA/vB,YAAA,GACA+vB,EAAA/vB,YAAA6vB,GAAA,WAA8C,OAAAE,CAAA,GAE9CA,EAAAK,GAAA,KACAG,CACA,QAAG5iB,EAEH,IACA0iB,IACAC,GACA,YAAAH,IAAAL,GACA,UAAAK,IAAAF,EACA,CACA,IAAAO,EAAA,IAAAJ,GACAK,EAAAT,EACA/B,EACAmC,EACA,GAAAD,GACA,SAAAO,EAAAC,EAAAlX,EAAAmX,EAAAC,GACA,OAAAF,EAAAX,OAAAJ,EACAS,IAAAQ,EAIA,CAAqBC,MAAA,EAAA3zB,MAAAqzB,EAAA5vB,KAAA+vB,EAAAlX,EAAAmX,IAErB,CAAmBE,MAAA,EAAA3zB,MAAAuzB,EAAA9vB,KAAA6Y,EAAAkX,EAAAC,IAEnB,CAAiBE,MAAA,EACjB,GAEAC,EAAAN,EAAA,GACAO,EAAAP,EAAA,GAEA3E,EAAA51B,OAAA0I,UAAAuxB,EAAAY,GACAhF,EAAAkF,OAAAryB,UAAAwxB,EAAA,GAAA91B,EAGA,SAAA42B,EAAAC,GAAiC,OAAAH,EAAApwB,KAAAswB,EAAAv6B,KAAAw6B,EAAA,EAGjC,SAAAD,GAA4B,OAAAF,EAAApwB,KAAAswB,EAAAv6B,KAAA,EAE5B,CACA,CAGO,EAEP,OACA,SAAAyI,EAAA0rB,EAAiCsG,GAEjC,IAAAC,EAAeD,EAAmB,QAClCpuB,EAAeouB,EAAmB,QAAApuB,SAElCse,EAAA+P,EAAAruB,IAAAquB,EAAAruB,EAAA6N,eACAzR,EAAA0rB,QAAA,SAAAwG,GACA,OAAAhQ,EAAAte,EAAA6N,cAAAygB,GAAA,EACA,CAGO,EAEP,OACA,SAAAlyB,EAAA0rB,EAAiCyG,GAGjC,IAAAC,EAAUD,EAAmB,QAC7BnE,EAAUmE,EAAmB,OAAnBA,CAAmB,eAE7BE,EAA+C,aAA/CD,EAAA,WAA4B,OAAA/wB,SAAA,CAA5B,IASArB,EAAA0rB,QAAA,SAAAwG,GACA,IAAAnC,EAAAuC,EAAAC,EACA,YAAAhkB,IAAA2jB,EAAA,mBAAAA,EAAA,OAEA,iBAAAI,EAVA,SAAAJ,EAAA7zB,GACA,IACA,OAAA6zB,EAAA7zB,EACA,CAAI,MAAAqZ,GAAY,CAChB,CAMA8a,CAAAzC,EAAA/0B,OAAAk3B,GAAAlE,IAAAsE,EAEAD,EAAAD,EAAArC,GAEA,WAAAwC,EAAAH,EAAArC,KAAA,mBAAAA,EAAA0C,OAAA,YAAAF,CACA,CAGO,EAEP,KACA,SAAAvyB,EAAA0rB,GAEAA,EAAAjU,EAAAzc,OAAA4G,qBAGO,EAEP,OACA,SAAA5B,EAAA0rB,EAAiCgH,GAEjC,IAAAlD,EAAakD,EAAmB,QAChC/F,EAAW+F,EAAmB,QAC9BC,EAAUD,EAAmB,QAC7BE,EAAUF,EAAmB,OAAnBA,CAAmB,OAC7BG,EAAgBH,EAAmB,QACnC5D,EAAA,WACAgE,GAAA,GAAAD,GAAA/f,MAAAgc,GAEA4D,EAAmB,QAAAK,cAAA,SAAAb,GACnB,OAAAW,EAAArxB,KAAA0wB,EACA,GAEAlyB,EAAA0rB,QAAA,SAAAqE,EAAA1xB,EAAAsG,EAAAquB,GACA,IAAAC,EAAA,mBAAAtuB,EACAsuB,IAAAN,EAAAhuB,EAAA,SAAAgoB,EAAAhoB,EAAA,OAAAtG,IACA0xB,EAAA1xB,KAAAsG,IACAsuB,IAAAN,EAAAhuB,EAAAiuB,IAAAjG,EAAAhoB,EAAAiuB,EAAA7C,EAAA1xB,GAAA,GAAA0xB,EAAA1xB,GAAAy0B,EAAAvf,KAAAzc,OAAAuH,MACA0xB,IAAAP,EACAO,EAAA1xB,GAAAsG,EACIquB,EAGAjD,EAAA1xB,GACJ0xB,EAAA1xB,GAAAsG,EAEAgoB,EAAAoD,EAAA1xB,EAAAsG,WALAorB,EAAA1xB,GACAsuB,EAAAoD,EAAA1xB,EAAAsG,IAOA,GAACuuB,SAAA1zB,UAAAsvB,EAAA,WACD,yBAAAv3B,MAAAA,KAAAq7B,IAAAC,EAAArxB,KAAAjK,KACA,EAGO,EAEP,OACA,SAAAyI,EAAA0rB,EAAiCyH,GAGjC,IAAA7D,EAAe6D,EAAmB,QAClCC,EAAUD,EAAmB,QAC7BrD,EAAkBqD,EAAmB,QACrCE,EAAeF,EAAmB,OAAnBA,CAAmB,YAClCG,EAAA,WAA0B,EAC1BC,EAAA,YAGAC,EAAA,WAEA,IAIAC,EAJAC,EAAeP,EAAmB,OAAnBA,CAAmB,UAClCr3B,EAAAg0B,EAAA50B,OAcA,IAVAw4B,EAAA9uB,MAAAmD,QAAA,OACEorB,EAAmB,QAAApV,YAAA2V,GACrBA,EAAApZ,IAAA,eAGAmZ,EAAAC,EAAAC,cAAA/vB,UACAgwB,OACAH,EAAAI,MAAAC,uCACAL,EAAAM,QACAP,EAAAC,EAAA/E,EACA5yB,YAAA03B,EAAAD,GAAAzD,EAAAh0B,IACA,OAAA03B,GACA,EAEAxzB,EAAA0rB,QAAA1wB,OAAAynB,QAAA,SAAAsN,EAAAK,GACA,IAAAb,EAQA,OAPA,OAAAQ,GACAuD,EAAAC,GAAAjE,EAAAS,GACAR,EAAA,IAAA+D,EACAA,EAAAC,GAAA,KAEAhE,EAAA8D,GAAAtD,GACIR,EAAAiE,SACJjlB,IAAA6hB,EAAAb,EAAA6D,EAAA7D,EAAAa,EACA,CAGO,EAEP,OACA,SAAApwB,EAAA0rB,EAAiCsI,GAEjC,IAAA/e,EAAY+e,EAAmB,OAAnBA,CAAmB,OAC/BC,EAAUD,EAAmB,QAC7BtzB,EAAaszB,EAAmB,QAAAtzB,OAChCwzB,EAAA,mBAAAxzB,GAEAV,EAAA0rB,QAAA,SAAAj1B,GACA,OAAAwe,EAAAxe,KAAAwe,EAAAxe,GACAy9B,GAAAxzB,EAAAjK,KAAAy9B,EAAAxzB,EAAAuzB,GAAA,UAAAx9B,GACA,GAEAwe,MAAAA,CAGO,EAEP,OACA,SAAAjV,EAAA0rB,GAEA1rB,EAAA0rB,SAAA,CAGO,EAEP,OACA,SAAA1rB,EAAA0rB,GAEA,IAAA7W,EAAA,GAAiBA,SAEjB7U,EAAA0rB,QAAA,SAAAwG,GACA,OAAArd,EAAArT,KAAA0wB,GAAA9a,MAAA,KACA,CAGO,EAEP,OACA,SAAApX,EAAA0rB,EAAiCyI,GAEjC,aAGA,IAAA1H,EAAc0H,EAAmB,QACjCC,EAAcD,EAAmB,QACjCE,EAAA,WAEA5H,EAAAA,EAAAgC,EAAAhC,EAAAiC,EAAgCyF,EAAmB,OAAnBA,CAAmBE,GAAA,UACnD54B,SAAA,SAAA64B,GACA,SAAAF,EAAA78B,KAAA+8B,EAAAD,GACArvB,QAAAsvB,EAAAjzB,UAAAnG,OAAA,EAAAmG,UAAA,QAAAkN,EACA,GAIO,EAEP,OACA,SAAAvO,EAAA0rB,EAAiC6I,GAEjC,IAAAtE,EAASsE,EAAmB,QAC5BC,EAAiBD,EAAmB,QACpCv0B,EAAA0rB,QAAiB6I,EAAmB,iBAAAnI,EAAA/tB,EAAAN,GACpC,OAAAkyB,EAAAxY,EAAA2U,EAAA/tB,EAAAm2B,EAAA,EAAAz2B,GACA,EAAE,SAAAquB,EAAA/tB,EAAAN,GAEF,OADAquB,EAAA/tB,GAAAN,EACAquB,CACA,CAGO,EAEP,OACA,SAAApsB,EAAA0rB,EAAiC+I,GAGjC,IAAA9B,EAAU8B,EAAmB,QAC7BC,EAAeD,EAAmB,QAClCpB,EAAeoB,EAAmB,OAAnBA,CAAmB,YAClCE,EAAA35B,OAAAwE,UAEAQ,EAAA0rB,QAAA1wB,OAAA+xB,gBAAA,SAAAgD,GAEA,OADAA,EAAA2E,EAAA3E,GACA4C,EAAA5C,EAAAsD,GAAAtD,EAAAsD,GACA,mBAAAtD,EAAAnvB,aAAAmvB,aAAAA,EAAAnvB,YACAmvB,EAAAnvB,YAAApB,UACIuwB,aAAA/0B,OAAA25B,EAAA,IACJ,CAGO,EAEP,OACA,SAAA30B,EAAA0rB,EAAiCkJ,GAEjC,aAEA,IAAAnS,EAAamS,EAAmB,QAChCC,EAAiBD,EAAmB,QACpC9H,EAAqB8H,EAAmB,QACxChH,EAAA,GAGAgH,EAAmB,OAAnBA,CAAmBhH,EAA4BgH,EAAmB,OAAnBA,CAAmB,uBAAoC,OAAAr9B,IAAA,GAEtGyI,EAAA0rB,QAAA,SAAA6B,EAAAD,EAAAE,GACAD,EAAA/tB,UAAAijB,EAAAmL,EAAA,CAAsDJ,KAAAqH,EAAA,EAAArH,KACtDV,EAAAS,EAAAD,EAAA,YACA,CAGO,EAEP,OACA,SAAAttB,EAAA0rB,EAAiCoJ,GAGjC,IAAAJ,EAAeI,EAAmB,QAClCjF,EAAYiF,EAAmB,QAE/BA,EAAmB,OAAnBA,CAAmB,kBACnB,gBAAA5C,GACA,OAAArC,EAAA6E,EAAAxC,GACA,CACA,EAGO,EAEP,KACA,SAAAlyB,EAAA0rB,GAGA,IAAAqJ,EAAA/4B,KAAA+4B,KACArY,EAAA1gB,KAAA0gB,MACA1c,EAAA0rB,QAAA,SAAAwG,GACA,OAAA8C,MAAA9C,GAAAA,GAAA,GAAAA,EAAA,EAAAxV,EAAAqY,GAAA7C,EACA,CAGO,EAEP,KACA,SAAAlyB,EAAA0rB,GAEA1rB,EAAA0rB,QAAA,SAAAuJ,EAAAl3B,GACA,OACAgD,aAAA,EAAAk0B,GACAj0B,eAAA,EAAAi0B,GACAh0B,WAAA,EAAAg0B,GACAl3B,MAAAA,EAEA,CAGO,EAEP,OACA,SAAAiC,EAAA0rB,EAAiCwJ,GAGjC,IAAArG,EAAcqG,EAAmB,QACjCl1B,EAAA0rB,QAAA,SAAAwG,GACA,OAAAl3B,OAAA6zB,EAAAqD,GACA,CAGO,EAEP,KACA,SAAAlyB,EAAA0rB,EAAiCyJ,GAEjC,IAAAC,EAAYD,EAAmB,OAAnBA,CAAmB,SAC/Bn1B,EAAA0rB,QAAA,SAAAqF,GACA,IAAAJ,EAAA,IACA,IACA,MAAAI,GAAAJ,EACA,CAAI,MAAAjZ,GACJ,IAEA,OADAiZ,EAAAyE,IAAA,GACA,MAAArE,GAAAJ,EACA,CAAM,MAAAlZ,GAAY,CAClB,CAAI,QACJ,CAGO,EAEP,OACA,SAAAzX,EAAA0rB,EAAiC2J,GAEjC,aAGA,IAaAC,EACAC,EAdAC,EAAkBH,EAAmB,QAErCI,EAAA5D,OAAAryB,UAAAoxB,KAIA8E,EAAA5+B,OAAA0I,UAAAgF,QAEAmxB,EAAAF,EAEAG,EAAA,YAEAC,GACAP,EAAA,IACAC,EAAA,MACAE,EAAAj0B,KAAA8zB,EAAA,KACAG,EAAAj0B,KAAA+zB,EAAA,KACA,IAAAD,EAAAM,IAAA,IAAAL,EAAAK,IAIAE,OAAAvnB,IAAA,OAAAqiB,KAAA,QAEAiF,GAAAC,KAGAH,EAAA,SAAAtb,GACA,IACAmP,EAAAuM,EAAA1zB,EAAAvG,EADA60B,EAAAp5B,KAwBA,OArBAu+B,IACAC,EAAA,IAAAlE,OAAA,IAAAlB,EAAArvB,OAAA,WAAAk0B,EAAAh0B,KAAAmvB,KAEAkF,IAAArM,EAAAmH,EAAAiF,IAEAvzB,EAAAozB,EAAAj0B,KAAAmvB,EAAAtW,GAEAwb,GAAAxzB,IACAsuB,EAAAiF,GAAAjF,EAAAnB,OAAAntB,EAAAmG,MAAAnG,EAAA,GAAAnH,OAAAsuB,GAEAsM,GAAAzzB,GAAAA,EAAAnH,OAAA,GAIAw6B,EAAAl0B,KAAAa,EAAA,GAAA0zB,EAAA,WACA,IAAAj6B,EAAA,EAAoBA,EAAAuF,UAAAnG,OAAA,EAA0BY,SAC9CyS,IAAAlN,UAAAvF,KAAAuG,EAAAvG,QAAAyS,EAEA,GAGAlM,CACA,GAGArC,EAAA0rB,QAAAiK,CAGO,EAEP,OACA,SAAA31B,EAAA0rB,GAEAA,EAAAjU,EAAA,GAAc5I,oBAGP,EAEP,KACA,SAAA7O,EAAA0rB,EAAiCsK,GAEjC,IAAAC,EAAWD,EAAmB,QAC9BxG,EAAawG,EAAmB,QAChCE,EAAA,qBACAjhB,EAAAua,EAAA0G,KAAA1G,EAAA0G,GAAA,KAEAl2B,EAAA0rB,QAAA,SAAArtB,EAAAN,GACA,OAAAkX,EAAA5W,KAAA4W,EAAA5W,QAAAkQ,IAAAxQ,EAAAA,EAAA,GACA,GAAC,eAAAgC,KAAA,CACDE,QAAAg2B,EAAAh2B,QACAgsB,KAAQ+J,EAAmB,wBAC3BG,UAAA,wCAIO,EAEP,OACA,SAAAn2B,EAAA0rB,EAAiC0K,GAEjC,IAAA5G,EAAa4G,EAAmB,QAChCH,EAAWG,EAAmB,QAC9BzJ,EAAWyJ,EAAmB,QAC9B1J,EAAe0J,EAAmB,QAClCpyB,EAAUoyB,EAAmB,QAC7B7C,EAAA,YAEA9G,EAAA,SAAA51B,EAAAJ,EAAA6K,GACA,IAQAjD,EAAAg4B,EAAAC,EAAAC,EARAC,EAAA3/B,EAAA41B,EAAAiC,EACA+H,EAAA5/B,EAAA41B,EAAAiK,EACAC,EAAA9/B,EAAA41B,EAAA0C,EACAyH,EAAA//B,EAAA41B,EAAAgC,EACAoI,EAAAhgC,EAAA41B,EAAA8F,EACAnxB,EAAAq1B,EAAAjH,EAAAmH,EAAAnH,EAAA/4B,KAAA+4B,EAAA/4B,GAAA,KAAkF+4B,EAAA/4B,IAAA,IAAuB88B,GACzG7H,EAAA+K,EAAAR,EAAAA,EAAAx/B,KAAAw/B,EAAAx/B,GAAA,IACAqgC,EAAApL,EAAA6H,KAAA7H,EAAA6H,GAAA,IAGA,IAAAl1B,KADAo4B,IAAAn1B,EAAA7K,GACA6K,EAIAg1B,IAFAD,GAAAG,GAAAp1B,QAAAmN,IAAAnN,EAAA/C,IAEA+C,EAAAE,GAAAjD,GAEAk4B,EAAAM,GAAAR,EAAAryB,EAAAsyB,EAAA9G,GAAAoH,GAAA,mBAAAN,EAAAtyB,EAAAkvB,SAAA1xB,KAAA80B,GAAAA,EAEAl1B,GAAAsrB,EAAAtrB,EAAA/C,EAAAi4B,EAAAz/B,EAAA41B,EAAAsK,GAEArL,EAAArtB,IAAAi4B,GAAA3J,EAAAjB,EAAArtB,EAAAk4B,GACAK,GAAAE,EAAAz4B,IAAAi4B,IAAAQ,EAAAz4B,GAAAi4B,EAEA,EACA9G,EAAAyG,KAAAA,EAEAxJ,EAAAiC,EAAA,EACAjC,EAAAiK,EAAA,EACAjK,EAAA0C,EAAA,EACA1C,EAAAgC,EAAA,EACAhC,EAAA8F,EAAA,GACA9F,EAAAuK,EAAA,GACAvK,EAAAsK,EAAA,GACAtK,EAAAwK,EAAA,IACAj3B,EAAA0rB,QAAAe,CAGO,EAEP,OACA,SAAAzsB,EAAA0rB,EAAiCwL,GAGjC,IAAAzK,EAAcyK,EAAmB,QACjCjB,EAAWiB,EAAmB,QAC9B5G,EAAY4G,EAAmB,QAC/Bl3B,EAAA0rB,QAAA,SAAAqF,EAAAH,GACA,IAAA9xB,GAAAm3B,EAAAj7B,QAAA,IAA6B+1B,IAAA/1B,OAAA+1B,GAC7BwF,EAAA,GACAA,EAAAxF,GAAAH,EAAA9xB,GACA2tB,EAAAA,EAAA0C,EAAA1C,EAAAiC,EAAA4B,EAAA,WAAsDxxB,EAAA,KAAQ,SAAAy3B,EAC9D,CAGO,EAEP,OACA,SAAAv2B,EAAA0rB,EAAiCyL,GAEjC,aAGA,IAAAC,EAAcD,EAAmB,QACjCE,EAAAxF,OAAAryB,UAAAoxB,KAIA5wB,EAAA0rB,QAAA,SAAAuL,EAAA9H,GACA,IAAAyB,EAAAqG,EAAArG,KACA,sBAAAA,EAAA,CACA,IAAArB,EAAAqB,EAAApvB,KAAAy1B,EAAA9H,GACA,oBAAAI,EACA,UAAA/E,UAAA,sEAEA,OAAA+E,CACA,CACA,cAAA6H,EAAAH,GACA,UAAAzM,UAAA,+CAEA,OAAA6M,EAAA71B,KAAAy1B,EAAA9H,EACA,CAGO,EAEP,OACA,SAAAnvB,EAAA0rB,EAAiC4L,GAEjC,IAAAC,EAAaD,EAAmB,OAAnBA,CAAmB,QAChCrD,EAAUqD,EAAmB,QAC7Bt3B,EAAA0rB,QAAA,SAAArtB,GACA,OAAAk5B,EAAAl5B,KAAAk5B,EAAAl5B,GAAA41B,EAAA51B,GACA,CAGO,EAEP,OACA,SAAA2B,EAAA0rB,EAAiC8L,GAGjC,IAAApF,EAAUoF,EAAmB,QAE7Bx3B,EAAA0rB,QAAA1wB,OAAA,KAAA6T,qBAAA,GAAA7T,OAAA,SAAAk3B,GACA,gBAAAE,EAAAF,GAAAA,EAAApf,MAAA,IAAA9X,OAAAk3B,EACA,CAGO,EAEP,KACA,SAAAlyB,EAAA0rB,EAAiC+L,GAEjC,aAGA,IAAAhL,EAAcgL,EAAmB,QACjCC,EAAgBD,EAAmB,OAAnBA,EAAmB,GAEnChL,EAAAA,EAAAgC,EAAA,SACAhzB,SAAA,SAAAsH,GACA,OAAA20B,EAAAngC,KAAAwL,EAAA1B,UAAAnG,OAAA,EAAAmG,UAAA,QAAAkN,EACA,IAGAkpB,EAAmB,OAAnBA,CAAmB,WAGZ,EAEP,KACA,SAAAz3B,EAAA0rB,EAAiCiM,GAGjC,IAAAC,EAAcD,EAAmB,QACjC9I,EAAc8I,EAAmB,QACjC33B,EAAA0rB,QAAA,SAAAwG,GACA,OAAA0F,EAAA/I,EAAAqD,GACA,CAGO,EAEP,OACA,SAAAlyB,EAAA0rB,GAEA,IAAAnqB,EAAA,GAAuBA,eACvBvB,EAAA0rB,QAAA,SAAAwG,EAAA7zB,GACA,OAAAkD,EAAAC,KAAA0wB,EAAA7zB,EACA,CAGO,EAEP,OACA,SAAA2B,EAAA0rB,EAAiCmM,GAGjC,IAAA5F,EAAe4F,EAAmB,QAGlC73B,EAAA0rB,QAAA,SAAAwG,EAAA/C,GACA,IAAA8C,EAAAC,GAAA,OAAAA,EACA,IAAApzB,EAAA6F,EACA,GAAAwqB,GAAA,mBAAArwB,EAAAozB,EAAArd,YAAAod,EAAAttB,EAAA7F,EAAA0C,KAAA0wB,IAAA,OAAAvtB,EACA,sBAAA7F,EAAAozB,EAAA4F,WAAA7F,EAAAttB,EAAA7F,EAAA0C,KAAA0wB,IAAA,OAAAvtB,EACA,IAAAwqB,GAAA,mBAAArwB,EAAAozB,EAAArd,YAAAod,EAAAttB,EAAA7F,EAAA0C,KAAA0wB,IAAA,OAAAvtB,EACA,MAAA6lB,UAAA,0CACA,CAGO,EAEP,KACA,SAAAxqB,EAAA0rB,EAAiCqM,GAEjC,aAGA,IAAA7H,EAAc6H,EAAmB,QACjCC,EAAWD,EAAmB,QAC9BE,EAAUF,EAAmB,QAC7BrD,EAAeqD,EAAmB,QAClCH,EAAcG,EAAmB,QACjCG,EAAAl9B,OAAAmG,OAGAnB,EAAA0rB,SAAAwM,GAA6BH,EAAmB,OAAnBA,CAAmB,WAChD,IAAA1gC,EAAA,GACAk7B,EAAA,GAEApD,EAAAzuB,SACAy3B,EAAA,uBAGA,OAFA9gC,EAAA83B,GAAA,EACAgJ,EAAArlB,MAAA,IAAA9Q,QAAA,SAAAo2B,GAAqC7F,EAAA6F,GAAAA,CAAA,GAClB,GAAnBF,EAAA,GAAmB7gC,GAAA83B,IAAAn0B,OAAAC,KAAAi9B,EAAA,GAAsC3F,IAAAhf,KAAA,KAAA4kB,CACzD,GAAC,SAAA/2B,EAAAE,GAMD,IALA,IAAAgxB,EAAAoC,EAAAtzB,GACAi3B,EAAAh3B,UAAAnG,OACAsN,EAAA,EACA8vB,EAAAN,EAAAvgB,EACA8gB,EAAAN,EAAAxgB,EACA4gB,EAAA7vB,GAMA,IALA,IAIAnK,EAJA8wB,EAAAyI,EAAAv2B,UAAAmH,MACAvN,EAAAq9B,EAAApI,EAAAf,GAAAttB,OAAAy2B,EAAAnJ,IAAAe,EAAAf,GACAj0B,EAAAD,EAAAC,OACAs9B,EAAA,EAEAt9B,EAAAs9B,GAAAD,EAAA/2B,KAAA2tB,EAAA9wB,EAAApD,EAAAu9B,QAAAlG,EAAAj0B,GAAA8wB,EAAA9wB,IACI,OAAAi0B,CACJ,EAAE4F,CAGK,EAEP,KACA,SAAAl4B,EAAA0rB,GAGA,IAAA8D,EAAAxvB,EAAA0rB,QAAA,oBAAAvpB,QAAAA,OAAAnG,MAAAA,KACAmG,OAAA,oBAAAipB,MAAAA,KAAApvB,MAAAA,KAAAovB,KAEA8H,SAAA,cAAAA,GACA,iBAAAuF,MAAAA,IAAAjJ,EAGO,EAEP,OACA,SAAAxvB,EAAA0rB,EAAiCgN,GAEjC,IAAA9J,EAAgB8J,EAAmB,QACnC7f,EAAA7c,KAAA6c,IACA5c,EAAAD,KAAAC,IACA+D,EAAA0rB,QAAA,SAAAljB,EAAAtN,GAEA,OADAsN,EAAAomB,EAAApmB,IACA,EAAAqQ,EAAArQ,EAAAtN,EAAA,GAAAe,EAAAuM,EAAAtN,EACA,CAGO,EAEP,OACA,SAAA8E,EAAA0rB,GAEA1rB,EAAA0rB,QAAA,SAAAkF,GACA,IACA,QAAAA,GACA,CAAI,MAAAlZ,GACJ,QACA,CACA,CAGO,EAEP,OACA,SAAA1X,EAAA0rB,EAAiCiN,GAEjC,IAAAC,EAAUD,EAAmB,QAAAlhB,EAC7Bkb,EAAUgG,EAAmB,QAC7B3K,EAAU2K,EAAmB,OAAnBA,CAAmB,eAE7B34B,EAAA0rB,QAAA,SAAAwG,EAAA2G,EAAAC,GACA5G,IAAAS,EAAAT,EAAA4G,EAAA5G,EAAAA,EAAA1yB,UAAAwuB,IAAA4K,EAAA1G,EAAAlE,EAAA,CAAqEhtB,cAAA,EAAAjD,MAAA86B,GACrE,CAGO,EAEP,KACA,SAAA74B,EAAA0rB,GAEA,IAAAuK,EAAAj2B,EAAA0rB,QAAA,CAA8BzrB,QAAA,SAC9B,iBAAA84B,MAAAA,IAAA9C,EAGO,EAEP,OACA,SAAAj2B,EAAA0rB,GAEA1rB,EAAA0rB,QAAA,EAGO,EAEP,OACA,SAAA1rB,EAAA0rB,EAAiCsN,GAEjC,IAAA1J,EAAe0J,EAAmB,QAClCC,EAAqBD,EAAmB,QACxCE,EAAkBF,EAAmB,QACrC/I,EAAAj1B,OAAA8F,eAEA4qB,EAAAjU,EAAYuhB,EAAmB,QAAAh+B,OAAA8F,eAAA,SAAAivB,EAAAtB,EAAA0K,GAI/B,GAHA7J,EAAAS,GACAtB,EAAAyK,EAAAzK,GAAA,GACAa,EAAA6J,GACAF,EAAA,IACA,OAAAhJ,EAAAF,EAAAtB,EAAA0K,EACA,CAAI,MAAAzhB,GAAY,CAChB,WAAAyhB,GAAA,QAAAA,EAAA,MAAA3O,UAAA,4BAEA,MADA,UAAA2O,IAAApJ,EAAAtB,GAAA0K,EAAAp7B,OACAgyB,CACA,CAGO,EAEP,OACA,SAAA/vB,EAAA0rB,EAAiC0N,GAGjC,IAAAC,EAAgBD,EAAmB,QACnCp5B,EAAA0rB,QAAA,SAAA5sB,EAAAiwB,EAAA7zB,GAEA,GADAm+B,EAAAv6B,QACAyP,IAAAwgB,EAAA,OAAAjwB,EACA,OAAA5D,GACA,uBAAAgM,GACA,OAAApI,EAAA0C,KAAAutB,EAAA7nB,EACA,EACA,uBAAAA,EAAA0W,GACA,OAAA9e,EAAA0C,KAAAutB,EAAA7nB,EAAA0W,EACA,EACA,uBAAA1W,EAAA0W,EAAAC,GACA,OAAA/e,EAAA0C,KAAAutB,EAAA7nB,EAAA0W,EAAAC,EACA,EAEA,kBACA,OAAA/e,EAAA2C,MAAAstB,EAAA1tB,UACA,CACA,CAGO,EAEP,OACA,SAAArB,EAAA0rB,EAAiC4N,GAGjC,IAAAC,EAAkBD,EAAmB,OAAnBA,CAAmB,eACrCE,EAAAr+B,MAAAqE,UACA+O,MAAAirB,EAAAD,IAA0CD,EAAmB,OAAnBA,CAAmBE,EAAAD,EAAA,IAC7Dv5B,EAAA0rB,QAAA,SAAArtB,GACAm7B,EAAAD,GAAAl7B,IAAA,CACA,CAGO,EAEP,OACA,SAAA2B,EAAA0rB,EAAiC+N,GAGjC,IAAA7K,EAAgB6K,EAAmB,QACnCx9B,EAAAD,KAAAC,IACA+D,EAAA0rB,QAAA,SAAAwG,GACA,OAAAA,EAAA,EAAAj2B,EAAA2yB,EAAAsD,GAAA,mBACA,CAGO,EAEP,OACA,SAAAlyB,EAAA0rB,EAAiCgO,GAGjC15B,EAAA0rB,SAAkBgO,EAAmB,OAAnBA,CAAmB,WACrC,OAA0E,GAA1E1+B,OAAA8F,eAAA,GAAiC,KAASoW,IAAA,WAAmB,YAAahQ,CAC1E,EAGO,EAEPyyB,KACA,SAAA35B,EAAA0rB,GAEA1rB,EAAA0rB,QAAAL,CAEO,EAEPuO,KACA,SAAA55B,EAAA0rB,EAAiCmO,GAEjC,aAGA,IAAAvK,EAAeuK,EAAmB,QAClCnF,EAAemF,EAAmB,QAClCC,EAAeD,EAAmB,QAClCjL,EAAgBiL,EAAmB,QACnCE,EAAyBF,EAAmB,QAC5CG,EAAiBH,EAAmB,QACpChhB,EAAA7c,KAAA6c,IACA5c,EAAAD,KAAAC,IACAygB,EAAA1gB,KAAA0gB,MACAud,EAAA,4BACAC,EAAA,oBAEAC,EAAA,SAAAjI,GACA,YAAA3jB,IAAA2jB,EAAAA,EAAAp7B,OAAAo7B,EACA,EAGA2H,EAAmB,OAAnBA,CAAmB,qBAAAhL,EAAAuL,EAAAC,EAAAC,GACnB,OAGA,SAAAC,EAAAC,GACA,IAAAzK,EAAAlB,EAAAt3B,MACAuH,EAAAyP,MAAAgsB,OAAAhsB,EAAAgsB,EAAAH,GACA,YAAA7rB,IAAAzP,EACAA,EAAA0C,KAAA+4B,EAAAxK,EAAAyK,GACAH,EAAA74B,KAAA1K,OAAAi5B,GAAAwK,EAAAC,EACA,EAGA,SAAAjJ,EAAAiJ,GACA,IAAAC,EAAAH,EAAAD,EAAA9I,EAAAh6B,KAAAijC,GACA,GAAAC,EAAA/I,KAAA,OAAA+I,EAAA18B,MAEA,IAAA28B,EAAApL,EAAAiC,GACApC,EAAAr4B,OAAAS,MACAojC,EAAA,mBAAAH,EACAG,IAAAH,EAAA1jC,OAAA0jC,IACA,IAAAhL,EAAAkL,EAAAlL,OACA,GAAAA,EAAA,CACA,IAAAoL,EAAAF,EAAAtL,QACAsL,EAAAlR,UAAA,CACA,CAEA,IADA,IAAAqR,EAAA,KACA,CACA,IAAAtL,EAAAyK,EAAAU,EAAAvL,GACA,UAAAI,EAAA,MAEA,GADAsL,EAAA96B,KAAAwvB,IACAC,EAAA,MAEA,KADA14B,OAAAy4B,EAAA,MACAmL,EAAAlR,UAAAuQ,EAAA5K,EAAA2K,EAAAY,EAAAlR,WAAAoR,GACA,CAGA,IAFA,IAAAE,EAAA,GACAC,EAAA,EACAj/B,EAAA,EAAsBA,EAAA++B,EAAA3/B,OAAoBY,IAAA,CAC1CyzB,EAAAsL,EAAA/+B,GASA,IARA,IAAAk/B,EAAAlkC,OAAAy4B,EAAA,IACA0L,EAAApiB,EAAA5c,EAAA2yB,EAAAW,EAAA/mB,OAAA2mB,EAAAj0B,QAAA,GACAggC,EAAA,GAMA1C,EAAA,EAAwBA,EAAAjJ,EAAAr0B,OAAmBs9B,IAAA0C,EAAAn7B,KAAAo6B,EAAA5K,EAAAiJ,KAC3C,IAAA2C,EAAA5L,EAAAp1B,OACA,GAAAwgC,EAAA,CACA,IAAAS,EAAA,CAAAJ,GAAAn5B,OAAAq5B,EAAAD,EAAA9L,QACA5gB,IAAA4sB,GAAAC,EAAAr7B,KAAAo7B,GACA,IAAAE,EAAAvkC,OAAA0jC,EAAA/4B,WAAA8M,EAAA6sB,GACA,MACAC,EAAAC,EAAAN,EAAA7L,EAAA8L,EAAAC,EAAAC,EAAAX,GAEAS,GAAAF,IACAD,GAAA3L,EAAA/X,MAAA2jB,EAAAE,GAAAI,EACAN,EAAAE,EAAAD,EAAA9/B,OAEA,CACA,OAAA4/B,EAAA3L,EAAA/X,MAAA2jB,EACA,GAIA,SAAAO,EAAAN,EAAA3gB,EAAA4gB,EAAAC,EAAAC,EAAAE,GACA,IAAAE,EAAAN,EAAAD,EAAA9/B,OACA0wB,EAAAsP,EAAAhgC,OACAsgC,EAAAtB,EAKA,YAJA3rB,IAAA4sB,IACAA,EAAAzG,EAAAyG,GACAK,EAAAvB,GAEAI,EAAA74B,KAAA65B,EAAAG,EAAA,SAAAn5B,EAAAo5B,GACA,IAAA54B,EACA,OAAA44B,EAAA9tB,OAAA,IACA,kBACA,eAAAqtB,EACA,eAAA3gB,EAAAjD,MAAA,EAAA6jB,GACA,eAAA5gB,EAAAjD,MAAAmkB,GACA,QACA14B,EAAAs4B,EAAAM,EAAArkB,MAAA,OACA,MACA,QACA,IAAAvR,GAAA41B,EACA,OAAA51B,EAAA,OAAAxD,EACA,GAAAwD,EAAA+lB,EAAA,CACA,IAAAnU,EAAAiF,EAAA7W,EAAA,IACA,WAAA4R,EAAApV,EACAoV,GAAAmU,OAAArd,IAAA2sB,EAAAzjB,EAAA,GAAAgkB,EAAA9tB,OAAA,GAAAutB,EAAAzjB,EAAA,GAAAgkB,EAAA9tB,OAAA,GACAtL,CACA,CACAQ,EAAAq4B,EAAAr1B,EAAA,GAEA,YAAA0I,IAAA1L,EAAA,GAAAA,CACA,EACA,CACA,EAGO,EAEP64B,KACA,SAAA17B,EAAA0rB,EAAiCiQ,GAGjC,IAAA1J,EAAe0J,EAAmB,QAClCvJ,EAAUuJ,EAAmB,QAC7BvG,EAAYuG,EAAmB,OAAnBA,CAAmB,SAC/B37B,EAAA0rB,QAAA,SAAAwG,GACA,IAAA0J,EACA,OAAA3J,EAAAC,UAAA3jB,KAAAqtB,EAAA1J,EAAAkD,MAAAwG,EAAA,UAAAxJ,EAAAF,GACA,CAGO,EAEP2J,KACA,SAAA77B,EAAA0rB,EAAiCoQ,GA+CjC,IA7CA,IAAAC,EAAiBD,EAAmB,QACpC5L,EAAc4L,EAAmB,QACjCpP,EAAeoP,EAAmB,QAClCtM,EAAasM,EAAmB,QAChCnP,EAAWmP,EAAmB,QAC9BlP,EAAgBkP,EAAmB,QACnCvL,EAAUuL,EAAmB,QAC7B9O,EAAAuD,EAAA,YACAyL,EAAAzL,EAAA,eACA0L,EAAArP,EAAAzxB,MAEA+gC,EAAA,CACAC,aAAA,EACAC,qBAAA,EACAC,cAAA,EACAC,gBAAA,EACAC,aAAA,EACAC,eAAA,EACAC,cAAA,EACAC,sBAAA,EACAC,UAAA,EACAC,mBAAA,EACAC,gBAAA,EACAC,iBAAA,EACAC,mBAAA,EACAC,WAAA,EACAC,eAAA,EACAC,cAAA,EACAC,UAAA,EACAC,kBAAA,EACAC,QAAA,EACAC,aAAA,EACAC,eAAA,EACAC,eAAA,EACAC,gBAAA,EACAC,cAAA,EACAC,eAAA,EACAC,kBAAA,EACAC,kBAAA,EACAC,gBAAA,EACAC,kBAAA,EACAC,eAAA,EACAC,WAAA,GAGAC,EAAAhO,EAAAgM,GAAApgC,EAAA,EAAqDA,EAAAoiC,EAAAhjC,OAAwBY,IAAA,CAC7E,IAIAuC,EAJAivB,EAAA4Q,EAAApiC,GACAqiC,EAAAjC,EAAA5O,GACA8Q,EAAA5O,EAAAlC,GACAS,EAAAqQ,GAAAA,EAAA5+B,UAEA,GAAAuuB,IACAA,EAAAf,IAAAL,EAAAoB,EAAAf,EAAAiP,GACAlO,EAAAiO,IAAArP,EAAAoB,EAAAiO,EAAA1O,GACAV,EAAAU,GAAA2O,EACAkC,GAAA,IAAA9/B,KAAA09B,EAAAhO,EAAA1vB,IAAAquB,EAAAqB,EAAA1vB,EAAA09B,EAAA19B,IAAA,EAEA,CAGO,EAEPggC,KACA,SAAAr+B,EAAA0rB,EAAiC4S,GAEjC,aAEA,IAAA9N,EAAiB8N,EAAmB,QACpCA,EAAmB,OAAnBA,CAAmB,CACnBl9B,OAAA,SACA2sB,OAAA,EACAwQ,OAAA/N,IAAA,IAAAI,MACC,CACDA,KAAAJ,GAIO,EAEPgO,KACA,SAAAx+B,EAAA0rB,GAGA1rB,EAAA0rB,QAAA,SAAAwG,GACA,GAAA3jB,MAAA2jB,EAAA,MAAA1H,UAAA,yBAAA0H,GACA,OAAAA,CACA,CAGO,EAEPuM,KACA,SAAAz+B,EAAA0rB,EAAiCgT,GAIjC,IAAAC,EAAgBD,EAAmB,QACnC5E,EAAe4E,EAAmB,QAClCE,EAAsBF,EAAmB,QACzC1+B,EAAA0rB,QAAA,SAAAmT,GACA,gBAAAC,EAAA/7B,EAAAg8B,GACA,IAGAhhC,EAHAgyB,EAAA4O,EAAAG,GACA5jC,EAAA4+B,EAAA/J,EAAA70B,QACAsN,EAAAo2B,EAAAG,EAAA7jC,GAIA,GAAA2jC,GAAA97B,GAAAA,GAAA,KAAA7H,EAAAsN,GAGA,IAFAzK,EAAAgyB,EAAAvnB,OAEAzK,EAAA,cAEM,KAAW7C,EAAAsN,EAAgBA,IAAA,IAAAq2B,GAAAr2B,KAAAunB,IACjCA,EAAAvnB,KAAAzF,EAAA,OAAA87B,GAAAr2B,GAAA,EACM,OAAAq2B,IAAA,CACN,CACA,CAGO,EAEPG,KACA,SAAAh/B,EAAwBi/B,EAAqBC,GAE7C,cACA,SAAA1P,GAA6E0P,EAAmB3mC,EAAG0mC,EAAmB,eAAoB,OAAAE,CAAA,GAC3GD,EAAmB3mC,EAAG0mC,EAAmB,eAAoB,OAAAG,CAAA,GAC7DF,EAAmB3mC,EAAG0mC,EAAmB,eAAoB,OAAAI,CAAA,GAC7DH,EAAmB3mC,EAAG0mC,EAAmB,eAAoB,OAAAK,CAAA,GACDJ,EAAmB,QAY9G,IAEApgC,EACAygC,EAHAF,EAPA,oBAAAl9B,OACAA,OAAAk9B,QAGA7P,EAAA6P,QAaAG,EAAA,SACAJ,GATAtgC,EASA,SAAAub,GACA,OAAAA,EAAA7V,QAAAg7B,EAAA,SAAA/7B,EAAAoa,GACA,OAAAA,EAAAA,EAAAnV,cAAA,EACA,EACA,EAZA62B,EAAAvkC,OAAAynB,OAAA,MACA,SAAApI,GAEA,OADAklB,EAAAllB,KACAklB,EAAAllB,GAAAvb,EAAAub,GACA,GAUA,SAAAilB,EAAAG,GACA,OAAAA,EAAAC,eACAD,EAAAC,cAAAte,YAAAqe,EAEA,CAEA,SAAAN,EAAAQ,EAAAF,EAAAxE,GACA,IAAA2E,EAAA,IAAA3E,EAAA0E,EAAA73B,SAAA,GAAA63B,EAAA73B,SAAAmzB,EAAA,GAAAjf,YACA2jB,EAAAzhB,aAAAuhB,EAAAG,EACA,CAGA,GAA4Bp+B,KAAAjK,KAAY2nC,EAAmB,QAEpD,EAEPW,KACA,SAAA7/B,EAAA0rB,EAAiCoU,GAEjC9/B,EAAA0rB,SAAkBoU,EAAmB,UAAaA,EAAmB,OAAnBA,CAAmB,WACrE,OAA0G,GAA1G9kC,OAAA8F,eAA+Bg/B,EAAmB,OAAnBA,CAAmB,YAAwB5oB,IAAA,WAAmB,YAAahQ,CAC1G,EAGO,EAEP64B,KACA,SAAA//B,EAAA0rB,GAEA,IAAAsU,EAGAA,EAAA,WACA,OAAAzoC,IACC,CAFD,GAIA,IAEAyoC,EAAAA,GAAA,IAAA9M,SAAA,gBACA,CAAE,MAAAxb,GAEF,iBAAAvV,SAAA69B,EAAA79B,OACA,CAMAnC,EAAA0rB,QAAAsU,CAGO,EAEPC,KACA,SAAAjgC,EAAA0rB,GAEA,IAAAptB,EAAA,EACA4hC,EAAAlkC,KAAAmkC,SACAngC,EAAA0rB,QAAA,SAAArtB,GACA,gBAAAwD,YAAA0M,IAAAlQ,EAAA,GAAAA,EAAA,QAAAC,EAAA4hC,GAAArrB,SAAA,IACA,CAGO,EAEPurB,KACA,SAAApgC,EAAA0rB,EAAiC2U,GAEjC,aAEA,IAAAC,EAAuBD,EAAmB,QAC1CE,EAAWF,EAAmB,QAC9BzT,EAAgByT,EAAmB,QACnC1B,EAAgB0B,EAAmB,QAMnCrgC,EAAA0rB,QAAiB2U,EAAmB,OAAnBA,CAAmBllC,MAAA,iBAAAqlC,EAAA1S,GACpCv2B,KAAAkpC,GAAA9B,EAAA6B,GACAjpC,KAAAmpC,GAAA,EACAnpC,KAAAopC,GAAA7S,CAEA,EAAC,WACD,IAAAiC,EAAAx4B,KAAAkpC,GACA3S,EAAAv2B,KAAAopC,GACAn4B,EAAAjR,KAAAmpC,KACA,OAAA3Q,GAAAvnB,GAAAunB,EAAA70B,QACA3D,KAAAkpC,QAAAlyB,EACAgyB,EAAA,IAEAA,EAAA,UAAAzS,EAAAtlB,EACA,UAAAslB,EAAAiC,EAAAvnB,GACA,CAAAA,EAAAunB,EAAAvnB,IACA,EAAC,UAGDokB,EAAAgU,UAAAhU,EAAAzxB,MAEAmlC,EAAA,QACAA,EAAA,UACAA,EAAA,UAGO,EAEPO,KACA,SAAA7gC,EAAA0rB,EAAiCoV,GAEjC,IAAA7O,EAAe6O,EAAmB,QAClC9gC,EAAA0rB,QAAA,SAAAwG,GACA,IAAAD,EAAAC,GAAA,MAAA1H,UAAA0H,EAAA,sBACA,OAAAA,CACA,CAGO,EAEP6O,KACA,SAAA/gC,EAAA0rB,EAAiCsV,GAEjC,IAAArO,EAAUqO,EAAmB,QAC7BrC,EAAgBqC,EAAmB,QACnCC,EAAmBD,EAAmB,OAAnBA,EAAmB,GACtC3N,EAAe2N,EAAmB,OAAnBA,CAAmB,YAElChhC,EAAA0rB,QAAA,SAAAU,EAAAjsB,GACA,IAGA9B,EAHA0xB,EAAA4O,EAAAvS,GACAtwB,EAAA,EACAyzB,EAAA,GAEA,IAAAlxB,KAAA0xB,EAAA1xB,GAAAg1B,GAAAV,EAAA5C,EAAA1xB,IAAAkxB,EAAAxvB,KAAA1B,GAEA,KAAA8B,EAAAjF,OAAAY,GAAA62B,EAAA5C,EAAA1xB,EAAA8B,EAAArE,SACAmlC,EAAA1R,EAAAlxB,IAAAkxB,EAAAxvB,KAAA1B,IAEA,OAAAkxB,CACA,CAGO,EAEP2R,KACA,SAAAlhC,EAAA0rB,EAAiCyV,GAGjC,IAAAvF,EAAeuF,EAAmB,QAClCtS,EAAcsS,EAAmB,QAEjCnhC,EAAA0rB,QAAA,SAAAqD,EAAAuF,EAAAhH,GACA,GAAAsO,EAAAtH,GAAA,MAAA9J,UAAA,UAAA8C,EAAA,0BACA,OAAAx2B,OAAA+3B,EAAAE,GACA,CAGO,EAEPqS,KACA,SAAAphC,EAAA0rB,GAEA1rB,EAAA0rB,QAAA,SAAAwG,GACA,uBAAAA,EAAA,OAAAA,EAAA,mBAAAA,CACA,CAGO,EAEPmP,KACA,SAAArhC,EAAA0rB,GAEA1rB,EAAA0rB,QAAA,SAAAgG,EAAA3zB,GACA,OAAWA,MAAAA,EAAA2zB,OAAAA,EACX,CAGO,EAEP4P,KACA,SAAAthC,EAAA0rB,GAEA1rB,EAAA0rB,QAAA,SAAAwG,GACA,sBAAAA,EAAA,MAAA1H,UAAA0H,EAAA,uBACA,OAAAA,CACA,CAGO,EAEPqP,KACA,SAAAvhC,EAAA0rB,GAGA1rB,EAAA0rB,QAAA,gGAEA5Y,MAAA,IAGO,EAEP0uB,KACA,SAAAxhC,EAAA0rB,EAAiC+V,GAEjC,aAGA,IAAAhV,EAAcgV,EAAmB,QACjC3H,EAAe2H,EAAmB,QAClCrN,EAAcqN,EAAmB,QACjCC,EAAA,aACAC,EAAA,GAAAD,GAEAjV,EAAAA,EAAAgC,EAAAhC,EAAAiC,EAAgC+S,EAAmB,OAAnBA,CAAmBC,GAAA,UACnDE,WAAA,SAAAtN,GACA,IAAAvF,EAAAqF,EAAA78B,KAAA+8B,EAAAoN,GACAl5B,EAAAsxB,EAAA99B,KAAAC,IAAAoF,UAAAnG,OAAA,EAAAmG,UAAA,QAAAkN,EAAAwgB,EAAA7zB,SACA2mC,EAAA/qC,OAAAw9B,GACA,OAAAqN,EACAA,EAAAngC,KAAAutB,EAAA8S,EAAAr5B,GACAumB,EAAA3X,MAAA5O,EAAAA,EAAAq5B,EAAA3mC,UAAA2mC,CACA,GAIO,EAEPC,KACA,SAAA9hC,EAAA0rB,IAMA,SAAA9nB,GACA,IAAAm+B,EAAA,gBACAC,EAAAp+B,EAAAgC,qBAAA,UAGAm8B,KAAAn+B,GACA5I,OAAA8F,eAAA8C,EAAAm+B,EAAA,CACA7qB,IAAA,WAIA,IAAc,UAAA+qB,KAAA,CACd,MAAAhlB,GAIA,IAAAnhB,EAAA2+B,GAAA,+BAAA7J,KAAA3T,EAAAilB,QAAA,SAGA,IAAApmC,KAAAkmC,EACA,GAAAA,EAAAlmC,GAAAwe,KAAAmgB,GAAA,eAAAuH,EAAAlmC,GAAAqmC,WACA,OAAAH,EAAAlmC,GAKA,WACA,CACA,GAGC,CA/BD,CA+BC8H,SAGM,EAEPw+B,KACA,SAAApiC,EAAA0rB,EAAiC2W,GAGjC,IAAA5V,EAAc4V,EAAmB,QAEjC5V,EAAAA,EAAA0C,EAAA1C,EAAAiC,EAAA,UAA2CvtB,OAAQkhC,EAAmB,SAG/D,EAEPC,KACA,SAAAtiC,EAAA0rB,EAAiC6W,GAEjCviC,EAAA0rB,QAAiB6W,EAAmB,OAAnBA,CAAmB,4BAAArP,SAAAre,SAG7B,EAEP2tB,KACA,SAAAxiC,EAAA0rB,EAAiC+W,GAEjC,IAAA7+B,EAAe6+B,EAAmB,QAAA7+B,SAClC5D,EAAA0rB,QAAA9nB,GAAAA,EAAAoC,eAGO,EAEP08B,KACA,SAAA1iC,EAAwBi/B,EAAqB0D,GAE7C,aAYA,IAAAC,EAwDA,SAAAC,EAAAhrB,EAAAirB,IACA,MAAAA,GAAAA,EAAAjrB,EAAA3c,UAAA4nC,EAAAjrB,EAAA3c,QAEA,QAAAY,EAAA,EAAAsuB,EAAA,IAAAjvB,MAAA2nC,GAAyChnC,EAAAgnC,EAAShnC,IAClDsuB,EAAAtuB,GAAA+b,EAAA/b,GAGA,OAAAsuB,CACA,CAGA,SAAA2Y,EAAAjX,EAAAkX,GACA,GAAAlX,EAAA,CACA,oBAAAA,EAAA,OAAA+W,EAAA/W,EAAAkX,GACA,IAAAn9B,EAAA7K,OAAAwE,UAAAqV,SAAArT,KAAAsqB,GAAA1U,MAAA,MAEA,MADA,WAAAvR,GAAAimB,EAAAlrB,cAAAiF,EAAAimB,EAAAlrB,YAAAnK,MACA,QAAAoP,GAAA,QAAAA,EAAA1K,MAAAgT,KAAA2d,GACA,cAAAjmB,GAAA,2CAAAsP,KAAAtP,GAAAg9B,EAAA/W,EAAAkX,QAAA,CALA,CAMA,CAqCA,SAAAC,EAAAprB,GACA,OAjBA,SAAAA,GACA,GAAA1c,MAAAC,QAAAyc,GAAA,OAAAgrB,EAAAhrB,EACA,CAeAwS,CAAAxS,IAbA,SAAAyS,GACA,uBAAA5pB,QAAAA,OAAAC,YAAA3F,OAAAsvB,GAAA,OAAAnvB,MAAAgT,KAAAmc,EACA,CAWAC,CAAA1S,IAAAkrB,EAAAlrB,IATA,WACA,UAAA2S,UAAA,uIACA,CAOAC,EACA,CA3HAkY,EAAmB5W,EAAGkT,GAKtB,oBAAA98B,SAEIwgC,EAAmB,SAIvBC,EAAAzgC,OAAAyB,SAAAm+B,iBAAAa,EAAAA,EAAAtoB,IAAAjY,MAAA,8BACIsgC,EAAmBlkC,EAAAmkC,EAAA,KAQCD,EAAmB,QAGdA,EAAmB,QAGzBA,EAAmB,QAGjBA,EAAmB,QAGtBA,EAAmB,QAkEhBA,EAAmB,QAGlBA,EAAmB,QAwB7C,IAAAO,EAAsFP,EAAmB,QACzGQ,EAA0GR,EAAmB98B,EAAAq9B,GAG7HE,EAAaT,EAAmB,QAkDhC,SAAAU,EAAAC,EAAAC,GACA,IAAAx3B,EAAAxU,KAEAA,KAAAisC,UAAA,WACA,OAAAz3B,EAAA9T,MAAAqrC,EAAA3Y,cAAA4Y,EACA,EACA,CAEA,SAAAE,EAAAH,GACA,IAAAhb,EAAA/wB,KAEA,gBAAAgsC,GACA,OAAAjb,EAAAob,UACApb,EAAA,SAAAgb,GAAAC,GAGAF,EAAA7hC,KAAA8mB,EAAAgb,EAAAC,EACA,CACA,CAEA,SAAAI,EAAAltC,GACA,6CAAAgF,SAAAhF,EACA,CAiBA,SAAAmtC,EAAAC,EAAAC,EAAAzlC,GACA,OAAAwlC,EAAAxlC,KAAAylC,EAAAzlC,GAAAylC,EAAAzlC,UAAAkQ,EACA,CAsDA,IAAAw1B,EAAA,wCACAC,EAAA,8CACAC,EAAA,SAAApiC,OAAAkiC,EAAAC,GAAAtlC,IAAA,SAAAoN,GACA,WAAAA,CACA,GACAo4B,EAAA,KAyCAC,EAAA,CACA1tC,KAAA,YACA2tC,cAAA,EACAztC,MA3CA,CACAiG,QAAA5B,OACA2K,KAAA,CACA9O,KAAAsE,MACAkpC,UAAA,EACArtC,QAAA,MAEA+G,MAAA,CACAlH,KAAAsE,MACAkpC,UAAA,EACArtC,QAAA,MAEAstC,mBAAA,CACAztC,KAAA0tC,QACAvtC,SAAA,GAEA2R,MAAA,CACA9R,KAAAq8B,SACAl8B,QAAA,SAAAwtC,GACA,OAAAA,CACA,GAEAliB,QAAA,CACAzrB,KAAAC,OACAE,QAAA,OAEA6hC,IAAA,CACAhiC,KAAAC,OACAE,QAAA,MAEAytC,KAAA,CACA5tC,KAAAq8B,SACAl8B,QAAA,MAEA0tC,cAAA,CACA7tC,KAAAmE,OACAqpC,UAAA,EACArtC,QAAA,OAOAgD,KAAA,WACA,OACA2qC,gBAAA,EACAC,6BAAA,EAEA,EACAC,OAAA,SAAAC,GACA,IAAAC,EAAAxtC,KAAAytC,OAAAhuC,QACAO,KAAAotC,eAjIA,SAAAI,GACA,IAAAA,GAAA,IAAAA,EAAA7pC,OACA,SAGA,IAlHA2c,EAAA/b,EAmHAmpC,GAnHAptB,EAkHAktB,EAlHAjpC,EAkHA,EA7KA,SAAA+b,GACA,GAAA1c,MAAAC,QAAAyc,GAAA,OAAAA,CACA,CA0DAqtB,CAAArtB,IAxDA,SAAAA,EAAA/b,GACA,uBAAA4E,QAAAA,OAAAC,YAAA3F,OAAA6c,GAAA,CACA,IAAAstB,EAAA,GACAC,GAAA,EACAC,GAAA,EACA3sC,OAAA6V,EAEA,IACA,QAAA9V,EAAAioC,EAAA7oB,EAAAnX,OAAAC,cAA8CykC,GAAA3sC,EAAAioC,EAAAlT,QAAAkE,QAC9CyT,EAAAplC,KAAAtH,EAAAsF,QAEAjC,GAAAqpC,EAAAjqC,SAAAY,GAH6EspC,GAAA,GAK7E,CAAI,MAAAnoB,GACJooB,GAAA,EACA3sC,EAAAukB,CACA,CAAI,QACJ,IACAmoB,GAAA,MAAA1E,EAAA,QAAAA,EAAA,QACA,CAAM,QACN,GAAA2E,EAAA,MAAA3sC,CACA,CACA,CAEA,OAAAysC,CAvBA,CAwBA,CA+BAG,CAAAztB,EAAA/b,IAAAinC,EAAAlrB,EAAA/b,IATA,WACA,UAAA0uB,UAAA,4IACA,CAOA+a,IAkHA,GAAAN,iBAEA,QAAAA,GAIAtB,EAAAsB,EAAApM,IACA,CAoHA2M,CAAAT,GAEA,IAAAU,EAhHA,SAAA39B,EAAA+7B,EAAAC,GACA,IAAA4B,EAAA,EACAC,EAAA,EACAC,EAAAhC,EAAAC,EAAAC,EAAA,UAEA8B,IACAF,EAAAE,EAAA1qC,OACA4M,EAAAA,EAAA,GAAAjG,OAAAohC,EAAA2C,GAAA3C,EAAAn7B,IAAAm7B,EAAA2C,IAGA,IAAAC,EAAAjC,EAAAC,EAAAC,EAAA,UAOA,OALA+B,IACAF,EAAAE,EAAA3qC,OACA4M,EAAAA,EAAA,GAAAjG,OAAAohC,EAAAn7B,GAAAm7B,EAAA4C,IAAA5C,EAAA4C,IAGA,CACA/9B,SAAAA,EACA49B,aAAAA,EACAC,aAAAA,EAEA,CA0FAG,CAAAf,EAAAxtC,KAAAytC,OAAAztC,KAAAwuC,cACAj+B,EAAA29B,EAAA39B,SACA49B,EAAAD,EAAAC,aACAC,EAAAF,EAAAE,aAEApuC,KAAAmuC,aAAAA,EACAnuC,KAAAouC,aAAAA,EACA,IAAAK,EA/FA,SAAA9tC,EAAAwsC,GACA,IAAAsB,EAAA,KAEArc,EAAA,SAAAlzB,EAAAsH,GACAioC,EA1GA,SAAA5Z,EAAA6Z,EAAAloC,GACA,YAAAwQ,IAAAxQ,KAIAquB,EAAAA,GAAA,IACA6Z,GAAAloC,GAJAquB,CAMA,CAkGA8Z,CAAAF,EAAAvvC,EAAAsH,EACA,EAUA,GAFA4rB,EAAA,QANA3uB,OAAAC,KAAA/C,GAAAqD,OAAA,SAAA8C,GACA,aAAAA,GAAAA,EAAAujC,WAAA,QACA,GAAGuE,OAAA,SAAA1L,EAAAp8B,GAEH,OADAo8B,EAAAp8B,GAAAnG,EAAAmG,GACAo8B,CACA,EAAG,MAGHiK,EACA,OAAAsB,EAGA,IAAAluC,EAAA4sC,EAAA5sC,GACAnB,EAAA+tC,EAAA/tC,MACAyvC,EAAA1B,EAAA9sC,MAIA,OAHA+xB,EAAA,KAAA7xB,GACA6xB,EAAA,QAAAhzB,GACAqE,OAAAmG,OAAA6kC,EAAApuC,MAAAwuC,GACAJ,CACA,CAqEAK,CAAA9uC,KAAAW,OAAAX,KAAAmtC,eACA,OAAAI,EAAAvtC,KAAA+uC,SAAAN,EAAAl+B,EACA,EACAy+B,QAAA,WACA,OAAAhvC,KAAAoO,MAAA,OAAApO,KAAAwG,OACAqlC,EAAA,EAAA5mC,MAAA,2EAGA,QAAAjF,KAAA+qB,SACA8gB,EAAA,EAAAoD,KAAA,qKAGAj4B,IAAAhX,KAAAqF,SACAwmC,EAAA,EAAAoD,KAAA,sMAEA,EACAC,QAAA,WACA,IAAAxc,EAAA1yB,KAIA,GAFAA,KAAAqtC,4BAAArtC,KAAA+uC,SAAA3b,gBAAApzB,KAAAmvC,IAAAj+B,SAAAkiB,gBAAApzB,KAAAovC,kBAEApvC,KAAAqtC,6BAAArtC,KAAAotC,eACA,UAAA1C,MAAA,6HAAApgC,OAAAtK,KAAA+uC,WAGA,IAAAM,EAAA,GACA7C,EAAA/hC,QAAA,SAAA6kC,GACAD,EAAA,KAAAC,GAAApD,EAAAjiC,KAAAyoB,EAAA4c,EACA,GACA7C,EAAAhiC,QAAA,SAAA6kC,GACAD,EAAA,KAAAC,GAAAxD,EAAAlmC,KAAA8sB,EAAA4c,EACA,GACA,IAAAb,EAAAhrC,OAAAC,KAAA1D,KAAAW,QAAAiuC,OAAA,SAAA1L,EAAAp8B,GAEA,OADAo8B,EAAAz/B,OAAAooC,EAAA,EAAApoC,CAAAqD,IAAA4rB,EAAA/xB,OAAAmG,GACAo8B,CACA,EAAK,IACL79B,EAAA5B,OAAAmG,OAAA,GAAkC5J,KAAAqF,QAAAopC,EAAAY,EAAA,CAClC9sB,OAAA,SAAAhO,EAAAyB,GACA,OAAA0c,EAAA6c,WAAAh7B,EAAAyB,EACA,MAEA,cAAA3Q,KAAAA,EAAAuL,UAAA,MACA5Q,KAAAwvC,UAAA,IAAA5D,EAAAj8B,EAAA3P,KAAAyvC,cAAApqC,GACArF,KAAA0vC,gBACA,EACAC,cAAA,gBACA34B,IAAAhX,KAAAwvC,WAAAxvC,KAAAwvC,UAAAjlB,SACA,EACAhnB,SAAA,CACAksC,cAAA,WACA,OAAAzvC,KAAAotC,eAAAptC,KAAAmvC,IAAA5+B,SAAA,GAAAvQ,KAAAmvC,GACA,EACAhD,SAAA,WACA,OAAAnsC,KAAAoO,KAAApO,KAAAoO,KAAApO,KAAAwG,KACA,GAEAopC,MAAA,CACAvqC,QAAA,CACAwqC,QAAA,SAAAC,GACA9vC,KAAA+vC,cAAAD,EACA,EACAE,MAAA,GAEArvC,OAAA,CACAkvC,QAAA,SAAAC,GACA9vC,KAAA+vC,cAAAD,EACA,EACAE,MAAA,GAEA7D,SAAA,WACAnsC,KAAA0vC,gBACA,GAEArrC,QAAA,CACA+qC,gBAAA,WACA,IAAAa,EAAAjwC,KAAAkwC,OAAAD,UACA,OAAAA,GAAAA,EAAAE,UACA,EACApB,OAAA,WACA,OAAA/uC,KAAAshC,KAAAthC,KAAA+qB,OACA,EACAglB,cAAA,SAAAD,GACA,QAAAhb,KAAAgb,EAAA,CACA,IAAAtpC,EAAA/C,OAAAooC,EAAA,EAAApoC,CAAAqxB,IAEA,IAAA4X,EAAAj/B,QAAAjH,IACAxG,KAAAwvC,UAAAr7B,OAAA3N,EAAAspC,EAAAhb,GAEA,CACA,EACAsb,iBAAA,WACA,GAAApwC,KAAAqtC,4BACA,OAAArtC,KAAAqwC,UAAA,GAAA5C,OAAAhuC,QAGA,IAAA6wC,EAAAtwC,KAAAytC,OAAAhuC,QACA,OAAAO,KAAAotC,eAAAkD,EAAA,GAAAxwB,MAAA2tB,OAAAhuC,QAAA6wC,CACA,EACAZ,eAAA,WACA,IAAAa,EAAAvwC,KAEAA,KAAAisC,UAAA,WACAsE,EAAAC,eA3RA,SAAAhD,EAAAj9B,EAAAkgC,EAAArC,GACA,IAAAZ,EACA,SAGA,IAAAkD,EAAAlD,EAAArmC,IAAA,SAAAmoC,GACA,OAAAA,EAAAqB,GACA,GACAC,EAAArgC,EAAA5M,OAAAyqC,EAEAyC,EAAAnF,EAAAn7B,GAAApJ,IAAA,SAAAmoC,EAAAvrB,GACA,OAAAA,GAAA6sB,EAAAF,EAAA/sC,OAAA+sC,EAAAjjC,QAAA6hC,EACA,GAEA,OAAAmB,EAAAI,EAAA7sC,OAAA,SAAA8sC,GACA,WAAAA,CACA,GAAGD,CACH,CA0QAE,CAAAR,EAAAH,mBAAAG,EAAAd,cAAAl/B,SAAAggC,EAAAnD,eAAAmD,EAAAnC,aACA,EACA,EACA4C,gBAAA,SAAAC,GACA,IArSAC,EAAAnmB,EAqSA9Z,GArSAigC,EAqSAlxC,KAAAowC,oBAAA,GArSArlB,EAqSAkmB,EApSAC,EAAA/pC,IAAA,SAAAmoC,GACA,OAAAA,EAAAqB,GACA,GAAGljC,QAAAsd,IAoSH,WAAA9Z,EAGA,KAIA,CACAA,MAAAA,EACA8Z,QAHA/qB,KAAAmsC,SAAAl7B,GAKA,EACAkgC,yCAAA,SAAA77B,GACA,IAAA87B,EAAA97B,EAAA+7B,QAEA,OAAAD,GAAAA,EAAAE,UAAAlF,EAAAgF,EAAAE,SAAAC,eAKAH,EAAAI,UAJA,aAAAJ,IAAA,IAAAA,EAAAf,UAAA1sC,QAAA,aAAAytC,EAAAf,UAAA,GAAAe,EAAAf,UAAA,GACAe,CAIA,EACAK,YAAA,SAAAl9B,GACA,IAAAm9B,EAAA1xC,KAEAA,KAAAisC,UAAA,WACAyF,EAAAhxC,MAAA,SAAA6T,EACA,EACA,EACAo9B,UAAA,SAAAC,GACA,GAAA5xC,KAAAoO,KACAwjC,EAAA5xC,KAAAoO,UADA,CAKA,IAAAyjC,EAAAnG,EAAA1rC,KAAAwG,OAEAorC,EAAAC,GACA7xC,KAAAU,MAAA,QAAAmxC,EALA,CAMA,EACAC,WAAA,WACA,IAAAC,EAAAjoC,UAMA9J,KAAA2xC,UAJA,SAAAvjC,GACA,OAAAA,EAAA5J,OAAA0F,MAAAkE,EAAAs9B,EAAAqG,GACA,EAGA,EACAC,eAAA,SAAAp8B,EAAAC,GAKA7V,KAAA2xC,UAJA,SAAAvjC,GACA,OAAAA,EAAA5J,OAAAqR,EAAA,EAAAzH,EAAA5J,OAAAoR,EAAA,MACA,EAGA,EACAq8B,+BAAA,SAAAjkB,GACA,IAAArX,EAAAqX,EAAArX,GACA8L,EAAAuL,EAAAvL,QACAyvB,EAAAlyC,KAAAmxC,yCAAAx6B,GAEA,IAAAu7B,EACA,OACAA,UAAAA,GAIA,IAAA9jC,EAAA8jC,EAAA/F,SACAtP,EAAA,CACAzuB,KAAAA,EACA8jC,UAAAA,GAGA,GAAAv7B,IAAA8L,GAAArU,GAAA8jC,EAAAlB,gBAAA,CACA,IAAAmB,EAAAD,EAAAlB,gBAAAvuB,GAEA,GAAA0vB,EACA,OAAA1uC,OAAAmG,OAAAuoC,EAAAtV,EAEA,CAEA,OAAAA,CACA,EACAuV,WAAA,SAAAC,GACA,IAAAC,EAAAtyC,KAAAwwC,eACA+B,EAAAD,EAAA3uC,OACA,OAAA0uC,EAAAE,EAAA,EAAAA,EAAAD,EAAAD,EACA,EACAG,aAAA,WACA,OAAAxyC,KAAAytC,OAAAhuC,QAAA,GAAAgzC,iBACA,EACAC,oBAAA,SAAAzhC,GACA,GAAAjR,KAAA+sC,oBAAA/sC,KAAAotC,eAAA,CAIAptC,KAAAowC,mBACAn/B,GAAAxO,KAAA,KACA,IAAAkwC,EAAA3yC,KAAAwyC,eACAG,EAAApiC,SAAA,GACAoiC,EAAAC,UAAA57B,CANA,CAOA,EACA67B,YAAA,SAAAt+B,GACAvU,KAAA68B,QAAA78B,KAAAgxC,gBAAAz8B,EAAAsC,MACAtC,EAAAsC,KAAAi8B,gBAAA9yC,KAAAoR,MAAApR,KAAA68B,QAAA9R,SACA4hB,EAAAp4B,EAAAsC,IACA,EACAk8B,UAAA,SAAAx+B,GACA,IAAAwW,EAAAxW,EAAAsC,KAAAi8B,gBAEA,QAAA97B,IAAA+T,EAAA,CAIAtnB,OAAAooC,EAAA,EAAApoC,CAAA8Q,EAAAsC,MACA,IAAAhB,EAAA7V,KAAAoyC,WAAA79B,EAAAsB,UACA7V,KAAA8xC,WAAAj8B,EAAA,EAAAkV,GACA/qB,KAAA0vC,iBACA,IAAAsD,EAAA,CACAjoB,QAAAA,EACAlV,SAAAA,GAEA7V,KAAAyxC,YAAA,CACAuB,MAAAA,GAXA,CAaA,EACAC,aAAA,SAAA1+B,GAGA,GAFA9Q,OAAAooC,EAAA,EAAApoC,CAAAzD,KAAAyvC,cAAAl7B,EAAAsC,KAAAtC,EAAAqB,UAEA,UAAArB,EAAAuC,SAAA,CAKA,IAAAlB,EAAA5V,KAAA68B,QAAA5rB,MACAjR,KAAA8xC,WAAAl8B,EAAA,GACA,IAAAs9B,EAAA,CACAnoB,QAAA/qB,KAAA68B,QAAA9R,QACAnV,SAAAA,GAEA5V,KAAA0yC,oBAAA98B,GACA5V,KAAAyxC,YAAA,CACAyB,QAAAA,GAVA,MAFAzvC,OAAAooC,EAAA,EAAApoC,CAAA8Q,EAAAnD,MAcA,EACA+hC,aAAA,SAAA5+B,GACA9Q,OAAAooC,EAAA,EAAApoC,CAAA8Q,EAAAsC,MACApT,OAAAooC,EAAA,EAAApoC,CAAA8Q,EAAAqC,KAAArC,EAAAsC,KAAAtC,EAAAqB,UACA,IAAAA,EAAA5V,KAAA68B,QAAA5rB,MACA4E,EAAA7V,KAAAoyC,WAAA79B,EAAAsB,UACA7V,KAAAgyC,eAAAp8B,EAAAC,GACA,IAAAkC,EAAA,CACAgT,QAAA/qB,KAAA68B,QAAA9R,QACAnV,SAAAA,EACAC,SAAAA,GAEA7V,KAAAyxC,YAAA,CACA15B,MAAAA,GAEA,EACAq7B,eAAA,SAAA7+B,EAAA8+B,GACA9+B,EAAAvK,eAAAqpC,KAAA9+B,EAAA8+B,IAAArzC,KAAAmuC,aACA,EACAmF,mBAAA,SAAAC,EAAAh/B,GACA,IAAAg/B,EAAAxoB,QACA,SAGA,IAAAyoB,EAAA9H,EAAAn3B,EAAAoC,GAAApG,UAAAvM,OAAA,SAAAwH,GACA,eAAAA,EAAA6B,MAAA,OACA,GAEAomC,EAAAD,EAAA/lC,QAAA8G,EAAAkO,SACAyP,EAAAqhB,EAAArB,UAAAE,WAAAqB,GAEA,OADA,IAAAD,EAAA/lC,QAAAk/B,IACAp4B,EAAA6N,gBAAA8P,EAAA,EAAAA,CACA,EACAqd,WAAA,SAAAh7B,EAAAyB,GACA,IAAAuM,EAAAviB,KAAAktC,KAEA,IAAA3qB,IAAAviB,KAAAmsC,SACA,SAGA,IAAAoH,EAAAvzC,KAAAiyC,+BAAA19B,GACAm/B,EAAA1zC,KAAA68B,QACA8W,EAAA3zC,KAAAszC,mBAAAC,EAAAh/B,GAQA,OAPA9Q,OAAAmG,OAAA8pC,EAAA,CACAC,YAAAA,IAMApxB,EAJA9e,OAAAmG,OAAA,GAAoC2K,EAAA,CACpCg/B,eAAAA,EACAG,eAAAA,IAEA19B,EACA,EACA49B,UAAA,WACA5zC,KAAA0vC,iBACA/C,EAAA,IACA,IAIA,oBAAA/hC,QAAA,QAAAA,QACAA,OAAA5C,IAAAkqC,UAAA,YAAAtF,GAGA,IAAAiH,EAAA,EAI6CnM,EAAmB,SAIzD,IAEG,OACV,EAx5EAj/B,EAAA0rB,QAAAP,EAA2BkgB,EAAQ,UCDnC,MAAAC,EAAA,GAGA,SAAAD,EAAA5f,GAEA,MAAA8f,EAAAD,EAAA7f,GACA,QAAAld,IAAAg9B,EACA,OAAAA,EAAA7f,QAGA,MAAA1rB,EAAAsrC,EAAA7f,GAAA,CACAntB,GAAAmtB,EACA+f,QAAA,EACA9f,QAAA,IAUA,OANA+f,EAAAhgB,GAAAjqB,KAAAxB,EAAA0rB,QAAA1rB,EAAAA,EAAA0rB,QAAA2f,GAGArrC,EAAAwrC,QAAA,EAGAxrC,EAAA0rB,OACA,CAGA2f,EAAAzf,EAAA6f,QC5BA,MAAAC,EAAA,GACAL,EAAAtb,EAAA,CAAAR,EAAAoc,EAAA7sC,EAAA8sC,KACA,GAAAD,EAAA,CACAC,IAAA,EACA,QAAA9vC,EAAA4vC,EAAAxwC,OAA+BY,EAAA,GAAA4vC,EAAA5vC,EAAA,MAAA8vC,EAAwC9vC,IAAA4vC,EAAA5vC,GAAA4vC,EAAA5vC,EAAA,GAEvE,YADA4vC,EAAA5vC,GAAA,CAAA6vC,EAAA7sC,EAAA8sC,GAEA,CACA,IAAAC,EAAAC,IACA,IAAAhwC,EAAA,EAAiBA,EAAA4vC,EAAAxwC,OAAqBY,IAAA,CACtC,IAAA6vC,EAAA7sC,EAAA8sC,GAAAF,EAAA5vC,GACAiwC,GAAA,EACA,QAAAvT,EAAA,EAAkBA,EAAAmT,EAAAzwC,OAAqBs9B,IACvC,EAAAoT,KAAAC,GAAAD,KAAA5wC,OAAAC,KAAAowC,EAAAtb,GAAAic,MAAA3tC,GAAAgtC,EAAAtb,EAAA1xB,GAAAstC,EAAAnT,MAGAuT,GAAA,EACAH,EAAAC,IAAAA,EAAAD,IAHAD,EAAA5vC,OAAAy8B,IAAA,GAMA,GAAAuT,EAAA,CACAL,EAAA3vC,OAAAD,IAAA,GACA,MAAAiwB,EAAAjtB,SACAyP,IAAAwd,IAAAwD,EAAAxD,EACA,CACA,CACA,OAAAwD,OCzBA8b,EAAAxlC,EAAA7F,IACA,MAAA6rB,EAAA7rB,GAAAA,EAAAksB,WACA,IAAAlsB,EAAA,QACA,MAEA,OADAqrC,EAAA9yC,EAAAszB,EAAA,CAAiC3kB,EAAA2kB,IACjCA,GCHAwf,EAAAY,GAAAriC,IACA,IAAAsiC,EACA,WACA,GAAAtiC,EAAA,CACA,IAAA9K,EAAA8K,EACAA,EAAA,EACAsiC,EAAA,CAAWxgB,QAAA,IACX5sB,EAAA0C,KAAA0qC,EAAAxgB,QAAAwgB,EAAAA,EAAAxgB,QACA,CACA,OAAAwgB,EAAAxgB,UCXA2f,EAAA9yC,EAAA,CAAAmzB,EAAAygB,KACA,GAAAhxC,MAAAC,QAAA+wC,GAEA,IADA,IAAArwC,EAAA,EACAA,EAAAqwC,EAAAjxC,QAAA,CACA,IAAAmD,EAAA8tC,EAAArwC,KACAswC,EAAAD,EAAArwC,KACA+4B,EAAA,IAAAuX,EAAA,CAAsCrrC,YAAA,EAAAhD,MAAAouC,EAAArwC,MAA2C,CAAIiF,YAAA,EAAAmW,IAAAk1B,GACrFf,EAAAvf,EAAAJ,EAAArtB,IAAArD,OAAA8F,eAAA4qB,EAAArtB,EAAAw2B,EACA,MAEA,QAAAx2B,KAAA8tC,EACAd,EAAAvf,EAAAqgB,EAAA9tC,KAAAgtC,EAAAvf,EAAAJ,EAAArtB,IACArD,OAAA8F,eAAA4qB,EAAArtB,EAAA,CAA0C0C,YAAA,EAAAmW,IAAAi1B,EAAA9tC,MCV1CgtC,EAAA3zB,EAAA,IAAA20B,QAAAC,UCHAjB,EAAAvf,EAAA,CAAArrB,EAAAiE,IAAA1J,OAAAuxC,OAAA9rC,EAAAiE,GCCA2mC,EAAAtf,EAAAL,IACA1wB,OAAA8F,eAAA4qB,EAAAhrB,OAAAsrB,YAAA,CAAsDjuB,MAAA,WACtD/C,OAAA8F,eAAA4qB,EAAA,cAAgD3tB,OAAA,KCHhDstC,EAAAmB,IAAAxsC,IACAA,EAAAysC,MAAA,GACAzsC,EAAA8H,WAAA9H,EAAA8H,SAAA,IACA9H,GCHAqrC,EAAA7S,EAAA,KCGA6S,EAAAqB,GAAApiC,IACA,IAAAuqB,EAAA75B,OAAA+G,yBAAAuI,EAAA,UACAuqB,IAAAA,EAAA5zB,UAAA4zB,EAAA7zB,eAAAhG,OAAA8F,eAAAwJ,EAAA,QAA0GvM,MAAA,UAAAiD,cAAA,WCL1GqqC,EAAAztB,EAAA,oBAAAha,UAAAA,SAAA+oC,SAAAvhB,KAAAwhB,SAAAryB,KAKA,MAAAsyB,EAAA,CACA,QAaAxB,EAAAtb,EAAAyI,EAAAsU,GAAA,IAAAD,EAAAC,GAGA,MAAAC,EAAA,CAAAC,EAAAhzC,KACA,IAAA2xC,EAAAsB,EAAAC,GAAAlzC,EAGA,IAAAyxB,EAAAqhB,EAAAhxC,EAAA,EACA,GAAA6vC,EAAAv3B,KAAA9V,GAAA,IAAAuuC,EAAAvuC,IAAA,CACA,IAAAmtB,KAAAwhB,EACA5B,EAAAvf,EAAAmhB,EAAAxhB,KACA4f,EAAAzf,EAAAH,GAAAwhB,EAAAxhB,IAGA,GAAAyhB,EAAA,IAAA3d,EAAA2d,EAAA7B,EACA,CAEA,IADA2B,GAAAA,EAAAhzC,GACM8B,EAAA6vC,EAAAzwC,OAAqBY,IAC3BgxC,EAAAnB,EAAA7vC,GACAuvC,EAAAvf,EAAA+gB,EAAAC,IAAAD,EAAAC,IACAD,EAAAC,GAAA,KAEAD,EAAAC,GAAA,EAEA,OAAAzB,EAAAtb,EAAAR,IAGA4d,EAAAC,WAAA,qCACAD,EAAAnrC,QAAA+qC,EAAA5vC,KAAA,SACAgwC,EAAAptC,KAAAgtC,EAAA5vC,KAAA,KAAAgwC,EAAAptC,KAAA5C,KAAAgwC,QChDA9B,EAAAgC,QAAA9+B,ECGA,IAAA++B,EAAAjC,EAAAtb,OAAAxhB,EAAA,WAAA88B,EAAA,QACAiC,EAAAjC,EAAAtb,EAAAud","sources":["webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowDown.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowDown.vue?f5f4","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=78385c0a","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowUp.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowUp.vue?f3d3","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=94c28324","webpack:///nextcloud/node_modules/vue-material-design-icons/DragVertical.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/DragVertical.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/DragVertical.vue?742e","webpack:///nextcloud/node_modules/vue-material-design-icons/DragVertical.vue?vue&type=template&id=8540f63c","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/apps/settings/src/components/AdminAI.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/AdminAI.vue","webpack://nextcloud/./apps/settings/src/components/AdminAI.vue?99c3","webpack://nextcloud/./apps/settings/src/components/AdminAI.vue?91ad","webpack://nextcloud/./apps/settings/src/components/AdminAI.vue?cf22","webpack:///nextcloud/apps/settings/src/main-admin-ai.js","webpack:///nextcloud/apps/settings/src/components/AdminAI.vue?vue&type=style&index=0&id=9a99aeba&prod&scoped=true&lang=css","webpack:///nextcloud/node_modules/sortablejs/modular/sortable.esm.js","webpack:///nextcloud/node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/concatenation wrap","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/set anonymous default export name","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowDown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ArrowDown.vue?vue&type=template&id=78385c0a\"\nimport script from \"./ArrowDown.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowUp.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ArrowUp.vue?vue&type=template&id=94c28324\"\nimport script from \"./ArrowUp.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowUp.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-up-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./DragVertical.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./DragVertical.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./DragVertical.vue?vue&type=template&id=8540f63c\"\nimport script from \"./DragVertical.vue?vue&type=script&lang=js\"\nexport * from \"./DragVertical.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon drag-vertical-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,3H11V5H9V3M13,3H15V5H13V3M9,7H11V9H9V7M13,7H15V9H13V7M9,11H11V13H9V11M13,11H15V13H13V11M9,15H11V17H9V15M13,15H15V17H13V15M9,19H11V21H9V19M13,19H15V21H13V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('settings')\n .detectUser()\n .build();\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAI.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAI.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAI.vue?vue&type=style&index=0&id=9a99aeba&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminAI.vue?vue&type=style&index=0&id=9a99aeba&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AdminAI.vue?vue&type=template&id=9a99aeba&scoped=true\"\nimport script from \"./AdminAI.vue?vue&type=script&lang=js\"\nexport * from \"./AdminAI.vue?vue&type=script&lang=js\"\nimport style0 from \"./AdminAI.vue?vue&type=style&index=0&id=9a99aeba&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9a99aeba\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ai-settings\"},[_c('NcSettingsSection',{attrs:{\"name\":_vm.t('settings', 'Unified task processing'),\"description\":_vm.t('settings', 'AI tasks can be implemented by different apps. Here you can set which app should be used for which task.')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\"},on:{\"update:modelValue\":_vm.saveChanges},model:{value:(_vm.settings['ai.taskprocessing_guests']),callback:function ($$v) {_vm.$set(_vm.settings, 'ai.taskprocessing_guests', $$v)},expression:\"settings['ai.taskprocessing_guests']\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Allow AI usage for guest users'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('settings', 'Provider for Task types')))]),_vm._v(\" \"),_vm._l((_vm.taskProcessingTaskTypes),function(type){return [_c('div',{key:type,staticClass:\"tasktype-item\"},[_c('p',{staticClass:\"tasktype-name\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(type.name)+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\"},on:{\"update:modelValue\":_vm.saveChanges},model:{value:(_vm.settings['ai.taskprocessing_type_preferences'][type.id]),callback:function ($$v) {_vm.$set(_vm.settings['ai.taskprocessing_type_preferences'], type.id, $$v)},expression:\"settings['ai.taskprocessing_type_preferences'][type.id]\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Enable'))+\"\\n\\t\\t\\t\\t\")]),_c('NcSelect',{staticClass:\"provider-select\",attrs:{\"clearable\":false,\"disabled\":!_vm.settings['ai.taskprocessing_type_preferences'][type.id],\"options\":_vm.taskProcessingProviders.filter(p => p.taskType === type.id).map(p => p.id)},on:{\"input\":_vm.saveChanges},scopedSlots:_vm._u([{key:\"option\",fn:function({ label }){return [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.taskProcessingProviders.find(p => p.id === label)?.name)+\"\\n\\t\\t\\t\\t\\t\")]}},{key:\"selected-option\",fn:function({ label }){return [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.taskProcessingProviders.find(p => p.id === label)?.name)+\"\\n\\t\\t\\t\\t\\t\")]}}],null,true),model:{value:(_vm.settings['ai.taskprocessing_provider_preferences'][type.id]),callback:function ($$v) {_vm.$set(_vm.settings['ai.taskprocessing_provider_preferences'], type.id, $$v)},expression:\"settings['ai.taskprocessing_provider_preferences'][type.id]\"}})],1)]}),_vm._v(\" \"),(!_vm.hasTaskProcessing)?[_c('NcNoteCard',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'None of your currently installed apps provide Task processing functionality'))+\"\\n\\t\\t\\t\")])]:_vm._e()],2),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('settings', 'Machine translation'),\"description\":_vm.t('settings', 'Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment.')}},[_c('VueDraggable',{on:{\"change\":_vm.saveChanges},model:{value:(_vm.settings['ai.translation_provider_preferences']),callback:function ($$v) {_vm.$set(_vm.settings, 'ai.translation_provider_preferences', $$v)},expression:\"settings['ai.translation_provider_preferences']\"}},_vm._l((_vm.settings['ai.translation_provider_preferences']),function(providerClass,i){return _c('div',{key:providerClass,staticClass:\"draggable__item\"},[_c('DragVerticalIcon'),_vm._v(\" \"),_c('span',{staticClass:\"draggable__number\"},[_vm._v(_vm._s(i + 1))]),_vm._v(\" \"+_vm._s(_vm.translationProviders.find(p => p.class === providerClass)?.name)+\"\\n\\t\\t\\t\\t\"),_c('NcButton',{attrs:{\"aria-label\":\"Move up\",\"variant\":\"tertiary\"},on:{\"click\":function($event){return _vm.moveUp(i)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowUpIcon')]},proxy:true}],null,true)}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":\"Move down\",\"variant\":\"tertiary\"},on:{\"click\":function($event){return _vm.moveDown(i)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowDownIcon')]},proxy:true}],null,true)})],1)}),0)],1),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('settings', 'Image generation'),\"description\":_vm.t('settings', 'Image generation can be implemented by different apps. Here you can set which app should be used.')}},[_vm._l((_vm.text2imageProviders),function(provider){return [_c('NcCheckboxRadioSwitch',{key:provider.id,attrs:{\"value\":provider.id,\"name\":\"text2image_provider\",\"type\":\"radio\"},on:{\"update:modelValue\":_vm.saveChanges},model:{value:(_vm.settings['ai.text2image_provider']),callback:function ($$v) {_vm.$set(_vm.settings, 'ai.text2image_provider', $$v)},expression:\"settings['ai.text2image_provider']\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(provider.name)+\"\\n\\t\\t\\t\")])]}),_vm._v(\" \"),(!_vm.hasText2ImageProviders)?[_c('NcNoteCard',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'None of your currently installed apps provide image generation functionality'))+\"\\n\\t\\t\\t\")])]:_vm._e()],2),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('settings', 'Text processing'),\"description\":_vm.t('settings', 'Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task.')}},[_vm._l((_vm.tpTaskTypes),function(type){return [_c('div',{key:type},[_c('h3',[_vm._v(_vm._s(_vm.t('settings', 'Task:'))+\" \"+_vm._s(_vm.getTextProcessingTaskType(type).name))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.getTextProcessingTaskType(type).description))]),_vm._v(\" \"),_c('p',[_vm._v(\" \")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"provider-select\",attrs:{\"clearable\":false,\"options\":_vm.textProcessingProviders.filter(p => p.taskType === type).map(p => p.class)},on:{\"input\":_vm.saveChanges},scopedSlots:_vm._u([{key:\"option\",fn:function({ label }){return [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.textProcessingProviders.find(p => p.class === label)?.name)+\"\\n\\t\\t\\t\\t\\t\")]}},{key:\"selected-option\",fn:function({ label }){return [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.textProcessingProviders.find(p => p.class === label)?.name)+\"\\n\\t\\t\\t\\t\\t\")]}}],null,true),model:{value:(_vm.settings['ai.textprocessing_provider_preferences'][type]),callback:function ($$v) {_vm.$set(_vm.settings['ai.textprocessing_provider_preferences'], type, $$v)},expression:\"settings['ai.textprocessing_provider_preferences'][type]\"}}),_vm._v(\" \"),_c('p',[_vm._v(\" \")])],1)]}),_vm._v(\" \"),(_vm.tpTaskTypes.length === 0)?[_c('NcNoteCard',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'None of your currently installed apps provide text processing functionality using the Text Processing API.'))+\"\\n\\t\\t\\t\")])]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth'\nimport Vue from 'vue'\nimport ArtificialIntelligence from './components/AdminAI.vue'\n\n__webpack_nonce__ = getCSPNonce()\n\nVue.prototype.t = t\n\nconst View = Vue.extend(ArtificialIntelligence)\nnew View().$mount('#ai-settings')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.draggable__item[data-v-9a99aeba] {\n\tmargin-bottom: 5px;\n display: flex;\n align-items: center;\n}\n.draggable__item[data-v-9a99aeba],\n.draggable__item *[data-v-9a99aeba] {\n cursor: grab;\n}\n.draggable__number[data-v-9a99aeba] {\n\tborder-radius: 20px;\n\tborder: 2px solid var(--color-primary-element);\n\tcolor: var(--color-primary-element);\n\tpadding: 0px 7px;\n\tmargin-inline-end: 3px;\n}\n.drag-vertical-icon[data-v-9a99aeba] {\n float: left;\n}\n.ai-settings h3[data-v-9a99aeba] {\n\tfont-size: 16px; /* to offset against the 20px section heading */\n}\n.provider-select[data-v-9a99aeba] {\n\tmin-width: 350px !important;\n}\n.tasktype-item[data-v-9a99aeba] {\n display: flex;\n align-items: center;\n gap: 8px;\n.tasktype-name[data-v-9a99aeba] {\n flex: 1;\n margin: 0;\n}\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AdminAI.vue\"],\"names\":[],\"mappings\":\";AA4OA;CACA,kBAAA;EACA,aAAA;EACA,mBAAA;AACA;AAEA;;EAEA,YAAA;AACA;AAEA;CACA,mBAAA;CACA,8CAAA;CACA,mCAAA;CACA,gBAAA;CACA,sBAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;CACA,eAAA,EAAA,+CAAA;AACA;AAEA;CACA,2BAAA;AACA;AAEA;EACA,aAAA;EACA,mBAAA;EACA,QAAA;AACA;IACA,OAAA;IACA,SAAA;AACA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority ||= 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tlet notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn, priority] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 3012;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t3012: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(77870)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["vue_material_design_icons_ArrowDownvue_type_script_lang_js","name","emits","props","title","type","String","fillColor","default","size","Number","ArrowDown","componentNormalizer","A","_vm","this","_c","_self","_b","staticClass","attrs","role","on","click","$event","$emit","$attrs","fill","width","height","viewBox","d","_v","_s","_e","vue_material_design_icons_ArrowUpvue_type_script_lang_js","ArrowUp","vue_material_design_icons_DragVerticalvue_type_script_lang_js","DragVertical","logger","getLoggerBuilder","setApp","detectUser","build","components_AdminAIvue_type_script_lang_js","components","NcCheckboxRadioSwitch","NcSettingsSection","NcSelect","VueDraggable","vuedraggable_umd_default","DragVerticalIcon","ArrowDownIcon","ArrowUpIcon","NcButton","NcNoteCard","data","loading","dirty","groups","loadingGroups","sttProviders","loadState","translationProviders","textProcessingProviders","textProcessingTaskTypes","text2imageProviders","taskProcessingProviders","taskProcessingTaskTypes","settings","computed","hasTextProcessing","Object","keys","length","Array","isArray","tpTaskTypes","builtinTextProcessingTypes","filter","getTextProcessingTaskType","includes","hasText2ImageProviders","hasTaskProcessing","methods","moveUp","i","splice","Math","min","saveChanges","moveDown","nextTick","axios","put","generateUrl","error","find","taskType","class","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","AdminAIvue_type_style_index_0_id_9a99aeba_prod_scoped_true_lang_css","locals","AdminAI","t","description","model","value","callback","$$v","$set","expression","_l","key","id","clearable","disabled","p","map","input","scopedSlots","_u","fn","label","change","providerClass","variant","proxy","provider","__webpack_nonce__","getCSPNonce","Vue","prototype","extend","ArtificialIntelligence","$mount","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","push","module","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","_typeof","obj","Symbol","iterator","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","assign","target","arguments","source","hasOwnProperty","call","apply","_objectSpread","ownKeys","getOwnPropertySymbols","concat","sym","getOwnPropertyDescriptor","forEach","userAgent","pattern","window","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","event","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","document","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","classList","className","replace","css","prop","val","style","defaultView","getComputedStyle","currentStyle","indexOf","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","a","scaleY","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","isRectEqual","rect1","rect2","round","throttle","ms","args","setTimeout","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","Date","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","evt","_this","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","item","pullMode","lastPutMode","undefined","allEventProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","createElement","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","split","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","join","originalGroup","checkPull","checkPut","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","toString","animationCallbackId","animationStates","sort","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","get","captureAnimationState","slice","child","fromRect","thisAnimationDuration","childMatrix","f","e","addAnimationState","removeAnimationState","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","animated","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","str","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","path","composedPath","root","inputs","idx","checked","_saveInputCheckedState","button","isContentEditable","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","b","c","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","items","set","destroy","querySelectorAll","removeAttribute","utils","is","dst","cancelNextTick","detectDirection","element","_len","_key","create","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","_ref2","swap","prevSwapEl","_ref3","n1","n2","i1","i2","p1","p2","isEqualNode","nulling","swapItem","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","lastIndex","currentIndex","multiDragIndex","update","nullingGlobal","destroyGlobal","shift","select","deselect","_this3","oldIndicies","newIndicies","arr2","_arrayWithoutHoles","iter","_iterableToArray","TypeError","_nonIterableSpread","clones","toLowerCase","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","factory","self","__WEBPACK_EXTERNAL_MODULE_a352__","modules","installedModules","__nested_webpack_require_688__","moduleId","exports","l","m","getter","o","r","toStringTag","mode","__esModule","ns","object","property","s","__nested_webpack_require_4164__","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","P","F","__nested_webpack_require_7070__","toInteger","defined","TO_STRING","that","pos","__nested_webpack_require_7783__","at","S","unicode","__nested_webpack_require_8134__","anObject","result","global","ignoreCase","multiline","sticky","__nested_webpack_require_8593__","$keys","enumBugKeys","O","__nested_webpack_require_8892__","dP","getKeys","defineProperties","Properties","__nested_webpack_require_9392__","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","done","strfn","rxfn","RegExp","string","arg","__nested_webpack_require_12849__","isObject","it","__nested_webpack_require_13233__","cof","ARG","T","B","tryGet","callee","__nested_webpack_require_14160__","has","SRC","$toString","TPL","inspectSource","safe","isFunction","Function","__nested_webpack_require_15334__","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","contentWindow","open","write","lt","close","__nested_webpack_require_16945__","uid","USE_SYMBOL","__nested_webpack_require_17667__","context","INCLUDES","searchString","__nested_webpack_require_18235__","createDesc","__nested_webpack_require_18611__","toObject","ObjectProto","__nested_webpack_require_19205__","descriptor","__nested_webpack_require_19831__","ceil","isNaN","bitmap","__nested_webpack_require_20609__","__nested_webpack_require_20831__","MATCH","__nested_webpack_require_21176__","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","__nested_webpack_require_23109__","core","SHARED","copyright","__nested_webpack_require_23642__","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","__nested_webpack_require_25367__","__nested_webpack_require_25845__","classof","builtinExec","__nested_webpack_require_26551__","shared","__nested_webpack_require_26811__","__nested_webpack_require_27194__","$includes","__nested_webpack_require_27659__","IObject","__nested_webpack_require_28155__","valueOf","__nested_webpack_require_28898__","gOPS","pIE","$assign","K","k","aLen","getSymbols","isEnum","j","__g","__nested_webpack_require_30635__","__nested_webpack_require_31112__","def","tag","stat","__e","__nested_webpack_require_31751__","IE8_DOM_DEFINE","toPrimitive","Attributes","__nested_webpack_require_32441__","aFunction","__nested_webpack_require_33048__","UNSCOPABLES","ArrayProto","__nested_webpack_require_33448__","__nested_webpack_require_33750__","a352","a481","__nested_webpack_require_34139__","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","aae3","__nested_webpack_require_38885__","isRegExp","ac6a","__nested_webpack_require_39282__","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","b0c5","__nested_webpack_require_41209__","forced","be13","c366","__nested_webpack_require_41706__","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","c649","__nested_webpack_exports__","__nested_webpack_require_42729__","insertNodeAt","camelize","console","removeNode","cache","regex","node","parentElement","fatherNode","refNode","c69a","__nested_webpack_require_44512__","c8ba","g","ca5a","px","random","cadf","__nested_webpack_require_45568__","addToUnscopables","step","iterated","_t","_i","_k","Arguments","cb7c","__nested_webpack_require_46777__","ce10","__nested_webpack_require_47019__","arrayIndexOf","d2c8","__nested_webpack_require_47655__","d3f4","d53b","d8e8","e11e","f559","__nested_webpack_require_48796__","STARTS_WITH","$startsWith","startsWith","search","f6fd","currentScript","scripts","Error","stack","readyState","f751","__nested_webpack_require_50913__","fa5b","__nested_webpack_require_51166__","fab2","__nested_webpack_require_51344__","fb15","__nested_webpack_require_51548__","setPublicPath_i","_arrayLikeToArray","len","_unsupportedIterableToArray","minLen","_toConsumableArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","emit","evtName","evtData","$nextTick","delegateAndEmit","realList","isTransitionName","getSlot","slot","scopedSlot","eventsListened","eventsToEmit","readonlyProperties","draggingElement","draggableComponent","inheritAttrs","required","noTransitionOnDrag","Boolean","original","move","componentData","transitionMode","noneFunctionalComponentMode","render","h","slots","$slots","componentOptions","_arrayWithHoles","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","header","footer","computeChildrenAndOffsets","$scopedSlots","attributes","propName","buildAttribute","reduce","componentDataAttrs","getComponentAttributes","getTag","created","warn","mounted","$el","getIsFunctional","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","beforeDestroy","watch","handler","newOptionValue","updateOptions","deep","fnOptions","_vnode","functional","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","isTransition","elmFromNodes","elm","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","vnodes","getUnderlyingPotencialDraggableComponent","vue","__vue__","$options","_componentTag","$parent","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","component","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedContext","futureIndex","onDragEnd","vuedraggable","__webpack_require__","__webpack_module_cache__","cachedModule","loaded","__webpack_modules__","deferred","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","cw","mod","definition","binding","Promise","resolve","hasOwn","nmd","paths","dn","baseURI","location","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","globalThis","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/settings-vue-settings-users-management.js b/dist/settings-vue-settings-users-management.js index 94cb05167d10d..266b4abf7d3d2 100644 --- a/dist/settings-vue-settings-users-management.js +++ b/dist/settings-vue-settings-users-management.js @@ -1,2 +1,2 @@ -(()=>{var e={34002(e,n,s){"use strict";var i=s(21777),r=s(44368),o=s(53334),a=s(93346),l=s(10810);function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function d(t){var e=function(t){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:e+""}function u(t,e,n){return(e=d(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function p(t,e){for(var n=0;n=0)return 1;return 0}(),g=h&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},f))}};function m(t){return t&&"[object Function]"==={}.toString.call(t)}function A(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function v(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function _(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=A(t),n=e.overflow,s=e.overflowX,i=e.overflowY;return/(auto|scroll|overlay)/.test(n+i+s)?t:_(v(t))}function w(t){return t&&t.referenceNode?t.referenceNode:t}var C=h&&!(!window.MSInputMethodContext||!document.documentMode),b=h&&/MSIE 10/.test(navigator.userAgent);function y(t){return 11===t?C:10===t?b:C||b}function x(t){if(!t)return document.documentElement;for(var e=y(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var s=n&&n.nodeName;return s&&"BODY"!==s&&"HTML"!==s?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===A(n,"position")?x(n):n:t?t.ownerDocument.documentElement:document.documentElement}function k(t){return null!==t.parentNode?k(t.parentNode):t}function N(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,s=n?t:e,i=n?e:t,r=document.createRange();r.setStart(s,0),r.setEnd(i,0);var o,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||s.contains(i))return"BODY"===(a=(o=l).nodeName)||"HTML"!==a&&x(o.firstElementChild)!==o?x(l):l;var c=k(t);return c.host?N(c.host,e):N(t,k(e).host)}function O(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var s=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||s)[e]}return t[e]}function S(t,e){var n="x"===e?"Left":"Top",s="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+s+"Width"])}function E(t,e,n,s){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],y(10)?parseInt(n["offset"+t])+parseInt(s["margin"+("Height"===t?"Top":"Left")])+parseInt(s["margin"+("Height"===t?"Bottom":"Right")]):0)}function L(t){var e=t.body,n=t.documentElement,s=y(10)&&getComputedStyle(n);return{height:E("Height",e,n,s),width:E("Width",e,n,s)}}var U=function(){function t(t,e){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],s=y(10),i="HTML"===e.nodeName,r=I(t),o=I(e),a=_(t),l=A(e),c=parseFloat(l.borderTopWidth),d=parseFloat(l.borderLeftWidth);n&&i&&(o.top=Math.max(o.top,0),o.left=Math.max(o.left,0));var u=T({top:r.top-o.top-c,left:r.left-o.left-d,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!s&&i){var p=parseFloat(l.marginTop),h=parseFloat(l.marginLeft);u.top-=c-p,u.bottom-=c-p,u.left-=d-h,u.right-=d-h,u.marginTop=p,u.marginLeft=h}return(s&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=O(e,"top"),i=O(e,"left"),r=n?-1:1;return t.top+=s*r,t.bottom+=s*r,t.left+=i*r,t.right+=i*r,t}(u,e)),u}function B(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===A(t,"position"))return!0;var n=v(t);return!!n&&B(n)}function P(t){if(!t||!t.parentElement||y())return document.documentElement;for(var e=t.parentElement;e&&"none"===A(e,"transform");)e=e.parentElement;return e||document.documentElement}function F(t,e,n,s){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},o=i?P(t):N(t,w(e));if("viewport"===s)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,s=$(t,n),i=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),o=e?0:O(n),a=e?0:O(n,"left");return T({top:o-s.top+s.marginTop,left:a-s.left+s.marginLeft,width:i,height:r})}(o,i);else{var a=void 0;"scrollParent"===s?"BODY"===(a=_(v(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===s?t.ownerDocument.documentElement:s;var l=$(a,o,i);if("HTML"!==a.nodeName||B(o))r=l;else{var c=L(t.ownerDocument),d=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=d+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var p="number"==typeof(n=n||0);return r.left+=p?n:n.left||0,r.top+=p?n:n.top||0,r.right-=p?n:n.right||0,r.bottom-=p?n:n.bottom||0,r}function M(t,e,n,s,i){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var o=F(n,s,r,i),a={top:{width:o.width,height:e.top-o.top},right:{width:o.right-e.right,height:o.height},bottom:{width:o.width,height:o.bottom-e.bottom},left:{width:e.left-o.left,height:o.height}},l=Object.keys(a).map(function(t){return G({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,s=t.height;return e>=n.clientWidth&&s>=n.clientHeight}),d=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return d+(u?"-"+u:"")}function j(t,e,n){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return $(n,s?P(e):N(e,w(n)),s)}function q(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),s=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+s,height:t.offsetHeight+n}}function R(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function z(t,e,n){n=n.split("-")[0];var s=q(t),i={width:s.width,height:s.height},r=-1!==["right","left"].indexOf(n),o=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return i[o]=e[o]+e[l]/2-s[l]/2,i[a]=n===a?e[a]-s[c]:e[R(a)],i}function H(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function W(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var s=H(t,function(t){return t[e]===n});return t.indexOf(s)}(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&m(n)&&(e.offsets.popper=T(e.offsets.popper),e.offsets.reference=T(e.offsets.reference),e=n(e,t))}),e}function V(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=j(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=M(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=z(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=W(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function Q(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function K(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),s=0;s1&&void 0!==arguments[1]&&arguments[1],n=at.indexOf(t),s=at.slice(n+1).concat(at.slice(0,n));return e?s.reverse():s}var ct={shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],s=e.split("-")[1];if(s){var i=t.offsets,r=i.reference,o=i.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",d={start:D({},l,r[l]),end:D({},l,r[l]+r[c]-o[c])};t.offsets.popper=G({},o,d[s])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n,s=e.offset,i=t.placement,r=t.offsets,o=r.popper,a=r.reference,l=i.split("-")[0];return n=nt(+s)?[+s,0]:function(t,e,n,s){var i=[0,0],r=-1!==["right","left"].indexOf(s),o=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=o.indexOf(H(o,function(t){return-1!==t.search(/,|\s/)}));o[a]&&-1===o[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[o.slice(0,a).concat([o[a].split(l)[0]]),[o[a].split(l)[1]].concat(o.slice(a+1))]:[o];return c=c.map(function(t,s){var i=(1===s?!r:r)?"height":"width",o=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,o=!0,t):o?(t[t.length-1]+=e,o=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,s){var i=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],o=i[2];return r?0===o.indexOf("%")?T("%p"===o?n:s)[e]/100*r:"vh"===o||"vw"===o?("vh"===o?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:t}(t,i,e,n)})}),c.forEach(function(t,e){t.forEach(function(n,s){nt(n)&&(i[e]+=n*("-"===t[s-1]?-1:1))})}),i}(s,o,a,l),"left"===l?(o.top+=n[0],o.left-=n[1]):"right"===l?(o.top+=n[0],o.left+=n[1]):"top"===l?(o.left+=n[0],o.top-=n[1]):"bottom"===l&&(o.left+=n[0],o.top+=n[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||x(t.instance.popper);t.instance.reference===n&&(n=x(n));var s=K("transform"),i=t.instance.popper.style,r=i.top,o=i.left,a=i[s];i.top="",i.left="",i[s]="";var l=F(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);i.top=r,i.left=o,i[s]=a,e.boundaries=l;var c=e.priority,d=t.offsets.popper,u={primary:function(t){var n=d[t];return d[t]l[t]&&!e.escapeWithReference&&(s=Math.min(d[n],l[t]-("right"===t?d.width:d.height))),D({},n,s)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";d=G({},d,u[e](t))}),t.offsets.popper=d,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,s=e.reference,i=t.placement.split("-")[0],r=Math.floor,o=-1!==["top","bottom"].indexOf(i),a=o?"right":"bottom",l=o?"left":"top",c=o?"width":"height";return n[a]r(s[a])&&(t.offsets.popper[l]=r(s[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!rt(t.instance.modifiers,"arrow","keepTogether"))return t;var s=e.element;if("string"==typeof s){if(!(s=t.instance.popper.querySelector(s)))return t}else if(!t.instance.popper.contains(s))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var i=t.placement.split("-")[0],r=t.offsets,o=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(i),c=l?"height":"width",d=l?"Top":"Left",u=d.toLowerCase(),p=l?"left":"top",h=l?"bottom":"right",f=q(s)[c];a[h]-fo[h]&&(t.offsets.popper[u]+=a[u]+f-o[h]),t.offsets.popper=T(t.offsets.popper);var g=a[u]+a[c]/2-f/2,m=A(t.instance.popper),v=parseFloat(m["margin"+d]),_=parseFloat(m["border"+d+"Width"]),w=g-t.offsets.popper[u]-v-_;return w=Math.max(Math.min(o[c]-f,w),0),t.arrowElement=s,t.offsets.arrow=(D(n={},u,Math.round(w)),D(n,p,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Q(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=F(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),s=t.placement.split("-")[0],i=R(s),r=t.placement.split("-")[1]||"",o=[];switch(e.behavior){case"flip":o=[s,i];break;case"clockwise":o=lt(s);break;case"counterclockwise":o=lt(s,!0);break;default:o=e.behavior}return o.forEach(function(a,l){if(s!==a||o.length===l+1)return t;s=t.placement.split("-")[0],i=R(s);var c=t.offsets.popper,d=t.offsets.reference,u=Math.floor,p="left"===s&&u(c.right)>u(d.left)||"right"===s&&u(c.left)u(d.top)||"bottom"===s&&u(c.top)u(n.right),g=u(c.top)u(n.bottom),A="left"===s&&h||"right"===s&&f||"top"===s&&g||"bottom"===s&&m,v=-1!==["top","bottom"].indexOf(s),_=!!e.flipVariations&&(v&&"start"===r&&h||v&&"end"===r&&f||!v&&"start"===r&&g||!v&&"end"===r&&m),w=!!e.flipVariationsByContent&&(v&&"start"===r&&f||v&&"end"===r&&h||!v&&"start"===r&&m||!v&&"end"===r&&g),C=_||w;(p||A||C)&&(t.flipped=!0,(p||A)&&(s=o[l+1]),C&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=s+(r?"-"+r:""),t.offsets.popper=G({},t.offsets.popper,z(t.instance.popper,t.offsets.reference,t.placement)),t=W(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],s=t.offsets,i=s.popper,r=s.reference,o=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return i[o?"left":"top"]=r[n]-(a?i[o?"width":"height"]:0),t.placement=R(e),t.offsets.popper=T(i),t}},hide:{order:800,enabled:!0,fn:function(t){if(!rt(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=H(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(s.update)},this.update=g(this.update.bind(this)),this.options=G({},t.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(G({},t.Defaults.modifiers,i.modifiers)).forEach(function(e){s.options.modifiers[e]=G({},t.Defaults.modifiers[e]||{},i.modifiers?i.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return G({name:t},s.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&m(t.onLoad)&&t.onLoad(s.reference,s.popper,s.options,t,s.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return U(t,[{key:"update",value:function(){return V.call(this)}},{key:"destroy",value:function(){return Y.call(this)}},{key:"enableEventListeners",value:function(){return tt.call(this)}},{key:"disableEventListeners",value:function(){return et.call(this)}}]),t}();ut.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,ut.placements=ot,ut.Defaults=dt;const pt=ut;var ht,ft=s(2404),gt=s.n(ft);function mt(){mt.init||(mt.init=!0,ht=-1!==function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var n=t.indexOf("rv:");return parseInt(t.substring(n+3,t.indexOf(".",n)),10)}var s=t.indexOf("Edge/");return s>0?parseInt(t.substring(s+5,t.indexOf(".",s)),10):-1}())}function At(t,e,n,s,i,r,o,a,l,c){"boolean"!=typeof o&&(l=a,a=o,o=!1);var d,u="function"==typeof n?n.options:n;if(t&&t.render&&(u.render=t.render,u.staticRenderFns=t.staticRenderFns,u._compiled=!0,i&&(u.functional=!0)),s&&(u._scopeId=s),r?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,l(t)),t&&t._registeredComponents&&t._registeredComponents.add(r)},u._ssrRegister=d):e&&(d=o?function(t){e.call(this,c(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,a(t))}),d)if(u.functional){var p=u.render;u.render=function(t,e){return d.call(e),p(t,e)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,d):[d]}return n}var vt={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var t=this;mt(),this.$nextTick(function(){t._w=t.$el.offsetWidth,t._h=t.$el.offsetHeight,t.emitOnMount&&t.emitSize()});var e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",ht&&this.$el.appendChild(e),e.data="about:blank",ht||this.$el.appendChild(e)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!ht&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},_t=function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};_t._withStripped=!0;var wt=At({render:_t,staticRenderFns:[]},void 0,vt,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),Ct={version:"1.0.1",install:function(t){t.component("resize-observer",wt),t.component("ResizeObserver",wt)}},bt=null;"undefined"!=typeof window?bt=window.Vue:"undefined"!=typeof globalThis&&(bt=globalThis.Vue),bt&&bt.use(Ct);var yt=s(55364),xt=s.n(yt),kt=function(){};function Nt(t){return"string"==typeof t&&(t=t.split(" ")),t}function Ot(t,e){var n,s=Nt(e);n=t.className instanceof kt?Nt(t.className.baseVal):Nt(t.className),s.forEach(function(t){-1===n.indexOf(t)&&n.push(t)}),t instanceof SVGElement?t.setAttribute("class",n.join(" ")):t.className=n.join(" ")}function St(t,e){var n,s=Nt(e);n=t.className instanceof kt?Nt(t.className.baseVal):Nt(t.className),s.forEach(function(t){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}),t instanceof SVGElement?t.setAttribute("class",n.join(" ")):t.className=n.join(" ")}"undefined"!=typeof window&&(kt=window.SVGAnimatedString);var Et=!1;if("undefined"!=typeof window){Et=!1;try{var Lt=Object.defineProperty({},"passive",{get:function(){Et=!0}});window.addEventListener("test",null,Lt)}catch(t){}}function Ut(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,s)}return n}function Dt(t){for(var e=1;e
',trigger:"hover focus",offset:0},Tt=[],It=function(){function t(e,n){var s=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),u(this,"_events",[]),u(this,"_setTooltipNodeEvent",function(t,e,n,i){var r=t.relatedreference||t.toElement||t.relatedTarget;return!!s._tooltipNode.contains(r)&&(s._tooltipNode.addEventListener(t.type,function n(r){var o=r.relatedreference||r.toElement||r.relatedTarget;s._tooltipNode.removeEventListener(t.type,n),e.contains(o)||s._scheduleHide(e,i.delay,i,r)}),!0)}),n=Dt(Dt({},Gt),n),e.jquery&&(e=e[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=e,this.options=n,this._isOpen=!1,this._init()}return e=t,n=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(t){this._classes=t}},{key:"setContent",value:function(t){this.options.title=t,this._tooltipNode&&this._setContent(t,this.options)}},{key:"setOptions",value:function(t){var e=!1,n=t&&t.classes||Wt.options.defaultClass;gt()(this._classes,n)||(this.setClasses(n),e=!0),t=jt(t);var s=!1,i=!1;for(var r in this.options.offset===t.offset&&this.options.placement===t.placement||(s=!0),(this.options.template!==t.template||this.options.trigger!==t.trigger||this.options.container!==t.container||e)&&(i=!0),t)this.options[r]=t[r];if(this._tooltipNode)if(i){var o=this._isOpen;this.dispose(),this._init(),o&&this.show()}else s&&this.popperInstance.update()}},{key:"_init",value:function(){var t="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===t.indexOf("manual"),t=t.filter(function(t){return-1!==["click","hover","focus"].indexOf(t)}),this._setEventListeners(this.reference,t,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(t,e){var n=this,s=window.document.createElement("div");s.innerHTML=e.trim();var i=s.childNodes[0];return i.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),i.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(i.addEventListener("mouseenter",function(e){return n._scheduleHide(t,n.options.delay,n.options,e)}),i.addEventListener("click",function(e){return n._scheduleHide(t,n.options.delay,n.options,e)})),i}},{key:"_setContent",value:function(t,e){var n=this;this.asyncContent=!1,this._applyContent(t,e).then(function(){n.popperInstance&&n.popperInstance.update()})}},{key:"_applyContent",value:function(t,e){var n=this;return new Promise(function(s,i){var r=e.html,o=n._tooltipNode;if(o){var a=o.querySelector(n.options.innerSelector);if(1===t.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(t)}}else{if("function"==typeof t){var l=t();return void(l&&"function"==typeof l.then?(n.asyncContent=!0,e.loadingClass&&Ot(o,e.loadingClass),e.loadingContent&&n._applyContent(e.loadingContent,e),l.then(function(t){return e.loadingClass&&St(o,e.loadingClass),n._applyContent(t,e)}).then(s).catch(i)):n._applyContent(l,e).then(s).catch(i))}r?a.innerHTML=t:a.innerText=t}s()}})}},{key:"_show",value:function(t,e){if(!e||"string"!=typeof e.container||document.querySelector(e.container)){clearTimeout(this._disposeTimer),delete(e=Object.assign({},e)).offset;var n=!0;this._tooltipNode&&(Ot(this._tooltipNode,this._classes),n=!1);var s=this._ensureShown(t,e);return n&&this._tooltipNode&&Ot(this._tooltipNode,this._classes),Ot(t,["v-tooltip-open"]),s}}},{key:"_ensureShown",value:function(t,e){var n=this;if(this._isOpen)return this;if(this._isOpen=!0,Tt.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(e.title,e),this;var s=t.getAttribute("title")||e.title;if(!s)return this;var i=this._create(t,e.template);this._tooltipNode=i,t.setAttribute("aria-describedby",i.id);var r=this._findContainer(e.container,t);this._append(i,r);var o=Dt(Dt({},e.popperOptions),{},{placement:e.placement});return o.modifiers=Dt(Dt({},o.modifiers),{},{arrow:{element:this.options.arrowSelector}}),e.boundariesElement&&(o.modifiers.preventOverflow={boundariesElement:e.boundariesElement}),this.popperInstance=new pt(t,i,o),this._setContent(s,e),requestAnimationFrame(function(){!n._isDisposed&&n.popperInstance?(n.popperInstance.update(),requestAnimationFrame(function(){n._isDisposed?n.dispose():n._isOpen&&i.setAttribute("aria-hidden","false")})):n.dispose()}),this}},{key:"_noLongerOpen",value:function(){var t=Tt.indexOf(this);-1!==t&&Tt.splice(t,1)}},{key:"_hide",value:function(){var t=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var e=Wt.options.disposeTimeout;return null!==e&&(this._disposeTimer=setTimeout(function(){t._tooltipNode&&(t._tooltipNode.removeEventListener("mouseenter",t.hide),t._tooltipNode.removeEventListener("click",t.hide),t._removeTooltipNode())},e)),St(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var t=this._tooltipNode.parentNode;t&&(t.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var t=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(e){var n=e.func,s=e.event;t.reference.removeEventListener(s,n)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(t,e){return"string"==typeof t?t=window.document.querySelector(t):!1===t&&(t=e.parentNode),t}},{key:"_append",value:function(t,e){e.appendChild(t)}},{key:"_setEventListeners",value:function(t,e,n){var s=this,i=[],r=[];e.forEach(function(t){switch(t){case"hover":i.push("mouseenter"),r.push("mouseleave"),s.options.hideOnTargetClick&&r.push("click");break;case"focus":i.push("focus"),r.push("blur"),s.options.hideOnTargetClick&&r.push("click");break;case"click":i.push("click"),r.push("click")}}),i.forEach(function(e){var i=function(e){!0!==s._isOpen&&(e.usedByTooltip=!0,s._scheduleShow(t,n.delay,n,e))};s._events.push({event:e,func:i}),t.addEventListener(e,i)}),r.forEach(function(e){var i=function(e){!0!==e.usedByTooltip&&s._scheduleHide(t,n.delay,n,e)};s._events.push({event:e,func:i}),t.addEventListener(e,i)})}},{key:"_onDocumentTouch",value:function(t){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,t)}},{key:"_scheduleShow",value:function(t,e,n){var s=this,i=e&&e.show||e||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return s._show(t,n)},i)}},{key:"_scheduleHide",value:function(t,e,n,s){var i=this,r=e&&e.hide||e||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==i._isOpen&&i._tooltipNode.ownerDocument.body.contains(i._tooltipNode)){if("mouseleave"===s.type&&i._setTooltipNodeEvent(s,t,e,n))return;i._hide(t,n)}},r)}}],n&&p(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t;var e,n}();function $t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,s)}return n}function Bt(t){for(var e=1;e
',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function jt(t){var e={placement:void 0!==t.placement?t.placement:Wt.options.defaultPlacement,delay:void 0!==t.delay?t.delay:Wt.options.defaultDelay,html:void 0!==t.html?t.html:Wt.options.defaultHtml,template:void 0!==t.template?t.template:Wt.options.defaultTemplate,arrowSelector:void 0!==t.arrowSelector?t.arrowSelector:Wt.options.defaultArrowSelector,innerSelector:void 0!==t.innerSelector?t.innerSelector:Wt.options.defaultInnerSelector,trigger:void 0!==t.trigger?t.trigger:Wt.options.defaultTrigger,offset:void 0!==t.offset?t.offset:Wt.options.defaultOffset,container:void 0!==t.container?t.container:Wt.options.defaultContainer,boundariesElement:void 0!==t.boundariesElement?t.boundariesElement:Wt.options.defaultBoundariesElement,autoHide:void 0!==t.autoHide?t.autoHide:Wt.options.autoHide,hideOnTargetClick:void 0!==t.hideOnTargetClick?t.hideOnTargetClick:Wt.options.defaultHideOnTargetClick,loadingClass:void 0!==t.loadingClass?t.loadingClass:Wt.options.defaultLoadingClass,loadingContent:void 0!==t.loadingContent?t.loadingContent:Wt.options.defaultLoadingContent,popperOptions:Bt({},void 0!==t.popperOptions?t.popperOptions:Wt.options.defaultPopperOptions)};if(e.offset){var n=c(e.offset),s=e.offset;("number"===n||"string"===n&&-1===s.indexOf(","))&&(s="0, ".concat(s)),e.popperOptions.modifiers||(e.popperOptions.modifiers={}),e.popperOptions.modifiers.offset={offset:s}}return e.trigger&&-1!==e.trigger.indexOf("click")&&(e.hideOnTargetClick=!1),e}function qt(t,e){for(var n=t.placement,s=0;s2&&void 0!==arguments[2]?arguments[2]:{},s=Rt(e),i=void 0!==e.classes?e.classes:Wt.options.defaultClass,r=Bt({title:s},jt(Bt(Bt({},"object"===c(e)?e:{}),{},{placement:qt(e,n)}))),o=t._tooltip=new It(t,r);o.setClasses(i),o._vueEl=t;var a=void 0!==e.targetClasses?e.targetClasses:Wt.options.defaultTargetClass;return t._tooltipTargetClasses=a,Ot(t,a),o}(t,n,i),void 0!==n.show&&n.show!==t._tooltipOldShow&&(t._tooltipOldShow=n.show,n.show?s.show():s.hide())):zt(t)}var Wt={options:Mt,bind:Ht,update:Ht,unbind:function(t){zt(t)}};function Vt(t){t.addEventListener("click",Kt),t.addEventListener("touchstart",Yt,!!Et&&{passive:!0})}function Qt(t){t.removeEventListener("click",Kt),t.removeEventListener("touchstart",Yt),t.removeEventListener("touchend",Xt),t.removeEventListener("touchcancel",Jt)}function Kt(t){var e=t.currentTarget;t.closePopover=!e.$_vclosepopover_touch,t.closeAllPopover=e.$_closePopoverModifiers&&!!e.$_closePopoverModifiers.all}function Yt(t){if(1===t.changedTouches.length){var e=t.currentTarget;e.$_vclosepopover_touch=!0;var n=t.changedTouches[0];e.$_vclosepopover_touchPoint=n,e.addEventListener("touchend",Xt),e.addEventListener("touchcancel",Jt)}}function Xt(t){var e=t.currentTarget;if(e.$_vclosepopover_touch=!1,1===t.changedTouches.length){var n=t.changedTouches[0],s=e.$_vclosepopover_touchPoint;t.closePopover=Math.abs(n.screenY-s.screenY)<20&&Math.abs(n.screenX-s.screenX)<20,t.closeAllPopover=e.$_closePopoverModifiers&&!!e.$_closePopoverModifiers.all}}function Jt(t){t.currentTarget.$_vclosepopover_touch=!1}var Zt={bind:function(t,e){var n=e.value,s=e.modifiers;t.$_closePopoverModifiers=s,(void 0===n||n)&&Vt(t)},update:function(t,e){var n=e.value,s=e.oldValue,i=e.modifiers;t.$_closePopoverModifiers=i,n!==s&&(void 0===n||n?Vt(t):Qt(t))},unbind:function(t){Qt(t)}};function te(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,s)}return n}function ee(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=e.event;e.skipDelay;var s=e.force;!(void 0!==s&&s)&&this.disabled||(this.$_scheduleShow(n),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){t.$_beingShowed=!1})},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.event;t.skipDelay,this.$_scheduleHide(e),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var t=this.$refs.popover;t.parentNode&&t.parentNode.removeChild(t)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var t=this,e=this.$refs.trigger,n=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var s=this.$_findContainer(this.container,e);if(!s)return void console.warn("No container for popover",this);s.appendChild(n),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){t.hidden||(t.isOpen=!0)})}if(!this.popperInstance){var i=ee(ee({},this.popperOptions),{},{placement:this.placement});if(i.modifiers=ee(ee({},i.modifiers),{},{arrow:ee(ee({},i.modifiers&&i.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();i.modifiers.offset=ee(ee({},i.modifiers&&i.modifiers.offset),{},{offset:r})}this.boundariesElement&&(i.modifiers.preventOverflow=ee(ee({},i.modifiers&&i.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new pt(e,n,i),requestAnimationFrame(function(){if(t.hidden)return t.hidden=!1,void t.$_hide();!t.$_isDisposed&&t.popperInstance?(t.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(t.hidden)return t.hidden=!1,void t.$_hide();t.$_isDisposed?t.dispose():t.isOpen=!0})):t.dispose()})}var o=this.openGroup;if(o)for(var a,l=0;l1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),t)this.$_show();else{var e=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),e)}},$_scheduleHide:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),n)this.$_hide();else{var s=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(t.isOpen){if(e&&"mouseleave"===e.type&&t.$_setTooltipNodeEvent(e))return;t.$_hide()}},s)}},$_setTooltipNodeEvent:function(t){var e=this,n=this.$refs.trigger,s=this.$refs.popover,i=t.relatedreference||t.toElement||t.relatedTarget;return!!s.contains(i)&&(s.addEventListener(t.type,function i(r){var o=r.relatedreference||r.toElement||r.relatedTarget;s.removeEventListener(t.type,i),n.contains(o)||e.hide({event:r})}),!0)},$_removeEventListeners:function(){var t=this.$refs.trigger;this.$_events.forEach(function(e){var n=e.func,s=e.event;t.removeEventListener(s,n)}),this.$_events=[]},$_updatePopper:function(t){this.popperInstance&&(t(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var t=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),t&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),n&&(this.$_preventOpen=!0,setTimeout(function(){e.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function ae(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(n){var s=ie[n];if(s.$refs.popover){var i=s.$refs.popover.contains(t.target);requestAnimationFrame(function(){(t.closeAllPopover||t.closePopover&&i||s.autoHide&&!i)&&s.$_handleGlobalClose(t,e)})}},s=0;s1&&void 0!==arguments[1]?arguments[1]:{};if(!t.installed){t.installed=!0;var s={};xt()(s,Mt,n),pe.options=s,Wt.options=s,e.directive("tooltip",Wt),e.directive("close-popover",Zt),e.component("VPopover",ue)}},get enabled(){return Pt.enabled},set enabled(t){Pt.enabled=t}},he=null;"undefined"!=typeof window?he=window.Vue:"undefined"!=typeof globalThis&&(he=globalThis.Vue),he&&he.use(pe);const fe=pe;var ge=s(85471),me=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function Ae(t,e){if(void 0===e&&(e=[]),null===t||"object"!=typeof t)return t;var n,s=(n=function(e){return e.original===t},e.filter(n)[0]);if(s)return s.copy;var i=Array.isArray(t)?[]:{};return e.push({original:t,copy:i}),Object.keys(t).forEach(function(n){i[n]=Ae(t[n],e)}),i}function ve(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function _e(t){return null!==t&&"object"==typeof t}var we=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},Ce={namespaced:{configurable:!0}};Ce.namespaced.get=function(){return!!this._rawModule.namespaced},we.prototype.addChild=function(t,e){this._children[t]=e},we.prototype.removeChild=function(t){delete this._children[t]},we.prototype.getChild=function(t){return this._children[t]},we.prototype.hasChild=function(t){return t in this._children},we.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},we.prototype.forEachChild=function(t){ve(this._children,t)},we.prototype.forEachGetter=function(t){this._rawModule.getters&&ve(this._rawModule.getters,t)},we.prototype.forEachAction=function(t){this._rawModule.actions&&ve(this._rawModule.actions,t)},we.prototype.forEachMutation=function(t){this._rawModule.mutations&&ve(this._rawModule.mutations,t)},Object.defineProperties(we.prototype,Ce);var be,ye=function(t){this.register([],t,!1)};function xe(t,e,n){if(e.update(n),n.modules)for(var s in n.modules){if(!e.getChild(s))return;xe(t.concat(s),e.getChild(s),n.modules[s])}}ye.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},ye.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")},"")},ye.prototype.update=function(t){xe([],this.root,t)},ye.prototype.register=function(t,e,n){var s=this;void 0===n&&(n=!0);var i=new we(e,n);0===t.length?this.root=i:this.get(t.slice(0,-1)).addChild(t[t.length-1],i),e.modules&&ve(e.modules,function(e,i){s.register(t.concat(i),e,n)})},ye.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1],s=e.getChild(n);s&&s.runtime&&e.removeChild(n)},ye.prototype.isRegistered=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];return!!e&&e.hasChild(n)};var ke=function(t){var e=this;void 0===t&&(t={}),!be&&"undefined"!=typeof window&&window.Vue&&Ge(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var s=t.strict;void 0===s&&(s=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new ye(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new be,this._makeLocalGettersCache=Object.create(null);var i=this,r=this.dispatch,o=this.commit;this.dispatch=function(t,e){return r.call(i,t,e)},this.commit=function(t,e,n){return o.call(i,t,e,n)},this.strict=s;var a=this._modules.root.state;Le(this,a,[],this._modules.root),Ee(this,a),n.forEach(function(t){return t(e)}),(void 0!==t.devtools?t.devtools:be.config.devtools)&&function(t){me&&(t._devtoolHook=me,me.emit("vuex:init",t),me.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){me.emit("vuex:mutation",t,e)},{prepend:!0}),t.subscribeAction(function(t,e){me.emit("vuex:action",t,e)},{prepend:!0}))}(this)},Ne={state:{configurable:!0}};function Oe(t,e,n){return e.indexOf(t)<0&&(n&&n.prepend?e.unshift(t):e.push(t)),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function Se(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;Le(t,n,[],t._modules.root,!0),Ee(t,n,e)}function Ee(t,e,n){var s=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var i=t._wrappedGetters,r={};ve(i,function(e,n){r[n]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var o=be.config.silent;be.config.silent=!0,t._vm=new be({data:{$$state:e},computed:r}),be.config.silent=o,t.strict&&function(t){t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(t),s&&(n&&t._withCommit(function(){s._data.$$state=null}),be.nextTick(function(){return s.$destroy()}))}function Le(t,e,n,s,i){var r=!n.length,o=t._modules.getNamespace(n);if(s.namespaced&&(t._modulesNamespaceMap[o],t._modulesNamespaceMap[o]=s),!r&&!i){var a=Ue(e,n.slice(0,-1)),l=n[n.length-1];t._withCommit(function(){be.set(a,l,s.state)})}var c=s.context=function(t,e,n){var s=""===e,i={dispatch:s?t.dispatch:function(n,s,i){var r=De(n,s,i),o=r.payload,a=r.options,l=r.type;return a&&a.root||(l=e+l),t.dispatch(l,o)},commit:s?t.commit:function(n,s,i){var r=De(n,s,i),o=r.payload,a=r.options,l=r.type;a&&a.root||(l=e+l),t.commit(l,o,a)}};return Object.defineProperties(i,{getters:{get:s?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var n={},s=e.length;Object.keys(t.getters).forEach(function(i){if(i.slice(0,s)===e){var r=i.slice(s);Object.defineProperty(n,r,{get:function(){return t.getters[i]},enumerable:!0})}}),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return Ue(t.state,n)}}}),i}(t,o,n);s.forEachMutation(function(e,n){!function(t,e,n,s){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){n.call(t,s.state,e)})}(t,o+n,e,c)}),s.forEachAction(function(e,n){var s=e.root?n:o+n,i=e.handler||e;!function(t,e,n,s){(t._actions[e]||(t._actions[e]=[])).push(function(e){var i,r=n.call(t,{dispatch:s.dispatch,commit:s.commit,getters:s.getters,state:s.state,rootGetters:t.getters,rootState:t.state},e);return(i=r)&&"function"==typeof i.then||(r=Promise.resolve(r)),t._devtoolHook?r.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):r})}(t,s,i,c)}),s.forEachGetter(function(e,n){!function(t,e,n,s){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return n(s.state,s.getters,t.state,t.getters)})}(t,o+n,e,c)}),s.forEachChild(function(s,r){Le(t,e,n.concat(r),s,i)})}function Ue(t,e){return e.reduce(function(t,e){return t[e]},t)}function De(t,e,n){return _e(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function Ge(t){be&&t===be||function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(be=t)}Ne.state.get=function(){return this._vm._data.$$state},Ne.state.set=function(t){},ke.prototype.commit=function(t,e,n){var s=this,i=De(t,e,n),r=i.type,o=i.payload,a=(i.options,{type:r,payload:o}),l=this._mutations[r];l&&(this._withCommit(function(){l.forEach(function(t){t(o)})}),this._subscribers.slice().forEach(function(t){return t(a,s.state)}))},ke.prototype.dispatch=function(t,e){var n=this,s=De(t,e),i=s.type,r=s.payload,o={type:i,payload:r},a=this._actions[i];if(a){try{this._actionSubscribers.slice().filter(function(t){return t.before}).forEach(function(t){return t.before(o,n.state)})}catch(t){}var l=a.length>1?Promise.all(a.map(function(t){return t(r)})):a[0](r);return new Promise(function(t,e){l.then(function(e){try{n._actionSubscribers.filter(function(t){return t.after}).forEach(function(t){return t.after(o,n.state)})}catch(t){}t(e)},function(t){try{n._actionSubscribers.filter(function(t){return t.error}).forEach(function(e){return e.error(o,n.state,t)})}catch(t){}e(t)})})}},ke.prototype.subscribe=function(t,e){return Oe(t,this._subscribers,e)},ke.prototype.subscribeAction=function(t,e){return Oe("function"==typeof t?{before:t}:t,this._actionSubscribers,e)},ke.prototype.watch=function(t,e,n){var s=this;return this._watcherVM.$watch(function(){return t(s.state,s.getters)},e,n)},ke.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},ke.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),Le(this,this.state,t,this._modules.get(t),n.preserveState),Ee(this,this.state)},ke.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var n=Ue(e.state,t.slice(0,-1));be.delete(n,t[t.length-1])}),Se(this)},ke.prototype.hasModule=function(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)},ke.prototype.hotUpdate=function(t){this._modules.update(t),Se(this,!0)},ke.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(ke.prototype,Ne);var Te=Fe(function(t,e){var n={};return Pe(e).forEach(function(e){var s=e.key,i=e.val;n[s]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var s=Me(this.$store,0,t);if(!s)return;e=s.context.state,n=s.context.getters}return"function"==typeof i?i.call(this,e,n):e[i]},n[s].vuex=!0}),n}),Ie=Fe(function(t,e){var n={};return Pe(e).forEach(function(e){var s=e.key,i=e.val;n[s]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var s=this.$store.commit;if(t){var r=Me(this.$store,0,t);if(!r)return;s=r.context.commit}return"function"==typeof i?i.apply(this,[s].concat(e)):s.apply(this.$store,[i].concat(e))}}),n}),$e=Fe(function(t,e){var n={};return Pe(e).forEach(function(e){var s=e.key,i=e.val;i=t+i,n[s]=function(){if(!t||Me(this.$store,0,t))return this.$store.getters[i]},n[s].vuex=!0}),n}),Be=Fe(function(t,e){var n={};return Pe(e).forEach(function(e){var s=e.key,i=e.val;n[s]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var s=this.$store.dispatch;if(t){var r=Me(this.$store,0,t);if(!r)return;s=r.context.dispatch}return"function"==typeof i?i.apply(this,[s].concat(e)):s.apply(this.$store,[i].concat(e))}}),n});function Pe(t){return function(t){return Array.isArray(t)||_e(t)}(t)?Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}}):[]}function Fe(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function Me(t,e,n){return t._modulesNamespaceMap[n]}function je(t,e,n){var s=n?t.groupCollapsed:t.group;try{s.call(t,e)}catch(n){t.log(e)}}function qe(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function Re(){var t=new Date;return" @ "+ze(t.getHours(),2)+":"+ze(t.getMinutes(),2)+":"+ze(t.getSeconds(),2)+"."+ze(t.getMilliseconds(),3)}function ze(t,e){return n=e-t.toString().length,new Array(n+1).join("0")+t;var n}var He={Store:ke,install:Ge,version:"3.6.2",mapState:Te,mapMutations:Ie,mapGetters:$e,mapActions:Be,createNamespacedHelpers:function(t){return{mapState:Te.bind(null,t),mapGetters:$e.bind(null,t),mapMutations:Ie.bind(null,t),mapActions:Be.bind(null,t)}},createLogger:function(t){void 0===t&&(t={});var e=t.collapsed;void 0===e&&(e=!0);var n=t.filter;void 0===n&&(n=function(t,e,n){return!0});var s=t.transformer;void 0===s&&(s=function(t){return t});var i=t.mutationTransformer;void 0===i&&(i=function(t){return t});var r=t.actionFilter;void 0===r&&(r=function(t,e){return!0});var o=t.actionTransformer;void 0===o&&(o=function(t){return t});var a=t.logMutations;void 0===a&&(a=!0);var l=t.logActions;void 0===l&&(l=!0);var c=t.logger;return void 0===c&&(c=console),function(t){var d=Ae(t.state);void 0!==c&&(a&&t.subscribe(function(t,r){var o=Ae(r);if(n(t,d,o)){var a=Re(),l=i(t),u="mutation "+t.type+a;je(c,u,e),c.log("%c prev state","color: #9E9E9E; font-weight: bold",s(d)),c.log("%c mutation","color: #03A9F4; font-weight: bold",l),c.log("%c next state","color: #4CAF50; font-weight: bold",s(o)),qe(c)}d=o}),l&&t.subscribeAction(function(t,n){if(r(t,n)){var s=Re(),i=o(t),a="action "+t.type+s;je(c,a,e),c.log("%c action","color: #03A9F4; font-weight: bold",i),qe(c)}}))}}};const We=He;var Ve=s(58723),Qe=s(71323),Ke=s(18195),Ye=s(22378),Xe=s(9165),Je=s(85168),Ze=s(54914),tn=s(48943),en=s(6695),nn=s(88289),sn=s(74095),rn=s(94219),on=s(16044),an=s(82182),ln=s(67607);const cn=(0,s(35947).YK)().setApp("settings").detectUser().build();var dn=s(63814),un=s(36117);function pn(t){return{id:t.id,name:t.displayname,usercount:t.usercount,disabled:t.disabled,canAdd:t.canAdd,canRemove:t.canRemove}}function hn({search:t,offset:e,limit:n}){const s=new AbortController;return new un.CancelablePromise(async(i,o,a)=>{a(()=>s.abort());try{const{data:o}=await r.Ay.get((0,dn.KT)("/cloud/groups/details?search={search}&offset={offset}&limit={limit}",{search:t,offset:e,limit:n}),{signal:s.signal});i((o.ocs?.data?.groups??[]).map(pn))}catch(t){o(t)}})}const fn={name:"UserFormGroups",components:{NcSelect:ln.default},inject:["formData"],data:()=>({creatingGroup:!1,promise:null}),computed:{settings(){return this.$store.getters.getServerData},availableGroups(){return(this.settings.isAdmin||this.settings.isDelegatedAdmin?this.$store.getters.getSortedGroups:this.$store.getters.getSubAdminGroups).filter(({id:t})=>"__nc_internal_recent"!==t&&"disabled"!==t)},availableSubAdminGroups(){return this.availableGroups.filter(({id:t})=>"admin"!==t)},groupsLabel(){return this.settings.isAdmin||this.settings.isDelegatedAdmin?t("settings","Member of the following groups"):t("settings","Member of the following groups (required)")}},methods:{async searchGroups(e,n){if(this.settings.isAdmin||this.settings.isDelegatedAdmin){this.promise&&this.promise.cancel(),n(!0);try{this.promise=hn({search:e,offset:0,limit:25});const t=await this.promise;for(const e of t)this.$store.commit("addGroup",e)}catch(e){cn.error(t("settings","Failed to search groups"),{error:e})}this.promise=null,n(!1)}},async createGroup({name:e}){this.creatingGroup=!0;try{await this.$store.dispatch("addGroup",e),this.formData.groups.push({id:e,name:e})}catch(e){cn.error(t("settings","Failed to create group"),{error:e})}this.creatingGroup=!1}}};var gn=s(85072),mn=s.n(gn),An=s(97825),vn=s.n(An),_n=s(77659),wn=s.n(_n),Cn=s(55056),bn=s.n(Cn),yn=s(10540),xn=s.n(yn),kn=s(41113),Nn=s.n(kn),On=s(60508),Sn={};Sn.styleTagTransform=Nn(),Sn.setAttributes=bn(),Sn.insert=wn().bind(null,"head"),Sn.domAPI=vn(),Sn.insertStyleElement=xn(),mn()(On.A,Sn),On.A&&On.A.locals&&On.A.locals;var En=s(14486);const Ln=(0,En.A)(fn,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form-groups"},[e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"data-test":"groups","input-label":t.groupsLabel,placeholder:t.t("settings","Set account groups"),disabled:t.creatingGroup,options:t.availableGroups,label:"name","keep-open":"",multiple:!0,taggable:t.settings.isAdmin||t.settings.isDelegatedAdmin,required:!t.settings.isAdmin&&!t.settings.isDelegatedAdmin,"create-option":t=>({id:t,name:t,isCreating:!0})},on:{search:t.searchGroups,"option:created":t.createGroup},model:{value:t.formData.groups,callback:function(e){t.$set(t.formData,"groups",e)},expression:"formData.groups"}})],1),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Admin of the following groups"),placeholder:t.t("settings","Set account as admin for …"),disabled:t.creatingGroup,options:t.availableSubAdminGroups,"keep-open":"",multiple:!0,label:"name"},on:{search:t.searchGroups},model:{value:t.formData.subadminGroups,callback:function(e){t.$set(t.formData,"subadminGroups",e)},expression:"formData.subadminGroups"}})],1):t._e()])},[],!1,null,"4041cacf",null).exports;var Un=s(35810);const Dn={id:"none",label:(0,o.Tl)("settings","Unlimited")},Gn={id:"default",label:(0,o.Tl)("settings","Default quota")};function Tn(t,e){if(!t.language||""===t.language)return{code:"",name:""};return[...e?.commonLanguages??[],...e?.otherLanguages??[]].find(e=>e.code===t.language)||{code:t.language,name:t.language}}const In={name:"UserFormLanguage",components:{NcSelect:ln.default},inject:["formData"],computed:{showConfig(){return this.$store.getters.getShowConfig},languages(){const{commonLanguages:e,otherLanguages:n}=this.$store.getters.getServerData.languages;return[{name:t("settings","Common languages"),languages:e},...e,{name:t("settings","Other languages"),languages:n},...n]}},methods:{languageFilterBy:function(t,e,n){return t.languages?t.languages.some(({name:t})=>t.toLocaleLowerCase().includes(n.toLocaleLowerCase())):(e||"").toLocaleLowerCase().includes(n.toLocaleLowerCase())}}},$n=(0,En.A)(In,function(){var t=this,e=t._self._c;return t.showConfig.showLanguages?e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Language"),placeholder:t.t("settings","Set default language"),clearable:!1,selectable:t=>!t.languages,"filter-by":t.languageFilterBy,options:t.languages,label:"name"},model:{value:t.formData.language,callback:function(e){t.$set(t.formData,"language",e)},expression:"formData.language"}})],1):t._e()},[],!1,null,null,null).exports;var Bn=s(30859);const Pn={name:"UserFormManager",components:{NcSelectUsers:Bn.N},inject:["formData"],data:()=>({possibleManagers:[],loading:!1,searchTimeout:null}),computed:{managerModel(){const t=this.formData.manager;if(!t)return null;const e="object"==typeof t?t.id:t,n="object"==typeof t?t.displayname??t.id:t;return this._managerModelCache?.id===e&&this._managerModelCache?.displayName===n||(this._managerModelCache={id:e,displayName:n}),this._managerModelCache},managerOptions(){return this.possibleManagers.map(t=>({id:t.id,displayName:t.displayname??t.id,subname:t.email??""}))}},beforeUnmount(){clearTimeout(this.searchTimeout)},methods:{onManagerChange(t){this.formData.manager=t?{id:t.id,displayname:t.displayName}:""},searchUserManager(t){clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>this.fetchManagers(t),200)},async fetchManagers(t){this.loading=!0;try{const e=await this.$store.dispatch("searchUsers",{offset:0,limit:10,search:t}),n=e?.data?Object.values(e.data.ocs.data.users):[];this.possibleManagers=n}catch(t){cn.error("Failed to search user managers",{error:t})}finally{this.loading=!1}}}},Fn=Pn,Mn=(0,En.A)(Fn,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form__item user-form__managers"},[e("NcSelectUsers",{staticClass:"user-form__select",attrs:{"model-value":t.managerModel,"input-label":t.t("settings","Manager"),placeholder:t.t("settings","Search for a manager…"),options:t.managerOptions,loading:t.loading},on:{"update:modelValue":t.onManagerChange,search:t.searchUserManager}})],1)},[],!1,null,null,null).exports,jn={name:"UserFormQuota",components:{NcSelect:ln.default},inject:["formData"],props:{quotaOptions:{type:Array,required:!0}},methods:{validateQuota(t){return function(t,e){const n=(0,Un.lT)(t,!0);if(null!==n&&n>=0){const t=(0,Un.v7)(n);return{id:t,label:t}}return e}(t,this.quotaOptions[0])}}},qn=(0,En.A)(jn,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Quota"),placeholder:t.t("settings","Set account quota"),options:t.quotaOptions,clearable:!1,taggable:!0,"create-option":t.validateQuota},model:{value:t.formData.quota,callback:function(e){t.$set(t.formData,"quota",e)},expression:"formData.quota"}})],1)},[],!1,null,null,null).exports,Rn={name:"UserFormFields",components:{NcPasswordField:on.A,NcTextField:an.A,UserFormGroups:Ln,UserFormLanguage:$n,UserFormManager:Mn,UserFormQuota:qn},inject:["formData"],props:{quotaOptions:{type:Array,required:!0},fieldConfig:{type:Object,default:()=>({})},errors:{type:Object,default:()=>({})}},computed:{minPasswordLength(){return this.$store.getters.getPasswordPolicyMinLength},unhandledErrors(){const t=new Set(["displayName","password","email"]);return Object.fromEntries(Object.entries(this.errors).filter(([e])=>!t.has(e)))}},methods:{focusField(t){this.$refs[t]?.focus?.()}}};var zn=s(24361),Hn={};Hn.styleTagTransform=Nn(),Hn.setAttributes=bn(),Hn.insert=wn().bind(null,"head"),Hn.domAPI=vn(),Hn.insertStyleElement=xn(),mn()(zn.A,Hn),zn.A&&zn.A.locals&&zn.A.locals;const Wn=(0,En.A)(Rn,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form-fields"},[t.fieldConfig.username?.show&&t.fieldConfig.username?.disabled?e("div",{staticClass:"user-form-fields__item user-form-fields__static",attrs:{"data-test":"username"}},[e("span",{staticClass:"user-form-fields__static-label"},[t._v("\n\t\t\t"+t._s(t.fieldConfig.username?.label)+"\n\t\t")]),t._v(" "),e("span",{staticClass:"user-form-fields__static-value"},[t._v("\n\t\t\t"+t._s(t.formData.username)+"\n\t\t")])]):t.fieldConfig.username?.show?e("NcTextField",{ref:"username",staticClass:"user-form-fields__item",attrs:{"data-test":"username",label:t.fieldConfig.username?.label,autocapitalize:"none",autocomplete:"off",spellcheck:"false",pattern:"[a-zA-Z0-9 _\\.@\\-']+",required:t.fieldConfig.username?.required},model:{value:t.formData.username,callback:function(e){t.$set(t.formData,"username",e)},expression:"formData.username"}}):t._e(),t._v(" "),e("NcTextField",{staticClass:"user-form-fields__item",attrs:{"data-test":"displayName",label:t.t("settings","Display name"),error:!!t.errors.displayName,"helper-text":t.errors.displayName,autocapitalize:"none",autocomplete:"off",spellcheck:"false"},model:{value:t.formData.displayName,callback:function(e){t.$set(t.formData,"displayName",e)},expression:"formData.displayName"}}),t._v(" "),t.fieldConfig.showPasswordEmailHint?e("span",{staticClass:"user-form-fields__hint",attrs:{id:"password-email-hint"}},[t._v("\n\t\t"+t._s(t.t("settings","Either password or email is required"))+"\n\t")]):t._e(),t._v(" "),!1!==t.fieldConfig.password?.show?e("NcPasswordField",{ref:"password",staticClass:"user-form-fields__item",attrs:{"data-test":"password",minlength:t.minPasswordLength,maxlength:469,"aria-describedby":t.fieldConfig.showPasswordEmailHint?"password-email-hint":void 0,label:t.fieldConfig.password?.label,error:!!t.errors.password,"helper-text":t.errors.password,autocapitalize:"none",autocomplete:"new-password",spellcheck:"false",required:t.fieldConfig.password?.required},model:{value:t.formData.password,callback:function(e){t.$set(t.formData,"password",e)},expression:"formData.password"}}):t._e(),t._v(" "),e("NcTextField",{staticClass:"user-form-fields__item",attrs:{"data-test":"email",type:"email","aria-describedby":t.fieldConfig.showPasswordEmailHint?"password-email-hint":void 0,label:t.fieldConfig.email?.label||t.t("settings","Email"),error:!!t.errors.email,"helper-text":t.errors.email,autocapitalize:"none",autocomplete:"off",spellcheck:"false",required:t.fieldConfig.email?.required},model:{value:t.formData.email,callback:function(e){t.$set(t.formData,"email",e)},expression:"formData.email"}}),t._v(" "),e("UserFormGroups"),t._v(" "),e("UserFormQuota",{attrs:{"quota-options":t.quotaOptions}}),t._v(" "),e("UserFormLanguage"),t._v(" "),e("UserFormManager"),t._v(" "),Object.keys(t.unhandledErrors).length>0?e("div",{staticClass:"user-form-fields__error-summary",attrs:{"aria-live":"polite",role:"status"}},t._l(t.unhandledErrors,function(n,s){return e("p",{key:s},[t._v("\n\t\t\t"+t._s(s)+": "+t._s(n)+"\n\t\t")])}),0):t._e()],1)},[],!1,null,"0d9243e9",null).exports,Vn={name:"EditUserDialog",components:{NcButton:sn.A,NcDialog:rn.A,UserFormFields:Wn},provide(){return{formData:this.editedUser}},props:{user:{type:Object,required:!0},quotaOptions:{type:Array,required:!0}},emits:["closing"],data(){const t=this.$store.getters.getGroups,e=this.$store.getters.getServerData.languages,n=function(t,e,n,s){const i=t.groups.map(t=>e.find(e=>e.id===t)).filter(Boolean),r=(t.subadmin??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean);let o;if(t.quota?.quota>=0){const e=(0,Un.v7)(t.quota.quota);o=n.find(t=>t.id===e)??{id:e,label:e}}else o="default"===t.quota?.quota?n[0]:Dn;return{username:t.id,displayName:t.displayname??"",password:"",email:t.email??"",groups:i,subadminGroups:r,quota:o,language:Tn(t,s),manager:t.manager??""}}(this.user,t,this.quotaOptions,e);return{initialData:structuredClone(n),editedUser:n,saving:!1,fieldErrors:{}}},computed:{settings(){return this.$store.getters.getServerData},fieldConfig(){return{username:{show:!0,disabled:!0,label:t("settings","Account name")},password:{show:this.settings.canChangePassword&&this.user.backendCapabilities.setPassword,label:t("settings","New password")}}}},methods:{async save(){this.fieldErrors={};const e=function(t,e){const n={};e.displayName!==t.displayName&&(n.displayName=e.displayName),""!==e.password&&(n.password=e.password),e.email!==t.email&&(n.email=e.email),e.quota.id!==t.quota.id&&(n.quota=e.quota.id),e.language.code!==t.language.code&&(n.language=e.language.code);const s="object"==typeof e.manager?e.manager.id??"":e.manager;s!==("object"==typeof t.manager?t.manager.id??"":t.manager)&&(n.manager=s);const i=e.groups.map(t=>t.id).sort(),r=t.groups.map(t=>t.id).sort();JSON.stringify(i)!==JSON.stringify(r)&&(n.groups=i);const o=e.subadminGroups.map(t=>t.id).sort(),a=t.subadminGroups.map(t=>t.id).sort();return JSON.stringify(o)!==JSON.stringify(a)&&(n.subadminGroups=o),n}(this.initialData,this.editedUser);if(0!==Object.keys(e).length){this.saving=!0;try{await(0,a.C5)(),await this.$store.dispatch("editUserMultiField",{userid:this.user.id,payload:e}),(0,Je.Te)(t("settings","Account updated")),this.$emit("closing")}catch(e){const n=e.response?.data?.ocs?.data?.errors;n&&"object"==typeof n?this.fieldErrors=n:(cn.error("Failed to update account",{error:e}),(0,Je.Qg)(t("settings","Failed to update account")))}finally{this.saving=!1}}else this.$emit("closing")}}};var Qn=s(51499),Kn={};Kn.styleTagTransform=Nn(),Kn.setAttributes=bn(),Kn.insert=wn().bind(null,"head"),Kn.domAPI=vn(),Kn.insertStyleElement=xn(),mn()(Qn.A,Kn),Qn.A&&Qn.A.locals&&Qn.A.locals;var Yn=(0,En.A)(Vn,function(){var t=this,e=t._self._c;return e("NcDialog",{staticClass:"edit-dialog",attrs:{size:"small",name:t.t("settings","Edit account"),"out-transition":""},on:{closing:function(e){return t.$emit("closing")}},scopedSlots:t._u([{key:"actions",fn:function(){return[e("NcButton",{staticClass:"edit-dialog__submit",attrs:{"data-test":"submit",form:"edit-user-form",variant:"primary",type:"submit",disabled:t.saving}},[t._v("\n\t\t\t"+t._s(t.saving?t.t("settings","Saving …"):t.t("settings","Save"))+"\n\t\t")])]},proxy:!0}])},[e("form",{staticClass:"edit-dialog__form",attrs:{id:"edit-user-form","data-test":"form",disabled:t.saving},on:{submit:function(e){return e.preventDefault(),t.save.apply(null,arguments)}}},[e("UserFormFields",{attrs:{"field-config":t.fieldConfig,errors:t.fieldErrors,"quota-options":t.quotaOptions}})],1)])},[],!1,null,"f0cc6e68",null);const Xn=Yn.exports,Jn={name:"NewUserDialog",components:{NcButton:sn.A,NcDialog:rn.A,UserFormFields:Wn},provide(){return{formData:this.newUser}},props:{loading:{type:Object,required:!0},newUser:{type:Object,required:!0},quotaOptions:{type:Array,required:!0}},emits:["closing"],computed:{settings(){return this.$store.getters.getServerData},usernameLabel(){return this.settings.newUserGenerateUserID?t("settings","Account name will be autogenerated"):t("settings","Account name (required)")},fieldConfig(){return{username:{show:!0,label:this.usernameLabel,disabled:this.settings.newUserGenerateUserID,required:!0},password:{label:""===this.newUser.email?t("settings","Password (required)"):t("settings","Password"),required:""===this.newUser.email},email:{label:""===this.newUser.password||this.settings.newUserRequireEmail?t("settings","Email (required)"):t("settings","Email"),required:""===this.newUser.password||this.settings.newUserRequireEmail},showPasswordEmailHint:!this.settings.newUserRequireEmail}}},mounted(){this.$refs.fields?.focusField("username")},methods:{async createUser(){this.loading.all=!0;try{await this.$store.dispatch("addUser",{userid:this.newUser.username,password:this.newUser.password,displayName:this.newUser.displayName,email:this.newUser.email,groups:this.newUser.groups.map(({id:t})=>t),subadmin:this.newUser.subadminGroups.map(({id:t})=>t),quota:this.newUser.quota.id,language:this.newUser.language.code,manager:this.newUser.manager.id}),this.$emit("closing")}catch(t){if(this.loading.all=!1,t.response?.data?.ocs?.meta){const e=t.response.data.ocs.meta.statuscode;102===e?this.$refs.fields?.focusField("username"):107===e&&this.$refs.fields?.focusField("password")}}}}};var Zn=s(819),ts={};ts.styleTagTransform=Nn(),ts.setAttributes=bn(),ts.insert=wn().bind(null,"head"),ts.domAPI=vn(),ts.insertStyleElement=xn(),mn()(Zn.A,ts),Zn.A&&Zn.A.locals&&Zn.A.locals;var es=(0,En.A)(Jn,function(){var t=this,e=t._self._c;return e("NcDialog",t._g({staticClass:"dialog",attrs:{size:"small",name:t.t("settings","New account"),"out-transition":""},scopedSlots:t._u([{key:"actions",fn:function(){return[e("NcButton",{staticClass:"dialog__submit",attrs:{"data-test":"submit",form:"new-user-form",variant:"primary",type:"submit"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Add new account"))+"\n\t\t")])]},proxy:!0}])},t.$listeners),[e("form",{staticClass:"dialog__form",attrs:{id:"new-user-form","data-test":"form",disabled:t.loading.all},on:{submit:function(e){return e.preventDefault(),t.createUser.apply(null,arguments)}}},[e("UserFormFields",{ref:"fields",attrs:{"field-config":t.fieldConfig,"quota-options":t.quotaOptions}})],1)])},[],!1,null,"32af3da3",null);const ns=es.exports,ss=ge.Ay.extend({name:"UserListFooter",components:{NcLoadingIcon:nn.A},props:{loading:{type:Boolean,required:!0},filteredUsers:{type:Array,required:!0}},computed:{userCount(){return this.loading?this.n("settings","{userCount} account …","{userCount} accounts …",this.filteredUsers.length,{userCount:this.filteredUsers.length}):this.n("settings","{userCount} account","{userCount} accounts",this.filteredUsers.length,{userCount:this.filteredUsers.length})}},methods:{t:o.Tl,n:o.zw}});var is=s(75427),rs={};rs.styleTagTransform=Nn(),rs.setAttributes=bn(),rs.insert=wn().bind(null,"head"),rs.domAPI=vn(),rs.insertStyleElement=xn(),mn()(is.A,rs),is.A&&is.A.locals&&is.A.locals;const os=(0,En.A)(ss,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",{staticClass:"footer"},[e("th",{attrs:{scope:"row"}},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Total rows summary")))])]),t._v(" "),e("td",{staticClass:"footer__cell footer__cell--loading"},[t.loading?e("NcLoadingIcon",{attrs:{title:t.t("settings","Loading accounts …"),size:32}}):t._e()],1),t._v(" "),e("td",{staticClass:"footer__cell footer__cell--count footer__cell--multiline"},[e("span",{attrs:{"aria-describedby":"user-count-desc"}},[t._v(t._s(t.userCount))]),t._v(" "),e("span",{staticClass:"hidden-visually",attrs:{id:"user-count-desc"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Scroll to load more rows"))+"\n\t\t")])])])},[],!1,null,"4ff6ba29",null).exports,as=ge.Ay.extend({name:"UserListHeader",computed:{showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData}},methods:{t:o.Tl}});var ls=s(94e3),cs={};cs.styleTagTransform=Nn(),cs.setAttributes=bn(),cs.insert=wn().bind(null,"head"),cs.domAPI=vn(),cs.insertStyleElement=xn(),mn()(ls.A,cs),ls.A&&ls.A.locals&&ls.A.locals;const ds=(0,En.A)(as,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",{staticClass:"header"},[e("th",{staticClass:"header__cell header__cell--avatar",attrs:{"data-cy-user-list-header-avatar":"",scope:"col"}},[e("span",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.t("settings","Avatar"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--displayname",attrs:{"data-cy-user-list-header-displayname":"",scope:"col"}},[e("strong",[t._v("\n\t\t\t"+t._s(t.t("settings","Display name"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--username",attrs:{"data-cy-user-list-header-username":"",scope:"col"}},[e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Account name"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-email":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Email")))])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--groups",attrs:{"data-cy-user-list-header-groups":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Groups")))])]),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-subadmins":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Group admin for")))])]):t._e(),t._v(" "),e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-quota":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Quota")))])]),t._v(" "),t.showConfig.showLanguages?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-languages":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Language")))])]):t._e(),t._v(" "),t.showConfig.showUserBackend||t.showConfig.showStoragePath?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-storage-location":"",scope:"col"}},[t.showConfig.showUserBackend?e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Account backend"))+"\n\t\t")]):t._e(),t._v(" "),t.showConfig.showStoragePath?e("span",{staticClass:"header__subtitle"},[t._v("\n\t\t\t"+t._s(t.t("settings","Storage location"))+"\n\t\t")]):t._e()]):t._e(),t._v(" "),t.showConfig.showFirstLogin?e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-first-login":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","First login")))])]):t._e(),t._v(" "),t.showConfig.showLastLogin?e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-last-login":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Last login")))])]):t._e(),t._v(" "),e("th",{staticClass:"header__cell header__cell--large header__cell--fill",attrs:{"data-cy-user-list-header-manager":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Manager")))])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--actions",attrs:{"data-cy-user-list-header-actions":"",scope:"col"}},[e("span",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.t("settings","Account actions"))+"\n\t\t")])])])},[],!1,null,"53c64244",null).exports;var us=s(4164),ps=s(32806),hs=s(61744),fs=s(59837),gs=s(41937),ms=s(13741),As=s(80997),vs=s(66102),_s=s(42135),ws=s(15502),Cs=s(58582),bs=s(32702),ys=s(62251),xs=s(47611),ks=s(10363),Ns=s(3440),Os=s(92752),Ss=s(54048),Es=s(39892),Ls=s(27345),Us=s(13238),Ds=s(48090),Gs=s(79250),Ts=s(57454),Is=s(542),$s=s(58397),Bs=s(78359),Ps=s(51464),Fs=s(60930),Ms=s(50017),js=s(60258),qs=s(64344),Rs=s(36295),zs=s(3172),Hs=s(25473),Ws=s(57229),Vs=s(20252),Qs=s(47853),Ks=s(40032),Ys=s(58611),Xs=s(6382),Js=s(81283),Zs=s(32415),ti=s(90429),ei=s(3491),ni=s(73196),si=s(44025),ii=s(51252),ri=s(48198),oi=s(27506),ai=s(54092),li=s(83194),ci=s(40133),di=s(83138),ui=s(14304),pi=s(77003),hi=s(86882),fi=s(42097),gi=s(44117),mi=s(18724),Ai=s(39689),vi=s(26145),_i=s(51550),wi=s(10632),Ci=s(86637),bi=s(48191),yi=s(52151),xi=s(56582),ki=s(49570),Ni=s(83947),Oi=s(48240),Si=s(13971),Ei=s(6026),Li=s(35290),Ui=s(61456),Di=s(24301),Gi=s(63315),Ti=s(26797),Ii=s(62330),$i=(s(25778),s(34163),s(27994),s(3168),s(47691)),Bi=s(3140),Pi=s(28955),Fi=s(71639),Mi=s(95967),ji=s(27971),qi=s(817),Ri=s(72583),zi=s(25479),Hi=s(8256),Wi=s(84202),Vi=s(47679),Qi=s(99835),Ki=s(23610),Yi=s(55581),Xi=s(94205),Ji=(s(95462),s(23020),s(53429),s(23739),s(71409),s(29928),s(24706),s(18547),s(42892)),Zi=s(69885),tr=(s(59656),s(92471),s(16406),s(34558));us.N,ps.N,hs.A,fs.N,gs.N,ms.A,As.N,vs.A,ws.A,Cs.A,bs.N,_s.N,ys.N,xs.A,ks.A,Ns.N,Os.N,Ss.A,Es.N,Ls.A,Us.N,Ds.N,Gs.N,Ts.N,Is.A,$s.N,Bs.N,Ps.N,Ps.N,Fs.N,Ms.N,js.A,qs.N,Rs.A,zs.N,Ii.N,Hs.N,Ws.N,Vs.N,Qs.N,Ks.N,Ys.N,Xs.N,Js.N,Zs.N,ti.N,ei.N,ni.N,si.N,ii.default,ri.A,oi.N,ai.N,li.A,ci.N,tn.A,di.N,ui.N,pi.N,hi.N,fi.N,gi.N,mi.A,Ai.N,vi.N,_i.N,wi.N,Ci.N,bi.N,yi.N,xi.N,ki.N,nn.A,Ti.N,Ni.A,Oi.A,Si.N,Ei.N,Li.N,Ui.N,Di.N,Gi.N,Ii.a,$i.N,Fi.N,Bi.N,Mi.N,Bn.N,ji.N,qi.N,Ri.N,zi.N,Pi.N,Hi.N,Wi.N,Vi.N,Qi.N,Ki.A,Symbol.toStringTag,Ji.A,Zi.A,tr.yw,Symbol.toStringTag;var er=s(41944),nr=s(95101),sr=s(20005),ir=s(57505),rr=s(24764);const or=(0,ge.pM)({components:{NcActionButton:ir.A,NcActions:rr.A,NcIconSvgWrapper:en.A},props:{actions:{type:Array,required:!0},disabled:{type:Boolean,required:!0},user:{type:Object,required:!0}},setup:()=>({SvgPencil:''}),computed:{enabledActions(){return this.actions.filter(t=>"function"!=typeof t.enabled||t.enabled(this.user))}},methods:{isSvg:sr.A}});var ar=(0,En.A)(or,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcActions",{attrs:{"aria-label":t.t("settings","Toggle account actions menu"),disabled:t.disabled,inline:1}},[e("NcActionButton",{attrs:{"data-cy-user-list-action-edit":"",disabled:t.disabled},on:{click:function(e){return t.$emit("update:edit",!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("NcIconSvgWrapper",{attrs:{svg:t.SvgPencil,"aria-hidden":"true"}})]},proxy:!0}])},[t._v("\n\t\t"+t._s(t.t("settings","Edit"))+"\n\t\t")]),t._v(" "),t._l(t.enabledActions,function({action:n,icon:s,text:i},r){return e("NcActionButton",{key:r,attrs:{disabled:t.disabled,"aria-label":i,icon:s,"close-after-click":""},on:{click:e=>n(e,{...t.user})},scopedSlots:t._u([t.isSvg(s)?{key:"icon",fn:function(){return[e("NcIconSvgWrapper",{attrs:{svg:s,"aria-hidden":"true"}})]},proxy:!0}:null],null,!0)},[t._v("\n\t\t"+t._s(i)+"\n\t\t")])})],2)},[],!1,null,null,null);const lr=ar.exports,cr=window.OC.theme.productName,dr={name:"UserRow",components:{NcAvatar:er.A,NcLoadingIcon:nn.A,NcProgressBar:nr.A,UserRowActions:lr},props:{user:{type:Object,required:!0},visible:{type:Boolean,required:!0},users:{type:Array,required:!0},quotaOptions:{type:Array,required:!0},languages:{type:Array,required:!0},settings:{type:Object,required:!0},externalActions:{type:Array,default:()=>[]},onEditUser:{type:Function,default:null}},setup(t){const{formattedFullTime:e}=(0,Yi.m7)(1e3*t.user.firstLoginTimestamp,{relativeTime:!1,format:{timeStyle:"short",dateStyle:"short"}});return{formattedFullTime:e}},data:()=>({rand:Math.random().toString(36).substring(2),loading:{all:!1,delete:!1,disable:!1,wipe:!1}}),computed:{isObfuscated(){return function(t){const e=Object.keys(t);return 1===e.length&&"id"===e.at(0)}(this.user)},usedQuota(){let t=this.user.quota.quota;return t=t>0?Math.min(100,Math.round(this.user.quota.used/t*100)):95*(1-1/(this.user.quota.used/(10*Math.pow(2,30))+1)),isNaN(t)?0:t},userLanguage(){const t=this.languages[0].languages.concat(this.languages[1].languages).find(t=>t.code===this.user.language);return"object"!=typeof t&&""!==this.user.language?{code:this.user.language,name:this.user.language}:""!==this.user.language&&t},userFirstLogin(){return this.user.firstLoginTimestamp>0?this.formattedFullTime:this.user.firstLoginTimestamp<0?t("settings","Unknown"):t("settings","Never")},userLastLoginTooltip(){return this.user.lastLoginTimestamp>0?OC.Util.formatDate(1e3*this.user.lastLoginTimestamp):""},userLastLogin(){return this.user.lastLoginTimestamp>0?OC.Util.relativeModifiedDate(1e3*this.user.lastLoginTimestamp):t("settings","Never")},showConfig(){return this.$store.getters.getShowConfig},isLoadingUser(){return this.loading.delete||this.loading.disable||this.loading.wipe},isLoadingField(){return this.loading.delete||this.loading.disable||this.loading.all},uniqueId(){return encodeURIComponent(this.user.id+this.rand)},userGroupsLabels(){const t=this.$store.getters.getGroups;return this.user.groups.map(e=>{const n=t.find(t=>t.id===e);return n?.name??e}).join(", ")},userSubAdminGroupsLabels(){const t=this.$store.getters.getGroups;return(this.user.subadmin??[]).map(e=>{const n=t.find(t=>t.id===e);return n?.name??e}).join(", ")},usedSpace(){return this.user.quota?.used?t("settings","{size} used",{size:(0,Un.v7)(this.user.quota?.used)}):t("settings","{size} used",{size:(0,Un.v7)(0)})},canEdit(){return(0,i.HW)().uid!==this.user.id||this.settings.isAdmin||this.settings.isDelegatedAdmin},userQuota(){let e=this.user.quota?.quota;return"default"===e&&(e=this.settings.defaultQuota,"none"!==e&&(e=(0,Un.lT)(e,!0))),"none"===e||-3===e?t("settings","Unlimited"):e>=0?(0,Un.v7)(e):(0,Un.v7)(0)},userActions(){const e=[{icon:"icon-delete",text:t("settings","Delete account"),action:this.deleteUser},{icon:"icon-delete",text:t("settings","Disconnect all devices and delete local data"),action:this.wipeUserDevices},{icon:this.user.enabled?"icon-close":"icon-add",text:this.user.enabled?t("settings","Disable account"):t("settings","Enable account"),action:this.enableDisableUser}];return null!==this.user.email&&""!==this.user.email&&e.push({icon:"icon-mail",text:t("settings","Resend welcome email"),action:this.sendWelcomeMail}),e.concat(this.externalActions)}},methods:{toggleEdit(){this.onEditUser&&this.onEditUser(this.user)},async wipeUserDevices(){const e=this.user.id;await(0,a.C5)(),OC.dialogs.confirmDestructive(t("settings","In case of lost device or exiting the organization, this can remotely wipe the {productName} data from all devices associated with {userid}. Only works if the devices are connected to the internet.",{userid:e,productName:cr}),t("settings","Remote wipe of devices"),{type:OC.dialogs.YES_NO_BUTTONS,confirm:t("settings","Wipe {userid}'s devices",{userid:e}),confirmClasses:"error",cancel:t("settings","Cancel")},n=>{n&&(this.loading.wipe=!0,this.loading.all=!0,this.$store.dispatch("wipeUserDevices",e).then(()=>(0,Je.Te)(t("settings","Wiped {userid}'s devices",{userid:e})),{timeout:2e3}).finally(()=>{this.loading.wipe=!1,this.loading.all=!1}))},!0)},async deleteUser(){const e=this.user.id;await(0,a.C5)(),OC.dialogs.confirmDestructive(t("settings","Fully delete {userid}'s account including all their personal files, app data, etc.",{userid:e}),t("settings","Account deletion"),{type:OC.dialogs.YES_NO_BUTTONS,confirm:t("settings","Delete {userid}'s account",{userid:e}),confirmClasses:"error",cancel:t("settings","Cancel")},t=>{if(t)return this.loading.delete=!0,this.loading.all=!0,this.$store.dispatch("deleteUser",e).then(()=>{this.loading.delete=!1,this.loading.all=!1})},!0)},enableDisableUser(){this.loading.delete=!0,this.loading.all=!0;const t=this.user.id,e=!this.user.enabled;return this.$store.dispatch("enableDisableUser",{userid:t,enabled:e}).then(()=>{this.loading.delete=!1,this.loading.all=!1})},sendWelcomeMail(){this.loading.all=!0,this.$store.dispatch("sendWelcomeMail",this.user.id).then(()=>(0,Je.Te)(t("settings","Welcome mail sent!"),{timeout:2e3})).finally(()=>{this.loading.all=!1})}}},ur=dr;var pr=s(81761),hr={};hr.styleTagTransform=Nn(),hr.setAttributes=bn(),hr.insert=wn().bind(null,"head"),hr.domAPI=vn(),hr.insertStyleElement=xn(),mn()(pr.A,hr),pr.A&&pr.A.locals&&pr.A.locals;const fr=(0,En.A)(ur,function(){var t=this,e=t._self._c;return e("tr",{staticClass:"user-list__row",attrs:{"data-cy-user-row":t.user.id}},[e("td",{staticClass:"row__cell row__cell--avatar",attrs:{"data-cy-user-list-cell-avatar":""}},[t.isLoadingUser?e("NcLoadingIcon",{attrs:{name:t.t("settings","Loading account …"),size:32}}):t.visible?e("NcAvatar",{attrs:{"disable-menu":"","hide-status":"",user:t.user.id}}):t._e()],1),t._v(" "),e("td",{staticClass:"row__cell row__cell--displayname",attrs:{"data-cy-user-list-cell-displayname":""}},[t.isObfuscated?t._e():e("strong",{attrs:{title:t.user.displayname?.length>20?t.user.displayname:null}},[t._v("\n\t\t\t"+t._s(t.user.displayname)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--username",attrs:{"data-cy-user-list-cell-username":""}},[e("span",{staticClass:"row__subtitle"},[t._v(t._s(t.user.id))])]),t._v(" "),e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-email":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.user.email?.length>20?t.user.email:null}},[t._v("\n\t\t\t"+t._s(t.user.email)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--groups row__cell--multiline",attrs:{"data-cy-user-list-cell-groups":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.userGroupsLabels?.length>40?t.userGroupsLabels:null}},[t._v("\n\t\t\t"+t._s(t.userGroupsLabels)+"\n\t\t")])]),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("td",{staticClass:"row__cell row__cell--large row__cell--multiline",attrs:{"data-cy-user-list-cell-subadmins":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.userSubAdminGroupsLabels?.length>40?t.userSubAdminGroupsLabels:null}},[t._v("\n\t\t\t"+t._s(t.userSubAdminGroupsLabels)+"\n\t\t")])]):t._e(),t._v(" "),e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-quota":""}},[t.isObfuscated?t._e():[e("span",{attrs:{id:"quota-progress"+t.uniqueId}},[t._v(t._s(t.userQuota)+" ("+t._s(t.usedSpace)+")")]),t._v(" "),e("NcProgressBar",{staticClass:"row__progress",class:{"row__progress--warn":t.usedQuota>80},attrs:{"aria-labelledby":"quota-progress"+t.uniqueId,value:t.usedQuota}})]],2),t._v(" "),t.showConfig.showLanguages?e("td",{staticClass:"row__cell row__cell--large",attrs:{"data-cy-user-list-cell-language":""}},[t.isObfuscated?t._e():e("span",[t._v("\n\t\t\t"+t._s(t.userLanguage.name)+"\n\t\t")])]):t._e(),t._v(" "),t.showConfig.showUserBackend||t.showConfig.showStoragePath?e("td",{staticClass:"row__cell row__cell--large",attrs:{"data-cy-user-list-cell-storage-location":""}},[t.isObfuscated?t._e():[t.showConfig.showUserBackend?e("span",[t._v(t._s(t.user.backend))]):t._e(),t._v(" "),t.showConfig.showStoragePath?e("span",{staticClass:"row__subtitle",attrs:{title:t.user.storageLocation}},[t._v("\n\t\t\t\t"+t._s(t.user.storageLocation)+"\n\t\t\t")]):t._e()]],2):t._e(),t._v(" "),t.showConfig.showFirstLogin?e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-first-login":""}},[t.isObfuscated?t._e():e("span",[t._v(t._s(t.userFirstLogin))])]):t._e(),t._v(" "),t.showConfig.showLastLogin?e("td",{staticClass:"row__cell",attrs:{title:t.userLastLoginTooltip,"data-cy-user-list-cell-last-login":""}},[t.isObfuscated?t._e():e("span",[t._v(t._s(t.userLastLogin))])]):t._e(),t._v(" "),e("td",{staticClass:"row__cell row__cell--large row__cell--fill",attrs:{"data-cy-user-list-cell-manager":""}},[t.isObfuscated?t._e():e("span",[t._v("\n\t\t\t"+t._s(t.user.manager)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--actions",attrs:{"data-cy-user-list-cell-actions":""}},[t.visible&&!t.isObfuscated&&t.canEdit&&!t.loading.all?e("UserRowActions",{attrs:{actions:t.userActions,disabled:t.isLoadingField,user:t.user},on:{"update:edit":t.toggleEdit}}):t._e()],1)])},[],!1,null,"78b3749c",null).exports;var gr=s(57579),mr=s(46855);ge.Ay.directive("elementVisibility",gr.Zx);const Ar=ge.Ay.extend({name:"VirtualList",props:{dataComponent:{type:[Object,Function],required:!0},dataKey:{type:String,required:!0},dataSources:{type:Array,required:!0},itemHeight:{type:Number,required:!0},extraProps:{type:Object,default:()=>({})}},data:()=>({bufferItems:3,index:0,headerHeight:0,tableHeight:0,resizeObserver:null}),computed:{startIndex(){return Math.max(0,this.index-3)},shownItems(){return Math.ceil((this.tableHeight-this.headerHeight)/this.itemHeight)+6},renderedItems(){return this.dataSources.slice(this.startIndex,this.startIndex+this.shownItems)},tbodyStyle(){const t=this.startIndex+this.shownItems>this.dataSources.length,e=this.dataSources.length-this.startIndex-this.shownItems,n=Math.min(this.dataSources.length-this.startIndex,e);return{paddingTop:this.startIndex*this.itemHeight+"px",paddingBottom:t?0:n*this.itemHeight+"px"}}},mounted(){const t=this.$el,e=this.$refs?.tfoot,n=this.$refs?.thead;this.resizeObserver=new ResizeObserver((0,mr.A)(()=>{this.headerHeight=n?.clientHeight??0,this.tableHeight=t?.clientHeight??0,cn.debug("VirtualList resizeObserver updated"),this.onScroll()},100)),this.resizeObserver.observe(t),this.resizeObserver.observe(e),this.resizeObserver.observe(n),this.$el.addEventListener("scroll",this.onScroll)},beforeDestroy(){this.resizeObserver&&this.resizeObserver.disconnect()},methods:{handleFooterVisibility(t){t&&this.$emit("scroll-end")},onScroll(){this.index=Math.max(0,Math.round(this.$el.scrollTop/this.itemHeight))}}});var vr=s(66291),_r={};_r.styleTagTransform=Nn(),_r.setAttributes=bn(),_r.insert=wn().bind(null,"head"),_r.domAPI=vn(),_r.insertStyleElement=xn(),mn()(vr.A,_r),vr.A&&vr.A.locals&&vr.A.locals;const wr=(0,En.A)(Ar,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("table",{staticClass:"user-list"},[t._t("before"),t._v(" "),e("thead",{ref:"thead",staticClass:"user-list__header",attrs:{role:"rowgroup"}},[t._t("header")],2),t._v(" "),e("tbody",{staticClass:"user-list__body",style:t.tbodyStyle},t._l(t.renderedItems,function(n,s){return e(t.dataComponent,t._b({key:n[t.dataKey],tag:"component",attrs:{user:n,visible:(s>=t.bufferItems||t.index<=t.bufferItems)&&s[]}},setup:()=>({mdiAccountGroupOutline:Xe.dgQ,rowHeight:55,UserRow:fr}),data:()=>({loading:{all:!1,groups:!1,users:!1},newUser:{...Cr},editingUser:null}),computed:{searchQuery(){return this.$store.getters.getSearchQuery},showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData},style(){return{"--row-height":`${this.rowHeight}px`}},users(){return this.$store.getters.getUsers},filteredUsers(){return"disabled"===this.selectedGroup?this.users.filter(t=>!1===t.enabled):this.users.filter(t=>!1!==t.enabled)},groups(){return this.$store.getters.getSortedGroups.filter(t=>"__nc_internal_recent"!==t.id&&"disabled"!==t.id)},quotaOptions(){const t=this.settings.quotaPreset.reduce((t,e)=>t.concat({id:e,label:e}),[]);return this.settings.allowUnlimitedQuota&&t.unshift(Dn),t.unshift(Gn),t},usersOffset(){return this.$store.getters.getUsersOffset},usersLimit(){return this.$store.getters.getUsersLimit},disabledUsersOffset(){return this.$store.getters.getDisabledUsersOffset},disabledUsersLimit(){return this.$store.getters.getDisabledUsersLimit},usersCount(){return this.users.length},languages(){return[{label:t("settings","Common languages"),languages:this.settings.languages.commonLanguages},{label:t("settings","Other languages"),languages:this.settings.languages.otherLanguages}]}},watch:{async searchQuery(){this.$store.commit("resetUsers"),await this.loadUsers()},async selectedGroup(t){await this.redirectIfDisabled(),this.$store.commit("resetUsers"),await this.loadUsers(),this.setNewUserDefaultGroup(t)},filteredUsers(t){cn.debug(`${t.length} filtered user(s)`)}},async created(){await this.loadUsers()},async mounted(){this.settings.canChangePassword||OC.Notification.showTemporary(t("settings","Password change is disabled because the master key is disabled")),this.initForm(),await this.redirectIfDisabled()},methods:{openEditDialog(t){this.editingUser=t},async handleScrollEnd(){await this.loadUsers()},async loadUsers(){this.loading.users=!0;try{"disabled"===this.selectedGroup?await this.$store.dispatch("getDisabledUsers",{offset:this.disabledUsersOffset,limit:this.disabledUsersLimit,search:this.searchQuery}):"__nc_internal_recent"===this.selectedGroup?await this.$store.dispatch("getRecentUsers",{offset:this.usersOffset,limit:this.usersLimit,search:this.searchQuery}):await this.$store.dispatch("getUsers",{offset:this.usersOffset,limit:this.usersLimit,group:this.selectedGroup,search:this.searchQuery}),cn.debug(`${this.users.length} total user(s) loaded`)}catch(t){cn.error("Failed to load accounts",{error:t}),(0,Je.Qg)("Failed to load accounts")}this.loading.users=!1},closeDialog(){this.$store.dispatch("setShowConfig",{key:"showNewUserForm",value:!1}),this.resetForm()},resetForm(){Object.assign(this.newUser,{...Cr,groups:[],subadminGroups:[]}),this.newUser.groups.splice(0),this.newUser.subadminGroups.splice(0),this.initForm()},initForm(){this.settings.defaultLanguage&&(this.newUser.language.code=this.settings.defaultLanguage),this.setNewUserDefaultGroup(this.selectedGroup),this.loading.all=!1},setNewUserDefaultGroup(t){if(!t&&!this.settings.isAdmin&&!this.settings.isDelegatedAdmin){const t=this.$store.getters.getSubAdminGroups;return void(1===t.length&&(this.newUser.groups=[...t]))}if(t){const e=this.groups.find(e=>e.id===t);if(e)return void(this.newUser.groups=[e])}this.newUser.groups=[]},async redirectIfDisabled(){const t=this.$store.getters.getGroups;"disabled"===this.selectedGroup&&t.findIndex(t=>"disabled"===t.id&&0===t.usercount)>-1&&(this.$router.push({name:"users"}),await this.loadUsers())}}};var yr=s(62534),xr={};xr.styleTagTransform=Nn(),xr.setAttributes=bn(),xr.insert=wn().bind(null,"head"),xr.domAPI=vn(),xr.insertStyleElement=xn(),mn()(yr.A,xr),yr.A&&yr.A.locals&&yr.A.locals;const kr=(0,En.A)(br,function(){var t=this,e=t._self._c;return e("Fragment",[t.showConfig.showNewUserForm?e("NewUserDialog",{attrs:{loading:t.loading,"new-user":t.newUser,"quota-options":t.quotaOptions},on:{closing:t.closeDialog}}):t._e(),t._v(" "),t.editingUser?e("EditUserDialog",{attrs:{user:t.editingUser,"quota-options":t.quotaOptions},on:{closing:function(e){t.editingUser=null}}}):t._e(),t._v(" "),0===t.filteredUsers.length?e("NcEmptyContent",{staticClass:"empty",attrs:{name:t.loading.users?null:t.t("settings","No accounts")},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading.users?e("NcLoadingIcon",{attrs:{name:t.t("settings","Loading accounts …"),size:64}}):e("NcIconSvgWrapper",{attrs:{path:t.mdiAccountGroupOutline,size:64}})]},proxy:!0}],null,!1,1584467133)}):e("VirtualList",{style:t.style,attrs:{"data-component":t.UserRow,"data-sources":t.filteredUsers,"data-key":"id","data-cy-user-list":"","item-height":t.rowHeight,"extra-props":{users:t.users,settings:t.settings,quotaOptions:t.quotaOptions,languages:t.languages,externalActions:t.externalActions,onEditUser:t.openEditDialog}},on:{"scroll-end":t.handleScrollEnd},scopedSlots:t._u([{key:"before",fn:function(){return[e("caption",{staticClass:"hidden-visually"},[t._v("\n\t\t\t\t"+t._s(t.t("settings","List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list."))+"\n\t\t\t")])]},proxy:!0},{key:"header",fn:function(){return[e("UserListHeader")]},proxy:!0},{key:"footer",fn:function(){return[e("UserListFooter",{attrs:{loading:t.loading.users,"filtered-users":t.filteredUsers}})]},proxy:!0}])})],1)},[],!1,null,"ff26583a",null).exports;function Nr(){var t=(0,ge.nI)().proxy.$root;if(!t._$route){var e=(0,ge.uY)(!0).run(function(){return(0,ge.Gc)(Object.assign({},t.$router.currentRoute))});t._$route=e,t.$router.afterEach(function(t){Object.assign(e,t)})}return t._$route}var Or=s(42530),Sr=s(52439),Er=s(97786),Lr=s(44131),Ur=s(41069),Dr=s(40949);const Gr={name:"TrashCanOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Tr=(0,En.A)(Gr,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon trash-can-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,Ir={name:"GroupListItem",components:{AccountGroup:Ur.A,Delete:Tr,Fragment:Ze.F,NcActionButton:ir.A,NcActionInput:Lr.A,NcAppNavigationItem:Sr.A,NcButton:sn.A,NcCounterBubble:ti.N,NcModal:Ni.A,NcNoteCard:Oi.A,Pencil:Dr.A},props:{active:{type:Boolean,required:!0},count:{type:Number,default:null},id:{type:String,required:!0},name:{type:String,required:!0}},data:()=>({loadingRenameGroup:!1,openGroupMenu:!1,showRemoveGroupModal:!1}),computed:{settings(){return this.$store.getters.getServerData}},methods:{handleGroupMenuOpen(){this.openGroupMenu=!0},async renameGroup(t){if(""===t.trim())return;const e=this.$refs.displayNameInput.$el.querySelector('input[type="text"]').value;if(""!==e.trim())try{this.openGroupMenu=!1,this.loadingRenameGroup=!0,await this.$store.dispatch("renameGroup",{groupid:t.trim(),displayName:e.trim()}),this.loadingRenameGroup=!1}catch{this.openGroupMenu=!0,this.loadingRenameGroup=!1}},async removeGroup(){try{await this.$store.dispatch("removeGroup",this.id),this.showRemoveGroupModal=!1}catch{(0,Je.Qg)(t("settings",'Failed to delete group "{group}"',{group:this.name}))}}}};var $r=s(33491),Br={};Br.styleTagTransform=Nn(),Br.setAttributes=bn(),Br.insert=wn().bind(null,"head"),Br.domAPI=vn(),Br.insertStyleElement=xn(),mn()($r.A,Br),$r.A&&$r.A.locals&&$r.A.locals;const Pr=(0,En.A)(Ir,function(){var t=this,e=t._self._c;return e("Fragment",[t.showRemoveGroupModal?e("NcModal",{on:{close:function(e){t.showRemoveGroupModal=!1}}},[e("div",{staticClass:"modal__content"},[e("h2",{staticClass:"modal__header"},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Please confirm the group removal"))+"\n\t\t\t")]),t._v(" "),e("NcNoteCard",{attrs:{type:"warning","show-alert":""}},[t._v("\n\t\t\t\t"+t._s(t.t("settings",'You are about to delete the group "{group}". The accounts will NOT be deleted.',{group:t.name}))+"\n\t\t\t")]),t._v(" "),e("div",{staticClass:"modal__button-row"},[e("NcButton",{attrs:{variant:"secondary"},on:{click:function(e){t.showRemoveGroupModal=!1}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Cancel"))+"\n\t\t\t\t")]),t._v(" "),e("NcButton",{attrs:{variant:"primary"},on:{click:t.removeGroup}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Confirm"))+"\n\t\t\t\t")])],1)],1)]):t._e(),t._v(" "),e("NcAppNavigationItem",{key:t.id,ref:"listItem",attrs:{exact:!0,name:t.name,to:{name:"group",params:{selectedGroup:encodeURIComponent(t.id)}},loading:t.loadingRenameGroup,"menu-open":t.openGroupMenu},on:{"update:menuOpen":t.handleGroupMenuOpen},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AccountGroup",{attrs:{size:20}})]},proxy:!0},{key:"counter",fn:function(){return[t.count?e("NcCounterBubble",{attrs:{type:t.active?"highlighted":void 0}},[t._v("\n\t\t\t\t"+t._s(t.count)+"\n\t\t\t")]):t._e()]},proxy:!0},{key:"actions",fn:function(){return["admin"!==t.id&&"disabled"!==t.id&&(t.settings.isAdmin||t.settings.isDelegatedAdmin)?e("NcActionInput",{ref:"displayNameInput",attrs:{"trailing-button-label":t.t("settings","Submit"),type:"text","model-value":t.name,label:t.t("settings","Rename group")},on:{submit:function(e){return t.renameGroup(t.id)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Pencil",{attrs:{size:20}})]},proxy:!0}],null,!1,580569589)}):t._e(),t._v(" "),"admin"!==t.id&&"disabled"!==t.id&&(t.settings.isAdmin||t.settings.isDelegatedAdmin)?e("NcActionButton",{on:{click:function(e){t.showRemoveGroupModal=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Delete",{attrs:{size:20}})]},proxy:!0}],null,!1,2705356561)},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Delete group"))+"\n\t\t\t")]):t._e()]},proxy:!0}])})],1)},[],!1,null,"30743619",null).exports;function Fr(t){return void 0===t?null:{id:t.id,title:t.name,usercount:t.usercount??0,count:Math.max(0,(t.usercount??0)-(t.disabled??0))}}function Mr(t){const e=(0,ge.EW)(()=>t.value.filter(t=>"disabled"!==t.id&&"__nc_internal_recent"!==t.id&&"admin"!==t.id).map(t=>Fr(t)).filter(t=>null!==t)),n=(0,ge.EW)(()=>Fr(t.value.find(t=>"admin"===t.id))),s=(0,ge.EW)(()=>Fr(t.value.find(t=>"disabled"===t.id)));return{adminGroup:n,recentGroup:(0,ge.EW)(()=>Fr(t.value.find(t=>"__nc_internal_recent"===t.id))),disabledGroup:s,userGroups:e}}function jr(t){return t.replace(/\/$/,"")}const qr=()=>(0,a.C5)(),Rr=(t,e)=>r.Ay.get(jr(t),e),zr=(t,e,n)=>r.Ay.post(jr(t),e,n),Hr=(t,e)=>r.Ay.patch(jr(t),e),Wr=(t,e)=>r.Ay.put(jr(t),e),Vr=(t,e)=>r.Ay.delete(jr(t),{params:e}),Qr={state:{},mutations:{},getters:{},actions:{setAppConfig:(t,{app:e,key:n,value:s})=>qr().then(()=>zr((0,dn.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:e,key:n}),{value:s}).catch(t=>{throw t})).catch(i=>t.commit("API_FAILURE",{app:e,key:n,value:s,error:i}))}};var Kr=s(81222);const Yr={serverData:(0,Kr.C)("settings","usersSettings",{})},Xr={setServerData(t,e){t.serverData=e}},Jr={state:Yr,mutations:Xr,getters:{getServerData:t=>t.serverData},actions:{}};var Zr,to=s(87485);!function(t){t[t.UserCount=1]="UserCount",t[t.GroupName=2]="GroupName"}(Zr||(Zr={}));const eo=Intl.Collator([(0,o.Z0)(),(0,o.lO)()],{numeric:!0,usage:"sort"}),no=(0,Kr.C)("settings","usersSettings",{}),so={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},io={users:[],groups:[...no.getSubAdminGroups??[],...no.systemGroups??[]],orderBy:no.sortGroups??Zr.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,searchQuery:"",userCount:no.userCount??0,showConfig:{showStoragePath:no.showConfig?.user_list_show_storage_path,showUserBackend:no.showConfig?.user_list_show_user_backend,showFirstLogin:no.showConfig?.user_list_show_first_login,showLastLogin:no.showConfig?.user_list_show_last_login,showNewUserForm:no.showConfig?.user_list_show_new_user_form,showLanguages:no.showConfig?.user_list_show_languages}},ro={appendUsers(t,e){const n=t.users.map(({id:t})=>t),s=Object.values(e).filter(({id:t})=>!n.includes(t)),i=t.users.concat(s);t.usersOffset+=t.usersLimit,t.users=i},updateDisabledUsers(t){t.disabledUsersOffset+=t.disabledUsersLimit},setPasswordPolicyMinLength(t,e){t.minPasswordLength=""!==e?e:0},addGroup(t,e){try{const n=t.groups.find(t=>t.id===e.id);if(n)return void Object.assign(n,e);const s={...so,...e};t.groups.unshift(s)}catch(t){cn.error("Cannt create group",{error:t})}},renameGroup(t,{gid:e,displayName:n}){const s=t.groups.findIndex(t=>t.id===e);if(s>=0){const e=t.groups[s];e.name=n,t.groups.splice(s,1,e)}},removeGroup(t,e){const n=t.groups.findIndex(t=>t.id===e);n>=0&&t.groups.splice(n,1)},addUserGroup(t,{userid:e,gid:n}){const s=t.groups.find(t=>t.id===n),i=t.users.find(t=>t.id===e);s&&i.enabled&&t.userCount>0&&s.usercount++,i.groups.push(n)},removeUserGroup(t,{userid:e,gid:n}){const s=t.groups.find(t=>t.id===n),i=t.users.find(t=>t.id===e);s&&i.enabled&&t.userCount>0&&s.usercount--;const r=i.groups;r.splice(r.indexOf(n),1)},addUserSubAdmin(t,{userid:e,gid:n}){t.users.find(t=>t.id===e).subadmin.push(n)},removeUserSubAdmin(t,{userid:e,gid:n}){const s=t.users.find(t=>t.id===e).subadmin;s.splice(s.indexOf(n),1)},deleteUser(t,e){const n=t.users.findIndex(t=>t.id===e);this.commit("updateUserCounts",{user:t.users[n],actionType:"remove"}),t.users.splice(n,1)},addUserData(t,e){const n=e.data.ocs.data;t.users.unshift(n),this.commit("updateUserCounts",{user:n,actionType:"create"})},enableDisableUser(t,{userid:e,enabled:n}){const s=t.users.find(t=>t.id===e);s.enabled=n,this.commit("updateUserCounts",{user:s,actionType:n?"enable":"disable"})},updateUserCounts(t,{user:e,actionType:n}){if(0===t.userCount)return;const s=t.groups.find(t=>"__nc_internal_recent"===t.id),i=t.groups.find(t=>"disabled"===t.id);switch(n){case"enable":case"disable":i.usercount+=e.enabled?-1:1,s.usercount+=e.enabled?1:-1,t.userCount+=e.enabled?1:-1,e.groups.forEach(n=>{const s=t.groups.find(t=>t.id===n);s&&(s.disabled+=e.enabled?-1:1)});break;case"create":s.usercount++,t.userCount++,e.groups.forEach(e=>{const n=t.groups.find(t=>t.id===e);n&&n.usercount++});break;case"remove":e.enabled?(s.usercount--,t.userCount--,e.groups.forEach(e=>{const n=t.groups.find(t=>t.id===e);n?n.usercount--:cn.warn("User group "+e+" does not exist during user removal")})):(i.usercount--,e.groups.forEach(e=>{const n=t.groups.find(t=>t.id===e);n&&n.disabled--}));break;default:cn.error(`Unknown action type in updateUserCounts: '${n}'`)}},setUserData(t,{userid:e,key:n,value:s}){if("quota"===n){const i=(0,Un.lT)(s,!0);t.users.find(t=>t.id===e)[n][n]=null!==i?i:s}else t.users.find(t=>t.id===e)[n]=s},editUserMultiField(t,{userid:e,data:n}){const s=t.users.findIndex(t=>t.id===e);if(-1!==s){if(Array.isArray(n.groups)){const i=t.users[s].groups??[];for(const t of n.groups.filter(t=>!i.includes(t)))this.commit("addUserGroup",{userid:e,gid:t});for(const t of i.filter(t=>!n.groups.includes(t)))this.commit("removeUserGroup",{userid:e,gid:t})}t.users.splice(s,1,{...t.users[s],...n})}},resetUsers(t){t.users=[],t.usersOffset=0,t.disabledUsersOffset=0},resetGroups(t){t.groups=[...no.getSubAdminGroups??[],...no.systemGroups??[]]},setSearchQuery(t,e){t.searchQuery=e},setShowConfig(t,{key:e,value:n}){t.showConfig[e]=n},setGroupSorting(e,n){const s=e.orderBy;e.orderBy=n,r.Ay.post((0,dn.Jv)("/settings/users/preferences/group.sortBy"),{value:String(n)}).catch(n=>{e.orderBy=s,(0,Je.Qg)(t("settings","Could not set group sorting")),cn.error(n)})}},oo={getUsers:t=>t.users,getGroups:t=>t.groups,getSearchQuery:t=>t.searchQuery,getSubAdminGroups:()=>no.subAdminGroups??[],getSortedGroups(t){const e=[...t.groups];return t.orderBy===Zr.UserCount?e.sort((t,e)=>{const n=t.usercount-t.disabled,s=e.usercount-e.disabled;return neo.compare(t.name,e.name))},getGroupSorting:t=>t.orderBy,getPasswordPolicyMinLength:t=>t.minPasswordLength,getUsersOffset:t=>t.usersOffset,getUsersLimit:t=>t.usersLimit,getDisabledUsersOffset:t=>t.disabledUsersOffset,getDisabledUsersLimit:t=>t.disabledUsersLimit,getUserCount:t=>t.userCount,getShowConfig:t=>t.showConfig},ao=r.Ay.CancelToken;let lo=null;function co(t,e){const n=e.data.ocs.data.groups??[];0!==n.length&&n.forEach(e=>{t.commit("addGroup",{id:e.id,name:e.displayname})})}const uo={state:io,mutations:ro,getters:oo,actions:{searchUsers:(t,{offset:e,limit:n,search:s})=>(s="string"==typeof s?s:"",Rr((0,dn.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s})).catch(e=>{r.Ay.isCancel(e)||t.commit("API_FAILURE",e)})),getUser:(t,e)=>Rr((0,dn.KT)(`cloud/users/${e}`)).catch(e=>{r.Ay.isCancel(e)||t.commit("API_FAILURE",e)}),getUsers:(t,{offset:e,limit:n,search:s,group:i})=>(lo&&lo.cancel("Operation canceled by another search request."),lo=ao.source(),s="string"==typeof s?s:"",""!==(i="string"==typeof i?i:"")?Rr((0,dn.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(i),offset:e,limit:n,search:s}),{cancelToken:lo.token}).then(e=>{const n=Object.keys(e.data.ocs.data.users).length;return n>0&&t.commit("appendUsers",e.data.ocs.data.users),co(t,e),n}).catch(e=>{r.Ay.isCancel(e)||t.commit("API_FAILURE",e)}):Rr((0,dn.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s}),{cancelToken:lo.token}).then(e=>{const n=Object.keys(e.data.ocs.data.users).length;return n>0&&t.commit("appendUsers",e.data.ocs.data.users),co(t,e),n}).catch(e=>{r.Ay.isCancel(e)||t.commit("API_FAILURE",e)})),async getRecentUsers(t,{offset:e,limit:n,search:s}){const i=(0,dn.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s});try{const e=await Rr(i),n=Object.keys(e.data.ocs.data.users).length;return n>0&&t.commit("appendUsers",e.data.ocs.data.users),n}catch(e){t.commit("API_FAILURE",e)}},async getDisabledUsers(t,{offset:e,limit:n,search:s}){const i=(0,dn.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s});try{const e=await Rr(i),n=Object.keys(e.data.ocs.data.users).length;return n>0&&(t.commit("appendUsers",e.data.ocs.data.users),t.commit("updateDisabledUsers",e.data.ocs.data.users)),n}catch(e){t.commit("API_FAILURE",e)}},getGroups(t,{offset:e,limit:n,search:s}){s="string"==typeof s?s:"";const i=-1===n?"":`&limit=${n}`;return Rr((0,dn.KT)("cloud/groups?offset={offset}&search={search}",{offset:e,search:s})+i).then(e=>{const n=e.data.ocs.data.groups??[];return n.length>0&&(n.forEach(function(e){t.commit("addGroup",{id:e,name:e})}),!0)}).catch(e=>t.commit("API_FAILURE",e))},getUsersFromList:(t,{offset:e,limit:n,search:s})=>(s="string"==typeof s?s:"",Rr((0,dn.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s})).then(e=>Object.keys(e.data.ocs.data.users).length>0&&(t.commit("appendUsers",e.data.ocs.data.users),!0)).catch(e=>t.commit("API_FAILURE",e))),getUsersFromGroup:(t,{groupid:e,offset:n,limit:s})=>Rr((0,dn.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(e),offset:n,limit:s})).then(e=>t.commit("getUsersFromList",e.data.ocs.data.users)).catch(e=>t.commit("API_FAILURE",e)),getPasswordPolicyMinLength:t=>!(!(0,to.F)().password_policy||!(0,to.F)().password_policy.minLength)&&(t.commit("setPasswordPolicyMinLength",(0,to.F)().password_policy.minLength),(0,to.F)().password_policy.minLength),addGroup:(t,e)=>qr().then(()=>zr((0,dn.KT)("cloud/groups"),{groupid:e}).then(()=>(t.commit("addGroup",{id:e,name:e}),{gid:e,displayName:e})).catch(t=>{throw t})).catch(n=>{throw t.commit("API_FAILURE",{gid:e,error:n}),n}),renameGroup:(t,{groupid:e,displayName:n})=>qr().then(()=>Wr((0,dn.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(e)}),{key:"displayname",value:n}).then(()=>(t.commit("renameGroup",{gid:e,displayName:n}),{groupid:e,displayName:n})).catch(t=>{throw t})).catch(n=>{throw t.commit("API_FAILURE",{groupid:e,error:n}),n}),removeGroup:(t,e)=>qr().then(()=>Vr((0,dn.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(e)})).then(()=>t.commit("removeGroup",e)).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{gid:e,error:n})),addUserGroup:(t,{userid:e,gid:n})=>qr().then(()=>zr((0,dn.KT)("cloud/users/{userid}/groups",{userid:e}),{groupid:n}).then(()=>t.commit("addUserGroup",{userid:e,gid:n})).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),removeUserGroup:(t,{userid:e,gid:n})=>qr().then(()=>Vr((0,dn.KT)("cloud/users/{userid}/groups",{userid:e}),{groupid:n}).then(()=>t.commit("removeUserGroup",{userid:e,gid:n})).catch(t=>{throw t})).catch(n=>{throw t.commit("API_FAILURE",{userid:e,error:n}),n}),addUserSubAdmin:(t,{userid:e,gid:n})=>qr().then(()=>zr((0,dn.KT)("cloud/users/{userid}/subadmins",{userid:e}),{groupid:n}).then(()=>t.commit("addUserSubAdmin",{userid:e,gid:n})).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),removeUserSubAdmin:(t,{userid:e,gid:n})=>qr().then(()=>Vr((0,dn.KT)("cloud/users/{userid}/subadmins",{userid:e}),{groupid:n}).then(()=>t.commit("removeUserSubAdmin",{userid:e,gid:n})).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),async wipeUserDevices(t,e){try{return await qr(),await zr((0,dn.KT)("cloud/users/{userid}/wipe",{userid:e}))}catch(n){return t.commit("API_FAILURE",{userid:e,error:n}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(t,e)=>qr().then(()=>Vr((0,dn.KT)("cloud/users/{userid}",{userid:e})).then(()=>t.commit("deleteUser",e)).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),addUser:({commit:t,dispatch:e},{userid:n,password:s,displayName:i,email:r,groups:o,subadmin:a,quota:l,language:c,manager:d})=>qr().then(()=>zr((0,dn.KT)("cloud/users"),{userid:n,password:s,displayName:i,email:r,groups:o,subadmin:a,quota:l,language:c,manager:d}).then(t=>e("addUserData",n||t.data.ocs.data.id)).catch(t=>{throw t})).catch(e=>{throw t("API_FAILURE",{userid:n,error:e}),e}),addUserData:(t,e)=>qr().then(()=>Rr((0,dn.KT)("cloud/users/{userid}",{userid:e})).then(e=>t.commit("addUserData",e)).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),enableDisableUser(t,{userid:e,enabled:n=!0}){const s=n?"enable":"disable";return qr().then(()=>Wr((0,dn.KT)("cloud/users/{userid}/{userStatus}",{userid:e,userStatus:s})).then(()=>t.commit("enableDisableUser",{userid:e,enabled:n})).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n}))},async setUserData(t,{userid:e,key:n,value:s}){if(!["email","language","quota","displayname","password","manager"].includes(n))throw new Error("Invalid request data");if(""===s&&!["email","displayname","manager"].includes(n))throw new Error("Value cannot be empty for this field");try{return await qr(),await Wr((0,dn.KT)("cloud/users/{userid}",{userid:e}),{key:n,value:s}),t.commit("setUserData",{userid:e,key:n,value:s})}catch(n){throw t.commit("API_FAILURE",{userid:e,error:n}),n}},async editUserMultiField(t,{userid:e,payload:n}){try{await qr();const s=await Hr((0,dn.KT)("cloud/users/{userid}",{userid:e}),n);t.commit("editUserMultiField",{userid:e,data:s.data.ocs.data})}catch(n){throw t.commit("API_FAILURE",{userid:e,error:n}),n}},sendWelcomeMail:(t,e)=>qr().then(()=>zr((0,dn.KT)("cloud/users/{userid}/welcome",{userid:e})).then(()=>!0).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),migrateLocalStorage({commit:t}){const e={showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"};for(const[n,s]of Object.entries(e)){const e=`account_settings__${n}`,i=window.localStorage.getItem(e);if(null===i)continue;const o="true"===i;t("setShowConfig",{key:n,value:o}),r.Ay.post((0,dn.Jv)(`/settings/users/preferences/${s}`),{value:o?"true":"false"}).then(()=>{window.localStorage.removeItem(e)}).catch(t=>{cn.error(`Failed to migrate preference ${n}`,{error:t})})}},setShowConfig(t,{key:e,value:n}){t.commit("setShowConfig",{key:e,value:n}),r.Ay.post((0,dn.Jv)(`settings/users/preferences/${{showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"}[e]}`),{value:n?"true":"false"}).catch(t=>cn.error(`Could not update ${e} preference`,{error:t}))}}},po={API_FAILURE(e,n){try{const e=n.error.response.data.ocs.meta.message;(0,Je.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
"+e,{isHTML:!0})}catch{(0,Je.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}cn.error("An error occurred during the request.",{state:e,error:n})}};let ho=null;function fo(){return null===ho&&(ho=new ke({modules:{users:uo,settings:Jr,oc:Qr},strict:!1,mutations:po})),ho}const go=(0,ge.pM)({__name:"AppNavigationGroupList",setup(t){const e=fo(),n=Nr(),s=(0,ge.nI)().proxy.$root.$router;(0,ge.KC)(async()=>{await y()});const i=(0,ge.EW)(()=>n.params?.selectedGroup),r=(0,ge.EW)(()=>i.value?decodeURIComponent(i.value):null),a=(0,ge.EW)(()=>e.getters.getServerData),l=(0,ge.EW)(()=>a.value.isAdmin||a.value.isDelegatedAdmin),c=(0,ge.EW)(()=>l.value?e.getters.getSortedGroups:e.getters.getSubAdminGroups),{userGroups:d}=Mr(c),u=(0,ge.KR)(!1),p=(0,ge.KR)(!1),h=(0,ge.KR)(!1),f=(0,ge.KR)(""),g=(0,ge.KR)(!1),m=(0,ge.KR)(0),A=(0,ge.EW)(()=>e.getters.getSearchQuery),v=(0,ge.EW)(()=>{if(l.value)return d.value;const t=A.value.toLowerCase();return d.value.filter(e=>-1!==e.id.toLowerCase().search(t)||-1!==e.title.toLowerCase().search(t))}),_=(0,ge.KR)([]),w=(0,ge.EW)(()=>_.value.findLast(t=>t?.$vnode?.key===d.value?.at(-1)?.id)?.$refs?.listItem?.$el),C=(0,Er.ITo)(w);(0,ge.wB)(C,async()=>{C.value&&await y()}),(0,ge.wB)(A,async()=>{e.commit("resetGroups"),m.value=0,await y()});const b=(0,ge.KR)();async function y(){if(l.value){b.value&&b.value.cancel(),g.value=!0;try{b.value=hn({search:A.value,offset:m.value,limit:25});const t=await b.value;t.length>0&&(m.value+=25);for(const n of t)e.commit("addGroup",n)}catch(t){cn.error((0,o.t)("settings","Failed to load groups"),{error:t})}b.value=void 0,g.value=!1}}return{__sfc:!0,store:e,route:n,router:s,selectedGroup:i,selectedGroupDecoded:r,settings:a,isAdminOrDelegatedAdmin:l,groups:c,userGroups:d,isAddGroupOpen:u,loadingAddGroup:p,hasAddGroupError:h,newGroupName:f,loadingGroups:g,offset:m,groupsSearchQuery:A,filteredGroups:v,groupListItems:_,lastGroupListItem:w,isLastGroupVisible:C,promise:b,loadGroups:y,createGroup:async function(){h.value=!1;const t=f.value.trim();if(""!==t){u.value=!1,p.value=!0;try{await e.dispatch("addGroup",t),await s.push({name:"group",params:{selectedGroup:encodeURIComponent(t)}});const n=_.value.findLast(e=>e?.$vnode?.key===t);n?.$refs?.listItem?.$el?.scrollIntoView({behavior:"smooth",block:"nearest"}),f.value=""}catch{(0,Je.Qg)((0,o.t)("settings","Failed to create group"))}p.value=!1}else h.value=!0},mdiAccountGroupOutline:Xe.dgQ,mdiPlus:Xe.biz,t:o.t,Fragment:Ze.F,NcActionInput:Lr.A,NcActionText:Cs.A,NcAppNavigationCaption:Os.N,NcAppNavigationList:Ls.A,NcIconSvgWrapper:en.A,NcLoadingIcon:nn.A,GroupListItem:Pr}}}),mo=go,Ao=(0,En.A)(mo,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.Fragment,[e("p",{staticClass:"hidden-visually",attrs:{id:"group-list-desc"}},[t._v("\n\t\t"+t._s(n.t("settings","List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list."))+"\n\t")]),t._v(" "),e(n.NcAppNavigationList,{staticClass:"account-management__group-list",attrs:{"aria-label":n.t("settings","Groups"),"aria-describedby":"group-list-desc","data-cy-users-settings-navigation-groups":"custom"}},[e(n.NcAppNavigationCaption,{attrs:{name:n.t("settings","Groups"),disabled:n.loadingAddGroup,"aria-label":n.loadingAddGroup?n.t("settings","Creating group…"):n.t("settings","Create group"),"force-menu":"",open:n.isAddGroupOpen},on:{"update:open":function(t){n.isAddGroupOpen=t}},scopedSlots:t._u([n.isAdminOrDelegatedAdmin?{key:"actionsTriggerIcon",fn:function(){return[n.loadingAddGroup?e(n.NcLoadingIcon):e(n.NcIconSvgWrapper,{attrs:{path:n.mdiPlus}})]},proxy:!0}:null,n.isAdminOrDelegatedAdmin?{key:"actions",fn:function(){return[e(n.NcActionText,{scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiAccountGroupOutline}})]},proxy:!0}],null,!1,4071362859)},[t._v("\n\t\t\t\t\t"+t._s(n.t("settings","Create group"))+"\n\t\t\t\t")]),t._v(" "),e(n.NcActionInput,{attrs:{label:n.t("settings","Group name"),"data-cy-users-settings-new-group-name":"","label-outside":!1,disabled:n.loadingAddGroup,error:n.hasAddGroupError,"helper-text":n.hasAddGroupError?n.t("settings","Please enter a valid group name"):""},on:{submit:n.createGroup},model:{value:n.newGroupName,callback:function(t){n.newGroupName=t},expression:"newGroupName"}})]},proxy:!0}:null],null,!0)}),t._v(" "),t._l(n.filteredGroups,function(t){return e(n.GroupListItem,{key:t.id,ref:"groupListItems",refInFor:!0,attrs:{id:t.id,active:n.selectedGroupDecoded===t.id,name:t.title,count:t.count}})}),t._v(" "),n.loadingGroups?e("div",{attrs:{role:"note"}},[e(n.NcLoadingIcon,{attrs:{name:n.t("settings","Loading groups…")}})],1):t._e()],2)],1)},[],!1,null,null,null).exports;var vo=s(32073);const _o={name:"UserSettingsDialog",components:{NcAppSettingsDialog:$s.N,NcAppSettingsSection:Bs.N,NcAppSettingsShortcutsSection:Ps.N,NcCheckboxRadioSwitch:vo.A,NcHotkey:wi.N,NcHotkeyList:Ci.N,NcNoteCard:Oi.A,NcSelect:ln.default},props:{open:{type:Boolean,required:!0}},emits:["update:open"],setup(t,{emit:e}){(0,Xi.C)("?",async()=>{e("update:open",!0),await(0,ge.dY)(),document.getElementById("settings-section_keyboard-shortcuts")?.scrollIntoView({behavior:"smooth",inline:"nearest"})},{stop:!0,prevent:!0})},data:()=>({selectedQuota:!1,loadingSendMail:!1}),computed:{groupSorting:{get(){return this.$store.getters.getGroupSorting===Zr.GroupName?"name":"member-count"},set(t){this.$store.commit("setGroupSorting","name"===t?Zr.GroupName:Zr.UserCount)}},isGroupSortingEnforced(){return this.$store.getters.getServerData.forceSortGroupByName},isModalOpen:{get(){return this.open},set(t){this.$emit("update:open",t)}},showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData},showLanguages:{get(){return this.showConfig.showLanguages},set(t){this.setShowConfig("showLanguages",t)}},showFirstLogin:{get(){return this.showConfig.showFirstLogin},set(t){this.setShowConfig("showFirstLogin",t)}},showLastLogin:{get(){return this.showConfig.showLastLogin},set(t){this.setShowConfig("showLastLogin",t)}},showUserBackend:{get(){return this.showConfig.showUserBackend},set(t){this.setShowConfig("showUserBackend",t)}},showStoragePath:{get(){return this.showConfig.showStoragePath},set(t){this.setShowConfig("showStoragePath",t)}},quotaOptions(){const t=this.settings.quotaPreset.reduce((t,e)=>t.concat({id:e,label:e}),[]);return this.settings.allowUnlimitedQuota&&t.unshift(Dn),t},defaultQuota:{get(){return!1!==this.selectedQuota?this.selectedQuota:this.settings.defaultQuota!==Dn.id&&OC.Util.computerFileSize(this.settings.defaultQuota)>=0?{id:this.settings.defaultQuota,label:this.settings.defaultQuota}:Dn},set(t){this.selectedQuota=t}},sendWelcomeMail:{get(){return this.settings.newUserSendEmail},async set(t){try{this.loadingSendMail=!0,this.$store.commit("setServerData",{...this.settings,newUserSendEmail:t}),await r.Ay.post((0,dn.Jv)("/settings/users/preferences/newUser.sendEmail"),{value:t?"yes":"no"})}catch(t){cn.error("Could not update newUser.sendEmail preference",{error:t})}finally{this.loadingSendMail=!1}}}},methods:{filterQuotas(t,e,n){const s=n.toLocaleLowerCase().replaceAll(/\s/g,"");return(e||"").toLocaleLowerCase().replaceAll(/\s/g,"").indexOf(s)>-1},setShowConfig(t,e){this.$store.dispatch("setShowConfig",{key:t,value:e})},validateQuota(t){"object"==typeof t&&(t=t?.id||t.label);const e=(0,Un.lT)(t,!0);return null===e?Dn:{id:t=(0,Un.v7)(e),label:t}},setDefaultQuota(t="none"){"none"===t&&(t=Dn),this.$store.dispatch("setAppConfig",{app:"files",key:"default_quota",value:t.id?t.id:t}).then(()=>{"object"!=typeof t&&(t={id:t,label:t}),this.defaultQuota=t})}}};var wo=s(59381),Co={};Co.styleTagTransform=Nn(),Co.setAttributes=bn(),Co.insert=wn().bind(null,"head"),Co.domAPI=vn(),Co.insertStyleElement=xn(),mn()(wo.A,Co),wo.A&&wo.A.locals&&wo.A.locals;const bo=(0,En.A)(_o,function(){var t=this,e=t._self._c;return e("NcAppSettingsDialog",{attrs:{open:t.isModalOpen,"show-navigation":!0,name:t.t("settings","Account management settings")},on:{"update:open":function(e){t.isModalOpen=e}}},[e("NcAppSettingsSection",{attrs:{id:"visibility-settings",name:t.t("settings","Visibility")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showLanguages"},model:{value:t.showLanguages,callback:function(e){t.showLanguages=e},expression:"showLanguages"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show language"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showUserBackend"},model:{value:t.showUserBackend,callback:function(e){t.showUserBackend=e},expression:"showUserBackend"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show account backend"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showStoragePath"},model:{value:t.showStoragePath,callback:function(e){t.showStoragePath=e},expression:"showStoragePath"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show storage path"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showFirstLogin"},model:{value:t.showFirstLogin,callback:function(e){t.showFirstLogin=e},expression:"showFirstLogin"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show first login"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showLastLogin"},model:{value:t.showLastLogin,callback:function(e){t.showLastLogin=e},expression:"showLastLogin"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show last login"))+"\n\t\t")])],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"groups-sorting",name:t.t("settings","Sorting")}},[t.isGroupSortingEnforced?e("NcNoteCard",{attrs:{type:"warning"}},[t._v("\n\t\t\t"+t._s(t.t("settings","The system config enforces sorting the groups by name. This also disables showing the member count."))+"\n\t\t")]):t._e(),t._v(" "),e("fieldset",[e("legend",[t._v(t._s(t.t("settings","Group list sorting")))]),t._v(" "),e("NcNoteCard",{staticClass:"dialog__note",attrs:{type:"info",text:t.t("settings","Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.")}}),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"radio","data-test":"sortGroupsByMemberCount",disabled:t.isGroupSortingEnforced,name:"group-sorting-mode",value:"member-count"},model:{value:t.groupSorting,callback:function(e){t.groupSorting=e},expression:"groupSorting"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","By member count"))+"\n\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"radio","data-test":"sortGroupsByName",disabled:t.isGroupSortingEnforced,name:"group-sorting-mode",value:"name"},model:{value:t.groupSorting,callback:function(e){t.groupSorting=e},expression:"groupSorting"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","By name"))+"\n\t\t\t")])],1)],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"email-settings",name:t.t("settings","Send email")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"sendWelcomeMail",disabled:t.loadingSendMail},model:{value:t.sendWelcomeMail,callback:function(e){t.sendWelcomeMail=e},expression:"sendWelcomeMail"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Send welcome email to new accounts"))+"\n\t\t")])],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"default-settings",name:t.t("settings","Defaults")}},[e("NcSelect",{attrs:{clearable:!1,"create-option":t.validateQuota,"filter-by":t.filterQuotas,"input-label":t.t("settings","Default quota"),options:t.quotaOptions,placement:"top",placeholder:t.t("settings","Select default quota"),taggable:""},on:{"option:selected":t.setDefaultQuota},model:{value:t.defaultQuota,callback:function(e){t.defaultQuota=e},expression:"defaultQuota"}})],1),t._v(" "),e("NcAppSettingsShortcutsSection",[e("NcHotkeyList",{attrs:{label:t.t("settings","Search")}},[e("NcHotkey",{attrs:{label:t.t("settings","Focus search"),hotkey:"Control F"}})],1),t._v(" "),e("NcHotkeyList",{attrs:{label:t.t("settings","Help")}},[e("NcHotkey",{attrs:{label:t.t("settings","Show those shortcuts"),hotkey:"?"}})],1)],1)],1)},[],!1,null,"649c1de8",null).exports,yo=(0,ge.pM)({__name:"UserManagementNavigation",setup(t){const e=Nr(),n=fo(),s=(0,ge.KR)(),i=(0,ge.KR)(""),r=(0,mr.A)(t=>{n.commit("setSearchQuery",t)},300);(0,ge.wB)(i,t=>r(t)),(0,ge.xo)(()=>r.clear()),(0,Xi.C)("f",()=>s.value?.$refs.inputElement?.focus(),{ctrl:!0,stop:!0,prevent:!0});const a=(0,ge.KR)(!1),l=(0,ge.EW)(()=>e.params?.selectedGroup),c=(0,ge.EW)(()=>l.value?decodeURIComponent(l.value):null),d=(0,ge.EW)(()=>n.getters.getUserCount),u=(0,ge.EW)(()=>n.getters.getSortedGroups),{adminGroup:p,recentGroup:h,disabledGroup:f}=Mr(u),g=(0,ge.EW)(()=>n.getters.getServerData),m=(0,ge.EW)(()=>g.value.isAdmin||g.value.isDelegatedAdmin);return{__sfc:!0,route:e,store:n,searchField:s,searchInput:i,commitSearch:r,isDialogOpen:a,selectedGroup:l,selectedGroupDecoded:c,userCount:d,groups:u,adminGroup:p,recentGroup:h,disabledGroup:f,settings:g,isAdminOrDelegatedAdmin:m,showNewUserMenu:function(){n.dispatch("setShowConfig",{key:"showNewUserForm",value:!0})},mdiAccountOffOutline:Xe.Zfz,mdiAccountOutline:Xe.EzL,mdiCogOutline:Xe.ED,mdiHistory:Xe.LP2,mdiPlus:Xe.biz,mdiShieldAccountOutline:Xe.J0H,t:o.Tl,NcAppNavigation:Or.A,NcAppNavigationItem:Sr.A,NcAppNavigationList:Ls.A,NcAppNavigationNew:Us.N,NcAppNavigationSearch:Gs.N,NcButton:sn.A,NcCounterBubble:ti.N,NcIconSvgWrapper:en.A,AppNavigationGroupList:Ao,UserSettingsDialog:bo}}}),xo=yo;var ko=s(34895),No={};No.styleTagTransform=Nn(),No.setAttributes=bn(),No.insert=wn().bind(null,"head"),No.domAPI=vn(),No.insertStyleElement=xn(),mn()(ko.A,No),ko.A&&ko.A.locals&&ko.A.locals;var Oo=(0,En.A)(xo,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.NcAppNavigation,{staticClass:"account-management__navigation",attrs:{"aria-label":n.t("settings","Account management")},scopedSlots:t._u([{key:"footer",fn:function(){return[e(n.NcButton,{staticClass:"account-management__settings-toggle",attrs:{variant:"tertiary",wide:""},on:{click:function(t){n.isDialogOpen=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiCogOutline}})]},proxy:!0}])},[t._v(" "),e("span",{staticClass:"account-management__settings-toggle-text"},[t._v("\n\t\t\t\t"+t._s(n.t("settings","Account management settings"))+"\n\t\t\t")])]),t._v(" "),e(n.UserSettingsDialog,{attrs:{open:n.isDialogOpen},on:{"update:open":function(t){n.isDialogOpen=t}}})]},proxy:!0}])},[e(n.NcAppNavigationNew,{attrs:{"button-id":"new-user-button",text:n.t("settings","New account")},on:{click:n.showNewUserMenu,keyup:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.showNewUserMenu.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"space",32,e.key,[" ","Spacebar"])?null:n.showNewUserMenu.apply(null,arguments)}]},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiPlus}})]},proxy:!0}])}),t._v(" "),e(n.NcAppNavigationSearch,{ref:"searchField",attrs:{label:n.t("settings","Search accounts and groups…")},model:{value:n.searchInput,callback:function(t){n.searchInput=t},expression:"searchInput"}}),t._v(" "),e(n.NcAppNavigationList,{staticClass:"account-management__system-list",attrs:{"data-cy-users-settings-navigation-groups":"system"}},[e(n.NcAppNavigationItem,{attrs:{id:"everyone",exact:!0,name:n.t("settings","All accounts"),to:{name:"users"}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiAccountOutline}})]},proxy:!0},{key:"counter",fn:function(){return[n.userCount?e(n.NcCounterBubble,{attrs:{type:n.selectedGroupDecoded?void 0:"highlighted"}},[t._v("\n\t\t\t\t\t"+t._s(n.userCount)+"\n\t\t\t\t")]):t._e()]},proxy:!0}])}),t._v(" "),n.settings.isAdmin?e(n.NcAppNavigationItem,{attrs:{id:"admin",exact:!0,name:n.t("settings","Admins"),to:{name:"group",params:{selectedGroup:"admin"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiShieldAccountOutline}})]},proxy:!0},{key:"counter",fn:function(){return[n.adminGroup&&n.adminGroup.count>0?e(n.NcCounterBubble,{attrs:{type:"admin"===n.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(n.adminGroup.count)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,3779933833)}):t._e(),t._v(" "),n.isAdminOrDelegatedAdmin?e(n.NcAppNavigationItem,{attrs:{id:"recent",exact:!0,name:n.t("settings","Recently active"),to:{name:"group",params:{selectedGroup:"__nc_internal_recent"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiHistory}})]},proxy:!0},{key:"counter",fn:function(){return[n.recentGroup?.usercount?e(n.NcCounterBubble,{attrs:{type:"__nc_internal_recent"===n.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(n.recentGroup.usercount)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,2299424282)}):t._e(),t._v(" "),n.disabledGroup&&(n.disabledGroup.usercount>0||-1===n.disabledGroup.usercount)?e(n.NcAppNavigationItem,{attrs:{id:"disabled",exact:!0,name:n.t("settings","Disabled accounts"),to:{name:"group",params:{selectedGroup:"disabled"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiAccountOffOutline}})]},proxy:!0},n.disabledGroup.usercount>0?{key:"counter",fn:function(){return[e(n.NcCounterBubble,{attrs:{type:"disabled"===n.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(n.disabledGroup.usercount)+"\n\t\t\t\t")])]},proxy:!0}:null],null,!0)}):t._e()],1),t._v(" "),e(n.AppNavigationGroupList)],1)},[],!1,null,"1fd1d021",null);const So=Oo.exports,Eo=(0,ge.pM)({name:"UserManagement",components:{NcContent:Ye.A,NcAppContent:Ke.A,UserList:kr,UserManagementNavigation:So},data:()=>({externalActions:[]}),computed:{pageHeading(){return null===this.selectedGroupDecoded?(0,o.Tl)("settings","All accounts"):{admin:(0,o.Tl)("settings","Admins"),disabled:(0,o.Tl)("settings","Disabled accounts")}[this.selectedGroupDecoded]??(0,o.Tl)("settings","Account group: {group}",{group:this.selectedGroupDecoded})},selectedGroup(){return this.$route.params.selectedGroup},selectedGroupDecoded(){return this.selectedGroup?decodeURIComponent(this.selectedGroup):null}},beforeMount(){this.$store.dispatch("getPasswordPolicyMinLength")},created(){window.OCA=window.OCA??{},window.OCA.Settings=window.OCA.Settings??{},window.OCA.Settings.UserList=window.OCA.Settings.UserList??{},window.OCA.Settings.UserList.registerAction=this.registerAction,(0,Qe.Ic)("settings:user-management:loaded")},methods:{t:o.Tl,registerAction(t,e,n,s){return this.externalActions.push({icon:t,text:e,action:n,enabled:s}),this.externalActions}}});var Lo=s(7784),Uo={};Uo.styleTagTransform=Nn(),Uo.setAttributes=bn(),Uo.insert=wn().bind(null,"head"),Uo.domAPI=vn(),Uo.insertStyleElement=xn(),mn()(Lo.A,Uo),Lo.A&&Lo.A.locals&&Lo.A.locals;const Do=(0,En.A)(Eo,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcContent",{attrs:{"app-name":"settings"}},[e("UserManagementNavigation"),t._v(" "),e("NcAppContent",{attrs:{"page-heading":t.pageHeading}},[e("UserList",{attrs:{"selected-group":t.selectedGroupDecoded,"external-actions":t.externalActions}})],1)],1)},[],!1,null,"7690bc0a",null).exports;var Go=s(40173);ge.Ay.use(Go.Ay);const To=new Go.Ay({mode:"history",base:(0,dn.Jv)(""),linkActiveClass:"active",routes:[{name:"users",path:"/:index(index.php/)?settings/users",props:!0,children:[{path:":selectedGroup",name:"group"}]}]});(0,a.IF)(r.Ay),s.nc=(0,i.aV)(),ge.Ay.prototype.t=o.t,ge.Ay.prototype.n=o.n,ge.Ay.use(l.R2),ge.Ay.use(fe,{defaultHtml:!1}),ge.Ay.use(We);const Io=fo();(0,Ve.O)(Io,To);const $o=(0,l.Ey)();Io.dispatch("migrateLocalStorage"),new(ge.Ay.extend(Do))({router:To,store:Io,pinia:$o}).$mount("#content")},33491(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".modal__header[data-v-30743619]{margin:0}.modal__content[data-v-30743619]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-30743619]{display:flex;width:100%;justify-content:space-between}","",{version:3,sources:["webpack://./apps/settings/src/components/GroupListItem.vue"],names:[],mappings:"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA",sourcesContent:["\n.modal {\n\t&__header {\n\t\tmargin: 0;\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tpadding: 20px;\n\t\tgap: 4px 0;\n\t}\n\n\t&__button-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tjustify-content: space-between;\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},62534(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".empty[data-v-ff26583a] .icon-vue{width:64px;height:64px}.empty[data-v-ff26583a] .icon-vue svg{max-width:64px;max-height:64px}","",{version:3,sources:["webpack://./apps/settings/src/components/UserList.vue"],names:[],mappings:"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA",sourcesContent:["\n@use './Users/shared/styles.scss' as *;\n\n.empty {\n\t:deep {\n\t\t.icon-vue {\n\t\t\twidth: 64px;\n\t\t\theight: 64px;\n\n\t\t\tsvg {\n\t\t\t\tmax-width: 64px;\n\t\t\t\tmax-height: 64px;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},51499(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".edit-dialog[data-v-f0cc6e68] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/EditUserDialog.vue"],names:[],mappings:"AAEC,+CACC,4DAAA",sourcesContent:["\n.edit-dialog {\n\t:deep(.dialog__actions) {\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},819(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".dialog[data-v-32af3da3] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/NewUserDialog.vue"],names:[],mappings:"AAEC,0CACC,4DAAA",sourcesContent:["\n.dialog {\n\t:deep(.dialog__actions) {\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},24361(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".user-form-fields[data-v-0d9243e9]{display:flex;flex-direction:column;align-items:center;gap:calc(var(--default-grid-baseline, 4px)*2) 0}.user-form-fields__item[data-v-0d9243e9]{width:100%}.user-form-fields__item[data-v-0d9243e9]:not(:focus):not(:active){border-color:var(--color-border-dark)}.user-form-fields__static[data-v-0d9243e9]{display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area, 44px);padding:var(--border-width-input-focused, 2px);padding-inline:calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));margin-left:18px}.user-form-fields__static-label[data-v-0d9243e9]{font-size:var(--font-size-small, 13px);font-weight:500;line-height:1.5;color:var(--color-text-maxcontrast)}.user-form-fields__static-value[data-v-0d9243e9]{font-size:var(--default-font-size, 14px);line-height:1.5;color:var(--color-main-text)}.user-form-fields__hint[data-v-0d9243e9]{color:var(--color-text-maxcontrast);margin-block-start:calc(var(--default-grid-baseline, 4px)*2);align-self:flex-start}.user-form-fields[data-v-0d9243e9] .user-form__item{width:100%}.user-form-fields[data-v-0d9243e9] .user-form__select{width:100%}.user-form-fields__error-summary[data-v-0d9243e9]{width:100%;margin-block-start:calc(var(--default-grid-baseline, 4px)*2);color:var(--color-error);font-size:var(--default-font-size, 14px)}.user-form-fields__error-summary p[data-v-0d9243e9]{margin-block:calc(var(--default-grid-baseline, 4px)/2)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserFormFields.vue"],names:[],mappings:"AACA,mCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,+CAAA,CAEA,yCACC,UAAA,CAEA,kEACC,qCAAA,CAIF,2CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,8CAAA,CACA,8CAAA,CACA,+FAAA,CAIA,gBAAA,CAEA,iDACC,sCAAA,CACA,eAAA,CACA,eAAA,CACA,mCAAA,CAGD,iDACC,wCAAA,CACA,eAAA,CACA,4BAAA,CAIF,yCACC,mCAAA,CACA,4DAAA,CACA,qBAAA,CAID,oDACC,UAAA,CAGD,sDACC,UAAA,CAGD,kDACC,UAAA,CACA,4DAAA,CACA,wBAAA,CACA,wCAAA,CAEA,oDACC,sDAAA",sourcesContent:["\n.user-form-fields {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\n\t&__item {\n\t\twidth: 100%;\n\n\t\t&:not(:focus):not(:active) {\n\t\t\tborder-color: var(--color-border-dark);\n\t\t}\n\t}\n\n\t&__static {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-height: var(--default-clickable-area, 44px);\n\t\tpadding: var(--border-width-input-focused, 2px);\n\t\tpadding-inline: calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));\n\n\t\t// Manually align static value with inputs below until we have a static field in component lib.\n\t\t// See: https://github.com/nextcloud/server/issues/53862#issuecomment-4212613996\n\t\tmargin-left: 18px;\n\n\t\t&-label {\n\t\t\tfont-size: var(--font-size-small, 13px);\n\t\t\tfont-weight: 500;\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t&-value {\n\t\t\tfont-size: var(--default-font-size, 14px);\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n\n\t&__hint {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\n\t\talign-self: flex-start;\n\t}\n\n\t// Reach into sub-component root elements to apply consistent sizing\n\t:deep(.user-form__item) {\n\t\twidth: 100%;\n\t}\n\n\t:deep(.user-form__select) {\n\t\twidth: 100%;\n\t}\n\n\t&__error-summary {\n\t\twidth: 100%;\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\n\t\tcolor: var(--color-error);\n\t\tfont-size: var(--default-font-size, 14px);\n\n\t\tp {\n\t\t\tmargin-block: calc(var(--default-grid-baseline, 4px) / 2);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},60508(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".user-form-groups[data-v-4041cacf]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px)*2) 0;width:100%}.user-form__item[data-v-4041cacf]{width:100%}.user-form__select[data-v-4041cacf]{width:100%}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserFormGroups.vue"],names:[],mappings:"AACA,mCACC,YAAA,CACA,qBAAA,CACA,+CAAA,CACA,UAAA,CAGD,kCACC,UAAA,CAGD,oCACC,UAAA",sourcesContent:["\n.user-form-groups {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\twidth: 100%;\n}\n\n.user-form__item {\n\twidth: 100%;\n}\n\n.user-form__select {\n\twidth: 100%;\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},75427(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".footer[data-v-4ff6ba29]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-4ff6ba29]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-4ff6ba29],.footer__cell span[data-v-4ff6ba29],.footer__cell label[data-v-4ff6ba29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-4ff6ba29],.footer__cell--displayname[data-v-4ff6ba29]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-4ff6ba29]{inset-inline-start:0}.footer__cell--displayname[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-4ff6ba29]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-4ff6ba29]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-4ff6ba29]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-4ff6ba29]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--groups[data-v-4ff6ba29]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.footer__cell--obfuscated[data-v-4ff6ba29]{min-width:400px;width:400px}.footer__cell--fill[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-4ff6ba29]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-4ff6ba29]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-4ff6ba29]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-4ff6ba29]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserListFooter.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDzGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.footer {\n\t@include styles.row;\n\t@include styles.cell;\n\n\t&__cell {\n\t\tposition: sticky;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&--loading {\n\t\t\tinset-inline-start: 0;\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t&--count {\n\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\tmin-width: var(--cell-width);\n\t\t\twidth: var(--cell-width);\n\t\t}\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},94e3(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".header[data-v-53c64244]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-53c64244]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-53c64244],.header__cell span[data-v-53c64244],.header__cell label[data-v-53c64244]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-53c64244],.header__cell--displayname[data-v-53c64244]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-53c64244]{inset-inline-start:0}.header__cell--displayname[data-v-53c64244]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-53c64244]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-53c64244]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-53c64244]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-53c64244]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-53c64244]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--groups[data-v-53c64244]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.header__cell--obfuscated[data-v-53c64244]{min-width:400px;width:400px}.header__cell--fill[data-v-53c64244]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-53c64244]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-53c64244]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserListHeader.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.header {\n\tborder-bottom: 1px solid var(--color-border);\n\n\t@include styles.row;\n\t@include styles.cell;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},81761(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".user-list__row[data-v-78b3749c]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-78b3749c]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-78b3749c]:not(.row__cell--actions){background-color:var(--color-background-hover)}.row__cell[data-v-78b3749c]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-78b3749c],.row__cell span[data-v-78b3749c],.row__cell label[data-v-78b3749c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-78b3749c],.row__cell--displayname[data-v-78b3749c]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-78b3749c]{inset-inline-start:0}.row__cell--displayname[data-v-78b3749c]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-78b3749c]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-78b3749c]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-78b3749c]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-78b3749c]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-78b3749c]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--groups[data-v-78b3749c]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.row__cell--obfuscated[data-v-78b3749c]{min-width:400px;width:400px}.row__cell--fill[data-v-78b3749c]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-78b3749c]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-78b3749c]{color:var(--color-text-maxcontrast)}.row__cell[data-v-78b3749c]{border-bottom:1px solid var(--color-border)}.row__progress[data-v-78b3749c]{margin-top:4px}.row__progress--warn[data-v-78b3749c]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-78b3749c]::-webkit-progress-value{background:var(--color-warning) !important}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserRow.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CCKF,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CD9FD,4BACC,2CAAA,CAGD,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.user-list__row {\n\t@include styles.row;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\n\t\t.row__cell:not(.row__cell--actions) {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n}\n\n.row {\n\t@include styles.cell;\n\n\t&__cell {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__progress {\n\t\tmargin-top: 4px;\n\n\t\t&--warn {\n\t\t\t&::-moz-progress-bar {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t\t&::-webkit-progress-value {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},59381(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".dialog__note[data-v-649c1de8]{font-weight:normal}fieldset[data-v-649c1de8]{font-weight:bold}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue"],names:[],mappings:"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA",sourcesContent:["\n.dialog {\n\t&__note {\n\t\tfont-weight: normal;\n\t}\n}\n\nfieldset {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},66291(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".user-list[data-v-65d37ac4]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-width-groups: 380px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-65d37ac4],.user-list__footer[data-v-65d37ac4]{position:sticky;display:block}.user-list__header[data-v-65d37ac4]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-65d37ac4]{inset-inline-start:0}.user-list__body[data-v-65d37ac4]{display:flex;flex-direction:column;width:100%}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/VirtualList.vue"],names:[],mappings:"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,0BAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA",sourcesContent:["\n.user-list {\n\t--avatar-cell-width: 48px;\n\t--cell-padding: 7px;\n\t--cell-width: 200px;\n\t--cell-width-large: 300px;\n\t--cell-width-groups: 380px;\n\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\n\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\n\n\t// Necessary for virtual scroll optimized rendering\n\tdisplay: block;\n\toverflow: auto;\n\theight: 100%;\n\twill-change: scroll-position;\n\n\t&__header,\n\t&__footer {\n\t\tposition: sticky;\n\t\t// Fix sticky positioning in Firefox\n\t\tdisplay: block;\n\t}\n\n\t&__header {\n\t\ttop: 0;\n\t\tz-index: calc(var(--sticky-column-z-index) + 1);\n\t}\n\n\t&__footer {\n\t\tinset-inline-start: 0;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},7784(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".app-content[data-v-7690bc0a]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}","",{version:3,sources:["webpack://./apps/settings/src/views/UserManagement.vue"],names:[],mappings:"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA",sourcesContent:["\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},34895(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".account-management__navigation[data-v-1fd1d021] .app-navigation__body{will-change:scroll-position}.account-management__search[data-v-1fd1d021]{padding-block:var(--default-grid-baseline, 4px);padding-inline:var(--app-navigation-padding, 8px)}.account-management__system-list[data-v-1fd1d021]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-1fd1d021]{height:100% !important}.account-management__settings-toggle[data-v-1fd1d021]{margin-bottom:var(--body-container-margin)}.account-management__settings-toggle-text[data-v-1fd1d021]{font-weight:500}","",{version:3,sources:["webpack://./apps/settings/src/views/UserManagementNavigation.vue"],names:[],mappings:"AAGE,uEACC,2BAAA,CAGF,6CACC,+CAAA,CACA,iDAAA,CAGD,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,0CAAA,CAEA,2DACC,eAAA",sourcesContent:["\n.account-management {\n\t&__navigation {\n\t\t:deep(.app-navigation__body) {\n\t\t\twill-change: scroll-position;\n\t\t}\n\t}\n\t&__search {\n\t\tpadding-block: var(--default-grid-baseline, 4px);\n\t\tpadding-inline: var(--app-navigation-padding, 8px);\n\t}\n\n\t&__system-list {\n\t\theight: auto !important;\n\t\toverflow: visible !important;\n\t}\n\n\t&__group-list {\n\t\theight: 100% !important;\n\t}\n\n\t&__settings-toggle {\n\t\tmargin-bottom: var(--body-container-margin);\n\n\t\t&-text {\n\t\t\tfont-weight: 500;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},87805(t,e,n){var s=n(43360),i=n(75288);t.exports=function(t,e,n){(void 0!==n&&!i(t[e],n)||void 0===n&&!(e in t))&&s(t,e,n)}},85250(t,e,n){var s=n(37217),i=n(87805),r=n(86649),o=n(42824),a=n(23805),l=n(37241),c=n(14974);t.exports=function t(e,n,d,u,p){e!==n&&r(n,function(r,l){if(p||(p=new s),a(r))o(e,n,l,d,t,u,p);else{var h=u?u(c(e,l),r,l+"",e,n,p):void 0;void 0===h&&(h=r),i(e,l,h)}},l)}},42824(t,e,n){var s=n(87805),i=n(93290),r=n(71961),o=n(23007),a=n(35529),l=n(72428),c=n(56449),d=n(83693),u=n(3656),p=n(1882),h=n(23805),f=n(11331),g=n(37167),m=n(14974),A=n(69884);t.exports=function(t,e,n,v,_,w,C){var b=m(t,n),y=m(e,n),x=C.get(y);if(x)s(t,n,x);else{var k=w?w(b,y,n+"",t,e,C):void 0,N=void 0===k;if(N){var O=c(y),S=!O&&u(y),E=!O&&!S&&g(y);k=y,O||S||E?c(b)?k=b:d(b)?k=o(b):S?(N=!1,k=i(y,!0)):E?(N=!1,k=r(y,!0)):k=[]:f(y)||l(y)?(k=b,l(b)?k=A(b):h(b)&&!p(b)||(k=a(y))):N=!1}N&&(C.set(y,k),_(k,y,v,w,C),C.delete(y)),s(t,n,k)}}},20999(t,e,n){var s=n(69302),i=n(36800);t.exports=function(t){return s(function(e,n){var s=-1,r=n.length,o=r>1?n[r-1]:void 0,a=r>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(r--,o):void 0,a&&i(n[0],n[1],a)&&(o=r<3?void 0:o,r=1),e=Object(e);++s{const t=[];s.O=(e,n,i,r)=>{if(n){r||=0;for(var o=t.length;o>0&&t[o-1][2]>r;o--)t[o]=t[o-1];return void(t[o]=[n,i,r])}let a=1/0;for(o=0;o=r)||!Object.keys(s.O).every(t=>s.O[t](n[l]))?(c=!1,r{const e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.cw=t=>{var e;return()=>{if(t){var n=t;t=0,e={exports:{}},n.call(e.exports,e,e.exports)}return e.exports}},s.d=(t,e)=>{if(Array.isArray(e))for(var n=0;nPromise.all(Object.keys(s.f).reduce((e,n)=>(s.f[n](t,e),e),[])),s.u=t=>t+"-"+t+".js?v="+{4005:"f2b35c8f02e136bf5a37",4017:"808775e77c7d18946064",5236:"12345564233a9b536e29",5862:"7ef93f7f33f9a069a0de",6798:"93837c551f35879aa50f",7471:"e1dc641ea8726e1b57ce",7859:"90097d6186e001a6fb28",8259:"79b917f7438068af7e66",8374:"baf178fdc31f0e575ab0",8689:"2a36f0347d469ae8619d"}[t],s.o=(t,e)=>Object.hasOwn(t,e),(()=>{const t={},e="nextcloud-ui-legacy:";s.l=(n,i,r,o)=>{if(t[n])return void t[n].push(i);let a,l;if(void 0!==r){const t=document.getElementsByTagName("script");for(var c=0;c{a.onerror=a.onload=null,clearTimeout(u);const i=t[n];if(delete t[n],a.parentNode?.removeChild(a),i?.forEach(t=>t(s)),e)return e(s)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),l&&document.head.appendChild(a)}})(),s.r=t=>{Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),s.j=516,s.dn=t=>{var e=Object.getOwnPropertyDescriptor(t,"name");(!e||!e.writable&&e.configurable)&&Object.defineProperty(t,"name",{value:"default",configurable:!0})},(()=>{let t;globalThis.importScripts&&(t=globalThis.location+"");const e=globalThis.document;if(!t&&e&&("SCRIPT"===e.currentScript?.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){const n=e.getElementsByTagName("script");if(n.length){let e=n.length-1;for(;e>-1&&(!t||!/^https?:/.test(t));)t=n[e--].src}}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:|[?#].*$/g,"").replace(/\/[^/]+$/,"/"),s.p=t})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;const t={516:0,7471:0};s.f.j=(e,n)=>{let i=s.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{const r=new Promise((n,s)=>i=t[e]=[n,s]);n.push(i[2]=r);const o=new Error,a=n=>{if(s.o(t,e)&&(i=t[e],0!==i&&(t[e]=void 0),i)){const t=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;o.message="Loading chunk "+e+" failed.\n("+t+": "+s+")",o.name="ChunkLoadError",o.type=t,o.request=s,o.event=n,i[1](o)}};s.l(s.p+s.u(e),a,"chunk-"+e,e)}},s.O.j=e=>0===t[e];const e=(e,n)=>{let[i,r,o]=n;var a,l,c=0;if(i.some(e=>0!==t[e])){for(a in r)s.o(r,a)&&(s.m[a]=r[a]);if(o)var d=o(s)}for(e&&e(n);cs(34002));i=s.O(i)})(); -//# sourceMappingURL=settings-vue-settings-users-management.js.map?v=ff90198050f53ea90cf1 \ No newline at end of file +(()=>{var e={30484(e,n,s){"use strict";var i=s(21777),r=s(44368),o=s(53334),a=s(93346),l=s(10810);function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function d(t){var e=function(t){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:e+""}function u(t,e,n){return(e=d(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function p(t,e){for(var n=0;n=0)return 1;return 0}(),g=h&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},f))}};function m(t){return t&&"[object Function]"==={}.toString.call(t)}function A(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function v(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function _(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=A(t),n=e.overflow,s=e.overflowX,i=e.overflowY;return/(auto|scroll|overlay)/.test(n+i+s)?t:_(v(t))}function w(t){return t&&t.referenceNode?t.referenceNode:t}var C=h&&!(!window.MSInputMethodContext||!document.documentMode),b=h&&/MSIE 10/.test(navigator.userAgent);function y(t){return 11===t?C:10===t?b:C||b}function x(t){if(!t)return document.documentElement;for(var e=y(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var s=n&&n.nodeName;return s&&"BODY"!==s&&"HTML"!==s?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===A(n,"position")?x(n):n:t?t.ownerDocument.documentElement:document.documentElement}function k(t){return null!==t.parentNode?k(t.parentNode):t}function N(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,s=n?t:e,i=n?e:t,r=document.createRange();r.setStart(s,0),r.setEnd(i,0);var o,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||s.contains(i))return"BODY"===(a=(o=l).nodeName)||"HTML"!==a&&x(o.firstElementChild)!==o?x(l):l;var c=k(t);return c.host?N(c.host,e):N(t,k(e).host)}function O(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var s=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||s)[e]}return t[e]}function S(t,e){var n="x"===e?"Left":"Top",s="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+s+"Width"])}function E(t,e,n,s){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],y(10)?parseInt(n["offset"+t])+parseInt(s["margin"+("Height"===t?"Top":"Left")])+parseInt(s["margin"+("Height"===t?"Bottom":"Right")]):0)}function L(t){var e=t.body,n=t.documentElement,s=y(10)&&getComputedStyle(n);return{height:E("Height",e,n,s),width:E("Width",e,n,s)}}var U=function(){function t(t,e){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],s=y(10),i="HTML"===e.nodeName,r=I(t),o=I(e),a=_(t),l=A(e),c=parseFloat(l.borderTopWidth),d=parseFloat(l.borderLeftWidth);n&&i&&(o.top=Math.max(o.top,0),o.left=Math.max(o.left,0));var u=T({top:r.top-o.top-c,left:r.left-o.left-d,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!s&&i){var p=parseFloat(l.marginTop),h=parseFloat(l.marginLeft);u.top-=c-p,u.bottom-=c-p,u.left-=d-h,u.right-=d-h,u.marginTop=p,u.marginLeft=h}return(s&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=O(e,"top"),i=O(e,"left"),r=n?-1:1;return t.top+=s*r,t.bottom+=s*r,t.left+=i*r,t.right+=i*r,t}(u,e)),u}function B(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===A(t,"position"))return!0;var n=v(t);return!!n&&B(n)}function P(t){if(!t||!t.parentElement||y())return document.documentElement;for(var e=t.parentElement;e&&"none"===A(e,"transform");)e=e.parentElement;return e||document.documentElement}function F(t,e,n,s){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},o=i?P(t):N(t,w(e));if("viewport"===s)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,s=$(t,n),i=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),o=e?0:O(n),a=e?0:O(n,"left");return T({top:o-s.top+s.marginTop,left:a-s.left+s.marginLeft,width:i,height:r})}(o,i);else{var a=void 0;"scrollParent"===s?"BODY"===(a=_(v(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===s?t.ownerDocument.documentElement:s;var l=$(a,o,i);if("HTML"!==a.nodeName||B(o))r=l;else{var c=L(t.ownerDocument),d=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=d+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var p="number"==typeof(n=n||0);return r.left+=p?n:n.left||0,r.top+=p?n:n.top||0,r.right-=p?n:n.right||0,r.bottom-=p?n:n.bottom||0,r}function M(t,e,n,s,i){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var o=F(n,s,r,i),a={top:{width:o.width,height:e.top-o.top},right:{width:o.right-e.right,height:o.height},bottom:{width:o.width,height:o.bottom-e.bottom},left:{width:e.left-o.left,height:o.height}},l=Object.keys(a).map(function(t){return G({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,s=t.height;return e>=n.clientWidth&&s>=n.clientHeight}),d=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return d+(u?"-"+u:"")}function j(t,e,n){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return $(n,s?P(e):N(e,w(n)),s)}function q(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),s=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+s,height:t.offsetHeight+n}}function R(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function z(t,e,n){n=n.split("-")[0];var s=q(t),i={width:s.width,height:s.height},r=-1!==["right","left"].indexOf(n),o=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return i[o]=e[o]+e[l]/2-s[l]/2,i[a]=n===a?e[a]-s[c]:e[R(a)],i}function H(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function W(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var s=H(t,function(t){return t[e]===n});return t.indexOf(s)}(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&m(n)&&(e.offsets.popper=T(e.offsets.popper),e.offsets.reference=T(e.offsets.reference),e=n(e,t))}),e}function V(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=j(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=M(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=z(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=W(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function Q(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function K(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),s=0;s1&&void 0!==arguments[1]&&arguments[1],n=at.indexOf(t),s=at.slice(n+1).concat(at.slice(0,n));return e?s.reverse():s}var ct={shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],s=e.split("-")[1];if(s){var i=t.offsets,r=i.reference,o=i.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",d={start:D({},l,r[l]),end:D({},l,r[l]+r[c]-o[c])};t.offsets.popper=G({},o,d[s])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n,s=e.offset,i=t.placement,r=t.offsets,o=r.popper,a=r.reference,l=i.split("-")[0];return n=nt(+s)?[+s,0]:function(t,e,n,s){var i=[0,0],r=-1!==["right","left"].indexOf(s),o=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=o.indexOf(H(o,function(t){return-1!==t.search(/,|\s/)}));o[a]&&-1===o[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[o.slice(0,a).concat([o[a].split(l)[0]]),[o[a].split(l)[1]].concat(o.slice(a+1))]:[o];return c=c.map(function(t,s){var i=(1===s?!r:r)?"height":"width",o=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,o=!0,t):o?(t[t.length-1]+=e,o=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,s){var i=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],o=i[2];return r?0===o.indexOf("%")?T("%p"===o?n:s)[e]/100*r:"vh"===o||"vw"===o?("vh"===o?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:t}(t,i,e,n)})}),c.forEach(function(t,e){t.forEach(function(n,s){nt(n)&&(i[e]+=n*("-"===t[s-1]?-1:1))})}),i}(s,o,a,l),"left"===l?(o.top+=n[0],o.left-=n[1]):"right"===l?(o.top+=n[0],o.left+=n[1]):"top"===l?(o.left+=n[0],o.top-=n[1]):"bottom"===l&&(o.left+=n[0],o.top+=n[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||x(t.instance.popper);t.instance.reference===n&&(n=x(n));var s=K("transform"),i=t.instance.popper.style,r=i.top,o=i.left,a=i[s];i.top="",i.left="",i[s]="";var l=F(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);i.top=r,i.left=o,i[s]=a,e.boundaries=l;var c=e.priority,d=t.offsets.popper,u={primary:function(t){var n=d[t];return d[t]l[t]&&!e.escapeWithReference&&(s=Math.min(d[n],l[t]-("right"===t?d.width:d.height))),D({},n,s)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";d=G({},d,u[e](t))}),t.offsets.popper=d,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,s=e.reference,i=t.placement.split("-")[0],r=Math.floor,o=-1!==["top","bottom"].indexOf(i),a=o?"right":"bottom",l=o?"left":"top",c=o?"width":"height";return n[a]r(s[a])&&(t.offsets.popper[l]=r(s[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!rt(t.instance.modifiers,"arrow","keepTogether"))return t;var s=e.element;if("string"==typeof s){if(!(s=t.instance.popper.querySelector(s)))return t}else if(!t.instance.popper.contains(s))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var i=t.placement.split("-")[0],r=t.offsets,o=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(i),c=l?"height":"width",d=l?"Top":"Left",u=d.toLowerCase(),p=l?"left":"top",h=l?"bottom":"right",f=q(s)[c];a[h]-fo[h]&&(t.offsets.popper[u]+=a[u]+f-o[h]),t.offsets.popper=T(t.offsets.popper);var g=a[u]+a[c]/2-f/2,m=A(t.instance.popper),v=parseFloat(m["margin"+d]),_=parseFloat(m["border"+d+"Width"]),w=g-t.offsets.popper[u]-v-_;return w=Math.max(Math.min(o[c]-f,w),0),t.arrowElement=s,t.offsets.arrow=(D(n={},u,Math.round(w)),D(n,p,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Q(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=F(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),s=t.placement.split("-")[0],i=R(s),r=t.placement.split("-")[1]||"",o=[];switch(e.behavior){case"flip":o=[s,i];break;case"clockwise":o=lt(s);break;case"counterclockwise":o=lt(s,!0);break;default:o=e.behavior}return o.forEach(function(a,l){if(s!==a||o.length===l+1)return t;s=t.placement.split("-")[0],i=R(s);var c=t.offsets.popper,d=t.offsets.reference,u=Math.floor,p="left"===s&&u(c.right)>u(d.left)||"right"===s&&u(c.left)u(d.top)||"bottom"===s&&u(c.top)u(n.right),g=u(c.top)u(n.bottom),A="left"===s&&h||"right"===s&&f||"top"===s&&g||"bottom"===s&&m,v=-1!==["top","bottom"].indexOf(s),_=!!e.flipVariations&&(v&&"start"===r&&h||v&&"end"===r&&f||!v&&"start"===r&&g||!v&&"end"===r&&m),w=!!e.flipVariationsByContent&&(v&&"start"===r&&f||v&&"end"===r&&h||!v&&"start"===r&&m||!v&&"end"===r&&g),C=_||w;(p||A||C)&&(t.flipped=!0,(p||A)&&(s=o[l+1]),C&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=s+(r?"-"+r:""),t.offsets.popper=G({},t.offsets.popper,z(t.instance.popper,t.offsets.reference,t.placement)),t=W(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],s=t.offsets,i=s.popper,r=s.reference,o=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return i[o?"left":"top"]=r[n]-(a?i[o?"width":"height"]:0),t.placement=R(e),t.offsets.popper=T(i),t}},hide:{order:800,enabled:!0,fn:function(t){if(!rt(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=H(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(s.update)},this.update=g(this.update.bind(this)),this.options=G({},t.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(G({},t.Defaults.modifiers,i.modifiers)).forEach(function(e){s.options.modifiers[e]=G({},t.Defaults.modifiers[e]||{},i.modifiers?i.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return G({name:t},s.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&m(t.onLoad)&&t.onLoad(s.reference,s.popper,s.options,t,s.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return U(t,[{key:"update",value:function(){return V.call(this)}},{key:"destroy",value:function(){return Y.call(this)}},{key:"enableEventListeners",value:function(){return tt.call(this)}},{key:"disableEventListeners",value:function(){return et.call(this)}}]),t}();ut.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,ut.placements=ot,ut.Defaults=dt;const pt=ut;var ht,ft=s(2404),gt=s.n(ft);function mt(){mt.init||(mt.init=!0,ht=-1!==function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var n=t.indexOf("rv:");return parseInt(t.substring(n+3,t.indexOf(".",n)),10)}var s=t.indexOf("Edge/");return s>0?parseInt(t.substring(s+5,t.indexOf(".",s)),10):-1}())}function At(t,e,n,s,i,r,o,a,l,c){"boolean"!=typeof o&&(l=a,a=o,o=!1);var d,u="function"==typeof n?n.options:n;if(t&&t.render&&(u.render=t.render,u.staticRenderFns=t.staticRenderFns,u._compiled=!0,i&&(u.functional=!0)),s&&(u._scopeId=s),r?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,l(t)),t&&t._registeredComponents&&t._registeredComponents.add(r)},u._ssrRegister=d):e&&(d=o?function(t){e.call(this,c(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,a(t))}),d)if(u.functional){var p=u.render;u.render=function(t,e){return d.call(e),p(t,e)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,d):[d]}return n}var vt={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var t=this;mt(),this.$nextTick(function(){t._w=t.$el.offsetWidth,t._h=t.$el.offsetHeight,t.emitOnMount&&t.emitSize()});var e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",ht&&this.$el.appendChild(e),e.data="about:blank",ht||this.$el.appendChild(e)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!ht&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},_t=function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};_t._withStripped=!0;var wt=At({render:_t,staticRenderFns:[]},void 0,vt,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),Ct={version:"1.0.1",install:function(t){t.component("resize-observer",wt),t.component("ResizeObserver",wt)}},bt=null;"undefined"!=typeof window?bt=window.Vue:"undefined"!=typeof globalThis&&(bt=globalThis.Vue),bt&&bt.use(Ct);var yt=s(55364),xt=s.n(yt),kt=function(){};function Nt(t){return"string"==typeof t&&(t=t.split(" ")),t}function Ot(t,e){var n,s=Nt(e);n=t.className instanceof kt?Nt(t.className.baseVal):Nt(t.className),s.forEach(function(t){-1===n.indexOf(t)&&n.push(t)}),t instanceof SVGElement?t.setAttribute("class",n.join(" ")):t.className=n.join(" ")}function St(t,e){var n,s=Nt(e);n=t.className instanceof kt?Nt(t.className.baseVal):Nt(t.className),s.forEach(function(t){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}),t instanceof SVGElement?t.setAttribute("class",n.join(" ")):t.className=n.join(" ")}"undefined"!=typeof window&&(kt=window.SVGAnimatedString);var Et=!1;if("undefined"!=typeof window){Et=!1;try{var Lt=Object.defineProperty({},"passive",{get:function(){Et=!0}});window.addEventListener("test",null,Lt)}catch(t){}}function Ut(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,s)}return n}function Dt(t){for(var e=1;e
',trigger:"hover focus",offset:0},Tt=[],It=function(){function t(e,n){var s=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),u(this,"_events",[]),u(this,"_setTooltipNodeEvent",function(t,e,n,i){var r=t.relatedreference||t.toElement||t.relatedTarget;return!!s._tooltipNode.contains(r)&&(s._tooltipNode.addEventListener(t.type,function n(r){var o=r.relatedreference||r.toElement||r.relatedTarget;s._tooltipNode.removeEventListener(t.type,n),e.contains(o)||s._scheduleHide(e,i.delay,i,r)}),!0)}),n=Dt(Dt({},Gt),n),e.jquery&&(e=e[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=e,this.options=n,this._isOpen=!1,this._init()}return e=t,n=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(t){this._classes=t}},{key:"setContent",value:function(t){this.options.title=t,this._tooltipNode&&this._setContent(t,this.options)}},{key:"setOptions",value:function(t){var e=!1,n=t&&t.classes||Wt.options.defaultClass;gt()(this._classes,n)||(this.setClasses(n),e=!0),t=jt(t);var s=!1,i=!1;for(var r in this.options.offset===t.offset&&this.options.placement===t.placement||(s=!0),(this.options.template!==t.template||this.options.trigger!==t.trigger||this.options.container!==t.container||e)&&(i=!0),t)this.options[r]=t[r];if(this._tooltipNode)if(i){var o=this._isOpen;this.dispose(),this._init(),o&&this.show()}else s&&this.popperInstance.update()}},{key:"_init",value:function(){var t="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===t.indexOf("manual"),t=t.filter(function(t){return-1!==["click","hover","focus"].indexOf(t)}),this._setEventListeners(this.reference,t,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(t,e){var n=this,s=window.document.createElement("div");s.innerHTML=e.trim();var i=s.childNodes[0];return i.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),i.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(i.addEventListener("mouseenter",function(e){return n._scheduleHide(t,n.options.delay,n.options,e)}),i.addEventListener("click",function(e){return n._scheduleHide(t,n.options.delay,n.options,e)})),i}},{key:"_setContent",value:function(t,e){var n=this;this.asyncContent=!1,this._applyContent(t,e).then(function(){n.popperInstance&&n.popperInstance.update()})}},{key:"_applyContent",value:function(t,e){var n=this;return new Promise(function(s,i){var r=e.html,o=n._tooltipNode;if(o){var a=o.querySelector(n.options.innerSelector);if(1===t.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(t)}}else{if("function"==typeof t){var l=t();return void(l&&"function"==typeof l.then?(n.asyncContent=!0,e.loadingClass&&Ot(o,e.loadingClass),e.loadingContent&&n._applyContent(e.loadingContent,e),l.then(function(t){return e.loadingClass&&St(o,e.loadingClass),n._applyContent(t,e)}).then(s).catch(i)):n._applyContent(l,e).then(s).catch(i))}r?a.innerHTML=t:a.innerText=t}s()}})}},{key:"_show",value:function(t,e){if(!e||"string"!=typeof e.container||document.querySelector(e.container)){clearTimeout(this._disposeTimer),delete(e=Object.assign({},e)).offset;var n=!0;this._tooltipNode&&(Ot(this._tooltipNode,this._classes),n=!1);var s=this._ensureShown(t,e);return n&&this._tooltipNode&&Ot(this._tooltipNode,this._classes),Ot(t,["v-tooltip-open"]),s}}},{key:"_ensureShown",value:function(t,e){var n=this;if(this._isOpen)return this;if(this._isOpen=!0,Tt.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(e.title,e),this;var s=t.getAttribute("title")||e.title;if(!s)return this;var i=this._create(t,e.template);this._tooltipNode=i,t.setAttribute("aria-describedby",i.id);var r=this._findContainer(e.container,t);this._append(i,r);var o=Dt(Dt({},e.popperOptions),{},{placement:e.placement});return o.modifiers=Dt(Dt({},o.modifiers),{},{arrow:{element:this.options.arrowSelector}}),e.boundariesElement&&(o.modifiers.preventOverflow={boundariesElement:e.boundariesElement}),this.popperInstance=new pt(t,i,o),this._setContent(s,e),requestAnimationFrame(function(){!n._isDisposed&&n.popperInstance?(n.popperInstance.update(),requestAnimationFrame(function(){n._isDisposed?n.dispose():n._isOpen&&i.setAttribute("aria-hidden","false")})):n.dispose()}),this}},{key:"_noLongerOpen",value:function(){var t=Tt.indexOf(this);-1!==t&&Tt.splice(t,1)}},{key:"_hide",value:function(){var t=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var e=Wt.options.disposeTimeout;return null!==e&&(this._disposeTimer=setTimeout(function(){t._tooltipNode&&(t._tooltipNode.removeEventListener("mouseenter",t.hide),t._tooltipNode.removeEventListener("click",t.hide),t._removeTooltipNode())},e)),St(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var t=this._tooltipNode.parentNode;t&&(t.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var t=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(e){var n=e.func,s=e.event;t.reference.removeEventListener(s,n)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(t,e){return"string"==typeof t?t=window.document.querySelector(t):!1===t&&(t=e.parentNode),t}},{key:"_append",value:function(t,e){e.appendChild(t)}},{key:"_setEventListeners",value:function(t,e,n){var s=this,i=[],r=[];e.forEach(function(t){switch(t){case"hover":i.push("mouseenter"),r.push("mouseleave"),s.options.hideOnTargetClick&&r.push("click");break;case"focus":i.push("focus"),r.push("blur"),s.options.hideOnTargetClick&&r.push("click");break;case"click":i.push("click"),r.push("click")}}),i.forEach(function(e){var i=function(e){!0!==s._isOpen&&(e.usedByTooltip=!0,s._scheduleShow(t,n.delay,n,e))};s._events.push({event:e,func:i}),t.addEventListener(e,i)}),r.forEach(function(e){var i=function(e){!0!==e.usedByTooltip&&s._scheduleHide(t,n.delay,n,e)};s._events.push({event:e,func:i}),t.addEventListener(e,i)})}},{key:"_onDocumentTouch",value:function(t){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,t)}},{key:"_scheduleShow",value:function(t,e,n){var s=this,i=e&&e.show||e||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return s._show(t,n)},i)}},{key:"_scheduleHide",value:function(t,e,n,s){var i=this,r=e&&e.hide||e||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==i._isOpen&&i._tooltipNode.ownerDocument.body.contains(i._tooltipNode)){if("mouseleave"===s.type&&i._setTooltipNodeEvent(s,t,e,n))return;i._hide(t,n)}},r)}}],n&&p(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t;var e,n}();function $t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,s)}return n}function Bt(t){for(var e=1;e
',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function jt(t){var e={placement:void 0!==t.placement?t.placement:Wt.options.defaultPlacement,delay:void 0!==t.delay?t.delay:Wt.options.defaultDelay,html:void 0!==t.html?t.html:Wt.options.defaultHtml,template:void 0!==t.template?t.template:Wt.options.defaultTemplate,arrowSelector:void 0!==t.arrowSelector?t.arrowSelector:Wt.options.defaultArrowSelector,innerSelector:void 0!==t.innerSelector?t.innerSelector:Wt.options.defaultInnerSelector,trigger:void 0!==t.trigger?t.trigger:Wt.options.defaultTrigger,offset:void 0!==t.offset?t.offset:Wt.options.defaultOffset,container:void 0!==t.container?t.container:Wt.options.defaultContainer,boundariesElement:void 0!==t.boundariesElement?t.boundariesElement:Wt.options.defaultBoundariesElement,autoHide:void 0!==t.autoHide?t.autoHide:Wt.options.autoHide,hideOnTargetClick:void 0!==t.hideOnTargetClick?t.hideOnTargetClick:Wt.options.defaultHideOnTargetClick,loadingClass:void 0!==t.loadingClass?t.loadingClass:Wt.options.defaultLoadingClass,loadingContent:void 0!==t.loadingContent?t.loadingContent:Wt.options.defaultLoadingContent,popperOptions:Bt({},void 0!==t.popperOptions?t.popperOptions:Wt.options.defaultPopperOptions)};if(e.offset){var n=c(e.offset),s=e.offset;("number"===n||"string"===n&&-1===s.indexOf(","))&&(s="0, ".concat(s)),e.popperOptions.modifiers||(e.popperOptions.modifiers={}),e.popperOptions.modifiers.offset={offset:s}}return e.trigger&&-1!==e.trigger.indexOf("click")&&(e.hideOnTargetClick=!1),e}function qt(t,e){for(var n=t.placement,s=0;s2&&void 0!==arguments[2]?arguments[2]:{},s=Rt(e),i=void 0!==e.classes?e.classes:Wt.options.defaultClass,r=Bt({title:s},jt(Bt(Bt({},"object"===c(e)?e:{}),{},{placement:qt(e,n)}))),o=t._tooltip=new It(t,r);o.setClasses(i),o._vueEl=t;var a=void 0!==e.targetClasses?e.targetClasses:Wt.options.defaultTargetClass;return t._tooltipTargetClasses=a,Ot(t,a),o}(t,n,i),void 0!==n.show&&n.show!==t._tooltipOldShow&&(t._tooltipOldShow=n.show,n.show?s.show():s.hide())):zt(t)}var Wt={options:Mt,bind:Ht,update:Ht,unbind:function(t){zt(t)}};function Vt(t){t.addEventListener("click",Kt),t.addEventListener("touchstart",Yt,!!Et&&{passive:!0})}function Qt(t){t.removeEventListener("click",Kt),t.removeEventListener("touchstart",Yt),t.removeEventListener("touchend",Xt),t.removeEventListener("touchcancel",Jt)}function Kt(t){var e=t.currentTarget;t.closePopover=!e.$_vclosepopover_touch,t.closeAllPopover=e.$_closePopoverModifiers&&!!e.$_closePopoverModifiers.all}function Yt(t){if(1===t.changedTouches.length){var e=t.currentTarget;e.$_vclosepopover_touch=!0;var n=t.changedTouches[0];e.$_vclosepopover_touchPoint=n,e.addEventListener("touchend",Xt),e.addEventListener("touchcancel",Jt)}}function Xt(t){var e=t.currentTarget;if(e.$_vclosepopover_touch=!1,1===t.changedTouches.length){var n=t.changedTouches[0],s=e.$_vclosepopover_touchPoint;t.closePopover=Math.abs(n.screenY-s.screenY)<20&&Math.abs(n.screenX-s.screenX)<20,t.closeAllPopover=e.$_closePopoverModifiers&&!!e.$_closePopoverModifiers.all}}function Jt(t){t.currentTarget.$_vclosepopover_touch=!1}var Zt={bind:function(t,e){var n=e.value,s=e.modifiers;t.$_closePopoverModifiers=s,(void 0===n||n)&&Vt(t)},update:function(t,e){var n=e.value,s=e.oldValue,i=e.modifiers;t.$_closePopoverModifiers=i,n!==s&&(void 0===n||n?Vt(t):Qt(t))},unbind:function(t){Qt(t)}};function te(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,s)}return n}function ee(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=e.event;e.skipDelay;var s=e.force;!(void 0!==s&&s)&&this.disabled||(this.$_scheduleShow(n),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){t.$_beingShowed=!1})},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.event;t.skipDelay,this.$_scheduleHide(e),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var t=this.$refs.popover;t.parentNode&&t.parentNode.removeChild(t)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var t=this,e=this.$refs.trigger,n=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var s=this.$_findContainer(this.container,e);if(!s)return void console.warn("No container for popover",this);s.appendChild(n),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){t.hidden||(t.isOpen=!0)})}if(!this.popperInstance){var i=ee(ee({},this.popperOptions),{},{placement:this.placement});if(i.modifiers=ee(ee({},i.modifiers),{},{arrow:ee(ee({},i.modifiers&&i.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();i.modifiers.offset=ee(ee({},i.modifiers&&i.modifiers.offset),{},{offset:r})}this.boundariesElement&&(i.modifiers.preventOverflow=ee(ee({},i.modifiers&&i.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new pt(e,n,i),requestAnimationFrame(function(){if(t.hidden)return t.hidden=!1,void t.$_hide();!t.$_isDisposed&&t.popperInstance?(t.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(t.hidden)return t.hidden=!1,void t.$_hide();t.$_isDisposed?t.dispose():t.isOpen=!0})):t.dispose()})}var o=this.openGroup;if(o)for(var a,l=0;l1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),t)this.$_show();else{var e=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),e)}},$_scheduleHide:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),n)this.$_hide();else{var s=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(t.isOpen){if(e&&"mouseleave"===e.type&&t.$_setTooltipNodeEvent(e))return;t.$_hide()}},s)}},$_setTooltipNodeEvent:function(t){var e=this,n=this.$refs.trigger,s=this.$refs.popover,i=t.relatedreference||t.toElement||t.relatedTarget;return!!s.contains(i)&&(s.addEventListener(t.type,function i(r){var o=r.relatedreference||r.toElement||r.relatedTarget;s.removeEventListener(t.type,i),n.contains(o)||e.hide({event:r})}),!0)},$_removeEventListeners:function(){var t=this.$refs.trigger;this.$_events.forEach(function(e){var n=e.func,s=e.event;t.removeEventListener(s,n)}),this.$_events=[]},$_updatePopper:function(t){this.popperInstance&&(t(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var t=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),t&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),n&&(this.$_preventOpen=!0,setTimeout(function(){e.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function ae(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(n){var s=ie[n];if(s.$refs.popover){var i=s.$refs.popover.contains(t.target);requestAnimationFrame(function(){(t.closeAllPopover||t.closePopover&&i||s.autoHide&&!i)&&s.$_handleGlobalClose(t,e)})}},s=0;s1&&void 0!==arguments[1]?arguments[1]:{};if(!t.installed){t.installed=!0;var s={};xt()(s,Mt,n),pe.options=s,Wt.options=s,e.directive("tooltip",Wt),e.directive("close-popover",Zt),e.component("VPopover",ue)}},get enabled(){return Pt.enabled},set enabled(t){Pt.enabled=t}},he=null;"undefined"!=typeof window?he=window.Vue:"undefined"!=typeof globalThis&&(he=globalThis.Vue),he&&he.use(pe);const fe=pe;var ge=s(85471),me=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function Ae(t,e){if(void 0===e&&(e=[]),null===t||"object"!=typeof t)return t;var n,s=(n=function(e){return e.original===t},e.filter(n)[0]);if(s)return s.copy;var i=Array.isArray(t)?[]:{};return e.push({original:t,copy:i}),Object.keys(t).forEach(function(n){i[n]=Ae(t[n],e)}),i}function ve(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function _e(t){return null!==t&&"object"==typeof t}var we=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},Ce={namespaced:{configurable:!0}};Ce.namespaced.get=function(){return!!this._rawModule.namespaced},we.prototype.addChild=function(t,e){this._children[t]=e},we.prototype.removeChild=function(t){delete this._children[t]},we.prototype.getChild=function(t){return this._children[t]},we.prototype.hasChild=function(t){return t in this._children},we.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},we.prototype.forEachChild=function(t){ve(this._children,t)},we.prototype.forEachGetter=function(t){this._rawModule.getters&&ve(this._rawModule.getters,t)},we.prototype.forEachAction=function(t){this._rawModule.actions&&ve(this._rawModule.actions,t)},we.prototype.forEachMutation=function(t){this._rawModule.mutations&&ve(this._rawModule.mutations,t)},Object.defineProperties(we.prototype,Ce);var be,ye=function(t){this.register([],t,!1)};function xe(t,e,n){if(e.update(n),n.modules)for(var s in n.modules){if(!e.getChild(s))return;xe(t.concat(s),e.getChild(s),n.modules[s])}}ye.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},ye.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")},"")},ye.prototype.update=function(t){xe([],this.root,t)},ye.prototype.register=function(t,e,n){var s=this;void 0===n&&(n=!0);var i=new we(e,n);0===t.length?this.root=i:this.get(t.slice(0,-1)).addChild(t[t.length-1],i),e.modules&&ve(e.modules,function(e,i){s.register(t.concat(i),e,n)})},ye.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1],s=e.getChild(n);s&&s.runtime&&e.removeChild(n)},ye.prototype.isRegistered=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];return!!e&&e.hasChild(n)};var ke=function(t){var e=this;void 0===t&&(t={}),!be&&"undefined"!=typeof window&&window.Vue&&Ge(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var s=t.strict;void 0===s&&(s=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new ye(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new be,this._makeLocalGettersCache=Object.create(null);var i=this,r=this.dispatch,o=this.commit;this.dispatch=function(t,e){return r.call(i,t,e)},this.commit=function(t,e,n){return o.call(i,t,e,n)},this.strict=s;var a=this._modules.root.state;Le(this,a,[],this._modules.root),Ee(this,a),n.forEach(function(t){return t(e)}),(void 0!==t.devtools?t.devtools:be.config.devtools)&&function(t){me&&(t._devtoolHook=me,me.emit("vuex:init",t),me.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){me.emit("vuex:mutation",t,e)},{prepend:!0}),t.subscribeAction(function(t,e){me.emit("vuex:action",t,e)},{prepend:!0}))}(this)},Ne={state:{configurable:!0}};function Oe(t,e,n){return e.indexOf(t)<0&&(n&&n.prepend?e.unshift(t):e.push(t)),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function Se(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;Le(t,n,[],t._modules.root,!0),Ee(t,n,e)}function Ee(t,e,n){var s=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var i=t._wrappedGetters,r={};ve(i,function(e,n){r[n]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var o=be.config.silent;be.config.silent=!0,t._vm=new be({data:{$$state:e},computed:r}),be.config.silent=o,t.strict&&function(t){t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(t),s&&(n&&t._withCommit(function(){s._data.$$state=null}),be.nextTick(function(){return s.$destroy()}))}function Le(t,e,n,s,i){var r=!n.length,o=t._modules.getNamespace(n);if(s.namespaced&&(t._modulesNamespaceMap[o],t._modulesNamespaceMap[o]=s),!r&&!i){var a=Ue(e,n.slice(0,-1)),l=n[n.length-1];t._withCommit(function(){be.set(a,l,s.state)})}var c=s.context=function(t,e,n){var s=""===e,i={dispatch:s?t.dispatch:function(n,s,i){var r=De(n,s,i),o=r.payload,a=r.options,l=r.type;return a&&a.root||(l=e+l),t.dispatch(l,o)},commit:s?t.commit:function(n,s,i){var r=De(n,s,i),o=r.payload,a=r.options,l=r.type;a&&a.root||(l=e+l),t.commit(l,o,a)}};return Object.defineProperties(i,{getters:{get:s?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var n={},s=e.length;Object.keys(t.getters).forEach(function(i){if(i.slice(0,s)===e){var r=i.slice(s);Object.defineProperty(n,r,{get:function(){return t.getters[i]},enumerable:!0})}}),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return Ue(t.state,n)}}}),i}(t,o,n);s.forEachMutation(function(e,n){!function(t,e,n,s){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){n.call(t,s.state,e)})}(t,o+n,e,c)}),s.forEachAction(function(e,n){var s=e.root?n:o+n,i=e.handler||e;!function(t,e,n,s){(t._actions[e]||(t._actions[e]=[])).push(function(e){var i,r=n.call(t,{dispatch:s.dispatch,commit:s.commit,getters:s.getters,state:s.state,rootGetters:t.getters,rootState:t.state},e);return(i=r)&&"function"==typeof i.then||(r=Promise.resolve(r)),t._devtoolHook?r.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):r})}(t,s,i,c)}),s.forEachGetter(function(e,n){!function(t,e,n,s){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return n(s.state,s.getters,t.state,t.getters)})}(t,o+n,e,c)}),s.forEachChild(function(s,r){Le(t,e,n.concat(r),s,i)})}function Ue(t,e){return e.reduce(function(t,e){return t[e]},t)}function De(t,e,n){return _e(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function Ge(t){be&&t===be||function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(be=t)}Ne.state.get=function(){return this._vm._data.$$state},Ne.state.set=function(t){},ke.prototype.commit=function(t,e,n){var s=this,i=De(t,e,n),r=i.type,o=i.payload,a=(i.options,{type:r,payload:o}),l=this._mutations[r];l&&(this._withCommit(function(){l.forEach(function(t){t(o)})}),this._subscribers.slice().forEach(function(t){return t(a,s.state)}))},ke.prototype.dispatch=function(t,e){var n=this,s=De(t,e),i=s.type,r=s.payload,o={type:i,payload:r},a=this._actions[i];if(a){try{this._actionSubscribers.slice().filter(function(t){return t.before}).forEach(function(t){return t.before(o,n.state)})}catch(t){}var l=a.length>1?Promise.all(a.map(function(t){return t(r)})):a[0](r);return new Promise(function(t,e){l.then(function(e){try{n._actionSubscribers.filter(function(t){return t.after}).forEach(function(t){return t.after(o,n.state)})}catch(t){}t(e)},function(t){try{n._actionSubscribers.filter(function(t){return t.error}).forEach(function(e){return e.error(o,n.state,t)})}catch(t){}e(t)})})}},ke.prototype.subscribe=function(t,e){return Oe(t,this._subscribers,e)},ke.prototype.subscribeAction=function(t,e){return Oe("function"==typeof t?{before:t}:t,this._actionSubscribers,e)},ke.prototype.watch=function(t,e,n){var s=this;return this._watcherVM.$watch(function(){return t(s.state,s.getters)},e,n)},ke.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},ke.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),Le(this,this.state,t,this._modules.get(t),n.preserveState),Ee(this,this.state)},ke.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var n=Ue(e.state,t.slice(0,-1));be.delete(n,t[t.length-1])}),Se(this)},ke.prototype.hasModule=function(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)},ke.prototype.hotUpdate=function(t){this._modules.update(t),Se(this,!0)},ke.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(ke.prototype,Ne);var Te=Fe(function(t,e){var n={};return Pe(e).forEach(function(e){var s=e.key,i=e.val;n[s]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var s=Me(this.$store,0,t);if(!s)return;e=s.context.state,n=s.context.getters}return"function"==typeof i?i.call(this,e,n):e[i]},n[s].vuex=!0}),n}),Ie=Fe(function(t,e){var n={};return Pe(e).forEach(function(e){var s=e.key,i=e.val;n[s]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var s=this.$store.commit;if(t){var r=Me(this.$store,0,t);if(!r)return;s=r.context.commit}return"function"==typeof i?i.apply(this,[s].concat(e)):s.apply(this.$store,[i].concat(e))}}),n}),$e=Fe(function(t,e){var n={};return Pe(e).forEach(function(e){var s=e.key,i=e.val;i=t+i,n[s]=function(){if(!t||Me(this.$store,0,t))return this.$store.getters[i]},n[s].vuex=!0}),n}),Be=Fe(function(t,e){var n={};return Pe(e).forEach(function(e){var s=e.key,i=e.val;n[s]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var s=this.$store.dispatch;if(t){var r=Me(this.$store,0,t);if(!r)return;s=r.context.dispatch}return"function"==typeof i?i.apply(this,[s].concat(e)):s.apply(this.$store,[i].concat(e))}}),n});function Pe(t){return function(t){return Array.isArray(t)||_e(t)}(t)?Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}}):[]}function Fe(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function Me(t,e,n){return t._modulesNamespaceMap[n]}function je(t,e,n){var s=n?t.groupCollapsed:t.group;try{s.call(t,e)}catch(n){t.log(e)}}function qe(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function Re(){var t=new Date;return" @ "+ze(t.getHours(),2)+":"+ze(t.getMinutes(),2)+":"+ze(t.getSeconds(),2)+"."+ze(t.getMilliseconds(),3)}function ze(t,e){return n=e-t.toString().length,new Array(n+1).join("0")+t;var n}var He={Store:ke,install:Ge,version:"3.6.2",mapState:Te,mapMutations:Ie,mapGetters:$e,mapActions:Be,createNamespacedHelpers:function(t){return{mapState:Te.bind(null,t),mapGetters:$e.bind(null,t),mapMutations:Ie.bind(null,t),mapActions:Be.bind(null,t)}},createLogger:function(t){void 0===t&&(t={});var e=t.collapsed;void 0===e&&(e=!0);var n=t.filter;void 0===n&&(n=function(t,e,n){return!0});var s=t.transformer;void 0===s&&(s=function(t){return t});var i=t.mutationTransformer;void 0===i&&(i=function(t){return t});var r=t.actionFilter;void 0===r&&(r=function(t,e){return!0});var o=t.actionTransformer;void 0===o&&(o=function(t){return t});var a=t.logMutations;void 0===a&&(a=!0);var l=t.logActions;void 0===l&&(l=!0);var c=t.logger;return void 0===c&&(c=console),function(t){var d=Ae(t.state);void 0!==c&&(a&&t.subscribe(function(t,r){var o=Ae(r);if(n(t,d,o)){var a=Re(),l=i(t),u="mutation "+t.type+a;je(c,u,e),c.log("%c prev state","color: #9E9E9E; font-weight: bold",s(d)),c.log("%c mutation","color: #03A9F4; font-weight: bold",l),c.log("%c next state","color: #4CAF50; font-weight: bold",s(o)),qe(c)}d=o}),l&&t.subscribeAction(function(t,n){if(r(t,n)){var s=Re(),i=o(t),a="action "+t.type+s;je(c,a,e),c.log("%c action","color: #03A9F4; font-weight: bold",i),qe(c)}}))}}};const We=He;var Ve=s(58723),Qe=s(71323),Ke=s(18195),Ye=s(22378),Xe=s(9165),Je=s(85168),Ze=s(54914),tn=s(48943),en=s(6695),nn=s(88289),sn=s(74095),rn=s(94219),on=s(16044),an=s(82182),ln=s(67607);const cn=(0,s(35947).YK)().setApp("settings").detectUser().build();var dn=s(63814),un=s(36117);function pn(t){return{id:t.id,name:t.displayname,usercount:t.usercount,disabled:t.disabled,canAdd:t.canAdd,canRemove:t.canRemove}}function hn({search:t,offset:e,limit:n}){const s=new AbortController;return new un.CancelablePromise(async(i,o,a)=>{a(()=>s.abort());try{const{data:o}=await r.Ay.get((0,dn.KT)("/cloud/groups/details?search={search}&offset={offset}&limit={limit}",{search:t,offset:e,limit:n}),{signal:s.signal});i((o.ocs?.data?.groups??[]).map(pn))}catch(t){o(t)}})}const fn={name:"UserFormGroups",components:{NcSelect:ln.default},inject:["formData"],data:()=>({creatingGroup:!1,promise:null}),computed:{settings(){return this.$store.getters.getServerData},availableGroups(){return(this.settings.isAdmin||this.settings.isDelegatedAdmin?this.$store.getters.getSortedGroups:this.$store.getters.getSubAdminGroups).filter(({id:t})=>"__nc_internal_recent"!==t&&"disabled"!==t)},availableSubAdminGroups(){return this.availableGroups.filter(({id:t})=>"admin"!==t)},groupsLabel(){return this.settings.isAdmin||this.settings.isDelegatedAdmin?t("settings","Member of the following groups"):t("settings","Member of the following groups (required)")}},methods:{async searchGroups(e,n){if(this.settings.isAdmin||this.settings.isDelegatedAdmin){this.promise&&this.promise.cancel(),n(!0);try{this.promise=hn({search:e,offset:0,limit:25});const t=await this.promise;for(const e of t)this.$store.commit("addGroup",e)}catch(e){cn.error(t("settings","Failed to search groups"),{error:e})}this.promise=null,n(!1)}},async createGroup({name:e}){this.creatingGroup=!0;try{await this.$store.dispatch("addGroup",e),this.formData.groups.push({id:e,name:e})}catch(e){cn.error(t("settings","Failed to create group"),{error:e})}this.creatingGroup=!1}}};var gn=s(85072),mn=s.n(gn),An=s(97825),vn=s.n(An),_n=s(77659),wn=s.n(_n),Cn=s(55056),bn=s.n(Cn),yn=s(10540),xn=s.n(yn),kn=s(41113),Nn=s.n(kn),On=s(60508),Sn={};Sn.styleTagTransform=Nn(),Sn.setAttributes=bn(),Sn.insert=wn().bind(null,"head"),Sn.domAPI=vn(),Sn.insertStyleElement=xn(),mn()(On.A,Sn),On.A&&On.A.locals&&On.A.locals;var En=s(14486);const Ln=(0,En.A)(fn,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form-groups"},[e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"data-test":"groups","input-label":t.groupsLabel,placeholder:t.t("settings","Set account groups"),disabled:t.creatingGroup,options:t.availableGroups,label:"name","keep-open":"",multiple:!0,taggable:t.settings.isAdmin||t.settings.isDelegatedAdmin,required:!t.settings.isAdmin&&!t.settings.isDelegatedAdmin,"create-option":t=>({id:t,name:t,isCreating:!0})},on:{search:t.searchGroups,"option:created":t.createGroup},model:{value:t.formData.groups,callback:function(e){t.$set(t.formData,"groups",e)},expression:"formData.groups"}})],1),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Admin of the following groups"),placeholder:t.t("settings","Set account as admin for …"),disabled:t.creatingGroup,options:t.availableSubAdminGroups,"keep-open":"",multiple:!0,label:"name"},on:{search:t.searchGroups},model:{value:t.formData.subadminGroups,callback:function(e){t.$set(t.formData,"subadminGroups",e)},expression:"formData.subadminGroups"}})],1):t._e()])},[],!1,null,"4041cacf",null).exports;var Un=s(35810);const Dn={id:"none",label:(0,o.Tl)("settings","Unlimited")},Gn={id:"default",label:(0,o.Tl)("settings","Default quota")};function Tn(t,e){if(!t.language||""===t.language)return{code:"",name:""};return[...e?.commonLanguages??[],...e?.otherLanguages??[]].find(e=>e.code===t.language)||{code:t.language,name:t.language}}const In={name:"UserFormLanguage",components:{NcSelect:ln.default},inject:["formData"],computed:{showConfig(){return this.$store.getters.getShowConfig},languages(){const{commonLanguages:e,otherLanguages:n}=this.$store.getters.getServerData.languages;return[{name:t("settings","Common languages"),languages:e},...e,{name:t("settings","Other languages"),languages:n},...n]}},methods:{languageFilterBy:function(t,e,n){return t.languages?t.languages.some(({name:t})=>t.toLocaleLowerCase().includes(n.toLocaleLowerCase())):(e||"").toLocaleLowerCase().includes(n.toLocaleLowerCase())}}},$n=(0,En.A)(In,function(){var t=this,e=t._self._c;return t.showConfig.showLanguages?e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Language"),placeholder:t.t("settings","Set default language"),clearable:!1,selectable:t=>!t.languages,"filter-by":t.languageFilterBy,options:t.languages,label:"name"},model:{value:t.formData.language,callback:function(e){t.$set(t.formData,"language",e)},expression:"formData.language"}})],1):t._e()},[],!1,null,null,null).exports;var Bn=s(30859);const Pn={name:"UserFormManager",components:{NcSelectUsers:Bn.N},inject:["formData"],data:()=>({possibleManagers:[],loading:!1,searchTimeout:null}),computed:{managerModel(){const t=this.formData.manager;if(!t)return null;const e="object"==typeof t?t.id:t,n="object"==typeof t?t.displayname??t.id:t;return this._managerModelCache?.id===e&&this._managerModelCache?.displayName===n||(this._managerModelCache={id:e,displayName:n}),this._managerModelCache},managerOptions(){return this.possibleManagers.map(t=>({id:t.id,displayName:t.displayname??t.id,subname:t.email??""}))}},beforeUnmount(){clearTimeout(this.searchTimeout)},methods:{onManagerChange(t){this.formData.manager=t?{id:t.id,displayname:t.displayName}:""},searchUserManager(t){clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>this.fetchManagers(t),200)},async fetchManagers(t){this.loading=!0;try{const e=await this.$store.dispatch("searchUsers",{offset:0,limit:10,search:t}),n=e?.data?Object.values(e.data.ocs.data.users):[];this.possibleManagers=n}catch(t){cn.error("Failed to search user managers",{error:t})}finally{this.loading=!1}}}},Fn=Pn,Mn=(0,En.A)(Fn,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form__item user-form__managers"},[e("NcSelectUsers",{staticClass:"user-form__select",attrs:{"model-value":t.managerModel,"input-label":t.t("settings","Manager"),placeholder:t.t("settings","Search for a manager…"),options:t.managerOptions,loading:t.loading},on:{"update:modelValue":t.onManagerChange,search:t.searchUserManager}})],1)},[],!1,null,null,null).exports,jn={name:"UserFormQuota",components:{NcSelect:ln.default},inject:["formData"],props:{quotaOptions:{type:Array,required:!0}},methods:{validateQuota(t){return function(t,e){const n=(0,Un.lT)(t,!0);if(null!==n&&n>=0){const t=(0,Un.v7)(n);return{id:t,label:t}}return e}(t,this.quotaOptions[0])}}},qn=(0,En.A)(jn,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Quota"),placeholder:t.t("settings","Set account quota"),options:t.quotaOptions,clearable:!1,taggable:!0,"create-option":t.validateQuota},model:{value:t.formData.quota,callback:function(e){t.$set(t.formData,"quota",e)},expression:"formData.quota"}})],1)},[],!1,null,null,null).exports,Rn={name:"UserFormFields",components:{NcPasswordField:on.A,NcTextField:an.A,UserFormGroups:Ln,UserFormLanguage:$n,UserFormManager:Mn,UserFormQuota:qn},inject:["formData"],props:{quotaOptions:{type:Array,required:!0},fieldConfig:{type:Object,default:()=>({})},errors:{type:Object,default:()=>({})}},computed:{minPasswordLength(){return this.$store.getters.getPasswordPolicyMinLength},unhandledErrors(){const t=new Set(["displayName","password","email"]);return Object.fromEntries(Object.entries(this.errors).filter(([e])=>!t.has(e)))}},methods:{focusField(t){this.$refs[t]?.focus?.()}}};var zn=s(16301),Hn={};Hn.styleTagTransform=Nn(),Hn.setAttributes=bn(),Hn.insert=wn().bind(null,"head"),Hn.domAPI=vn(),Hn.insertStyleElement=xn(),mn()(zn.A,Hn),zn.A&&zn.A.locals&&zn.A.locals;const Wn=(0,En.A)(Rn,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form-fields"},[t.fieldConfig.username?.show&&t.fieldConfig.username?.disabled?e("div",{staticClass:"user-form-fields__item user-form-fields__static",attrs:{"data-test":"username"}},[e("span",{staticClass:"user-form-fields__static-label"},[t._v("\n\t\t\t"+t._s(t.fieldConfig.username?.label)+"\n\t\t")]),t._v(" "),e("span",{staticClass:"user-form-fields__static-value"},[t._v("\n\t\t\t"+t._s(t.formData.username)+"\n\t\t")])]):t.fieldConfig.username?.show?e("NcTextField",{ref:"username",staticClass:"user-form-fields__item",attrs:{"data-test":"username",label:t.fieldConfig.username?.label,autocapitalize:"none",autocomplete:"off",spellcheck:"false",pattern:"[a-zA-Z0-9 _\\.@\\-']+",required:t.fieldConfig.username?.required},on:{input:t.updateUsernameValidity,blur:t.updateUsernameValidity},model:{value:t.formData.username,callback:function(e){t.$set(t.formData,"username",e)},expression:"formData.username"}}):t._e(),t._v(" "),e("NcTextField",{staticClass:"user-form-fields__item",attrs:{"data-test":"displayName",label:t.t("settings","Display name"),error:!!t.errors.displayName,"helper-text":t.errors.displayName,autocapitalize:"none",autocomplete:"off",spellcheck:"false"},model:{value:t.formData.displayName,callback:function(e){t.$set(t.formData,"displayName",e)},expression:"formData.displayName"}}),t._v(" "),t.fieldConfig.showPasswordEmailHint?e("span",{staticClass:"user-form-fields__hint",attrs:{id:"password-email-hint"}},[t._v("\n\t\t"+t._s(t.t("settings","Either password or email is required"))+"\n\t")]):t._e(),t._v(" "),!1!==t.fieldConfig.password?.show?e("NcPasswordField",{ref:"password",staticClass:"user-form-fields__item",attrs:{"data-test":"password",minlength:t.minPasswordLength,maxlength:469,"aria-describedby":t.fieldConfig.showPasswordEmailHint?"password-email-hint":void 0,label:t.fieldConfig.password?.label,error:!!t.errors.password,"helper-text":t.errors.password,autocapitalize:"none",autocomplete:"new-password",spellcheck:"false",required:t.fieldConfig.password?.required},model:{value:t.formData.password,callback:function(e){t.$set(t.formData,"password",e)},expression:"formData.password"}}):t._e(),t._v(" "),e("NcTextField",{staticClass:"user-form-fields__item",attrs:{"data-test":"email",type:"email","aria-describedby":t.fieldConfig.showPasswordEmailHint?"password-email-hint":void 0,label:t.fieldConfig.email?.label||t.t("settings","Email"),error:!!t.errors.email,"helper-text":t.errors.email,autocapitalize:"none",autocomplete:"off",spellcheck:"false",required:t.fieldConfig.email?.required},model:{value:t.formData.email,callback:function(e){t.$set(t.formData,"email",e)},expression:"formData.email"}}),t._v(" "),e("UserFormGroups"),t._v(" "),e("UserFormQuota",{attrs:{"quota-options":t.quotaOptions}}),t._v(" "),e("UserFormLanguage"),t._v(" "),e("UserFormManager"),t._v(" "),Object.keys(t.unhandledErrors).length>0?e("div",{staticClass:"user-form-fields__error-summary",attrs:{"aria-live":"polite",role:"status"}},t._l(t.unhandledErrors,function(n,s){return e("p",{key:s},[t._v("\n\t\t\t"+t._s(s)+": "+t._s(n)+"\n\t\t")])}),0):t._e()],1)},[],!1,null,"43846e48",null).exports,Vn={name:"EditUserDialog",components:{NcButton:sn.A,NcDialog:rn.A,UserFormFields:Wn},provide(){return{formData:this.editedUser}},props:{user:{type:Object,required:!0},quotaOptions:{type:Array,required:!0}},emits:["closing"],data(){const t=this.$store.getters.getGroups,e=this.$store.getters.getServerData.languages,n=function(t,e,n,s){const i=t.groups.map(t=>e.find(e=>e.id===t)).filter(Boolean),r=(t.subadmin??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean);let o;if(t.quota?.quota>=0){const e=(0,Un.v7)(t.quota.quota);o=n.find(t=>t.id===e)??{id:e,label:e}}else o="default"===t.quota?.quota?n[0]:Dn;return{username:t.id,displayName:t.displayname??"",password:"",email:t.email??"",groups:i,subadminGroups:r,quota:o,language:Tn(t,s),manager:t.manager??""}}(this.user,t,this.quotaOptions,e);return{initialData:structuredClone(n),editedUser:n,saving:!1,fieldErrors:{}}},computed:{settings(){return this.$store.getters.getServerData},fieldConfig(){return{username:{show:!0,disabled:!0,label:t("settings","Account name")},password:{show:this.settings.canChangePassword&&this.user.backendCapabilities.setPassword,label:t("settings","New password")}}}},methods:{async save(){this.fieldErrors={};const e=function(t,e){const n={};e.displayName!==t.displayName&&(n.displayName=e.displayName),""!==e.password&&(n.password=e.password),e.email!==t.email&&(n.email=e.email),e.quota.id!==t.quota.id&&(n.quota=e.quota.id),e.language.code!==t.language.code&&(n.language=e.language.code);const s="object"==typeof e.manager?e.manager.id??"":e.manager;s!==("object"==typeof t.manager?t.manager.id??"":t.manager)&&(n.manager=s);const i=e.groups.map(t=>t.id).sort(),r=t.groups.map(t=>t.id).sort();JSON.stringify(i)!==JSON.stringify(r)&&(n.groups=i);const o=e.subadminGroups.map(t=>t.id).sort(),a=t.subadminGroups.map(t=>t.id).sort();return JSON.stringify(o)!==JSON.stringify(a)&&(n.subadminGroups=o),n}(this.initialData,this.editedUser);if(0!==Object.keys(e).length){this.saving=!0;try{await(0,a.C5)(),await this.$store.dispatch("editUserMultiField",{userid:this.user.id,payload:e}),(0,Je.Te)(t("settings","Account updated")),this.$emit("closing")}catch(e){const n=e.response?.data?.ocs?.data?.errors;n&&"object"==typeof n?this.fieldErrors=n:(cn.error("Failed to update account",{error:e}),(0,Je.Qg)(t("settings","Failed to update account")))}finally{this.saving=!1}}else this.$emit("closing")}}};var Qn=s(51499),Kn={};Kn.styleTagTransform=Nn(),Kn.setAttributes=bn(),Kn.insert=wn().bind(null,"head"),Kn.domAPI=vn(),Kn.insertStyleElement=xn(),mn()(Qn.A,Kn),Qn.A&&Qn.A.locals&&Qn.A.locals;var Yn=(0,En.A)(Vn,function(){var t=this,e=t._self._c;return e("NcDialog",{staticClass:"edit-dialog",attrs:{size:"small",name:t.t("settings","Edit account"),"out-transition":""},on:{closing:function(e){return t.$emit("closing")}},scopedSlots:t._u([{key:"actions",fn:function(){return[e("NcButton",{staticClass:"edit-dialog__submit",attrs:{"data-test":"submit",form:"edit-user-form",variant:"primary",type:"submit",disabled:t.saving}},[t._v("\n\t\t\t"+t._s(t.saving?t.t("settings","Saving …"):t.t("settings","Save"))+"\n\t\t")])]},proxy:!0}])},[e("form",{staticClass:"edit-dialog__form",attrs:{id:"edit-user-form","data-test":"form",disabled:t.saving},on:{submit:function(e){return e.preventDefault(),t.save.apply(null,arguments)}}},[e("UserFormFields",{attrs:{"field-config":t.fieldConfig,errors:t.fieldErrors,"quota-options":t.quotaOptions}})],1)])},[],!1,null,"f0cc6e68",null);const Xn=Yn.exports,Jn={name:"NewUserDialog",components:{NcButton:sn.A,NcDialog:rn.A,UserFormFields:Wn},provide(){return{formData:this.newUser}},props:{loading:{type:Object,required:!0},newUser:{type:Object,required:!0},quotaOptions:{type:Array,required:!0}},emits:["closing"],computed:{settings(){return this.$store.getters.getServerData},usernameLabel(){return this.settings.newUserGenerateUserID?t("settings","Account name will be autogenerated"):t("settings","Account name (required)")},fieldConfig(){return{username:{show:!0,label:this.usernameLabel,disabled:this.settings.newUserGenerateUserID,required:!0},password:{label:""===this.newUser.email?t("settings","Password (required)"):t("settings","Password"),required:""===this.newUser.email},email:{label:""===this.newUser.password||this.settings.newUserRequireEmail?t("settings","Email (required)"):t("settings","Email"),required:""===this.newUser.password||this.settings.newUserRequireEmail},showPasswordEmailHint:!this.settings.newUserRequireEmail}}},mounted(){this.$refs.fields?.focusField("username")},methods:{async createUser(){this.loading.all=!0;try{await this.$store.dispatch("addUser",{userid:this.newUser.username,password:this.newUser.password,displayName:this.newUser.displayName,email:this.newUser.email,groups:this.newUser.groups.map(({id:t})=>t),subadmin:this.newUser.subadminGroups.map(({id:t})=>t),quota:this.newUser.quota.id,language:this.newUser.language.code,manager:this.newUser.manager.id}),this.$emit("closing")}catch(t){if(this.loading.all=!1,t.response?.data?.ocs?.meta){const e=t.response.data.ocs.meta.statuscode;102===e?this.$refs.fields?.focusField("username"):107===e&&this.$refs.fields?.focusField("password")}}}}};var Zn=s(819),ts={};ts.styleTagTransform=Nn(),ts.setAttributes=bn(),ts.insert=wn().bind(null,"head"),ts.domAPI=vn(),ts.insertStyleElement=xn(),mn()(Zn.A,ts),Zn.A&&Zn.A.locals&&Zn.A.locals;var es=(0,En.A)(Jn,function(){var t=this,e=t._self._c;return e("NcDialog",t._g({staticClass:"dialog",attrs:{size:"small",name:t.t("settings","New account"),"out-transition":""},scopedSlots:t._u([{key:"actions",fn:function(){return[e("NcButton",{staticClass:"dialog__submit",attrs:{"data-test":"submit",form:"new-user-form",variant:"primary",type:"submit"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Add new account"))+"\n\t\t")])]},proxy:!0}])},t.$listeners),[e("form",{staticClass:"dialog__form",attrs:{id:"new-user-form","data-test":"form",disabled:t.loading.all},on:{submit:function(e){return e.preventDefault(),t.createUser.apply(null,arguments)}}},[e("UserFormFields",{ref:"fields",attrs:{"field-config":t.fieldConfig,"quota-options":t.quotaOptions}})],1)])},[],!1,null,"32af3da3",null);const ns=es.exports,ss=ge.Ay.extend({name:"UserListFooter",components:{NcLoadingIcon:nn.A},props:{loading:{type:Boolean,required:!0},filteredUsers:{type:Array,required:!0}},computed:{userCount(){return this.loading?this.n("settings","{userCount} account …","{userCount} accounts …",this.filteredUsers.length,{userCount:this.filteredUsers.length}):this.n("settings","{userCount} account","{userCount} accounts",this.filteredUsers.length,{userCount:this.filteredUsers.length})}},methods:{t:o.Tl,n:o.zw}});var is=s(75427),rs={};rs.styleTagTransform=Nn(),rs.setAttributes=bn(),rs.insert=wn().bind(null,"head"),rs.domAPI=vn(),rs.insertStyleElement=xn(),mn()(is.A,rs),is.A&&is.A.locals&&is.A.locals;const os=(0,En.A)(ss,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",{staticClass:"footer"},[e("th",{attrs:{scope:"row"}},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Total rows summary")))])]),t._v(" "),e("td",{staticClass:"footer__cell footer__cell--loading"},[t.loading?e("NcLoadingIcon",{attrs:{title:t.t("settings","Loading accounts …"),size:32}}):t._e()],1),t._v(" "),e("td",{staticClass:"footer__cell footer__cell--count footer__cell--multiline"},[e("span",{attrs:{"aria-describedby":"user-count-desc"}},[t._v(t._s(t.userCount))]),t._v(" "),e("span",{staticClass:"hidden-visually",attrs:{id:"user-count-desc"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Scroll to load more rows"))+"\n\t\t")])])])},[],!1,null,"4ff6ba29",null).exports,as=ge.Ay.extend({name:"UserListHeader",computed:{showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData}},methods:{t:o.Tl}});var ls=s(94e3),cs={};cs.styleTagTransform=Nn(),cs.setAttributes=bn(),cs.insert=wn().bind(null,"head"),cs.domAPI=vn(),cs.insertStyleElement=xn(),mn()(ls.A,cs),ls.A&&ls.A.locals&&ls.A.locals;const ds=(0,En.A)(as,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",{staticClass:"header"},[e("th",{staticClass:"header__cell header__cell--avatar",attrs:{"data-cy-user-list-header-avatar":"",scope:"col"}},[e("span",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.t("settings","Avatar"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--displayname",attrs:{"data-cy-user-list-header-displayname":"",scope:"col"}},[e("strong",[t._v("\n\t\t\t"+t._s(t.t("settings","Display name"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--username",attrs:{"data-cy-user-list-header-username":"",scope:"col"}},[e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Account name"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-email":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Email")))])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--groups",attrs:{"data-cy-user-list-header-groups":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Groups")))])]),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-subadmins":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Group admin for")))])]):t._e(),t._v(" "),e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-quota":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Quota")))])]),t._v(" "),t.showConfig.showLanguages?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-languages":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Language")))])]):t._e(),t._v(" "),t.showConfig.showUserBackend||t.showConfig.showStoragePath?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-storage-location":"",scope:"col"}},[t.showConfig.showUserBackend?e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Account backend"))+"\n\t\t")]):t._e(),t._v(" "),t.showConfig.showStoragePath?e("span",{staticClass:"header__subtitle"},[t._v("\n\t\t\t"+t._s(t.t("settings","Storage location"))+"\n\t\t")]):t._e()]):t._e(),t._v(" "),t.showConfig.showFirstLogin?e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-first-login":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","First login")))])]):t._e(),t._v(" "),t.showConfig.showLastLogin?e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-last-login":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Last login")))])]):t._e(),t._v(" "),e("th",{staticClass:"header__cell header__cell--large header__cell--fill",attrs:{"data-cy-user-list-header-manager":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Manager")))])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--actions",attrs:{"data-cy-user-list-header-actions":"",scope:"col"}},[e("span",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.t("settings","Account actions"))+"\n\t\t")])])])},[],!1,null,"53c64244",null).exports;var us=s(4164),ps=s(32806),hs=s(61744),fs=s(59837),gs=s(41937),ms=s(13741),As=s(80997),vs=s(66102),_s=s(42135),ws=s(15502),Cs=s(58582),bs=s(32702),ys=s(62251),xs=s(47611),ks=s(10363),Ns=s(3440),Os=s(92752),Ss=s(54048),Es=s(39892),Ls=s(27345),Us=s(13238),Ds=s(48090),Gs=s(79250),Ts=s(57454),Is=s(542),$s=s(58397),Bs=s(78359),Ps=s(51464),Fs=s(60930),Ms=s(50017),js=s(60258),qs=s(64344),Rs=s(36295),zs=s(3172),Hs=s(25473),Ws=s(57229),Vs=s(20252),Qs=s(47853),Ks=s(40032),Ys=s(58611),Xs=s(6382),Js=s(81283),Zs=s(32415),ti=s(90429),ei=s(3491),ni=s(73196),si=s(44025),ii=s(51252),ri=s(48198),oi=s(27506),ai=s(54092),li=s(83194),ci=s(40133),di=s(83138),ui=s(14304),pi=s(77003),hi=s(86882),fi=s(42097),gi=s(44117),mi=s(18724),Ai=s(39689),vi=s(26145),_i=s(51550),wi=s(10632),Ci=s(86637),bi=s(48191),yi=s(52151),xi=s(56582),ki=s(49570),Ni=s(83947),Oi=s(48240),Si=s(13971),Ei=s(6026),Li=s(35290),Ui=s(61456),Di=s(24301),Gi=s(63315),Ti=s(26797),Ii=s(62330),$i=(s(25778),s(34163),s(27994),s(3168),s(47691)),Bi=s(3140),Pi=s(28955),Fi=s(71639),Mi=s(95967),ji=s(27971),qi=s(817),Ri=s(72583),zi=s(25479),Hi=s(8256),Wi=s(84202),Vi=s(47679),Qi=s(99835),Ki=s(23610),Yi=s(55581),Xi=s(94205),Ji=(s(95462),s(23020),s(53429),s(23739),s(71409),s(29928),s(24706),s(18547),s(42892)),Zi=s(69885),tr=(s(59656),s(92471),s(16406),s(34558));us.N,ps.N,hs.A,fs.N,gs.N,ms.A,As.N,vs.A,ws.A,Cs.A,bs.N,_s.N,ys.N,xs.A,ks.A,Ns.N,Os.N,Ss.A,Es.N,Ls.A,Us.N,Ds.N,Gs.N,Ts.N,Is.A,$s.N,Bs.N,Ps.N,Ps.N,Fs.N,Ms.N,js.A,qs.N,Rs.A,zs.N,Ii.N,Hs.N,Ws.N,Vs.N,Qs.N,Ks.N,Ys.N,Xs.N,Js.N,Zs.N,ti.N,ei.N,ni.N,si.N,ii.default,ri.A,oi.N,ai.N,li.A,ci.N,tn.A,di.N,ui.N,pi.N,hi.N,fi.N,gi.N,mi.A,Ai.N,vi.N,_i.N,wi.N,Ci.N,bi.N,yi.N,xi.N,ki.N,nn.A,Ti.N,Ni.A,Oi.A,Si.N,Ei.N,Li.N,Ui.N,Di.N,Gi.N,Ii.a,$i.N,Fi.N,Bi.N,Mi.N,Bn.N,ji.N,qi.N,Ri.N,zi.N,Pi.N,Hi.N,Wi.N,Vi.N,Qi.N,Ki.A,Symbol.toStringTag,Ji.A,Zi.A,tr.yw,Symbol.toStringTag;var er=s(41944),nr=s(95101),sr=s(20005),ir=s(57505),rr=s(24764);const or=(0,ge.pM)({components:{NcActionButton:ir.A,NcActions:rr.A,NcIconSvgWrapper:en.A},props:{actions:{type:Array,required:!0},disabled:{type:Boolean,required:!0},user:{type:Object,required:!0}},setup:()=>({SvgPencil:''}),computed:{enabledActions(){return this.actions.filter(t=>"function"!=typeof t.enabled||t.enabled(this.user))}},methods:{isSvg:sr.A}});var ar=(0,En.A)(or,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcActions",{attrs:{"aria-label":t.t("settings","Toggle account actions menu"),disabled:t.disabled,inline:1}},[e("NcActionButton",{attrs:{"data-cy-user-list-action-edit":"",disabled:t.disabled},on:{click:function(e){return t.$emit("update:edit",!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("NcIconSvgWrapper",{attrs:{svg:t.SvgPencil,"aria-hidden":"true"}})]},proxy:!0}])},[t._v("\n\t\t"+t._s(t.t("settings","Edit"))+"\n\t\t")]),t._v(" "),t._l(t.enabledActions,function({action:n,icon:s,text:i},r){return e("NcActionButton",{key:r,attrs:{disabled:t.disabled,"aria-label":i,icon:s,"close-after-click":""},on:{click:e=>n(e,{...t.user})},scopedSlots:t._u([t.isSvg(s)?{key:"icon",fn:function(){return[e("NcIconSvgWrapper",{attrs:{svg:s,"aria-hidden":"true"}})]},proxy:!0}:null],null,!0)},[t._v("\n\t\t"+t._s(i)+"\n\t\t")])})],2)},[],!1,null,null,null);const lr=ar.exports,cr=window.OC.theme.productName,dr={name:"UserRow",components:{NcAvatar:er.A,NcLoadingIcon:nn.A,NcProgressBar:nr.A,UserRowActions:lr},props:{user:{type:Object,required:!0},visible:{type:Boolean,required:!0},users:{type:Array,required:!0},quotaOptions:{type:Array,required:!0},languages:{type:Array,required:!0},settings:{type:Object,required:!0},externalActions:{type:Array,default:()=>[]},onEditUser:{type:Function,default:null}},setup(t){const{formattedFullTime:e}=(0,Yi.m7)(1e3*t.user.firstLoginTimestamp,{relativeTime:!1,format:{timeStyle:"short",dateStyle:"short"}});return{formattedFullTime:e}},data:()=>({rand:Math.random().toString(36).substring(2),loading:{all:!1,delete:!1,disable:!1,wipe:!1}}),computed:{isObfuscated(){return function(t){const e=Object.keys(t);return 1===e.length&&"id"===e.at(0)}(this.user)},usedQuota(){let t=this.user.quota.quota;return t=t>0?Math.min(100,Math.round(this.user.quota.used/t*100)):95*(1-1/(this.user.quota.used/(10*Math.pow(2,30))+1)),isNaN(t)?0:t},userLanguage(){const t=this.languages[0].languages.concat(this.languages[1].languages).find(t=>t.code===this.user.language);return"object"!=typeof t&&""!==this.user.language?{code:this.user.language,name:this.user.language}:""!==this.user.language&&t},userFirstLogin(){return this.user.firstLoginTimestamp>0?this.formattedFullTime:this.user.firstLoginTimestamp<0?t("settings","Unknown"):t("settings","Never")},userLastLoginTooltip(){return this.user.lastLoginTimestamp>0?OC.Util.formatDate(1e3*this.user.lastLoginTimestamp):""},userLastLogin(){return this.user.lastLoginTimestamp>0?OC.Util.relativeModifiedDate(1e3*this.user.lastLoginTimestamp):t("settings","Never")},showConfig(){return this.$store.getters.getShowConfig},isLoadingUser(){return this.loading.delete||this.loading.disable||this.loading.wipe},isLoadingField(){return this.loading.delete||this.loading.disable||this.loading.all},uniqueId(){return encodeURIComponent(this.user.id+this.rand)},userGroupsLabels(){const t=this.$store.getters.getGroups;return this.user.groups.map(e=>{const n=t.find(t=>t.id===e);return n?.name??e}).join(", ")},userSubAdminGroupsLabels(){const t=this.$store.getters.getGroups;return(this.user.subadmin??[]).map(e=>{const n=t.find(t=>t.id===e);return n?.name??e}).join(", ")},usedSpace(){return this.user.quota?.used?t("settings","{size} used",{size:(0,Un.v7)(this.user.quota?.used)}):t("settings","{size} used",{size:(0,Un.v7)(0)})},canEdit(){return(0,i.HW)().uid!==this.user.id||this.settings.isAdmin||this.settings.isDelegatedAdmin},userQuota(){let e=this.user.quota?.quota;return"default"===e&&(e=this.settings.defaultQuota,"none"!==e&&(e=(0,Un.lT)(e,!0))),"none"===e||-3===e?t("settings","Unlimited"):e>=0?(0,Un.v7)(e):(0,Un.v7)(0)},userActions(){const e=[{icon:"icon-delete",text:t("settings","Delete account"),action:this.deleteUser},{icon:"icon-delete",text:t("settings","Disconnect all devices and delete local data"),action:this.wipeUserDevices},{icon:this.user.enabled?"icon-close":"icon-add",text:this.user.enabled?t("settings","Disable account"):t("settings","Enable account"),action:this.enableDisableUser}];return null!==this.user.email&&""!==this.user.email&&e.push({icon:"icon-mail",text:t("settings","Resend welcome email"),action:this.sendWelcomeMail}),e.concat(this.externalActions)}},methods:{toggleEdit(){this.onEditUser&&this.onEditUser(this.user)},async wipeUserDevices(){const e=this.user.id;await(0,a.C5)(),OC.dialogs.confirmDestructive(t("settings","In case of lost device or exiting the organization, this can remotely wipe the {productName} data from all devices associated with {userid}. Only works if the devices are connected to the internet.",{userid:e,productName:cr}),t("settings","Remote wipe of devices"),{type:OC.dialogs.YES_NO_BUTTONS,confirm:t("settings","Wipe {userid}'s devices",{userid:e}),confirmClasses:"error",cancel:t("settings","Cancel")},n=>{n&&(this.loading.wipe=!0,this.loading.all=!0,this.$store.dispatch("wipeUserDevices",e).then(()=>(0,Je.Te)(t("settings","Wiped {userid}'s devices",{userid:e})),{timeout:2e3}).finally(()=>{this.loading.wipe=!1,this.loading.all=!1}))},!0)},async deleteUser(){const e=this.user.id;await(0,a.C5)(),OC.dialogs.confirmDestructive(t("settings","Fully delete {userid}'s account including all their personal files, app data, etc.",{userid:e}),t("settings","Account deletion"),{type:OC.dialogs.YES_NO_BUTTONS,confirm:t("settings","Delete {userid}'s account",{userid:e}),confirmClasses:"error",cancel:t("settings","Cancel")},t=>{if(t)return this.loading.delete=!0,this.loading.all=!0,this.$store.dispatch("deleteUser",e).then(()=>{this.loading.delete=!1,this.loading.all=!1})},!0)},enableDisableUser(){this.loading.delete=!0,this.loading.all=!0;const t=this.user.id,e=!this.user.enabled;return this.$store.dispatch("enableDisableUser",{userid:t,enabled:e}).then(()=>{this.loading.delete=!1,this.loading.all=!1})},sendWelcomeMail(){this.loading.all=!0,this.$store.dispatch("sendWelcomeMail",this.user.id).then(()=>(0,Je.Te)(t("settings","Welcome mail sent!"),{timeout:2e3})).finally(()=>{this.loading.all=!1})}}},ur=dr;var pr=s(81761),hr={};hr.styleTagTransform=Nn(),hr.setAttributes=bn(),hr.insert=wn().bind(null,"head"),hr.domAPI=vn(),hr.insertStyleElement=xn(),mn()(pr.A,hr),pr.A&&pr.A.locals&&pr.A.locals;const fr=(0,En.A)(ur,function(){var t=this,e=t._self._c;return e("tr",{staticClass:"user-list__row",attrs:{"data-cy-user-row":t.user.id}},[e("td",{staticClass:"row__cell row__cell--avatar",attrs:{"data-cy-user-list-cell-avatar":""}},[t.isLoadingUser?e("NcLoadingIcon",{attrs:{name:t.t("settings","Loading account …"),size:32}}):t.visible?e("NcAvatar",{attrs:{"disable-menu":"","hide-status":"",user:t.user.id}}):t._e()],1),t._v(" "),e("td",{staticClass:"row__cell row__cell--displayname",attrs:{"data-cy-user-list-cell-displayname":""}},[t.isObfuscated?t._e():e("strong",{attrs:{title:t.user.displayname?.length>20?t.user.displayname:null}},[t._v("\n\t\t\t"+t._s(t.user.displayname)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--username",attrs:{"data-cy-user-list-cell-username":""}},[e("span",{staticClass:"row__subtitle"},[t._v(t._s(t.user.id))])]),t._v(" "),e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-email":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.user.email?.length>20?t.user.email:null}},[t._v("\n\t\t\t"+t._s(t.user.email)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--groups row__cell--multiline",attrs:{"data-cy-user-list-cell-groups":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.userGroupsLabels?.length>40?t.userGroupsLabels:null}},[t._v("\n\t\t\t"+t._s(t.userGroupsLabels)+"\n\t\t")])]),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("td",{staticClass:"row__cell row__cell--large row__cell--multiline",attrs:{"data-cy-user-list-cell-subadmins":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.userSubAdminGroupsLabels?.length>40?t.userSubAdminGroupsLabels:null}},[t._v("\n\t\t\t"+t._s(t.userSubAdminGroupsLabels)+"\n\t\t")])]):t._e(),t._v(" "),e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-quota":""}},[t.isObfuscated?t._e():[e("span",{attrs:{id:"quota-progress"+t.uniqueId}},[t._v(t._s(t.userQuota)+" ("+t._s(t.usedSpace)+")")]),t._v(" "),e("NcProgressBar",{staticClass:"row__progress",class:{"row__progress--warn":t.usedQuota>80},attrs:{"aria-labelledby":"quota-progress"+t.uniqueId,value:t.usedQuota}})]],2),t._v(" "),t.showConfig.showLanguages?e("td",{staticClass:"row__cell row__cell--large",attrs:{"data-cy-user-list-cell-language":""}},[t.isObfuscated?t._e():e("span",[t._v("\n\t\t\t"+t._s(t.userLanguage.name)+"\n\t\t")])]):t._e(),t._v(" "),t.showConfig.showUserBackend||t.showConfig.showStoragePath?e("td",{staticClass:"row__cell row__cell--large",attrs:{"data-cy-user-list-cell-storage-location":""}},[t.isObfuscated?t._e():[t.showConfig.showUserBackend?e("span",[t._v(t._s(t.user.backend))]):t._e(),t._v(" "),t.showConfig.showStoragePath?e("span",{staticClass:"row__subtitle",attrs:{title:t.user.storageLocation}},[t._v("\n\t\t\t\t"+t._s(t.user.storageLocation)+"\n\t\t\t")]):t._e()]],2):t._e(),t._v(" "),t.showConfig.showFirstLogin?e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-first-login":""}},[t.isObfuscated?t._e():e("span",[t._v(t._s(t.userFirstLogin))])]):t._e(),t._v(" "),t.showConfig.showLastLogin?e("td",{staticClass:"row__cell",attrs:{title:t.userLastLoginTooltip,"data-cy-user-list-cell-last-login":""}},[t.isObfuscated?t._e():e("span",[t._v(t._s(t.userLastLogin))])]):t._e(),t._v(" "),e("td",{staticClass:"row__cell row__cell--large row__cell--fill",attrs:{"data-cy-user-list-cell-manager":""}},[t.isObfuscated?t._e():e("span",[t._v("\n\t\t\t"+t._s(t.user.manager)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--actions",attrs:{"data-cy-user-list-cell-actions":""}},[t.visible&&!t.isObfuscated&&t.canEdit&&!t.loading.all?e("UserRowActions",{attrs:{actions:t.userActions,disabled:t.isLoadingField,user:t.user},on:{"update:edit":t.toggleEdit}}):t._e()],1)])},[],!1,null,"78b3749c",null).exports;var gr=s(57579),mr=s(46855);ge.Ay.directive("elementVisibility",gr.Zx);const Ar=ge.Ay.extend({name:"VirtualList",props:{dataComponent:{type:[Object,Function],required:!0},dataKey:{type:String,required:!0},dataSources:{type:Array,required:!0},itemHeight:{type:Number,required:!0},extraProps:{type:Object,default:()=>({})}},data:()=>({bufferItems:3,index:0,headerHeight:0,tableHeight:0,resizeObserver:null}),computed:{startIndex(){return Math.max(0,this.index-3)},shownItems(){return Math.ceil((this.tableHeight-this.headerHeight)/this.itemHeight)+6},renderedItems(){return this.dataSources.slice(this.startIndex,this.startIndex+this.shownItems)},tbodyStyle(){const t=this.startIndex+this.shownItems>this.dataSources.length,e=this.dataSources.length-this.startIndex-this.shownItems,n=Math.min(this.dataSources.length-this.startIndex,e);return{paddingTop:this.startIndex*this.itemHeight+"px",paddingBottom:t?0:n*this.itemHeight+"px"}}},mounted(){const t=this.$el,e=this.$refs?.tfoot,n=this.$refs?.thead;this.resizeObserver=new ResizeObserver((0,mr.A)(()=>{this.headerHeight=n?.clientHeight??0,this.tableHeight=t?.clientHeight??0,cn.debug("VirtualList resizeObserver updated"),this.onScroll()},100)),this.resizeObserver.observe(t),this.resizeObserver.observe(e),this.resizeObserver.observe(n),this.$el.addEventListener("scroll",this.onScroll)},beforeDestroy(){this.resizeObserver&&this.resizeObserver.disconnect()},methods:{handleFooterVisibility(t){t&&this.$emit("scroll-end")},onScroll(){this.index=Math.max(0,Math.round(this.$el.scrollTop/this.itemHeight))}}});var vr=s(66291),_r={};_r.styleTagTransform=Nn(),_r.setAttributes=bn(),_r.insert=wn().bind(null,"head"),_r.domAPI=vn(),_r.insertStyleElement=xn(),mn()(vr.A,_r),vr.A&&vr.A.locals&&vr.A.locals;const wr=(0,En.A)(Ar,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("table",{staticClass:"user-list"},[t._t("before"),t._v(" "),e("thead",{ref:"thead",staticClass:"user-list__header",attrs:{role:"rowgroup"}},[t._t("header")],2),t._v(" "),e("tbody",{staticClass:"user-list__body",style:t.tbodyStyle},t._l(t.renderedItems,function(n,s){return e(t.dataComponent,t._b({key:n[t.dataKey],tag:"component",attrs:{user:n,visible:(s>=t.bufferItems||t.index<=t.bufferItems)&&s[]}},setup:()=>({mdiAccountGroupOutline:Xe.dgQ,rowHeight:55,UserRow:fr}),data:()=>({loading:{all:!1,groups:!1,users:!1},newUser:{...Cr},editingUser:null}),computed:{searchQuery(){return this.$store.getters.getSearchQuery},showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData},style(){return{"--row-height":`${this.rowHeight}px`}},users(){return this.$store.getters.getUsers},filteredUsers(){return"disabled"===this.selectedGroup?this.users.filter(t=>!1===t.enabled):this.users.filter(t=>!1!==t.enabled)},groups(){return this.$store.getters.getSortedGroups.filter(t=>"__nc_internal_recent"!==t.id&&"disabled"!==t.id)},quotaOptions(){const t=this.settings.quotaPreset.reduce((t,e)=>t.concat({id:e,label:e}),[]);return this.settings.allowUnlimitedQuota&&t.unshift(Dn),t.unshift(Gn),t},usersOffset(){return this.$store.getters.getUsersOffset},usersLimit(){return this.$store.getters.getUsersLimit},disabledUsersOffset(){return this.$store.getters.getDisabledUsersOffset},disabledUsersLimit(){return this.$store.getters.getDisabledUsersLimit},usersCount(){return this.users.length},languages(){return[{label:t("settings","Common languages"),languages:this.settings.languages.commonLanguages},{label:t("settings","Other languages"),languages:this.settings.languages.otherLanguages}]}},watch:{async searchQuery(){this.$store.commit("resetUsers"),await this.loadUsers()},async selectedGroup(t){await this.redirectIfDisabled(),this.$store.commit("resetUsers"),await this.loadUsers(),this.setNewUserDefaultGroup(t)},filteredUsers(t){cn.debug(`${t.length} filtered user(s)`)}},async created(){await this.loadUsers()},async mounted(){this.settings.canChangePassword||OC.Notification.showTemporary(t("settings","Password change is disabled because the master key is disabled")),this.initForm(),await this.redirectIfDisabled()},methods:{openEditDialog(t){this.editingUser=t},async handleScrollEnd(){await this.loadUsers()},async loadUsers(){this.loading.users=!0;try{"disabled"===this.selectedGroup?await this.$store.dispatch("getDisabledUsers",{offset:this.disabledUsersOffset,limit:this.disabledUsersLimit,search:this.searchQuery}):"__nc_internal_recent"===this.selectedGroup?await this.$store.dispatch("getRecentUsers",{offset:this.usersOffset,limit:this.usersLimit,search:this.searchQuery}):await this.$store.dispatch("getUsers",{offset:this.usersOffset,limit:this.usersLimit,group:this.selectedGroup,search:this.searchQuery}),cn.debug(`${this.users.length} total user(s) loaded`)}catch(t){cn.error("Failed to load accounts",{error:t}),(0,Je.Qg)("Failed to load accounts")}this.loading.users=!1},closeDialog(){this.$store.dispatch("setShowConfig",{key:"showNewUserForm",value:!1}),this.resetForm()},resetForm(){Object.assign(this.newUser,{...Cr,groups:[],subadminGroups:[]}),this.newUser.groups.splice(0),this.newUser.subadminGroups.splice(0),this.initForm()},initForm(){this.settings.defaultLanguage&&(this.newUser.language.code=this.settings.defaultLanguage),this.setNewUserDefaultGroup(this.selectedGroup),this.loading.all=!1},setNewUserDefaultGroup(t){if(!t&&!this.settings.isAdmin&&!this.settings.isDelegatedAdmin){const t=this.$store.getters.getSubAdminGroups;return void(1===t.length&&(this.newUser.groups=[...t]))}if(t){const e=this.groups.find(e=>e.id===t);if(e)return void(this.newUser.groups=[e])}this.newUser.groups=[]},async redirectIfDisabled(){const t=this.$store.getters.getGroups;"disabled"===this.selectedGroup&&t.findIndex(t=>"disabled"===t.id&&0===t.usercount)>-1&&(this.$router.push({name:"users"}),await this.loadUsers())}}};var yr=s(62534),xr={};xr.styleTagTransform=Nn(),xr.setAttributes=bn(),xr.insert=wn().bind(null,"head"),xr.domAPI=vn(),xr.insertStyleElement=xn(),mn()(yr.A,xr),yr.A&&yr.A.locals&&yr.A.locals;const kr=(0,En.A)(br,function(){var t=this,e=t._self._c;return e("Fragment",[t.showConfig.showNewUserForm?e("NewUserDialog",{attrs:{loading:t.loading,"new-user":t.newUser,"quota-options":t.quotaOptions},on:{closing:t.closeDialog}}):t._e(),t._v(" "),t.editingUser?e("EditUserDialog",{attrs:{user:t.editingUser,"quota-options":t.quotaOptions},on:{closing:function(e){t.editingUser=null}}}):t._e(),t._v(" "),0===t.filteredUsers.length?e("NcEmptyContent",{staticClass:"empty",attrs:{name:t.loading.users?null:t.t("settings","No accounts")},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading.users?e("NcLoadingIcon",{attrs:{name:t.t("settings","Loading accounts …"),size:64}}):e("NcIconSvgWrapper",{attrs:{path:t.mdiAccountGroupOutline,size:64}})]},proxy:!0}],null,!1,1584467133)}):e("VirtualList",{style:t.style,attrs:{"data-component":t.UserRow,"data-sources":t.filteredUsers,"data-key":"id","data-cy-user-list":"","item-height":t.rowHeight,"extra-props":{users:t.users,settings:t.settings,quotaOptions:t.quotaOptions,languages:t.languages,externalActions:t.externalActions,onEditUser:t.openEditDialog}},on:{"scroll-end":t.handleScrollEnd},scopedSlots:t._u([{key:"before",fn:function(){return[e("caption",{staticClass:"hidden-visually"},[t._v("\n\t\t\t\t"+t._s(t.t("settings","List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list."))+"\n\t\t\t")])]},proxy:!0},{key:"header",fn:function(){return[e("UserListHeader")]},proxy:!0},{key:"footer",fn:function(){return[e("UserListFooter",{attrs:{loading:t.loading.users,"filtered-users":t.filteredUsers}})]},proxy:!0}])})],1)},[],!1,null,"ff26583a",null).exports;function Nr(){var t=(0,ge.nI)().proxy.$root;if(!t._$route){var e=(0,ge.uY)(!0).run(function(){return(0,ge.Gc)(Object.assign({},t.$router.currentRoute))});t._$route=e,t.$router.afterEach(function(t){Object.assign(e,t)})}return t._$route}var Or=s(42530),Sr=s(52439),Er=s(97786),Lr=s(44131),Ur=s(41069),Dr=s(40949);const Gr={name:"TrashCanOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Tr=(0,En.A)(Gr,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon trash-can-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,Ir={name:"GroupListItem",components:{AccountGroup:Ur.A,Delete:Tr,Fragment:Ze.F,NcActionButton:ir.A,NcActionInput:Lr.A,NcAppNavigationItem:Sr.A,NcButton:sn.A,NcCounterBubble:ti.N,NcModal:Ni.A,NcNoteCard:Oi.A,Pencil:Dr.A},props:{active:{type:Boolean,required:!0},count:{type:Number,default:null},id:{type:String,required:!0},name:{type:String,required:!0}},data:()=>({loadingRenameGroup:!1,openGroupMenu:!1,showRemoveGroupModal:!1}),computed:{settings(){return this.$store.getters.getServerData}},methods:{handleGroupMenuOpen(){this.openGroupMenu=!0},async renameGroup(t){if(""===t.trim())return;const e=this.$refs.displayNameInput.$el.querySelector('input[type="text"]').value;if(""!==e.trim())try{this.openGroupMenu=!1,this.loadingRenameGroup=!0,await this.$store.dispatch("renameGroup",{groupid:t.trim(),displayName:e.trim()}),this.loadingRenameGroup=!1}catch{this.openGroupMenu=!0,this.loadingRenameGroup=!1}},async removeGroup(){try{await this.$store.dispatch("removeGroup",this.id),this.showRemoveGroupModal=!1}catch{(0,Je.Qg)(t("settings",'Failed to delete group "{group}"',{group:this.name}))}}}};var $r=s(33491),Br={};Br.styleTagTransform=Nn(),Br.setAttributes=bn(),Br.insert=wn().bind(null,"head"),Br.domAPI=vn(),Br.insertStyleElement=xn(),mn()($r.A,Br),$r.A&&$r.A.locals&&$r.A.locals;const Pr=(0,En.A)(Ir,function(){var t=this,e=t._self._c;return e("Fragment",[t.showRemoveGroupModal?e("NcModal",{on:{close:function(e){t.showRemoveGroupModal=!1}}},[e("div",{staticClass:"modal__content"},[e("h2",{staticClass:"modal__header"},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Please confirm the group removal"))+"\n\t\t\t")]),t._v(" "),e("NcNoteCard",{attrs:{type:"warning","show-alert":""}},[t._v("\n\t\t\t\t"+t._s(t.t("settings",'You are about to delete the group "{group}". The accounts will NOT be deleted.',{group:t.name}))+"\n\t\t\t")]),t._v(" "),e("div",{staticClass:"modal__button-row"},[e("NcButton",{attrs:{variant:"secondary"},on:{click:function(e){t.showRemoveGroupModal=!1}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Cancel"))+"\n\t\t\t\t")]),t._v(" "),e("NcButton",{attrs:{variant:"primary"},on:{click:t.removeGroup}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Confirm"))+"\n\t\t\t\t")])],1)],1)]):t._e(),t._v(" "),e("NcAppNavigationItem",{key:t.id,ref:"listItem",attrs:{exact:!0,name:t.name,to:{name:"group",params:{selectedGroup:encodeURIComponent(t.id)}},loading:t.loadingRenameGroup,"menu-open":t.openGroupMenu},on:{"update:menuOpen":t.handleGroupMenuOpen},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AccountGroup",{attrs:{size:20}})]},proxy:!0},{key:"counter",fn:function(){return[t.count?e("NcCounterBubble",{attrs:{type:t.active?"highlighted":void 0}},[t._v("\n\t\t\t\t"+t._s(t.count)+"\n\t\t\t")]):t._e()]},proxy:!0},{key:"actions",fn:function(){return["admin"!==t.id&&"disabled"!==t.id&&(t.settings.isAdmin||t.settings.isDelegatedAdmin)?e("NcActionInput",{ref:"displayNameInput",attrs:{"trailing-button-label":t.t("settings","Submit"),type:"text","model-value":t.name,label:t.t("settings","Rename group")},on:{submit:function(e){return t.renameGroup(t.id)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Pencil",{attrs:{size:20}})]},proxy:!0}],null,!1,580569589)}):t._e(),t._v(" "),"admin"!==t.id&&"disabled"!==t.id&&(t.settings.isAdmin||t.settings.isDelegatedAdmin)?e("NcActionButton",{on:{click:function(e){t.showRemoveGroupModal=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Delete",{attrs:{size:20}})]},proxy:!0}],null,!1,2705356561)},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Delete group"))+"\n\t\t\t")]):t._e()]},proxy:!0}])})],1)},[],!1,null,"30743619",null).exports;function Fr(t){return void 0===t?null:{id:t.id,title:t.name,usercount:t.usercount??0,count:Math.max(0,(t.usercount??0)-(t.disabled??0))}}function Mr(t){const e=(0,ge.EW)(()=>t.value.filter(t=>"disabled"!==t.id&&"__nc_internal_recent"!==t.id&&"admin"!==t.id).map(t=>Fr(t)).filter(t=>null!==t)),n=(0,ge.EW)(()=>Fr(t.value.find(t=>"admin"===t.id))),s=(0,ge.EW)(()=>Fr(t.value.find(t=>"disabled"===t.id)));return{adminGroup:n,recentGroup:(0,ge.EW)(()=>Fr(t.value.find(t=>"__nc_internal_recent"===t.id))),disabledGroup:s,userGroups:e}}function jr(t){return t.replace(/\/$/,"")}const qr=()=>(0,a.C5)(),Rr=(t,e)=>r.Ay.get(jr(t),e),zr=(t,e,n)=>r.Ay.post(jr(t),e,n),Hr=(t,e)=>r.Ay.patch(jr(t),e),Wr=(t,e)=>r.Ay.put(jr(t),e),Vr=(t,e)=>r.Ay.delete(jr(t),{params:e}),Qr={state:{},mutations:{},getters:{},actions:{setAppConfig:(t,{app:e,key:n,value:s})=>qr().then(()=>zr((0,dn.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:e,key:n}),{value:s}).catch(t=>{throw t})).catch(i=>t.commit("API_FAILURE",{app:e,key:n,value:s,error:i}))}};var Kr=s(81222);const Yr={serverData:(0,Kr.C)("settings","usersSettings",{})},Xr={setServerData(t,e){t.serverData=e}},Jr={state:Yr,mutations:Xr,getters:{getServerData:t=>t.serverData},actions:{}};var Zr,to=s(87485);!function(t){t[t.UserCount=1]="UserCount",t[t.GroupName=2]="GroupName"}(Zr||(Zr={}));const eo=Intl.Collator([(0,o.Z0)(),(0,o.lO)()],{numeric:!0,usage:"sort"}),no=(0,Kr.C)("settings","usersSettings",{}),so={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},io={users:[],groups:[...no.getSubAdminGroups??[],...no.systemGroups??[]],orderBy:no.sortGroups??Zr.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,searchQuery:"",userCount:no.userCount??0,showConfig:{showStoragePath:no.showConfig?.user_list_show_storage_path,showUserBackend:no.showConfig?.user_list_show_user_backend,showFirstLogin:no.showConfig?.user_list_show_first_login,showLastLogin:no.showConfig?.user_list_show_last_login,showNewUserForm:no.showConfig?.user_list_show_new_user_form,showLanguages:no.showConfig?.user_list_show_languages}},ro={appendUsers(t,e){const n=t.users.map(({id:t})=>t),s=Object.values(e).filter(({id:t})=>!n.includes(t)),i=t.users.concat(s);t.usersOffset+=t.usersLimit,t.users=i},updateDisabledUsers(t){t.disabledUsersOffset+=t.disabledUsersLimit},setPasswordPolicyMinLength(t,e){t.minPasswordLength=""!==e?e:0},addGroup(t,e){try{const n=t.groups.find(t=>t.id===e.id);if(n)return void Object.assign(n,e);const s={...so,...e};t.groups.unshift(s)}catch(t){cn.error("Cannt create group",{error:t})}},renameGroup(t,{gid:e,displayName:n}){const s=t.groups.findIndex(t=>t.id===e);if(s>=0){const e=t.groups[s];e.name=n,t.groups.splice(s,1,e)}},removeGroup(t,e){const n=t.groups.findIndex(t=>t.id===e);n>=0&&t.groups.splice(n,1)},addUserGroup(t,{userid:e,gid:n}){const s=t.groups.find(t=>t.id===n),i=t.users.find(t=>t.id===e);s&&i.enabled&&t.userCount>0&&s.usercount++,i.groups.push(n)},removeUserGroup(t,{userid:e,gid:n}){const s=t.groups.find(t=>t.id===n),i=t.users.find(t=>t.id===e);s&&i.enabled&&t.userCount>0&&s.usercount--;const r=i.groups;r.splice(r.indexOf(n),1)},addUserSubAdmin(t,{userid:e,gid:n}){t.users.find(t=>t.id===e).subadmin.push(n)},removeUserSubAdmin(t,{userid:e,gid:n}){const s=t.users.find(t=>t.id===e).subadmin;s.splice(s.indexOf(n),1)},deleteUser(t,e){const n=t.users.findIndex(t=>t.id===e);this.commit("updateUserCounts",{user:t.users[n],actionType:"remove"}),t.users.splice(n,1)},addUserData(t,e){const n=e.data.ocs.data;t.users.unshift(n),this.commit("updateUserCounts",{user:n,actionType:"create"})},enableDisableUser(t,{userid:e,enabled:n}){const s=t.users.find(t=>t.id===e);s.enabled=n,this.commit("updateUserCounts",{user:s,actionType:n?"enable":"disable"})},updateUserCounts(t,{user:e,actionType:n}){if(0===t.userCount)return;const s=t.groups.find(t=>"__nc_internal_recent"===t.id),i=t.groups.find(t=>"disabled"===t.id);switch(n){case"enable":case"disable":i.usercount+=e.enabled?-1:1,s.usercount+=e.enabled?1:-1,t.userCount+=e.enabled?1:-1,e.groups.forEach(n=>{const s=t.groups.find(t=>t.id===n);s&&(s.disabled+=e.enabled?-1:1)});break;case"create":s.usercount++,t.userCount++,e.groups.forEach(e=>{const n=t.groups.find(t=>t.id===e);n&&n.usercount++});break;case"remove":e.enabled?(s.usercount--,t.userCount--,e.groups.forEach(e=>{const n=t.groups.find(t=>t.id===e);n?n.usercount--:cn.warn("User group "+e+" does not exist during user removal")})):(i.usercount--,e.groups.forEach(e=>{const n=t.groups.find(t=>t.id===e);n&&n.disabled--}));break;default:cn.error(`Unknown action type in updateUserCounts: '${n}'`)}},setUserData(t,{userid:e,key:n,value:s}){if("quota"===n){const i=(0,Un.lT)(s,!0);t.users.find(t=>t.id===e)[n][n]=null!==i?i:s}else t.users.find(t=>t.id===e)[n]=s},editUserMultiField(t,{userid:e,data:n}){const s=t.users.findIndex(t=>t.id===e);if(-1!==s){if(Array.isArray(n.groups)){const i=t.users[s].groups??[];for(const t of n.groups.filter(t=>!i.includes(t)))this.commit("addUserGroup",{userid:e,gid:t});for(const t of i.filter(t=>!n.groups.includes(t)))this.commit("removeUserGroup",{userid:e,gid:t})}t.users.splice(s,1,{...t.users[s],...n})}},resetUsers(t){t.users=[],t.usersOffset=0,t.disabledUsersOffset=0},resetGroups(t){t.groups=[...no.getSubAdminGroups??[],...no.systemGroups??[]]},setSearchQuery(t,e){t.searchQuery=e},setShowConfig(t,{key:e,value:n}){t.showConfig[e]=n},setGroupSorting(e,n){const s=e.orderBy;e.orderBy=n,r.Ay.post((0,dn.Jv)("/settings/users/preferences/group.sortBy"),{value:String(n)}).catch(n=>{e.orderBy=s,(0,Je.Qg)(t("settings","Could not set group sorting")),cn.error(n)})}},oo={getUsers:t=>t.users,getGroups:t=>t.groups,getSearchQuery:t=>t.searchQuery,getSubAdminGroups:()=>no.subAdminGroups??[],getSortedGroups(t){const e=[...t.groups];return t.orderBy===Zr.UserCount?e.sort((t,e)=>{const n=t.usercount-t.disabled,s=e.usercount-e.disabled;return neo.compare(t.name,e.name))},getGroupSorting:t=>t.orderBy,getPasswordPolicyMinLength:t=>t.minPasswordLength,getUsersOffset:t=>t.usersOffset,getUsersLimit:t=>t.usersLimit,getDisabledUsersOffset:t=>t.disabledUsersOffset,getDisabledUsersLimit:t=>t.disabledUsersLimit,getUserCount:t=>t.userCount,getShowConfig:t=>t.showConfig},ao=r.Ay.CancelToken;let lo=null;function co(t,e){const n=e.data.ocs.data.groups??[];0!==n.length&&n.forEach(e=>{t.commit("addGroup",{id:e.id,name:e.displayname})})}const uo={state:io,mutations:ro,getters:oo,actions:{searchUsers:(t,{offset:e,limit:n,search:s})=>(s="string"==typeof s?s:"",Rr((0,dn.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s})).catch(e=>{r.Ay.isCancel(e)||t.commit("API_FAILURE",e)})),getUser:(t,e)=>Rr((0,dn.KT)(`cloud/users/${e}`)).catch(e=>{r.Ay.isCancel(e)||t.commit("API_FAILURE",e)}),getUsers:(t,{offset:e,limit:n,search:s,group:i})=>(lo&&lo.cancel("Operation canceled by another search request."),lo=ao.source(),s="string"==typeof s?s:"",""!==(i="string"==typeof i?i:"")?Rr((0,dn.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(i),offset:e,limit:n,search:s}),{cancelToken:lo.token}).then(e=>{const n=Object.keys(e.data.ocs.data.users).length;return n>0&&t.commit("appendUsers",e.data.ocs.data.users),co(t,e),n}).catch(e=>{r.Ay.isCancel(e)||t.commit("API_FAILURE",e)}):Rr((0,dn.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s}),{cancelToken:lo.token}).then(e=>{const n=Object.keys(e.data.ocs.data.users).length;return n>0&&t.commit("appendUsers",e.data.ocs.data.users),co(t,e),n}).catch(e=>{r.Ay.isCancel(e)||t.commit("API_FAILURE",e)})),async getRecentUsers(t,{offset:e,limit:n,search:s}){const i=(0,dn.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s});try{const e=await Rr(i),n=Object.keys(e.data.ocs.data.users).length;return n>0&&t.commit("appendUsers",e.data.ocs.data.users),n}catch(e){t.commit("API_FAILURE",e)}},async getDisabledUsers(t,{offset:e,limit:n,search:s}){const i=(0,dn.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s});try{const e=await Rr(i),n=Object.keys(e.data.ocs.data.users).length;return n>0&&(t.commit("appendUsers",e.data.ocs.data.users),t.commit("updateDisabledUsers",e.data.ocs.data.users)),n}catch(e){t.commit("API_FAILURE",e)}},getGroups(t,{offset:e,limit:n,search:s}){s="string"==typeof s?s:"";const i=-1===n?"":`&limit=${n}`;return Rr((0,dn.KT)("cloud/groups?offset={offset}&search={search}",{offset:e,search:s})+i).then(e=>{const n=e.data.ocs.data.groups??[];return n.length>0&&(n.forEach(function(e){t.commit("addGroup",{id:e,name:e})}),!0)}).catch(e=>t.commit("API_FAILURE",e))},getUsersFromList:(t,{offset:e,limit:n,search:s})=>(s="string"==typeof s?s:"",Rr((0,dn.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:e,limit:n,search:s})).then(e=>Object.keys(e.data.ocs.data.users).length>0&&(t.commit("appendUsers",e.data.ocs.data.users),!0)).catch(e=>t.commit("API_FAILURE",e))),getUsersFromGroup:(t,{groupid:e,offset:n,limit:s})=>Rr((0,dn.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(e),offset:n,limit:s})).then(e=>t.commit("getUsersFromList",e.data.ocs.data.users)).catch(e=>t.commit("API_FAILURE",e)),getPasswordPolicyMinLength:t=>!(!(0,to.F)().password_policy||!(0,to.F)().password_policy.minLength)&&(t.commit("setPasswordPolicyMinLength",(0,to.F)().password_policy.minLength),(0,to.F)().password_policy.minLength),addGroup:(t,e)=>qr().then(()=>zr((0,dn.KT)("cloud/groups"),{groupid:e}).then(()=>(t.commit("addGroup",{id:e,name:e}),{gid:e,displayName:e})).catch(t=>{throw t})).catch(n=>{throw t.commit("API_FAILURE",{gid:e,error:n}),n}),renameGroup:(t,{groupid:e,displayName:n})=>qr().then(()=>Wr((0,dn.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(e)}),{key:"displayname",value:n}).then(()=>(t.commit("renameGroup",{gid:e,displayName:n}),{groupid:e,displayName:n})).catch(t=>{throw t})).catch(n=>{throw t.commit("API_FAILURE",{groupid:e,error:n}),n}),removeGroup:(t,e)=>qr().then(()=>Vr((0,dn.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(e)})).then(()=>t.commit("removeGroup",e)).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{gid:e,error:n})),addUserGroup:(t,{userid:e,gid:n})=>qr().then(()=>zr((0,dn.KT)("cloud/users/{userid}/groups",{userid:e}),{groupid:n}).then(()=>t.commit("addUserGroup",{userid:e,gid:n})).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),removeUserGroup:(t,{userid:e,gid:n})=>qr().then(()=>Vr((0,dn.KT)("cloud/users/{userid}/groups",{userid:e}),{groupid:n}).then(()=>t.commit("removeUserGroup",{userid:e,gid:n})).catch(t=>{throw t})).catch(n=>{throw t.commit("API_FAILURE",{userid:e,error:n}),n}),addUserSubAdmin:(t,{userid:e,gid:n})=>qr().then(()=>zr((0,dn.KT)("cloud/users/{userid}/subadmins",{userid:e}),{groupid:n}).then(()=>t.commit("addUserSubAdmin",{userid:e,gid:n})).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),removeUserSubAdmin:(t,{userid:e,gid:n})=>qr().then(()=>Vr((0,dn.KT)("cloud/users/{userid}/subadmins",{userid:e}),{groupid:n}).then(()=>t.commit("removeUserSubAdmin",{userid:e,gid:n})).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),async wipeUserDevices(t,e){try{return await qr(),await zr((0,dn.KT)("cloud/users/{userid}/wipe",{userid:e}))}catch(n){return t.commit("API_FAILURE",{userid:e,error:n}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(t,e)=>qr().then(()=>Vr((0,dn.KT)("cloud/users/{userid}",{userid:e})).then(()=>t.commit("deleteUser",e)).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),addUser:({commit:t,dispatch:e},{userid:n,password:s,displayName:i,email:r,groups:o,subadmin:a,quota:l,language:c,manager:d})=>qr().then(()=>zr((0,dn.KT)("cloud/users"),{userid:n,password:s,displayName:i,email:r,groups:o,subadmin:a,quota:l,language:c,manager:d}).then(t=>e("addUserData",n||t.data.ocs.data.id)).catch(t=>{throw t})).catch(e=>{throw t("API_FAILURE",{userid:n,error:e}),e}),addUserData:(t,e)=>qr().then(()=>Rr((0,dn.KT)("cloud/users/{userid}",{userid:e})).then(e=>t.commit("addUserData",e)).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),enableDisableUser(t,{userid:e,enabled:n=!0}){const s=n?"enable":"disable";return qr().then(()=>Wr((0,dn.KT)("cloud/users/{userid}/{userStatus}",{userid:e,userStatus:s})).then(()=>t.commit("enableDisableUser",{userid:e,enabled:n})).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n}))},async setUserData(t,{userid:e,key:n,value:s}){if(!["email","language","quota","displayname","password","manager"].includes(n))throw new Error("Invalid request data");if(""===s&&!["email","displayname","manager"].includes(n))throw new Error("Value cannot be empty for this field");try{return await qr(),await Wr((0,dn.KT)("cloud/users/{userid}",{userid:e}),{key:n,value:s}),t.commit("setUserData",{userid:e,key:n,value:s})}catch(n){throw t.commit("API_FAILURE",{userid:e,error:n}),n}},async editUserMultiField(t,{userid:e,payload:n}){try{await qr();const s=await Hr((0,dn.KT)("cloud/users/{userid}",{userid:e}),n);t.commit("editUserMultiField",{userid:e,data:s.data.ocs.data})}catch(n){throw t.commit("API_FAILURE",{userid:e,error:n}),n}},sendWelcomeMail:(t,e)=>qr().then(()=>zr((0,dn.KT)("cloud/users/{userid}/welcome",{userid:e})).then(()=>!0).catch(t=>{throw t})).catch(n=>t.commit("API_FAILURE",{userid:e,error:n})),migrateLocalStorage({commit:t}){const e={showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"};for(const[n,s]of Object.entries(e)){const e=`account_settings__${n}`,i=window.localStorage.getItem(e);if(null===i)continue;const o="true"===i;t("setShowConfig",{key:n,value:o}),r.Ay.post((0,dn.Jv)(`/settings/users/preferences/${s}`),{value:o?"true":"false"}).then(()=>{window.localStorage.removeItem(e)}).catch(t=>{cn.error(`Failed to migrate preference ${n}`,{error:t})})}},setShowConfig(t,{key:e,value:n}){t.commit("setShowConfig",{key:e,value:n}),r.Ay.post((0,dn.Jv)(`settings/users/preferences/${{showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"}[e]}`),{value:n?"true":"false"}).catch(t=>cn.error(`Could not update ${e} preference`,{error:t}))}}},po={API_FAILURE(e,n){try{const e=n.error.response.data.ocs.meta.message;(0,Je.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
"+e,{isHTML:!0})}catch{(0,Je.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}cn.error("An error occurred during the request.",{state:e,error:n})}};let ho=null;function fo(){return null===ho&&(ho=new ke({modules:{users:uo,settings:Jr,oc:Qr},strict:!1,mutations:po})),ho}const go=(0,ge.pM)({__name:"AppNavigationGroupList",setup(t){const e=fo(),n=Nr(),s=(0,ge.nI)().proxy.$root.$router;(0,ge.KC)(async()=>{await y()});const i=(0,ge.EW)(()=>n.params?.selectedGroup),r=(0,ge.EW)(()=>i.value?decodeURIComponent(i.value):null),a=(0,ge.EW)(()=>e.getters.getServerData),l=(0,ge.EW)(()=>a.value.isAdmin||a.value.isDelegatedAdmin),c=(0,ge.EW)(()=>l.value?e.getters.getSortedGroups:e.getters.getSubAdminGroups),{userGroups:d}=Mr(c),u=(0,ge.KR)(!1),p=(0,ge.KR)(!1),h=(0,ge.KR)(!1),f=(0,ge.KR)(""),g=(0,ge.KR)(!1),m=(0,ge.KR)(0),A=(0,ge.EW)(()=>e.getters.getSearchQuery),v=(0,ge.EW)(()=>{if(l.value)return d.value;const t=A.value.toLowerCase();return d.value.filter(e=>-1!==e.id.toLowerCase().search(t)||-1!==e.title.toLowerCase().search(t))}),_=(0,ge.KR)([]),w=(0,ge.EW)(()=>_.value.findLast(t=>t?.$vnode?.key===d.value?.at(-1)?.id)?.$refs?.listItem?.$el),C=(0,Er.ITo)(w);(0,ge.wB)(C,async()=>{C.value&&await y()}),(0,ge.wB)(A,async()=>{e.commit("resetGroups"),m.value=0,await y()});const b=(0,ge.KR)();async function y(){if(l.value){b.value&&b.value.cancel(),g.value=!0;try{b.value=hn({search:A.value,offset:m.value,limit:25});const t=await b.value;t.length>0&&(m.value+=25);for(const n of t)e.commit("addGroup",n)}catch(t){cn.error((0,o.t)("settings","Failed to load groups"),{error:t})}b.value=void 0,g.value=!1}}return{__sfc:!0,store:e,route:n,router:s,selectedGroup:i,selectedGroupDecoded:r,settings:a,isAdminOrDelegatedAdmin:l,groups:c,userGroups:d,isAddGroupOpen:u,loadingAddGroup:p,hasAddGroupError:h,newGroupName:f,loadingGroups:g,offset:m,groupsSearchQuery:A,filteredGroups:v,groupListItems:_,lastGroupListItem:w,isLastGroupVisible:C,promise:b,loadGroups:y,createGroup:async function(){h.value=!1;const t=f.value.trim();if(""!==t){u.value=!1,p.value=!0;try{await e.dispatch("addGroup",t),await s.push({name:"group",params:{selectedGroup:encodeURIComponent(t)}});const n=_.value.findLast(e=>e?.$vnode?.key===t);n?.$refs?.listItem?.$el?.scrollIntoView({behavior:"smooth",block:"nearest"}),f.value=""}catch{(0,Je.Qg)((0,o.t)("settings","Failed to create group"))}p.value=!1}else h.value=!0},mdiAccountGroupOutline:Xe.dgQ,mdiPlus:Xe.biz,t:o.t,Fragment:Ze.F,NcActionInput:Lr.A,NcActionText:Cs.A,NcAppNavigationCaption:Os.N,NcAppNavigationList:Ls.A,NcIconSvgWrapper:en.A,NcLoadingIcon:nn.A,GroupListItem:Pr}}}),mo=go,Ao=(0,En.A)(mo,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.Fragment,[e("p",{staticClass:"hidden-visually",attrs:{id:"group-list-desc"}},[t._v("\n\t\t"+t._s(n.t("settings","List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list."))+"\n\t")]),t._v(" "),e(n.NcAppNavigationList,{staticClass:"account-management__group-list",attrs:{"aria-label":n.t("settings","Groups"),"aria-describedby":"group-list-desc","data-cy-users-settings-navigation-groups":"custom"}},[e(n.NcAppNavigationCaption,{attrs:{name:n.t("settings","Groups"),disabled:n.loadingAddGroup,"aria-label":n.loadingAddGroup?n.t("settings","Creating group…"):n.t("settings","Create group"),"force-menu":"",open:n.isAddGroupOpen},on:{"update:open":function(t){n.isAddGroupOpen=t}},scopedSlots:t._u([n.isAdminOrDelegatedAdmin?{key:"actionsTriggerIcon",fn:function(){return[n.loadingAddGroup?e(n.NcLoadingIcon):e(n.NcIconSvgWrapper,{attrs:{path:n.mdiPlus}})]},proxy:!0}:null,n.isAdminOrDelegatedAdmin?{key:"actions",fn:function(){return[e(n.NcActionText,{scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiAccountGroupOutline}})]},proxy:!0}],null,!1,4071362859)},[t._v("\n\t\t\t\t\t"+t._s(n.t("settings","Create group"))+"\n\t\t\t\t")]),t._v(" "),e(n.NcActionInput,{attrs:{label:n.t("settings","Group name"),"data-cy-users-settings-new-group-name":"","label-outside":!1,disabled:n.loadingAddGroup,error:n.hasAddGroupError,"helper-text":n.hasAddGroupError?n.t("settings","Please enter a valid group name"):""},on:{submit:n.createGroup},model:{value:n.newGroupName,callback:function(t){n.newGroupName=t},expression:"newGroupName"}})]},proxy:!0}:null],null,!0)}),t._v(" "),t._l(n.filteredGroups,function(t){return e(n.GroupListItem,{key:t.id,ref:"groupListItems",refInFor:!0,attrs:{id:t.id,active:n.selectedGroupDecoded===t.id,name:t.title,count:t.count}})}),t._v(" "),n.loadingGroups?e("div",{attrs:{role:"note"}},[e(n.NcLoadingIcon,{attrs:{name:n.t("settings","Loading groups…")}})],1):t._e()],2)],1)},[],!1,null,null,null).exports;var vo=s(32073);const _o={name:"UserSettingsDialog",components:{NcAppSettingsDialog:$s.N,NcAppSettingsSection:Bs.N,NcAppSettingsShortcutsSection:Ps.N,NcCheckboxRadioSwitch:vo.A,NcHotkey:wi.N,NcHotkeyList:Ci.N,NcNoteCard:Oi.A,NcSelect:ln.default},props:{open:{type:Boolean,required:!0}},emits:["update:open"],setup(t,{emit:e}){(0,Xi.C)("?",async()=>{e("update:open",!0),await(0,ge.dY)(),document.getElementById("settings-section_keyboard-shortcuts")?.scrollIntoView({behavior:"smooth",inline:"nearest"})},{stop:!0,prevent:!0})},data:()=>({selectedQuota:!1,loadingSendMail:!1}),computed:{groupSorting:{get(){return this.$store.getters.getGroupSorting===Zr.GroupName?"name":"member-count"},set(t){this.$store.commit("setGroupSorting","name"===t?Zr.GroupName:Zr.UserCount)}},isGroupSortingEnforced(){return this.$store.getters.getServerData.forceSortGroupByName},isModalOpen:{get(){return this.open},set(t){this.$emit("update:open",t)}},showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData},showLanguages:{get(){return this.showConfig.showLanguages},set(t){this.setShowConfig("showLanguages",t)}},showFirstLogin:{get(){return this.showConfig.showFirstLogin},set(t){this.setShowConfig("showFirstLogin",t)}},showLastLogin:{get(){return this.showConfig.showLastLogin},set(t){this.setShowConfig("showLastLogin",t)}},showUserBackend:{get(){return this.showConfig.showUserBackend},set(t){this.setShowConfig("showUserBackend",t)}},showStoragePath:{get(){return this.showConfig.showStoragePath},set(t){this.setShowConfig("showStoragePath",t)}},quotaOptions(){const t=this.settings.quotaPreset.reduce((t,e)=>t.concat({id:e,label:e}),[]);return this.settings.allowUnlimitedQuota&&t.unshift(Dn),t},defaultQuota:{get(){return!1!==this.selectedQuota?this.selectedQuota:this.settings.defaultQuota!==Dn.id&&OC.Util.computerFileSize(this.settings.defaultQuota)>=0?{id:this.settings.defaultQuota,label:this.settings.defaultQuota}:Dn},set(t){this.selectedQuota=t}},sendWelcomeMail:{get(){return this.settings.newUserSendEmail},async set(t){try{this.loadingSendMail=!0,this.$store.commit("setServerData",{...this.settings,newUserSendEmail:t}),await r.Ay.post((0,dn.Jv)("/settings/users/preferences/newUser.sendEmail"),{value:t?"yes":"no"})}catch(t){cn.error("Could not update newUser.sendEmail preference",{error:t})}finally{this.loadingSendMail=!1}}}},methods:{filterQuotas(t,e,n){const s=n.toLocaleLowerCase().replaceAll(/\s/g,"");return(e||"").toLocaleLowerCase().replaceAll(/\s/g,"").indexOf(s)>-1},setShowConfig(t,e){this.$store.dispatch("setShowConfig",{key:t,value:e})},validateQuota(t){"object"==typeof t&&(t=t?.id||t.label);const e=(0,Un.lT)(t,!0);return null===e?Dn:{id:t=(0,Un.v7)(e),label:t}},setDefaultQuota(t="none"){"none"===t&&(t=Dn),this.$store.dispatch("setAppConfig",{app:"files",key:"default_quota",value:t.id?t.id:t}).then(()=>{"object"!=typeof t&&(t={id:t,label:t}),this.defaultQuota=t})}}};var wo=s(59381),Co={};Co.styleTagTransform=Nn(),Co.setAttributes=bn(),Co.insert=wn().bind(null,"head"),Co.domAPI=vn(),Co.insertStyleElement=xn(),mn()(wo.A,Co),wo.A&&wo.A.locals&&wo.A.locals;const bo=(0,En.A)(_o,function(){var t=this,e=t._self._c;return e("NcAppSettingsDialog",{attrs:{open:t.isModalOpen,"show-navigation":!0,name:t.t("settings","Account management settings")},on:{"update:open":function(e){t.isModalOpen=e}}},[e("NcAppSettingsSection",{attrs:{id:"visibility-settings",name:t.t("settings","Visibility")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showLanguages"},model:{value:t.showLanguages,callback:function(e){t.showLanguages=e},expression:"showLanguages"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show language"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showUserBackend"},model:{value:t.showUserBackend,callback:function(e){t.showUserBackend=e},expression:"showUserBackend"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show account backend"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showStoragePath"},model:{value:t.showStoragePath,callback:function(e){t.showStoragePath=e},expression:"showStoragePath"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show storage path"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showFirstLogin"},model:{value:t.showFirstLogin,callback:function(e){t.showFirstLogin=e},expression:"showFirstLogin"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show first login"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showLastLogin"},model:{value:t.showLastLogin,callback:function(e){t.showLastLogin=e},expression:"showLastLogin"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show last login"))+"\n\t\t")])],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"groups-sorting",name:t.t("settings","Sorting")}},[t.isGroupSortingEnforced?e("NcNoteCard",{attrs:{type:"warning"}},[t._v("\n\t\t\t"+t._s(t.t("settings","The system config enforces sorting the groups by name. This also disables showing the member count."))+"\n\t\t")]):t._e(),t._v(" "),e("fieldset",[e("legend",[t._v(t._s(t.t("settings","Group list sorting")))]),t._v(" "),e("NcNoteCard",{staticClass:"dialog__note",attrs:{type:"info",text:t.t("settings","Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.")}}),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"radio","data-test":"sortGroupsByMemberCount",disabled:t.isGroupSortingEnforced,name:"group-sorting-mode",value:"member-count"},model:{value:t.groupSorting,callback:function(e){t.groupSorting=e},expression:"groupSorting"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","By member count"))+"\n\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"radio","data-test":"sortGroupsByName",disabled:t.isGroupSortingEnforced,name:"group-sorting-mode",value:"name"},model:{value:t.groupSorting,callback:function(e){t.groupSorting=e},expression:"groupSorting"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","By name"))+"\n\t\t\t")])],1)],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"email-settings",name:t.t("settings","Send email")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"sendWelcomeMail",disabled:t.loadingSendMail},model:{value:t.sendWelcomeMail,callback:function(e){t.sendWelcomeMail=e},expression:"sendWelcomeMail"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Send welcome email to new accounts"))+"\n\t\t")])],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"default-settings",name:t.t("settings","Defaults")}},[e("NcSelect",{attrs:{clearable:!1,"create-option":t.validateQuota,"filter-by":t.filterQuotas,"input-label":t.t("settings","Default quota"),options:t.quotaOptions,placement:"top",placeholder:t.t("settings","Select default quota"),taggable:""},on:{"option:selected":t.setDefaultQuota},model:{value:t.defaultQuota,callback:function(e){t.defaultQuota=e},expression:"defaultQuota"}})],1),t._v(" "),e("NcAppSettingsShortcutsSection",[e("NcHotkeyList",{attrs:{label:t.t("settings","Search")}},[e("NcHotkey",{attrs:{label:t.t("settings","Focus search"),hotkey:"Control F"}})],1),t._v(" "),e("NcHotkeyList",{attrs:{label:t.t("settings","Help")}},[e("NcHotkey",{attrs:{label:t.t("settings","Show those shortcuts"),hotkey:"?"}})],1)],1)],1)},[],!1,null,"649c1de8",null).exports,yo=(0,ge.pM)({__name:"UserManagementNavigation",setup(t){const e=Nr(),n=fo(),s=(0,ge.KR)(),i=(0,ge.KR)(""),r=(0,mr.A)(t=>{n.commit("setSearchQuery",t)},300);(0,ge.wB)(i,t=>r(t)),(0,ge.xo)(()=>r.clear()),(0,Xi.C)("f",()=>s.value?.$refs.inputElement?.focus(),{ctrl:!0,stop:!0,prevent:!0});const a=(0,ge.KR)(!1),l=(0,ge.EW)(()=>e.params?.selectedGroup),c=(0,ge.EW)(()=>l.value?decodeURIComponent(l.value):null),d=(0,ge.EW)(()=>n.getters.getUserCount),u=(0,ge.EW)(()=>n.getters.getSortedGroups),{adminGroup:p,recentGroup:h,disabledGroup:f}=Mr(u),g=(0,ge.EW)(()=>n.getters.getServerData),m=(0,ge.EW)(()=>g.value.isAdmin||g.value.isDelegatedAdmin);return{__sfc:!0,route:e,store:n,searchField:s,searchInput:i,commitSearch:r,isDialogOpen:a,selectedGroup:l,selectedGroupDecoded:c,userCount:d,groups:u,adminGroup:p,recentGroup:h,disabledGroup:f,settings:g,isAdminOrDelegatedAdmin:m,showNewUserMenu:function(){n.dispatch("setShowConfig",{key:"showNewUserForm",value:!0})},mdiAccountOffOutline:Xe.Zfz,mdiAccountOutline:Xe.EzL,mdiCogOutline:Xe.ED,mdiHistory:Xe.LP2,mdiPlus:Xe.biz,mdiShieldAccountOutline:Xe.J0H,t:o.Tl,NcAppNavigation:Or.A,NcAppNavigationItem:Sr.A,NcAppNavigationList:Ls.A,NcAppNavigationNew:Us.N,NcAppNavigationSearch:Gs.N,NcButton:sn.A,NcCounterBubble:ti.N,NcIconSvgWrapper:en.A,AppNavigationGroupList:Ao,UserSettingsDialog:bo}}}),xo=yo;var ko=s(34895),No={};No.styleTagTransform=Nn(),No.setAttributes=bn(),No.insert=wn().bind(null,"head"),No.domAPI=vn(),No.insertStyleElement=xn(),mn()(ko.A,No),ko.A&&ko.A.locals&&ko.A.locals;var Oo=(0,En.A)(xo,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.NcAppNavigation,{staticClass:"account-management__navigation",attrs:{"aria-label":n.t("settings","Account management")},scopedSlots:t._u([{key:"footer",fn:function(){return[e(n.NcButton,{staticClass:"account-management__settings-toggle",attrs:{variant:"tertiary",wide:""},on:{click:function(t){n.isDialogOpen=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiCogOutline}})]},proxy:!0}])},[t._v(" "),e("span",{staticClass:"account-management__settings-toggle-text"},[t._v("\n\t\t\t\t"+t._s(n.t("settings","Account management settings"))+"\n\t\t\t")])]),t._v(" "),e(n.UserSettingsDialog,{attrs:{open:n.isDialogOpen},on:{"update:open":function(t){n.isDialogOpen=t}}})]},proxy:!0}])},[e(n.NcAppNavigationNew,{attrs:{"button-id":"new-user-button",text:n.t("settings","New account")},on:{click:n.showNewUserMenu,keyup:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.showNewUserMenu.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"space",32,e.key,[" ","Spacebar"])?null:n.showNewUserMenu.apply(null,arguments)}]},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiPlus}})]},proxy:!0}])}),t._v(" "),e(n.NcAppNavigationSearch,{ref:"searchField",attrs:{label:n.t("settings","Search accounts and groups…")},model:{value:n.searchInput,callback:function(t){n.searchInput=t},expression:"searchInput"}}),t._v(" "),e(n.NcAppNavigationList,{staticClass:"account-management__system-list",attrs:{"data-cy-users-settings-navigation-groups":"system"}},[e(n.NcAppNavigationItem,{attrs:{id:"everyone",exact:!0,name:n.t("settings","All accounts"),to:{name:"users"}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiAccountOutline}})]},proxy:!0},{key:"counter",fn:function(){return[n.userCount?e(n.NcCounterBubble,{attrs:{type:n.selectedGroupDecoded?void 0:"highlighted"}},[t._v("\n\t\t\t\t\t"+t._s(n.userCount)+"\n\t\t\t\t")]):t._e()]},proxy:!0}])}),t._v(" "),n.settings.isAdmin?e(n.NcAppNavigationItem,{attrs:{id:"admin",exact:!0,name:n.t("settings","Admins"),to:{name:"group",params:{selectedGroup:"admin"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiShieldAccountOutline}})]},proxy:!0},{key:"counter",fn:function(){return[n.adminGroup&&n.adminGroup.count>0?e(n.NcCounterBubble,{attrs:{type:"admin"===n.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(n.adminGroup.count)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,3779933833)}):t._e(),t._v(" "),n.isAdminOrDelegatedAdmin?e(n.NcAppNavigationItem,{attrs:{id:"recent",exact:!0,name:n.t("settings","Recently active"),to:{name:"group",params:{selectedGroup:"__nc_internal_recent"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiHistory}})]},proxy:!0},{key:"counter",fn:function(){return[n.recentGroup?.usercount?e(n.NcCounterBubble,{attrs:{type:"__nc_internal_recent"===n.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(n.recentGroup.usercount)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,2299424282)}):t._e(),t._v(" "),n.disabledGroup&&(n.disabledGroup.usercount>0||-1===n.disabledGroup.usercount)?e(n.NcAppNavigationItem,{attrs:{id:"disabled",exact:!0,name:n.t("settings","Disabled accounts"),to:{name:"group",params:{selectedGroup:"disabled"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{path:n.mdiAccountOffOutline}})]},proxy:!0},n.disabledGroup.usercount>0?{key:"counter",fn:function(){return[e(n.NcCounterBubble,{attrs:{type:"disabled"===n.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(n.disabledGroup.usercount)+"\n\t\t\t\t")])]},proxy:!0}:null],null,!0)}):t._e()],1),t._v(" "),e(n.AppNavigationGroupList)],1)},[],!1,null,"1fd1d021",null);const So=Oo.exports,Eo=(0,ge.pM)({name:"UserManagement",components:{NcContent:Ye.A,NcAppContent:Ke.A,UserList:kr,UserManagementNavigation:So},data:()=>({externalActions:[]}),computed:{pageHeading(){return null===this.selectedGroupDecoded?(0,o.Tl)("settings","All accounts"):{admin:(0,o.Tl)("settings","Admins"),disabled:(0,o.Tl)("settings","Disabled accounts")}[this.selectedGroupDecoded]??(0,o.Tl)("settings","Account group: {group}",{group:this.selectedGroupDecoded})},selectedGroup(){return this.$route.params.selectedGroup},selectedGroupDecoded(){return this.selectedGroup?decodeURIComponent(this.selectedGroup):null}},beforeMount(){this.$store.dispatch("getPasswordPolicyMinLength")},created(){window.OCA=window.OCA??{},window.OCA.Settings=window.OCA.Settings??{},window.OCA.Settings.UserList=window.OCA.Settings.UserList??{},window.OCA.Settings.UserList.registerAction=this.registerAction,(0,Qe.Ic)("settings:user-management:loaded")},methods:{t:o.Tl,registerAction(t,e,n,s){return this.externalActions.push({icon:t,text:e,action:n,enabled:s}),this.externalActions}}});var Lo=s(7784),Uo={};Uo.styleTagTransform=Nn(),Uo.setAttributes=bn(),Uo.insert=wn().bind(null,"head"),Uo.domAPI=vn(),Uo.insertStyleElement=xn(),mn()(Lo.A,Uo),Lo.A&&Lo.A.locals&&Lo.A.locals;const Do=(0,En.A)(Eo,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcContent",{attrs:{"app-name":"settings"}},[e("UserManagementNavigation"),t._v(" "),e("NcAppContent",{attrs:{"page-heading":t.pageHeading}},[e("UserList",{attrs:{"selected-group":t.selectedGroupDecoded,"external-actions":t.externalActions}})],1)],1)},[],!1,null,"7690bc0a",null).exports;var Go=s(40173);ge.Ay.use(Go.Ay);const To=new Go.Ay({mode:"history",base:(0,dn.Jv)(""),linkActiveClass:"active",routes:[{name:"users",path:"/:index(index.php/)?settings/users",props:!0,children:[{path:":selectedGroup",name:"group"}]}]});(0,a.IF)(r.Ay),s.nc=(0,i.aV)(),ge.Ay.prototype.t=o.t,ge.Ay.prototype.n=o.n,ge.Ay.use(l.R2),ge.Ay.use(fe,{defaultHtml:!1}),ge.Ay.use(We);const Io=fo();(0,Ve.O)(Io,To);const $o=(0,l.Ey)();Io.dispatch("migrateLocalStorage"),new(ge.Ay.extend(Do))({router:To,store:Io,pinia:$o}).$mount("#content")},33491(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".modal__header[data-v-30743619]{margin:0}.modal__content[data-v-30743619]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-30743619]{display:flex;width:100%;justify-content:space-between}","",{version:3,sources:["webpack://./apps/settings/src/components/GroupListItem.vue"],names:[],mappings:"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA",sourcesContent:["\n.modal {\n\t&__header {\n\t\tmargin: 0;\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tpadding: 20px;\n\t\tgap: 4px 0;\n\t}\n\n\t&__button-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tjustify-content: space-between;\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},62534(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".empty[data-v-ff26583a] .icon-vue{width:64px;height:64px}.empty[data-v-ff26583a] .icon-vue svg{max-width:64px;max-height:64px}","",{version:3,sources:["webpack://./apps/settings/src/components/UserList.vue"],names:[],mappings:"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA",sourcesContent:["\n@use './Users/shared/styles.scss' as *;\n\n.empty {\n\t:deep {\n\t\t.icon-vue {\n\t\t\twidth: 64px;\n\t\t\theight: 64px;\n\n\t\t\tsvg {\n\t\t\t\tmax-width: 64px;\n\t\t\t\tmax-height: 64px;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},51499(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".edit-dialog[data-v-f0cc6e68] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/EditUserDialog.vue"],names:[],mappings:"AAEC,+CACC,4DAAA",sourcesContent:["\n.edit-dialog {\n\t:deep(.dialog__actions) {\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},819(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".dialog[data-v-32af3da3] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/NewUserDialog.vue"],names:[],mappings:"AAEC,0CACC,4DAAA",sourcesContent:["\n.dialog {\n\t:deep(.dialog__actions) {\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},16301(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".user-form-fields[data-v-43846e48]{display:flex;flex-direction:column;align-items:center;gap:calc(var(--default-grid-baseline, 4px)*2) 0}.user-form-fields__item[data-v-43846e48]{width:100%}.user-form-fields__item[data-v-43846e48]:not(:focus):not(:active){border-color:var(--color-border-dark)}.user-form-fields__static[data-v-43846e48]{display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area, 44px);padding:var(--border-width-input-focused, 2px);padding-inline:calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));margin-left:18px}.user-form-fields__static-label[data-v-43846e48]{font-size:var(--font-size-small, 13px);font-weight:500;line-height:1.5;color:var(--color-text-maxcontrast)}.user-form-fields__static-value[data-v-43846e48]{font-size:var(--default-font-size, 14px);line-height:1.5;color:var(--color-main-text)}.user-form-fields__hint[data-v-43846e48]{color:var(--color-text-maxcontrast);margin-block-start:calc(var(--default-grid-baseline, 4px)*2);align-self:flex-start}.user-form-fields[data-v-43846e48] .user-form__item{width:100%}.user-form-fields[data-v-43846e48] .user-form__select{width:100%}.user-form-fields__error-summary[data-v-43846e48]{width:100%;margin-block-start:calc(var(--default-grid-baseline, 4px)*2);color:var(--color-error);font-size:var(--default-font-size, 14px)}.user-form-fields__error-summary p[data-v-43846e48]{margin-block:calc(var(--default-grid-baseline, 4px)/2)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserFormFields.vue"],names:[],mappings:"AACA,mCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,+CAAA,CAEA,yCACC,UAAA,CAEA,kEACC,qCAAA,CAIF,2CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,8CAAA,CACA,8CAAA,CACA,+FAAA,CAIA,gBAAA,CAEA,iDACC,sCAAA,CACA,eAAA,CACA,eAAA,CACA,mCAAA,CAGD,iDACC,wCAAA,CACA,eAAA,CACA,4BAAA,CAIF,yCACC,mCAAA,CACA,4DAAA,CACA,qBAAA,CAID,oDACC,UAAA,CAGD,sDACC,UAAA,CAGD,kDACC,UAAA,CACA,4DAAA,CACA,wBAAA,CACA,wCAAA,CAEA,oDACC,sDAAA",sourcesContent:["\n.user-form-fields {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\n\t&__item {\n\t\twidth: 100%;\n\n\t\t&:not(:focus):not(:active) {\n\t\t\tborder-color: var(--color-border-dark);\n\t\t}\n\t}\n\n\t&__static {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-height: var(--default-clickable-area, 44px);\n\t\tpadding: var(--border-width-input-focused, 2px);\n\t\tpadding-inline: calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));\n\n\t\t// Manually align static value with inputs below until we have a static field in component lib.\n\t\t// See: https://github.com/nextcloud/server/issues/53862#issuecomment-4212613996\n\t\tmargin-left: 18px;\n\n\t\t&-label {\n\t\t\tfont-size: var(--font-size-small, 13px);\n\t\t\tfont-weight: 500;\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t&-value {\n\t\t\tfont-size: var(--default-font-size, 14px);\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n\n\t&__hint {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\n\t\talign-self: flex-start;\n\t}\n\n\t// Reach into sub-component root elements to apply consistent sizing\n\t:deep(.user-form__item) {\n\t\twidth: 100%;\n\t}\n\n\t:deep(.user-form__select) {\n\t\twidth: 100%;\n\t}\n\n\t&__error-summary {\n\t\twidth: 100%;\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\n\t\tcolor: var(--color-error);\n\t\tfont-size: var(--default-font-size, 14px);\n\n\t\tp {\n\t\t\tmargin-block: calc(var(--default-grid-baseline, 4px) / 2);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},60508(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".user-form-groups[data-v-4041cacf]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px)*2) 0;width:100%}.user-form__item[data-v-4041cacf]{width:100%}.user-form__select[data-v-4041cacf]{width:100%}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserFormGroups.vue"],names:[],mappings:"AACA,mCACC,YAAA,CACA,qBAAA,CACA,+CAAA,CACA,UAAA,CAGD,kCACC,UAAA,CAGD,oCACC,UAAA",sourcesContent:["\n.user-form-groups {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\twidth: 100%;\n}\n\n.user-form__item {\n\twidth: 100%;\n}\n\n.user-form__select {\n\twidth: 100%;\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},75427(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".footer[data-v-4ff6ba29]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-4ff6ba29]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-4ff6ba29],.footer__cell span[data-v-4ff6ba29],.footer__cell label[data-v-4ff6ba29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-4ff6ba29],.footer__cell--displayname[data-v-4ff6ba29]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-4ff6ba29]{inset-inline-start:0}.footer__cell--displayname[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-4ff6ba29]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-4ff6ba29]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-4ff6ba29]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-4ff6ba29]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--groups[data-v-4ff6ba29]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.footer__cell--obfuscated[data-v-4ff6ba29]{min-width:400px;width:400px}.footer__cell--fill[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-4ff6ba29]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-4ff6ba29]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-4ff6ba29]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-4ff6ba29]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserListFooter.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDzGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.footer {\n\t@include styles.row;\n\t@include styles.cell;\n\n\t&__cell {\n\t\tposition: sticky;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&--loading {\n\t\t\tinset-inline-start: 0;\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t&--count {\n\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\tmin-width: var(--cell-width);\n\t\t\twidth: var(--cell-width);\n\t\t}\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},94e3(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".header[data-v-53c64244]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-53c64244]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-53c64244],.header__cell span[data-v-53c64244],.header__cell label[data-v-53c64244]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-53c64244],.header__cell--displayname[data-v-53c64244]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-53c64244]{inset-inline-start:0}.header__cell--displayname[data-v-53c64244]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-53c64244]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-53c64244]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-53c64244]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-53c64244]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-53c64244]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--groups[data-v-53c64244]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.header__cell--obfuscated[data-v-53c64244]{min-width:400px;width:400px}.header__cell--fill[data-v-53c64244]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-53c64244]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-53c64244]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserListHeader.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.header {\n\tborder-bottom: 1px solid var(--color-border);\n\n\t@include styles.row;\n\t@include styles.cell;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},81761(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".user-list__row[data-v-78b3749c]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-78b3749c]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-78b3749c]:not(.row__cell--actions){background-color:var(--color-background-hover)}.row__cell[data-v-78b3749c]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-78b3749c],.row__cell span[data-v-78b3749c],.row__cell label[data-v-78b3749c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-78b3749c],.row__cell--displayname[data-v-78b3749c]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-78b3749c]{inset-inline-start:0}.row__cell--displayname[data-v-78b3749c]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-78b3749c]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-78b3749c]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-78b3749c]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-78b3749c]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-78b3749c]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--groups[data-v-78b3749c]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.row__cell--obfuscated[data-v-78b3749c]{min-width:400px;width:400px}.row__cell--fill[data-v-78b3749c]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-78b3749c]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-78b3749c]{color:var(--color-text-maxcontrast)}.row__cell[data-v-78b3749c]{border-bottom:1px solid var(--color-border)}.row__progress[data-v-78b3749c]{margin-top:4px}.row__progress--warn[data-v-78b3749c]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-78b3749c]::-webkit-progress-value{background:var(--color-warning) !important}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserRow.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CCKF,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CD9FD,4BACC,2CAAA,CAGD,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.user-list__row {\n\t@include styles.row;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\n\t\t.row__cell:not(.row__cell--actions) {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n}\n\n.row {\n\t@include styles.cell;\n\n\t&__cell {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__progress {\n\t\tmargin-top: 4px;\n\n\t\t&--warn {\n\t\t\t&::-moz-progress-bar {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t\t&::-webkit-progress-value {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},59381(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".dialog__note[data-v-649c1de8]{font-weight:normal}fieldset[data-v-649c1de8]{font-weight:bold}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue"],names:[],mappings:"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA",sourcesContent:["\n.dialog {\n\t&__note {\n\t\tfont-weight: normal;\n\t}\n}\n\nfieldset {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},66291(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".user-list[data-v-65d37ac4]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-width-groups: 380px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-65d37ac4],.user-list__footer[data-v-65d37ac4]{position:sticky;display:block}.user-list__header[data-v-65d37ac4]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-65d37ac4]{inset-inline-start:0}.user-list__body[data-v-65d37ac4]{display:flex;flex-direction:column;width:100%}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/VirtualList.vue"],names:[],mappings:"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,0BAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA",sourcesContent:["\n.user-list {\n\t--avatar-cell-width: 48px;\n\t--cell-padding: 7px;\n\t--cell-width: 200px;\n\t--cell-width-large: 300px;\n\t--cell-width-groups: 380px;\n\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\n\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\n\n\t// Necessary for virtual scroll optimized rendering\n\tdisplay: block;\n\toverflow: auto;\n\theight: 100%;\n\twill-change: scroll-position;\n\n\t&__header,\n\t&__footer {\n\t\tposition: sticky;\n\t\t// Fix sticky positioning in Firefox\n\t\tdisplay: block;\n\t}\n\n\t&__header {\n\t\ttop: 0;\n\t\tz-index: calc(var(--sticky-column-z-index) + 1);\n\t}\n\n\t&__footer {\n\t\tinset-inline-start: 0;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},7784(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".app-content[data-v-7690bc0a]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}","",{version:3,sources:["webpack://./apps/settings/src/views/UserManagement.vue"],names:[],mappings:"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA",sourcesContent:["\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},34895(t,e,n){"use strict";var s=n(71354),i=n.n(s),r=n(76314),o=n.n(r)()(i());o.push([t.id,".account-management__navigation[data-v-1fd1d021] .app-navigation__body{will-change:scroll-position}.account-management__search[data-v-1fd1d021]{padding-block:var(--default-grid-baseline, 4px);padding-inline:var(--app-navigation-padding, 8px)}.account-management__system-list[data-v-1fd1d021]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-1fd1d021]{height:100% !important}.account-management__settings-toggle[data-v-1fd1d021]{margin-bottom:var(--body-container-margin)}.account-management__settings-toggle-text[data-v-1fd1d021]{font-weight:500}","",{version:3,sources:["webpack://./apps/settings/src/views/UserManagementNavigation.vue"],names:[],mappings:"AAGE,uEACC,2BAAA,CAGF,6CACC,+CAAA,CACA,iDAAA,CAGD,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,0CAAA,CAEA,2DACC,eAAA",sourcesContent:["\n.account-management {\n\t&__navigation {\n\t\t:deep(.app-navigation__body) {\n\t\t\twill-change: scroll-position;\n\t\t}\n\t}\n\t&__search {\n\t\tpadding-block: var(--default-grid-baseline, 4px);\n\t\tpadding-inline: var(--app-navigation-padding, 8px);\n\t}\n\n\t&__system-list {\n\t\theight: auto !important;\n\t\toverflow: visible !important;\n\t}\n\n\t&__group-list {\n\t\theight: 100% !important;\n\t}\n\n\t&__settings-toggle {\n\t\tmargin-bottom: var(--body-container-margin);\n\n\t\t&-text {\n\t\t\tfont-weight: 500;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=o;n.d(e,["A",0,a])},87805(t,e,n){var s=n(43360),i=n(75288);t.exports=function(t,e,n){(void 0!==n&&!i(t[e],n)||void 0===n&&!(e in t))&&s(t,e,n)}},85250(t,e,n){var s=n(37217),i=n(87805),r=n(86649),o=n(42824),a=n(23805),l=n(37241),c=n(14974);t.exports=function t(e,n,d,u,p){e!==n&&r(n,function(r,l){if(p||(p=new s),a(r))o(e,n,l,d,t,u,p);else{var h=u?u(c(e,l),r,l+"",e,n,p):void 0;void 0===h&&(h=r),i(e,l,h)}},l)}},42824(t,e,n){var s=n(87805),i=n(93290),r=n(71961),o=n(23007),a=n(35529),l=n(72428),c=n(56449),d=n(83693),u=n(3656),p=n(1882),h=n(23805),f=n(11331),g=n(37167),m=n(14974),A=n(69884);t.exports=function(t,e,n,v,_,w,C){var b=m(t,n),y=m(e,n),x=C.get(y);if(x)s(t,n,x);else{var k=w?w(b,y,n+"",t,e,C):void 0,N=void 0===k;if(N){var O=c(y),S=!O&&u(y),E=!O&&!S&&g(y);k=y,O||S||E?c(b)?k=b:d(b)?k=o(b):S?(N=!1,k=i(y,!0)):E?(N=!1,k=r(y,!0)):k=[]:f(y)||l(y)?(k=b,l(b)?k=A(b):h(b)&&!p(b)||(k=a(y))):N=!1}N&&(C.set(y,k),_(k,y,v,w,C),C.delete(y)),s(t,n,k)}}},20999(t,e,n){var s=n(69302),i=n(36800);t.exports=function(t){return s(function(e,n){var s=-1,r=n.length,o=r>1?n[r-1]:void 0,a=r>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(r--,o):void 0,a&&i(n[0],n[1],a)&&(o=r<3?void 0:o,r=1),e=Object(e);++s{const t=[];s.O=(e,n,i,r)=>{if(n){r||=0;for(var o=t.length;o>0&&t[o-1][2]>r;o--)t[o]=t[o-1];return void(t[o]=[n,i,r])}let a=1/0;for(o=0;o=r)||!Object.keys(s.O).every(t=>s.O[t](n[l]))?(c=!1,r{const e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.cw=t=>{var e;return()=>{if(t){var n=t;t=0,e={exports:{}},n.call(e.exports,e,e.exports)}return e.exports}},s.d=(t,e)=>{if(Array.isArray(e))for(var n=0;nPromise.all(Object.keys(s.f).reduce((e,n)=>(s.f[n](t,e),e),[])),s.u=t=>t+"-"+t+".js?v="+{4005:"f2b35c8f02e136bf5a37",4017:"808775e77c7d18946064",5236:"12345564233a9b536e29",5862:"7ef93f7f33f9a069a0de",6798:"93837c551f35879aa50f",7471:"e1dc641ea8726e1b57ce",7859:"90097d6186e001a6fb28",8259:"79b917f7438068af7e66",8374:"baf178fdc31f0e575ab0",8689:"2a36f0347d469ae8619d"}[t],s.o=(t,e)=>Object.hasOwn(t,e),(()=>{const t={},e="nextcloud-ui-legacy:";s.l=(n,i,r,o)=>{if(t[n])return void t[n].push(i);let a,l;if(void 0!==r){const t=document.getElementsByTagName("script");for(var c=0;c{a.onerror=a.onload=null,clearTimeout(u);const i=t[n];if(delete t[n],a.parentNode?.removeChild(a),i?.forEach(t=>t(s)),e)return e(s)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),l&&document.head.appendChild(a)}})(),s.r=t=>{Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),s.j=516,s.dn=t=>{var e=Object.getOwnPropertyDescriptor(t,"name");(!e||!e.writable&&e.configurable)&&Object.defineProperty(t,"name",{value:"default",configurable:!0})},(()=>{let t;globalThis.importScripts&&(t=globalThis.location+"");const e=globalThis.document;if(!t&&e&&("SCRIPT"===e.currentScript?.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){const n=e.getElementsByTagName("script");if(n.length){let e=n.length-1;for(;e>-1&&(!t||!/^https?:/.test(t));)t=n[e--].src}}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:|[?#].*$/g,"").replace(/\/[^/]+$/,"/"),s.p=t})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;const t={516:0,7471:0};s.f.j=(e,n)=>{let i=s.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{const r=new Promise((n,s)=>i=t[e]=[n,s]);n.push(i[2]=r);const o=new Error,a=n=>{if(s.o(t,e)&&(i=t[e],0!==i&&(t[e]=void 0),i)){const t=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;o.message="Loading chunk "+e+" failed.\n("+t+": "+s+")",o.name="ChunkLoadError",o.type=t,o.request=s,o.event=n,i[1](o)}};s.l(s.p+s.u(e),a,"chunk-"+e,e)}},s.O.j=e=>0===t[e];const e=(e,n)=>{let[i,r,o]=n;var a,l,c=0;if(i.some(e=>0!==t[e])){for(a in r)s.o(r,a)&&(s.m[a]=r[a]);if(o)var d=o(s)}for(e&&e(n);cs(30484));i=s.O(i)})(); +//# sourceMappingURL=settings-vue-settings-users-management.js.map?v=b36c1e8a431ed7672e94 \ No newline at end of file diff --git a/dist/settings-vue-settings-users-management.js.map b/dist/settings-vue-settings-users-management.js.map index f3d5bb345b3aa..f6b0405b2cb2f 100644 --- a/dist/settings-vue-settings-users-management.js.map +++ b/dist/settings-vue-settings-users-management.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-vue-settings-users-management.js?v=4dec798302383ae66733","mappings":"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","sources":["webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///nextcloud/node_modules/popper.js/dist/esm/popper.js","webpack:///nextcloud/node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///nextcloud/node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///nextcloud/node_modules/vuex/dist/vuex.esm.js","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/apps/settings/src/service/groups.ts","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?d8ec","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?bacc","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?5fa2","webpack://nextcloud/./apps/settings/src/components/Users/UserFormLanguage.vue?3d52","webpack:///nextcloud/apps/settings/src/utils/userUtils.ts","webpack:///nextcloud/apps/settings/src/components/Users/userFormUtils.ts","webpack:///nextcloud/apps/settings/src/components/Users/UserFormLanguage.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormLanguage.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormLanguage.vue?1b13","webpack://nextcloud/./apps/settings/src/components/Users/UserFormManager.vue?f6b6","webpack:///nextcloud/apps/settings/src/components/Users/UserFormManager.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormManager.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormManager.vue?de46","webpack:///nextcloud/apps/settings/src/components/Users/UserFormQuota.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/UserFormQuota.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserFormQuota.vue?dd83","webpack://nextcloud/./apps/settings/src/components/Users/UserFormQuota.vue?4349","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?ecba","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?9ff7","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?99fc","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?ea6d","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?d404","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?2166","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?2c17","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?64c6","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?dc2d","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?2d18","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?b843","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?cbdf","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?758a","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?5434","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/UserRowActions.vue?3c2a","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?a702","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?eb6e","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?2359","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?1915","webpack:///nextcloud/apps/settings/src/components/UserList.vue","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/UserList.vue?2475","webpack://nextcloud/./apps/settings/src/components/UserList.vue?02a4","webpack://nextcloud/./apps/settings/src/components/UserList.vue?c96e","webpack:///nextcloud/node_modules/vue-router/composables.mjs","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TrashCanOutline.vue?ad44","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue?vue&type=template&id=3daa0f14","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?e939","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?7b19","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?9f48","webpack:///nextcloud/apps/settings/src/composables/useGroupsNavigation.ts","webpack:///nextcloud/apps/settings/src/store/api.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/users-settings.js","webpack:///nextcloud/apps/settings/src/constants/GroupManagement.ts","webpack:///nextcloud/apps/settings/src/utils/sorting.ts","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppNavigationGroupList.vue?c74f","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?824e","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?9980","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?f361","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?27e6","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?28b6","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?8c7e","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?fd5a","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?4b28","webpack:///nextcloud/apps/settings/src/router/index.ts","webpack:///nextcloud/apps/settings/src/router/routes.ts","webpack:///nextcloud/apps/settings/src/main-users-management.ts","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=ff26583a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue?vue&type=style&index=0&id=f0cc6e68&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=style&index=0&id=7690bc0a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=style&index=0&id=1fd1d021&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/lodash/_assignMergeValue.js","webpack:///nextcloud/node_modules/lodash/_baseMerge.js","webpack:///nextcloud/node_modules/lodash/_baseMergeDeep.js","webpack:///nextcloud/node_modules/lodash/_createAssigner.js","webpack:///nextcloud/node_modules/lodash/_safeGet.js","webpack:///nextcloud/node_modules/lodash/isArrayLikeObject.js","webpack:///nextcloud/node_modules/lodash/isEqual.js","webpack:///nextcloud/node_modules/lodash/merge.js","webpack:///nextcloud/node_modules/lodash/toPlainObject.js","webpack:///nextcloud/node_modules/vuex-router-sync/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/concatenation wrap","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/set anonymous default export name","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","function getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\n//\nvar isIE;\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n initCompat();\n this.$nextTick(function () {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n\n if (isIE) {\n this.$el.appendChild(object);\n }\n\n object.data = 'about:blank';\n\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit('notify', {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction install(Vue) {\n // eslint-disable-next-line vue/component-definition-name-casing\n Vue.component('resize-observer', __vue_component__);\n Vue.component('ResizeObserver', __vue_component__);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"1.0.1\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { __vue_component__ as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\n","import _typeof from '@babel/runtime/helpers/typeof';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport Popper from 'popper.js';\nimport isEqual from 'lodash/isEqual';\nimport { ResizeObserver } from 'vue-resize';\nimport merge from 'lodash/merge';\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\n}\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip = /*#__PURE__*/function () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='
']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @param {string} [options.ariaId] Id used for accessibility\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread$2(_objectSpread$2({}, DEFAULT_OPTIONS), _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n }, {\n key: \"_create\",\n value: function _create(reference, template) {\n var _this2 = this;\n\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = this.options.ariaId || \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n tooltipNode.addEventListener('click', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this3 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n if (!_this3.popperInstance) return;\n\n _this3.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this4 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this4._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this4.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this4.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this4._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this4._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this4._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this5 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread$2(_objectSpread$2({}, options.popperOptions), {}, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread$2(_objectSpread$2({}, popperOptions.modifiers), {}, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed && _this5.popperInstance) {\n _this5.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed) {\n _this5._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this5.dispose();\n }\n });\n } else {\n _this5.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this6 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this6._tooltipNode) {\n _this6._tooltipNode.removeEventListener('mouseenter', _this6.hide);\n\n _this6._tooltipNode.removeEventListener('click', _this6.hide); // Don't remove popper instance, just the HTML element\n\n\n _this6._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this7 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this7.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this8 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this8._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this8._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this8._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this9._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this10 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this10._isOpen === false) {\n return;\n }\n\n if (!_this10._tooltipNode.ownerDocument.body.contains(_this10._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this10._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this10._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n}\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '
',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread$1({\n title: content\n }, getOptions(_objectSpread$1(_objectSpread$1({}, _typeof(value) === 'object' ? value : {}), {}, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value;\n _ref.oldValue;\n var modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread$1(_objectSpread$1({}, value), {}, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n },\n ariaId: {\n default: null\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.ariaId != null ? this.ariaId : this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event;\n _ref2.skipDelay;\n var _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event;\n _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n this.isOpen = false;\n\n if (this.popperInstance) {\n requestAnimationFrame(function () {\n if (!_this3.hidden) {\n _this3.isOpen = true;\n }\n });\n }\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread(_objectSpread({}, this.popperOptions), {}, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread(_objectSpread({}, popperOptions.modifiers), {}, {\n arrow: _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.arrow), {}, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.offset), {}, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow), {}, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.isOpen ? _vm.popoverId : undefined,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\", null, {\n isOpen: _vm.isOpen\n })], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".resize-observer[data-v-8859cc6c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-8859cc6c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css_248z);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('VPopover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('settings')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { CancelablePromise } from 'cancelable-promise';\n/**\n *\n * @param group\n */\nfunction formatGroup(group) {\n return {\n id: group.id,\n name: group.displayname,\n usercount: group.usercount,\n disabled: group.disabled,\n canAdd: group.canAdd,\n canRemove: group.canRemove,\n };\n}\n/**\n * Search groups\n *\n * @param options Options\n * @param options.search Search query\n * @param options.offset Offset\n * @param options.limit Limit\n */\nexport function searchGroups({ search, offset, limit }) {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await axios.get(generateOcsUrl('/cloud/groups/details?search={search}&offset={offset}&limit={limit}', { search, offset, limit }), {\n signal: controller.signal,\n });\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n resolve(formattedGroups);\n }\n catch (error) {\n reject(error);\n }\n });\n}\n/**\n * Load user groups\n *\n * @param options Options\n * @param options.userId User id\n */\nexport async function loadUserGroups({ userId }) {\n const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n}\n/**\n * Load user subadmin groups\n *\n * @param options Options\n * @param options.userId User id\n */\nexport async function loadUserSubAdminGroups({ userId }) {\n const url = generateOcsUrl('/cloud/users/{userId}/subadmins/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormGroups.vue?vue&type=template&id=4041cacf&scoped=true\"\nimport script from \"./UserFormGroups.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormGroups.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4041cacf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-groups\"},[_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"data-test\":\"groups\",\"input-label\":_vm.groupsLabel,\"placeholder\":_vm.t('settings', 'Set account groups'),\"disabled\":_vm.creatingGroup,\"options\":_vm.availableGroups,\"label\":\"name\",\"keep-open\":\"\",\"multiple\":true,\"taggable\":_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin,\"required\":!_vm.settings.isAdmin && !_vm.settings.isDelegatedAdmin,\"create-option\":(value) => ({ id: value, name: value, isCreating: true })},on:{\"search\":_vm.searchGroups,\"option:created\":_vm.createGroup},model:{value:(_vm.formData.groups),callback:function ($$v) {_vm.$set(_vm.formData, \"groups\", $$v)},expression:\"formData.groups\"}})],1),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Admin of the following groups'),\"placeholder\":_vm.t('settings', 'Set account as admin for …'),\"disabled\":_vm.creatingGroup,\"options\":_vm.availableSubAdminGroups,\"keep-open\":\"\",\"multiple\":true,\"label\":\"name\"},on:{\"search\":_vm.searchGroups},model:{value:(_vm.formData.subadminGroups),callback:function ($$v) {_vm.$set(_vm.formData, \"subadminGroups\", $$v)},expression:\"formData.subadminGroups\"}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showConfig.showLanguages)?_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Language'),\"placeholder\":_vm.t('settings', 'Set default language'),\"clearable\":false,\"selectable\":option => !option.languages,\"filter-by\":_vm.languageFilterBy,\"options\":_vm.languages,\"label\":\"name\"},model:{value:(_vm.formData.language),callback:function ($$v) {_vm.$set(_vm.formData, \"language\", $$v)},expression:\"formData.language\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nexport const unlimitedQuota = {\n id: 'none',\n label: t('settings', 'Unlimited'),\n};\nexport const defaultQuota = {\n id: 'default',\n label: t('settings', 'Default quota'),\n};\n/**\n * Return `true` if the logged in user does not have permissions to view the\n * data of `user`\n *\n * @param user The user to check\n * @param user.id Id of the user\n */\nexport function isObfuscated(user) {\n const keys = Object.keys(user);\n return keys.length === 1 && keys.at(0) === 'id';\n}\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { formatFileSize, parseFileSize } from '@nextcloud/files';\nimport { unlimitedQuota } from '../../utils/userUtils.ts';\n/**\n * Resolves the user's language code to a { code, name } object.\n *\n * @param user The user store object\n * @param serverLanguages Server language configuration\n * @return Language object with code and name\n */\nexport function resolveLanguage(user, serverLanguages) {\n if (!user.language || user.language === '') {\n return { code: '', name: '' };\n }\n const allLangs = [\n ...(serverLanguages?.commonLanguages ?? []),\n ...(serverLanguages?.otherLanguages ?? []),\n ];\n const match = allLangs.find((lang) => lang.code === user.language);\n if (match) {\n return match;\n }\n return { code: user.language, name: user.language };\n}\n/**\n * Maps a user store object to the flat, API-aligned shape used by the form.\n * Keeps a clean separation between the store model (e.g. `user.displayname`,\n * `user.quota.quota`) and the form model (e.g. `displayName`, `quota`).\n *\n * @param user The user store object\n * @param allGroups All available groups from the store\n * @param quotaOptions Quota preset options\n * @param serverLanguages Server language configuration\n * @return Form-ready data object\n */\nexport function userToFormData(user, allGroups, quotaOptions, serverLanguages) {\n const groups = user.groups\n .map((id) => allGroups.find((g) => g.id === id))\n .filter(Boolean);\n const subadminGroups = (user.subadmin ?? [])\n .map((id) => allGroups.find((g) => g.id === id))\n .filter(Boolean);\n let quota;\n if (user.quota?.quota >= 0) {\n const label = formatFileSize(user.quota.quota);\n quota = quotaOptions.find((q) => q.id === label) ?? { id: label, label };\n }\n else if (user.quota?.quota === 'default') {\n quota = quotaOptions[0];\n }\n else {\n quota = unlimitedQuota;\n }\n return {\n username: user.id,\n displayName: user.displayname ?? '',\n password: '',\n email: user.email ?? '',\n groups,\n subadminGroups,\n quota,\n language: resolveLanguage(user, serverLanguages),\n manager: user.manager ?? '',\n };\n}\n/**\n * Generic shallow diff between initial and current form data.\n * Returns only fields that changed, with API-ready values.\n *\n * @param initial Snapshot of form data at mount time\n * @param current Current form data state\n * @return Changed fields with API-ready values\n */\nexport function diffPayload(initial, current) {\n const payload = {};\n if (current.displayName !== initial.displayName) {\n payload.displayName = current.displayName;\n }\n if (current.password !== '') {\n payload.password = current.password;\n }\n if (current.email !== initial.email) {\n payload.email = current.email;\n }\n if (current.quota.id !== initial.quota.id) {\n payload.quota = current.quota.id;\n }\n if (current.language.code !== initial.language.code) {\n payload.language = current.language.code;\n }\n const currentManagerId = typeof current.manager === 'object' ? (current.manager.id ?? '') : current.manager;\n const initialManagerId = typeof initial.manager === 'object' ? (initial.manager.id ?? '') : initial.manager;\n if (currentManagerId !== initialManagerId) {\n payload.manager = currentManagerId;\n }\n const currentGroupIds = current.groups.map((g) => g.id).sort();\n const initialGroupIds = initial.groups.map((g) => g.id).sort();\n if (JSON.stringify(currentGroupIds) !== JSON.stringify(initialGroupIds)) {\n payload.groups = currentGroupIds;\n }\n const currentSubadminIds = current.subadminGroups.map((g) => g.id).sort();\n const initialSubadminIds = initial.subadminGroups.map((g) => g.id).sort();\n if (JSON.stringify(currentSubadminIds) !== JSON.stringify(initialSubadminIds)) {\n payload.subadminGroups = currentSubadminIds;\n }\n return payload;\n}\n/**\n * Parses and normalizes a user-entered quota string into a quota option.\n * Returns the fallback option if the input is invalid.\n *\n * @param quota Raw quota string entered by the user (e.g. \"4 MB\")\n * @param fallback Fallback option when input is invalid\n * @param fallback.id Fallback option identifier\n * @param fallback.label Fallback option display label\n * @return Normalized quota option with id and label\n */\nexport function validateQuota(quota, fallback) {\n const parsed = parseFileSize(quota, true);\n if (parsed !== null && parsed >= 0) {\n const label = formatFileSize(parsed);\n return { id: label, label };\n }\n return fallback;\n}\n/**\n * Filter function for the language NcSelect. Handles grouped options\n * (section headers with nested languages) and plain language entries.\n *\n * @param option The select option being filtered\n * @param option.languages Nested languages for group headers\n * @param label The option's display label\n * @param search The user's search string\n * @return Whether the option matches the search\n */\nexport function languageFilterBy(option, label, search) {\n if (option.languages) {\n return option.languages.some(({ name }) => name.toLocaleLowerCase().includes(search.toLocaleLowerCase()));\n }\n return (label || '').toLocaleLowerCase().includes(search.toLocaleLowerCase());\n}\n","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormLanguage.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormLanguage.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserFormLanguage.vue?vue&type=template&id=41ac58dd\"\nimport script from \"./UserFormLanguage.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormLanguage.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form__item user-form__managers\"},[_c('NcSelectUsers',{staticClass:\"user-form__select\",attrs:{\"model-value\":_vm.managerModel,\"input-label\":_vm.t('settings', 'Manager'),\"placeholder\":_vm.t('settings', 'Search for a manager…'),\"options\":_vm.managerOptions,\"loading\":_vm.loading},on:{\"update:modelValue\":_vm.onManagerChange,\"search\":_vm.searchUserManager}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormManager.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormManager.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserFormManager.vue?vue&type=template&id=41e8838f\"\nimport script from \"./UserFormManager.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormManager.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormQuota.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormQuota.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./UserFormQuota.vue?vue&type=template&id=d14c331a\"\nimport script from \"./UserFormQuota.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormQuota.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Quota'),\"placeholder\":_vm.t('settings', 'Set account quota'),\"options\":_vm.quotaOptions,\"clearable\":false,\"taggable\":true,\"create-option\":_vm.validateQuota},model:{value:(_vm.formData.quota),callback:function ($$v) {_vm.$set(_vm.formData, \"quota\", $$v)},expression:\"formData.quota\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormFields.vue?vue&type=template&id=0d9243e9&scoped=true\"\nimport script from \"./UserFormFields.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormFields.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d9243e9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-fields\"},[(_vm.fieldConfig.username?.show && _vm.fieldConfig.username?.disabled)?_c('div',{staticClass:\"user-form-fields__item user-form-fields__static\",attrs:{\"data-test\":\"username\"}},[_c('span',{staticClass:\"user-form-fields__static-label\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.fieldConfig.username?.label)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"user-form-fields__static-value\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.formData.username)+\"\\n\\t\\t\")])]):(_vm.fieldConfig.username?.show)?_c('NcTextField',{ref:\"username\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"username\",\"label\":_vm.fieldConfig.username?.label,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\",\"required\":_vm.fieldConfig.username?.required},model:{value:(_vm.formData.username),callback:function ($$v) {_vm.$set(_vm.formData, \"username\", $$v)},expression:\"formData.username\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"displayName\",\"label\":_vm.t('settings', 'Display name'),\"error\":!!_vm.errors.displayName,\"helper-text\":_vm.errors.displayName,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},model:{value:(_vm.formData.displayName),callback:function ($$v) {_vm.$set(_vm.formData, \"displayName\", $$v)},expression:\"formData.displayName\"}}),_vm._v(\" \"),(_vm.fieldConfig.showPasswordEmailHint)?_c('span',{staticClass:\"user-form-fields__hint\",attrs:{\"id\":\"password-email-hint\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Either password or email is required'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.fieldConfig.password?.show !== false)?_c('NcPasswordField',{ref:\"password\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"password\",\"minlength\":_vm.minPasswordLength,\"maxlength\":469,\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.password?.label,\"error\":!!_vm.errors.password,\"helper-text\":_vm.errors.password,\"autocapitalize\":\"none\",\"autocomplete\":\"new-password\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.password?.required},model:{value:(_vm.formData.password),callback:function ($$v) {_vm.$set(_vm.formData, \"password\", $$v)},expression:\"formData.password\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"email\",\"type\":\"email\",\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.email?.label || _vm.t('settings', 'Email'),\"error\":!!_vm.errors.email,\"helper-text\":_vm.errors.email,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.email?.required},model:{value:(_vm.formData.email),callback:function ($$v) {_vm.$set(_vm.formData, \"email\", $$v)},expression:\"formData.email\"}}),_vm._v(\" \"),_c('UserFormGroups'),_vm._v(\" \"),_c('UserFormQuota',{attrs:{\"quota-options\":_vm.quotaOptions}}),_vm._v(\" \"),_c('UserFormLanguage'),_vm._v(\" \"),_c('UserFormManager'),_vm._v(\" \"),(Object.keys(_vm.unhandledErrors).length > 0)?_c('div',{staticClass:\"user-form-fields__error-summary\",attrs:{\"aria-live\":\"polite\",\"role\":\"status\"}},_vm._l((_vm.unhandledErrors),function(message,field){return _c('p',{key:field},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(field)+\": \"+_vm._s(message)+\"\\n\\t\\t\")])}),0):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=style&index=0&id=f0cc6e68&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=style&index=0&id=f0cc6e68&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditUserDialog.vue?vue&type=template&id=f0cc6e68&scoped=true\"\nimport script from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./EditUserDialog.vue?vue&type=style&index=0&id=f0cc6e68&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f0cc6e68\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',{staticClass:\"edit-dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'Edit account'),\"out-transition\":\"\"},on:{\"closing\":function($event){return _vm.$emit('closing')}},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"edit-dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"edit-user-form\",\"variant\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.saving}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.saving ? _vm.t('settings', 'Saving\\u00A0…') : _vm.t('settings', 'Save'))+\"\\n\\t\\t\")])]},proxy:true}])},[_c('form',{staticClass:\"edit-dialog__form\",attrs:{\"id\":\"edit-user-form\",\"data-test\":\"form\",\"disabled\":_vm.saving},on:{\"submit\":function($event){$event.preventDefault();return _vm.save.apply(null, arguments)}}},[_c('UserFormFields',{attrs:{\"field-config\":_vm.fieldConfig,\"errors\":_vm.fieldErrors,\"quota-options\":_vm.quotaOptions}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewUserDialog.vue?vue&type=template&id=32af3da3&scoped=true\"\nimport script from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32af3da3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',_vm._g({staticClass:\"dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'New account'),\"out-transition\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"new-user-form\",\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add new account'))+\"\\n\\t\\t\")])]},proxy:true}])},_vm.$listeners),[_c('form',{staticClass:\"dialog__form\",attrs:{\"id\":\"new-user-form\",\"data-test\":\"form\",\"disabled\":_vm.loading.all},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser.apply(null, arguments)}}},[_c('UserFormFields',{ref:\"fields\",attrs:{\"field-config\":_vm.fieldConfig,\"quota-options\":_vm.quotaOptions}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"footer\"},[_c('th',{attrs:{\"scope\":\"row\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--loading\"},[(_vm.loading)?_c('NcLoadingIcon',{attrs:{\"title\":_vm.t('settings', 'Loading accounts …'),\"size\":32}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--count footer__cell--multiline\"},[_c('span',{attrs:{\"aria-describedby\":\"user-count-desc\"}},[_vm._v(_vm._s(_vm.userCount))]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":\"user-count-desc\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Scroll to load more rows'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListFooter.vue?vue&type=template&id=4ff6ba29&scoped=true\"\nimport script from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ff6ba29\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"header\"},[_c('th',{staticClass:\"header__cell header__cell--avatar\",attrs:{\"data-cy-user-list-header-avatar\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Avatar'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--displayname\",attrs:{\"data-cy-user-list-header-displayname\":\"\",\"scope\":\"col\"}},[_c('strong',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Display name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--username\",attrs:{\"data-cy-user-list-header-username\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-email\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Email')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--groups\",attrs:{\"data-cy-user-list-header-groups\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Groups')))])]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-subadmins\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-quota\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Quota')))])]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-languages\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Language')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-storage-location\":\"\",\"scope\":\"col\"}},[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account backend'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"header__subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Storage location'))+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-first-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'First login')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-last-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Last login')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large header__cell--fill\",attrs:{\"data-cy-user-list-header-manager\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Manager')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--actions\",attrs:{\"data-cy-user-list-header-actions\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account actions'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListHeader.vue?vue&type=template&id=53c64244&scoped=true\"\nimport script from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53c64244\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"user-list__row\",attrs:{\"data-cy-user-row\":_vm.user.id}},[_c('td',{staticClass:\"row__cell row__cell--avatar\",attrs:{\"data-cy-user-list-cell-avatar\":\"\"}},[(_vm.isLoadingUser)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading account …'),\"size\":32}}):(_vm.visible)?_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"hide-status\":\"\",\"user\":_vm.user.id}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--displayname\",attrs:{\"data-cy-user-list-cell-displayname\":\"\"}},[(!_vm.isObfuscated)?_c('strong',{attrs:{\"title\":_vm.user.displayname?.length > 20 ? _vm.user.displayname : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.displayname)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--username\",attrs:{\"data-cy-user-list-cell-username\":\"\"}},[_c('span',{staticClass:\"row__subtitle\"},[_vm._v(_vm._s(_vm.user.id))])]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-email\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.user.email?.length > 20 ? _vm.user.email : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.email)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--groups row__cell--multiline\",attrs:{\"data-cy-user-list-cell-groups\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userGroupsLabels?.length > 40 ? _vm.userGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-subadmins\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userSubAdminGroupsLabels?.length > 40 ? _vm.userSubAdminGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userSubAdminGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-quota\":\"\"}},[(!_vm.isObfuscated)?[_c('span',{attrs:{\"id\":'quota-progress' + _vm.uniqueId}},[_vm._v(_vm._s(_vm.userQuota)+\" (\"+_vm._s(_vm.usedSpace)+\")\")]),_vm._v(\" \"),_c('NcProgressBar',{staticClass:\"row__progress\",class:{\n\t\t\t\t\t'row__progress--warn': _vm.usedQuota > 80,\n\t\t\t\t},attrs:{\"aria-labelledby\":'quota-progress' + _vm.uniqueId,\"value\":_vm.usedQuota}})]:_vm._e()],2),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-language\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userLanguage.name)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-storage-location\":\"\"}},[(!_vm.isObfuscated)?[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"row__subtitle\",attrs:{\"title\":_vm.user.storageLocation}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.user.storageLocation)+\"\\n\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-first-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userFirstLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"title\":_vm.userLastLoginTooltip,\"data-cy-user-list-cell-last-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userLastLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--fill\",attrs:{\"data-cy-user-list-cell-manager\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.manager)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--actions\",attrs:{\"data-cy-user-list-cell-actions\":\"\"}},[(_vm.visible && !_vm.isObfuscated && _vm.canEdit && !_vm.loading.all)?_c('UserRowActions',{attrs:{\"actions\":_vm.userActions,\"disabled\":_vm.isLoadingField,\"user\":_vm.user},on:{\"update:edit\":_vm.toggleEdit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { N as NcActionButton } from \"./chunks/NcActionButton-D7uypboC.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-B95wg_Q6.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-Cbg5yktN.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-Xepxb1Nk.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-B2bgbBHw.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-JnumflF4.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-BykT5Byh.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-BScPRxTJ.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-C4iIEWY3.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-BJnvmftc.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-DRaKry-f.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport { N as NcAppNavigationNew } from \"./chunks/NcAppNavigationNew-BOfIdgIu.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-KbbB-8vX.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-CI_e6Rva.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-BN3w-BCp.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-C7Oywy1u.mjs\";\nimport { N as NcAppSettingsSection } from \"./chunks/NcAppSettingsSection-CsGyNFSh.mjs\";\nimport { N as NcAppSettingsShortcutsSection } from \"./chunks/NcAppSettingsShortcutsSection-D3ylJW58.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-CEo2tgBa.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-CBE4tNYb.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAssistantButton } from \"./chunks/NcAssistantButton-CHiZT-vH.mjs\";\nimport NcAssistantContent from \"./Components/NcAssistantContent.mjs\";\nimport { N as NcAssistantIcon } from \"./chunks/NcAssistantIcon-mcLe7umL.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-BBqomFJ3.mjs\";\nimport { u } from \"./chunks/NcAvatar-BBqomFJ3.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-CP2UBH-9.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-BN1Qrbjc.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-OySgLqXi.mjs\";\nimport { N as NcButton } from \"./chunks/NcButton-D6Swkr1k.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-Ddl_QlRN.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-q7zkDwqG.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-DlAxFoRr.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-BgMXU5Dv.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-oxV8oMlX.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-oyS__D-B.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-uYQMYeJS.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-enXYuwj8.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-DmRqcm3W.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-Bqjj-wmb.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-ClkGGFdW.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport { N as NcFilePicker } from \"./chunks/NcFilePicker-B57HJpaE.mjs\";\nimport { N as NcFormBox } from \"./chunks/NcFormBox-Bd7m8ffs.mjs\";\nimport { N as NcFormBoxButton } from \"./chunks/NcFormBoxButton-CRL7kucw.mjs\";\nimport { N as NcFormBoxCopyButton } from \"./chunks/NcFormBoxCopyButton-BOENrJAS.mjs\";\nimport { N as NcFormBoxSwitch } from \"./chunks/NcFormBoxSwitch-bdRBjKGq.mjs\";\nimport { N as NcFormGroup } from \"./chunks/NcFormGroup-tW-MwPUj.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport { N as NcHeaderButton } from \"./chunks/NcHeaderButton-MEyDJghO.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-jHItu4LV.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-CxTT94_h.mjs\";\nimport { N as NcHotkey } from \"./chunks/NcHotkey-CpgacYSd.mjs\";\nimport { N as NcHotkeyList } from \"./chunks/NcHotkeyList-BYFbKo6_.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-BrzZ8Bne.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-Ciok4H4t.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-DdkIQyoP.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-CSeFP0Uz.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-BzTp7LfM.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-D7zYeXBH.mjs\";\nimport { N as NcRadioGroup } from \"./chunks/NcRadioGroup-D4kc6Jjr.mjs\";\nimport { N as NcRadioGroupButton } from \"./chunks/NcRadioGroupButton-B8a5TW2l.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-CFp3GPty.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-BCqXu_og.mjs\";\nimport { r } from \"./chunks/index-BCqXu_og.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-CG7oWfBl.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a, g, b, c, s, d } from \"./chunks/referencePickerModal-DnsOMAHk.mjs\";\nimport \"./chunks/createElementId-DhjFt1I9.mjs\";\nimport { N, h, c as c2, i, e, r as r2, f, a as a2 } from \"./chunks/customPickerElements-BGmuXU7x.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit-parents\";\nimport \"./chunks/logger-D3RVzcfQ.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-C3Nj11Wy.mjs\";\nimport { N as NcSelect } from \"./chunks/NcSelect-DrKzKPZL.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-BPhf3E7g.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-U7AIamCl.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-D8pmnLor.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-z2bZafO2.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-BwnkZzWL.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-DV-x6Ag7.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-CFvLzGNf.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-C82D8CSK.mjs\";\nimport { N as NcThemeProvider } from \"./chunks/NcThemeProvider-BA_zMjAf.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-D4xfdT9T.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-CuCNjhc8.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-DdPPN-cP.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { useFormatDateTime, useFormatRelativeTime, useFormatTime } from \"./Composables/useFormatDateTime.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e as e2, g as g2, s as s2 } from \"./chunks/emoji-Dtn2mDf7.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { usernameToColor } from \"./Functions/usernameToColor.mjs\";\nimport directive from \"./Directives/Focus.mjs\";\nimport directive$1 from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsSectionShortcuts: NcAppSettingsShortcutsSection,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsShortcutsSection as NcAppSettingsSectionShortcuts,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e2 as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b as getProvider,\n c as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n c2 as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n e as registerCustomPickerElement,\n r2 as registerWidget,\n f as renderCustomPickerElement,\n a2 as renderWidget,\n r as richEditor,\n s as searchProvider,\n s2 as setCurrentSkinTone,\n d as sortProviders,\n spawnDialog,\n useFormatDateTime,\n useFormatRelativeTime,\n useFormatTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcActions',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle account actions menu'),\"disabled\":_vm.disabled,\"inline\":1}},[_c('NcActionButton',{attrs:{\"data-cy-user-list-action-edit\":\"\",\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('update:edit', true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.SvgPencil,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Edit'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.enabledActions),function({ action, icon, text },index){return _c('NcActionButton',{key:index,attrs:{\"disabled\":_vm.disabled,\"aria-label\":text,\"icon\":icon,\"close-after-click\":\"\"},on:{\"click\":(event) => action(event, { ..._vm.user })},scopedSlots:_vm._u([(_vm.isSvg(icon))?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":icon,\"aria-hidden\":\"true\"}})]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(text)+\"\\n\\t\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=a72dfc28\"\nimport script from \"./UserRowActions.vue?vue&type=script&lang=ts\"\nexport * from \"./UserRowActions.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=78b3749c&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78b3749c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=65d37ac4&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65d37ac4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=ff26583a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=ff26583a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=ff26583a&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=ff26583a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ff26583a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.editingUser)?_c('EditUserDialog',{attrs:{\"user\":_vm.editingUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":function($event){_vm.editingUser = null}}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroupOutline,\"size\":64}})]},proxy:true}],null,false,1584467133)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t\tonEditUser: _vm.openEditDialog,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader')]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { getCurrentInstance, effectScope, shallowReactive, onUnmounted, computed, unref } from 'vue';\n\n// dev only warn if no current instance\n\nfunction throwNoCurrentInstance (method) {\n if (!getCurrentInstance()) {\n throw new Error(\n (\"[vue-router]: Missing current instance. \" + method + \"() must be called inside ","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrashCanOutline.vue?vue&type=template&id=3daa0f14\"\nimport script from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\nexport * from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon trash-can-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupListItem.vue?vue&type=template&id=30743619&scoped=true\"\nimport script from \"./GroupListItem.vue?vue&type=script&lang=js\"\nexport * from \"./GroupListItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30743619\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"model-value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Delete group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n return {\n id: group.id,\n title: group.name,\n usercount: group.usercount ?? 0,\n count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)),\n };\n}\n/**\n *\n * @param groups\n */\nexport function useFormatGroups(groups) {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter((group) => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map((group) => formatGroupMenu(group))\n // remove invalid\n .filter((group) => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\n\n/**\n * @param {string} url - The url to sanitize\n */\nfunction sanitize(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * action(context) {\n\t * return api.requireAdmin().then((response) => {\n\t * return api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {API failure});\n\t * }).catch((error) => {requireAdmin failure});\n\t * }\n\t * // vue\n\t * this.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t *\n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t *\n\t * e.g\n\t * api.requireAdmin().then((response) => {\n\t * api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {throw error;});\n\t * }).catch((error) => {requireAdmin OR API failure});\n\t *\n\t * @return {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn confirmPassword()\n\t},\n\tget(url, options) {\n\t\treturn axios.get(sanitize(url), options)\n\t},\n\tpost(url, data, options) {\n\t\treturn axios.post(sanitize(url), data, options)\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data)\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data)\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { params: data })\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport api from './api.js'\n\nconst state = {}\nconst mutations = {}\nconst getters = {}\nconst actions = {\n\t/**\n\t * Set application config in database\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @return {Promise}\n\t */\n\tsetAppConfig(context, { app, key, value }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('apps/provisioning_api/api/v1/config/apps/{app}/{key}', { app, key }), { value })\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst state = {\n\tserverData: loadState('settings', 'usersSettings', {}),\n}\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data\n\t},\n}\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData\n\t},\n}\nconst actions = {}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n */\nexport var GroupSorting;\n(function (GroupSorting) {\n GroupSorting[GroupSorting[\"UserCount\"] = 1] = \"UserCount\";\n GroupSorting[GroupSorting[\"GroupName\"] = 2] = \"GroupName\";\n})(GroupSorting || (GroupSorting = {}));\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCanonicalLocale, getLanguage } from '@nextcloud/l10n';\nexport const naturalCollator = Intl.Collator([getLanguage(), getCanonicalLocale()], {\n numeric: true,\n usage: 'sort',\n});\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { showError } from '@nextcloud/dialogs'\nimport { parseFileSize } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport { GroupSorting } from '../constants/GroupManagement.ts'\nimport logger from '../logger.ts'\nimport { naturalCollator } from '../utils/sorting.ts'\nimport api from './api.js'\n\nconst usersSettings = loadState('settings', 'usersSettings', {})\n\nconst defaults = {\n\t/**\n\t * @type {import('../views/user-types').IGroup}\n\t */\n\tgroup: {\n\t\tid: '',\n\t\tname: '',\n\t\tusercount: 0,\n\t\tdisabled: 0,\n\t\tcanAdd: true,\n\t\tcanRemove: true,\n\t},\n}\n\nconst state = {\n\tusers: [],\n\tgroups: [\n\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t...(usersSettings.systemGroups ?? []),\n\t],\n\torderBy: usersSettings.sortGroups ?? GroupSorting.UserCount,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tdisabledUsersOffset: 0,\n\tdisabledUsersLimit: 25,\n\tsearchQuery: '',\n\tuserCount: usersSettings.userCount ?? 0,\n\tshowConfig: {\n\t\tshowStoragePath: usersSettings.showConfig?.user_list_show_storage_path,\n\t\tshowUserBackend: usersSettings.showConfig?.user_list_show_user_backend,\n\t\tshowFirstLogin: usersSettings.showConfig?.user_list_show_first_login,\n\t\tshowLastLogin: usersSettings.showConfig?.user_list_show_last_login,\n\t\tshowNewUserForm: usersSettings.showConfig?.user_list_show_new_user_form,\n\t\tshowLanguages: usersSettings.showConfig?.user_list_show_languages,\n\t},\n}\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\tconst existingUsers = state.users.map(({ id }) => id)\n\t\tconst newUsers = Object.values(usersObj)\n\t\t\t.filter(({ id }) => !existingUsers.includes(id))\n\n\t\tconst users = state.users.concat(newUsers)\n\t\tstate.usersOffset += state.usersLimit\n\t\tstate.users = users\n\t},\n\tupdateDisabledUsers(state) {\n\t\tstate.disabledUsersOffset += state.disabledUsersLimit\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0\n\t},\n\t/**\n\t * @param {object} state store state\n\t * @param {import('../views/user-types.js').IGroup} newGroup new group\n\t */\n\taddGroup(state, newGroup) {\n\t\ttry {\n\t\t\tconst existingGroup = state.groups.find((group) => group.id === newGroup.id)\n\t\t\tif (existingGroup) {\n\t\t\t\t// merge in whatever is provided, e.g. to upgrade a stub group with full details\n\t\t\t\tObject.assign(existingGroup, newGroup)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// extend group to default values\n\t\t\tconst group = { ...defaults.group, ...newGroup }\n\t\t\tstate.groups.unshift(group)\n\t\t} catch (error) {\n\t\t\tlogger.error('Cannt create group', { error })\n\t\t}\n\t},\n\trenameGroup(state, { gid, displayName }) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tconst updatedGroup = state.groups[groupIndex]\n\t\t\tupdatedGroup.name = displayName\n\t\t\tstate.groups.splice(groupIndex, 1, updatedGroup)\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1)\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// increase count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount++\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.push(gid)\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// lower count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount--\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.push(gid)\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\tdeleteUser(state, userid) {\n\t\tconst userIndex = state.users.findIndex((user) => user.id === userid)\n\t\tthis.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' })\n\t\tstate.users.splice(userIndex, 1)\n\t},\n\taddUserData(state, response) {\n\t\tconst user = response.data.ocs.data\n\t\tstate.users.unshift(user)\n\t\tthis.commit('updateUserCounts', { user, actionType: 'create' })\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\tuser.enabled = enabled\n\t\tthis.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' })\n\t},\n\t// update active/disabled counts, groups counts\n\tupdateUserCounts(state, { user, actionType }) {\n\t\t// 0 is a special value\n\t\tif (state.userCount === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst recentGroup = state.groups.find((group) => group.id === '__nc_internal_recent')\n\t\tconst disabledGroup = state.groups.find((group) => group.id === 'disabled')\n\t\tswitch (actionType) {\n\t\t\tcase 'enable':\n\t\t\tcase 'disable':\n\t\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\t\trecentGroup.usercount += user.enabled ? 1 : -1\n\t\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'create':\n\t\t\t\trecentGroup.usercount++\n\t\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount++ // increment group total count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'remove':\n\t\t\t\tif (user.enabled) {\n\t\t\t\t\trecentGroup.usercount--\n\t\t\t\t\tstate.userCount-- // decrement Active Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\tlogger.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tdisabledGroup.usercount-- // decrement Disabled Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.disabled-- // decrement group disabled count\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error(`Unknown action type in updateUserCounts: '${actionType}'`)\n\t\t\t// not throwing error to interrupt execution as this is not fatal\n\t\t}\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tconst humanValue = parseFileSize(value, true)\n\t\t\tstate.users.find((user) => user.id === userid)[key][key] = humanValue !== null ? humanValue : value\n\t\t} else {\n\t\t\tstate.users.find((user) => user.id === userid)[key] = value\n\t\t}\n\t},\n\n\t/**\n\t * Apply multiple updated fields to a user in the local store.\n\t *\n\t * @param {object} state Store state\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.data Updated user data from server\n\t */\n\teditUserMultiField(state, { userid, data }) {\n\t\tconst index = state.users.findIndex((user) => user.id === userid)\n\t\tif (index === -1) {\n\t\t\treturn\n\t\t}\n\n\t\t// Delegate group membership changes so sidebar usercount stays in sync.\n\t\tif (Array.isArray(data.groups)) {\n\t\t\tconst prevGids = state.users[index].groups ?? []\n\t\t\tfor (const gid of data.groups.filter((g) => !prevGids.includes(g))) {\n\t\t\t\tthis.commit('addUserGroup', { userid, gid })\n\t\t\t}\n\t\t\tfor (const gid of prevGids.filter((g) => !data.groups.includes(g))) {\n\t\t\t\tthis.commit('removeUserGroup', { userid, gid })\n\t\t\t}\n\t\t}\n\n\t\tstate.users.splice(index, 1, { ...state.users[index], ...data })\n\t},\n\n\t/**\n\t * Reset users list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetUsers(state) {\n\t\tstate.users = []\n\t\tstate.usersOffset = 0\n\t\tstate.disabledUsersOffset = 0\n\t},\n\n\t/**\n\t * Reset group list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetGroups(state) {\n\t\tstate.groups = [\n\t\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t\t...(usersSettings.systemGroups ?? []),\n\t\t]\n\t},\n\n\tsetSearchQuery(state, query) {\n\t\tstate.searchQuery = query\n\t},\n\n\tsetShowConfig(state, { key, value }) {\n\t\tstate.showConfig[key] = value\n\t},\n\n\tsetGroupSorting(state, sorting) {\n\t\tconst oldValue = state.orderBy\n\t\tstate.orderBy = sorting\n\n\t\t// Persist the value on the server\n\t\taxios.post(\n\t\t\tgenerateUrl('/settings/users/preferences/group.sortBy'),\n\t\t\t{\n\t\t\t\tvalue: String(sorting),\n\t\t\t},\n\t\t).catch((error) => {\n\t\t\tstate.orderBy = oldValue\n\t\t\tshowError(t('settings', 'Could not set group sorting'))\n\t\t\tlogger.error(error)\n\t\t})\n\t},\n}\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups\n\t},\n\tgetSearchQuery(state) {\n\t\treturn state.searchQuery\n\t},\n\tgetSubAdminGroups() {\n\t\treturn usersSettings.subAdminGroups ?? []\n\t},\n\n\tgetSortedGroups(state) {\n\t\tconst groups = [...state.groups]\n\t\tif (state.orderBy === GroupSorting.UserCount) {\n\t\t\treturn groups.sort((a, b) => {\n\t\t\t\tconst numA = a.usercount - a.disabled\n\t\t\t\tconst numB = b.usercount - b.disabled\n\t\t\t\treturn (numA < numB) ? 1 : (numB < numA ? -1 : naturalCollator.compare(a.name, b.name))\n\t\t\t})\n\t\t} else {\n\t\t\treturn groups.sort((a, b) => naturalCollator.compare(a.name, b.name))\n\t\t}\n\t},\n\tgetGroupSorting(state) {\n\t\treturn state.orderBy\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit\n\t},\n\tgetDisabledUsersOffset(state) {\n\t\treturn state.disabledUsersOffset\n\t},\n\tgetDisabledUsersLimit(state) {\n\t\treturn state.disabledUsersLimit\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount\n\t},\n\tgetShowConfig(state) {\n\t\treturn state.showConfig\n\t},\n}\n\nconst CancelToken = axios.CancelToken\nlet searchRequestCancelSource = null\n\n/**\n * Commit groups from a users response to the store.\n *\n * @param context - The store context\n * @param response - The response from the users API call\n */\nfunction commitGroupsFromUsersResponse(context, response) {\n\tconst groups = response.data.ocs.data.groups ?? []\n\tif (groups.length === 0) {\n\t\treturn\n\t}\n\n\t// The response only carries {id, displayname} (see AUserDataOCSController::findGroupsWithDisplayname),\n\t// so addGroup fills usercount/disabled/canAdd/canRemove with defaults. Trade-off: a group\n\t// only known through this path shows a wrong usercount until the sidebar loads full details.\n\tgroups.forEach((group) => {\n\t\tcontext.commit('addGroup', { id: group.id, name: group.displayname })\n\t})\n}\n\nconst actions = {\n\n\t/**\n\t * search users\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @return {Promise}\n\t */\n\tsearchUsers(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get user details\n\t *\n\t * @param {object} context store context\n\t * @param {string} userId user id\n\t * @return {Promise}\n\t */\n\tgetUser(context, userId) {\n\t\treturn api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @return {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tif (searchRequestCancelSource) {\n\t\t\tsearchRequestCancelSource.cancel('Operation canceled by another search request.')\n\t\t}\n\t\tsearchRequestCancelSource = CancelToken.source()\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tgroup = typeof group === 'string' ? group : ''\n\t\tif (group !== '') {\n\t\t\treturn api.get(generateOcsUrl('cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}', { group: encodeURIComponent(group), offset, limit, search }), {\n\t\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\t}\n\t\t\t\t\tcommitGroupsFromUsersResponse(context, response)\n\t\t\t\t\treturn usersCount\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }), {\n\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t}\n\t\t\t\tcommitGroupsFromUsersResponse(context, response)\n\t\t\t\treturn usersCount\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t}\n\t\t\t})\n\t},\n\n\t/**\n\t * Get recent users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search query\n\t * @return {Promise}\n\t */\n\tasync getRecentUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/recent?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\t/**\n\t * Get disabled users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param options.search\n\t * @return {Promise}\n\t */\n\tasync getDisabledUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\tcontext.commit('updateDisabledUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\tgetGroups(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tconst limitParam = limit === -1 ? '' : `&limit=${limit}`\n\t\treturn api.get(generateOcsUrl('cloud/groups?offset={offset}&search={search}', { offset, search }) + limitParam)\n\t\t\t.then((response) => {\n\t\t\t\tconst groups = response.data.ocs.data.groups ?? []\n\t\t\t\tif (groups.length > 0) {\n\t\t\t\t\tgroups.forEach(function(group) {\n\t\t\t\t\t\tcontext.commit('addGroup', { id: group, name: group })\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search -\n\t * @return {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.groupid -\n\t * @return {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(generateOcsUrl('cloud/users/{groupId}/details?offset={offset}&limit={limit}', { groupId: encodeURIComponent(groupid), offset, limit }))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tgetPasswordPolicyMinLength(context) {\n\t\tif (getCapabilities().password_policy && getCapabilities().password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', getCapabilities().password_policy.minLength)\n\t\t\treturn getCapabilities().password_policy.minLength\n\t\t}\n\t\treturn false\n\t},\n\n\t/**\n\t * Add group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('addGroup', { id: gid, name: gid })\n\t\t\t\t\treturn { gid, displayName: gid }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { gid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from adding the user to a group that doesn't exists\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Rename group\n\t *\n\t * @param {object} context store context\n\t * @param {string} groupid Group id\n\t * @param {string} displayName Group display name\n\t * @return {Promise}\n\t */\n\trenameGroup(context, { groupid, displayName }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('renameGroup', { gid: groupid, displayName })\n\t\t\t\t\treturn { groupid, displayName }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { groupid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from renaming the group\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Remove group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then(() => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t// let's throw one more time to prevent\n\t\t\t// the view from removing the user row on failure\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Add user to group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Mark all user devices for remote wipe\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tasync wipeUserDevices(context, userid) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\treturn await api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\treturn Promise.reject(new Error('Failed to wipe user devices'))\n\t\t}\n\t},\n\n\t/**\n\t * Delete a user\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tdeleteUser(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then(() => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context store context\n\t * @param {Function} context.commit -\n\t * @param {Function} context.dispatch -\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password\n\t * @param {string} options.displayName User display name\n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @param {string} options.language User language\n\t * @param {string} options.manager User manager\n\t * @return {Promise}\n\t */\n\taddUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })\n\t\t\t\t.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcommit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.get(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Enable or disable user\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @return {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tconst userStatus = enabled ? 'enable' : 'disable'\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then(() => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @return {Promise}\n\t */\n\tasync setUserData(context, { userid, key, value }) {\n\t\tconst allowedEmpty = ['email', 'displayname', 'manager']\n\t\tconst validKeys = ['email', 'language', 'quota', 'displayname', 'password', 'manager']\n\n\t\tif (!validKeys.includes(key)) {\n\t\t\tthrow new Error('Invalid request data')\n\t\t}\n\n\t\t// If value is empty and the key doesn't allow empty values, throw error\n\t\tif (value === '' && !allowedEmpty.includes(key)) {\n\t\t\tthrow new Error('Value cannot be empty for this field')\n\t\t}\n\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tawait api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })\n\t\t\treturn context.commit('setUserData', { userid, key, value })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Update multiple user fields atomically via the new bulk endpoint.\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.payload Changed fields to send\n\t * @return {Promise}\n\t */\n\tasync editUserMultiField(context, { userid, payload }) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tconst response = await api.patch(\n\t\t\t\tgenerateOcsUrl('cloud/users/{userid}', { userid }),\n\t\t\t\tpayload,\n\t\t\t)\n\t\t\tcontext.commit('editUserMultiField', { userid, data: response.data.ocs.data })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Send welcome mail\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tsendWelcomeMail(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(() => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\t/**\n\t * Migrate local storage keys to database\n\t *\n\t * @param {object} context store context\n\t * @param context.commit\n\t */\n\tmigrateLocalStorage({ commit }) {\n\t\tconst preferences = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\n\t\tfor (const [key, dbKey] of Object.entries(preferences)) {\n\t\t\tconst localKey = `account_settings__${key}`\n\t\t\tconst localValue = window.localStorage.getItem(localKey)\n\t\t\tif (localValue === null) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst value = localValue === 'true'\n\t\t\tcommit('setShowConfig', { key, value })\n\n\t\t\taxios.post(generateUrl(`/settings/users/preferences/${dbKey}`), {\n\t\t\t\tvalue: value ? 'true' : 'false',\n\t\t\t}).then(() => {\n\t\t\t\twindow.localStorage.removeItem(localKey)\n\t\t\t}).catch((error) => {\n\t\t\t\tlogger.error(`Failed to migrate preference ${key}`, { error })\n\t\t\t})\n\t\t}\n\t},\n\n\t/**\n\t * Set show config\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.key Key to set\n\t * @param {boolean} options.value Value to set\n\t */\n\tsetShowConfig(context, { key, value }) {\n\t\tcontext.commit('setShowConfig', { key, value })\n\t\tconst keyMap = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\t\taxios.post(generateUrl(`settings/users/preferences/${keyMap[key]}`), { value: value ? 'true' : 'false' })\n\t\t\t.catch((error) => logger.error(`Could not update ${key} preference`, { error }))\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tgetters,\n\tactions,\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { Store } from 'vuex'\nimport logger from '../logger.js'\nimport oc from './oc.js'\nimport settings from './users-settings.js'\nimport users from './users.js'\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\ttry {\n\t\t\tconst message = error.error.response.data.ocs.meta.message\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '
' + message, { isHTML: true })\n\t\t} catch {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tlogger.error('An error occurred during the request.', { state, error })\n\t},\n}\n\nlet store = null\n\n/**\n *\n */\nexport function useStore() {\n\tif (store === null) {\n\t\tstore = new Store({\n\t\t\tmodules: {\n\t\t\t\tusers,\n\t\t\t\tsettings,\n\t\t\t\toc,\n\t\t\t},\n\t\t\tstrict: !PRODUCTION,\n\t\t\tmutations,\n\t\t})\n\t}\n\treturn store\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-label\":_setup.t('settings', 'Groups'),\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_c(_setup.NcAppNavigationCaption,{attrs:{\"name\":_setup.t('settings', 'Groups'),\"disabled\":_setup.loadingAddGroup,\"aria-label\":_setup.loadingAddGroup ? _setup.t('settings', 'Creating group…') : _setup.t('settings', 'Create group'),\"force-menu\":\"\",\"open\":_setup.isAddGroupOpen},on:{\"update:open\":function($event){_setup.isAddGroupOpen=$event}},scopedSlots:_vm._u([(_setup.isAdminOrDelegatedAdmin)?{key:\"actionsTriggerIcon\",fn:function(){return [(_setup.loadingAddGroup)?_c(_setup.NcLoadingIcon):_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}:null,(_setup.isAdminOrDelegatedAdmin)?{key:\"actions\",fn:function(){return [_c(_setup.NcActionText,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroupOutline}})]},proxy:true}],null,false,4071362859)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"submit\":_setup.createGroup},model:{value:(_setup.newGroupName),callback:function ($$v) {_setup.newGroupName=$$v},expression:\"newGroupName\"}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_vm._l((_setup.filteredGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=694956cc\"\nimport script from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.isModalOpen,\"show-navigation\":true,\"name\":_vm.t('settings', 'Account management settings')},on:{\"update:open\":function($event){_vm.isModalOpen=$event}}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"visibility-settings\",\"name\":_vm.t('settings', 'Visibility')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLanguages\"},model:{value:(_vm.showLanguages),callback:function ($$v) {_vm.showLanguages=$$v},expression:\"showLanguages\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show language'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showUserBackend\"},model:{value:(_vm.showUserBackend),callback:function ($$v) {_vm.showUserBackend=$$v},expression:\"showUserBackend\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show account backend'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showStoragePath\"},model:{value:(_vm.showStoragePath),callback:function ($$v) {_vm.showStoragePath=$$v},expression:\"showStoragePath\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show storage path'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showFirstLogin\"},model:{value:(_vm.showFirstLogin),callback:function ($$v) {_vm.showFirstLogin=$$v},expression:\"showFirstLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show first login'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLastLogin\"},model:{value:(_vm.showLastLogin),callback:function ($$v) {_vm.showLastLogin=$$v},expression:\"showLastLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show last login'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"groups-sorting\",\"name\":_vm.t('settings', 'Sorting')}},[(_vm.isGroupSortingEnforced)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('settings', 'Group list sorting')))]),_vm._v(\" \"),_c('NcNoteCard',{staticClass:\"dialog__note\",attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By member count'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By name'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"email-settings\",\"name\":_vm.t('settings', 'Send email')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"sendWelcomeMail\",\"disabled\":_vm.loadingSendMail},model:{value:(_vm.sendWelcomeMail),callback:function ($$v) {_vm.sendWelcomeMail=$$v},expression:\"sendWelcomeMail\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Send welcome email to new accounts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"default-settings\",\"name\":_vm.t('settings', 'Defaults')}},[_c('NcSelect',{attrs:{\"clearable\":false,\"create-option\":_vm.validateQuota,\"filter-by\":_vm.filterQuotas,\"input-label\":_vm.t('settings', 'Default quota'),\"options\":_vm.quotaOptions,\"placement\":\"top\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"taggable\":\"\"},on:{\"option:selected\":_vm.setDefaultQuota},model:{value:(_vm.defaultQuota),callback:function ($$v) {_vm.defaultQuota=$$v},expression:\"defaultQuota\"}})],1),_vm._v(\" \"),_c('NcAppSettingsShortcutsSection',[_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Search')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Focus search'),\"hotkey\":\"Control F\"}})],1),_vm._v(\" \"),_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Help')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Show those shortcuts'),\"hotkey\":\"?\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserSettingsDialog.vue?vue&type=template&id=649c1de8&scoped=true\"\nimport script from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"649c1de8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCogOutline}})]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"account-management__settings-toggle-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings', 'New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationSearch,{ref:\"searchField\",attrs:{\"label\":_setup.t('settings', 'Search accounts and groups…')},model:{value:(_setup.searchInput),callback:function ($$v) {_setup.searchInput=$$v},expression:\"searchInput\"}}),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,3779933833)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOffOutline}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=1fd1d021&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=1fd1d021&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagementNavigation.vue?vue&type=template&id=1fd1d021&scoped=true\"\nimport script from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UserManagementNavigation.vue?vue&type=style&index=0&id=1fd1d021&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1fd1d021\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=7690bc0a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=7690bc0a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=7690bc0a&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=7690bc0a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7690bc0a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcContent',{attrs:{\"app-name\":\"settings\"}},[_c('UserManagementNavigation'),_vm._v(\" \"),_c('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading}},[_c('UserList',{attrs:{\"selected-group\":_vm.selectedGroupDecoded,\"external-actions\":_vm.externalActions}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport routes from './routes.ts';\nVue.use(Router);\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl(''),\n linkActiveClass: 'active',\n routes,\n});\nexport default router;\n","/*\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst routes = [\n {\n name: 'users',\n path: '/:index(index.php/)?settings/users',\n props: true,\n children: [\n {\n path: ':selectedGroup',\n name: 'group',\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { n, t } from '@nextcloud/l10n';\nimport { addPasswordConfirmationInterceptors } from '@nextcloud/password-confirmation';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport VTooltipPlugin from 'v-tooltip';\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport { sync } from 'vuex-router-sync';\nimport UserManagement from './views/UserManagement.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\naddPasswordConfirmationInterceptors(axios);\n// CSP config for webpack dynamic chunk loading\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\nconst store = useStore();\nsync(store, router);\nconst pinia = createPinia();\n// Migrate legacy local storage settings to the database\nstore.dispatch('migrateLocalStorage');\nconst App = Vue.extend(UserManagement);\nconst app = new App({\n router,\n store,\n pinia,\n});\napp.$mount('#content');\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.modal__header[data-v-30743619]{margin:0}.modal__content[data-v-30743619]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-30743619]{display:flex;width:100%;justify-content:space-between}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/GroupListItem.vue\"],\"names\":[],\"mappings\":\"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.modal {\\n\\t&__header {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 20px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__button-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tjustify-content: space-between;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.empty[data-v-ff26583a] .icon-vue{width:64px;height:64px}.empty[data-v-ff26583a] .icon-vue svg{max-width:64px;max-height:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/UserList.vue\"],\"names\":[],\"mappings\":\"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n@use './Users/shared/styles.scss' as *;\\n\\n.empty {\\n\\t:deep {\\n\\t\\t.icon-vue {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tmax-width: 64px;\\n\\t\\t\\t\\tmax-height: 64px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.edit-dialog[data-v-f0cc6e68] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/EditUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+CACC,4DAAA\",\"sourcesContent\":[\"\\n.edit-dialog {\\n\\t:deep(.dialog__actions) {\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog[data-v-32af3da3] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/NewUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,0CACC,4DAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t:deep(.dialog__actions) {\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-form-fields[data-v-0d9243e9]{display:flex;flex-direction:column;align-items:center;gap:calc(var(--default-grid-baseline, 4px)*2) 0}.user-form-fields__item[data-v-0d9243e9]{width:100%}.user-form-fields__item[data-v-0d9243e9]:not(:focus):not(:active){border-color:var(--color-border-dark)}.user-form-fields__static[data-v-0d9243e9]{display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area, 44px);padding:var(--border-width-input-focused, 2px);padding-inline:calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));margin-left:18px}.user-form-fields__static-label[data-v-0d9243e9]{font-size:var(--font-size-small, 13px);font-weight:500;line-height:1.5;color:var(--color-text-maxcontrast)}.user-form-fields__static-value[data-v-0d9243e9]{font-size:var(--default-font-size, 14px);line-height:1.5;color:var(--color-main-text)}.user-form-fields__hint[data-v-0d9243e9]{color:var(--color-text-maxcontrast);margin-block-start:calc(var(--default-grid-baseline, 4px)*2);align-self:flex-start}.user-form-fields[data-v-0d9243e9] .user-form__item{width:100%}.user-form-fields[data-v-0d9243e9] .user-form__select{width:100%}.user-form-fields__error-summary[data-v-0d9243e9]{width:100%;margin-block-start:calc(var(--default-grid-baseline, 4px)*2);color:var(--color-error);font-size:var(--default-font-size, 14px)}.user-form-fields__error-summary p[data-v-0d9243e9]{margin-block:calc(var(--default-grid-baseline, 4px)/2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserFormFields.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,+CAAA,CAEA,yCACC,UAAA,CAEA,kEACC,qCAAA,CAIF,2CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,8CAAA,CACA,8CAAA,CACA,+FAAA,CAIA,gBAAA,CAEA,iDACC,sCAAA,CACA,eAAA,CACA,eAAA,CACA,mCAAA,CAGD,iDACC,wCAAA,CACA,eAAA,CACA,4BAAA,CAIF,yCACC,mCAAA,CACA,4DAAA,CACA,qBAAA,CAID,oDACC,UAAA,CAGD,sDACC,UAAA,CAGD,kDACC,UAAA,CACA,4DAAA,CACA,wBAAA,CACA,wCAAA,CAEA,oDACC,sDAAA\",\"sourcesContent\":[\"\\n.user-form-fields {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n\\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\\n\\n\\t&__item {\\n\\t\\twidth: 100%;\\n\\n\\t\\t&:not(:focus):not(:active) {\\n\\t\\t\\tborder-color: var(--color-border-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__static {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tmin-height: var(--default-clickable-area, 44px);\\n\\t\\tpadding: var(--border-width-input-focused, 2px);\\n\\t\\tpadding-inline: calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));\\n\\n\\t\\t// Manually align static value with inputs below until we have a static field in component lib.\\n\\t\\t// See: https://github.com/nextcloud/server/issues/53862#issuecomment-4212613996\\n\\t\\tmargin-left: 18px;\\n\\n\\t\\t&-label {\\n\\t\\t\\tfont-size: var(--font-size-small, 13px);\\n\\t\\t\\tfont-weight: 500;\\n\\t\\t\\tline-height: 1.5;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t&-value {\\n\\t\\t\\tfont-size: var(--default-font-size, 14px);\\n\\t\\t\\tline-height: 1.5;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n\\n\\t&__hint {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\talign-self: flex-start;\\n\\t}\\n\\n\\t// Reach into sub-component root elements to apply consistent sizing\\n\\t:deep(.user-form__item) {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t:deep(.user-form__select) {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__error-summary {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\tcolor: var(--color-error);\\n\\t\\tfont-size: var(--default-font-size, 14px);\\n\\n\\t\\tp {\\n\\t\\t\\tmargin-block: calc(var(--default-grid-baseline, 4px) / 2);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-form-groups[data-v-4041cacf]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px)*2) 0;width:100%}.user-form__item[data-v-4041cacf]{width:100%}.user-form__select[data-v-4041cacf]{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserFormGroups.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,YAAA,CACA,qBAAA,CACA,+CAAA,CACA,UAAA,CAGD,kCACC,UAAA,CAGD,oCACC,UAAA\",\"sourcesContent\":[\"\\n.user-form-groups {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\\n\\twidth: 100%;\\n}\\n\\n.user-form__item {\\n\\twidth: 100%;\\n}\\n\\n.user-form__select {\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.footer[data-v-4ff6ba29]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-4ff6ba29]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-4ff6ba29],.footer__cell span[data-v-4ff6ba29],.footer__cell label[data-v-4ff6ba29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-4ff6ba29],.footer__cell--displayname[data-v-4ff6ba29]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-4ff6ba29]{inset-inline-start:0}.footer__cell--displayname[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-4ff6ba29]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-4ff6ba29]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-4ff6ba29]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-4ff6ba29]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--groups[data-v-4ff6ba29]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.footer__cell--obfuscated[data-v-4ff6ba29]{min-width:400px;width:400px}.footer__cell--fill[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-4ff6ba29]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-4ff6ba29]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-4ff6ba29]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-4ff6ba29]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListFooter.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDzGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.footer {\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tposition: sticky;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&--loading {\\n\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t&--count {\\n\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\tmin-width: var(--cell-width);\\n\\t\\t\\twidth: var(--cell-width);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.header[data-v-53c64244]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-53c64244]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-53c64244],.header__cell span[data-v-53c64244],.header__cell label[data-v-53c64244]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-53c64244],.header__cell--displayname[data-v-53c64244]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-53c64244]{inset-inline-start:0}.header__cell--displayname[data-v-53c64244]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-53c64244]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-53c64244]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-53c64244]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-53c64244]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-53c64244]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--groups[data-v-53c64244]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.header__cell--obfuscated[data-v-53c64244]{min-width:400px;width:400px}.header__cell--fill[data-v-53c64244]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-53c64244]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-53c64244]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListHeader.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.header {\\n\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list__row[data-v-78b3749c]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-78b3749c]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-78b3749c]:not(.row__cell--actions){background-color:var(--color-background-hover)}.row__cell[data-v-78b3749c]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-78b3749c],.row__cell span[data-v-78b3749c],.row__cell label[data-v-78b3749c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-78b3749c],.row__cell--displayname[data-v-78b3749c]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-78b3749c]{inset-inline-start:0}.row__cell--displayname[data-v-78b3749c]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-78b3749c]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-78b3749c]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-78b3749c]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-78b3749c]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-78b3749c]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--groups[data-v-78b3749c]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.row__cell--obfuscated[data-v-78b3749c]{min-width:400px;width:400px}.row__cell--fill[data-v-78b3749c]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-78b3749c]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-78b3749c]{color:var(--color-text-maxcontrast)}.row__cell[data-v-78b3749c]{border-bottom:1px solid var(--color-border)}.row__progress[data-v-78b3749c]{margin-top:4px}.row__progress--warn[data-v-78b3749c]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-78b3749c]::-webkit-progress-value{background:var(--color-warning) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserRow.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CCKF,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CD9FD,4BACC,2CAAA,CAGD,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.user-list__row {\\n\\t@include styles.row;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\n\\t\\t.row__cell:not(.row__cell--actions) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n}\\n\\n.row {\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&__progress {\\n\\t\\tmargin-top: 4px;\\n\\n\\t\\t&--warn {\\n\\t\\t\\t&::-moz-progress-bar {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t\\t&::-webkit-progress-value {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog__note[data-v-649c1de8]{font-weight:normal}fieldset[data-v-649c1de8]{font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__note {\\n\\t\\tfont-weight: normal;\\n\\t}\\n}\\n\\nfieldset {\\n\\tfont-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list[data-v-65d37ac4]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-width-groups: 380px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-65d37ac4],.user-list__footer[data-v-65d37ac4]{position:sticky;display:block}.user-list__header[data-v-65d37ac4]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-65d37ac4]{inset-inline-start:0}.user-list__body[data-v-65d37ac4]{display:flex;flex-direction:column;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/VirtualList.vue\"],\"names\":[],\"mappings\":\"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,0BAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.user-list {\\n\\t--avatar-cell-width: 48px;\\n\\t--cell-padding: 7px;\\n\\t--cell-width: 200px;\\n\\t--cell-width-large: 300px;\\n\\t--cell-width-groups: 380px;\\n\\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\\n\\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\\n\\n\\t// Necessary for virtual scroll optimized rendering\\n\\tdisplay: block;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: sticky;\\n\\t\\t// Fix sticky positioning in Firefox\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t&__header {\\n\\t\\ttop: 0;\\n\\t\\tz-index: calc(var(--sticky-column-z-index) + 1);\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tinset-inline-start: 0;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-content[data-v-7690bc0a]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagement.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.account-management__navigation[data-v-1fd1d021] .app-navigation__body{will-change:scroll-position}.account-management__search[data-v-1fd1d021]{padding-block:var(--default-grid-baseline, 4px);padding-inline:var(--app-navigation-padding, 8px)}.account-management__system-list[data-v-1fd1d021]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-1fd1d021]{height:100% !important}.account-management__settings-toggle[data-v-1fd1d021]{margin-bottom:var(--body-container-margin)}.account-management__settings-toggle-text[data-v-1fd1d021]{font-weight:500}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagementNavigation.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,2BAAA,CAGF,6CACC,+CAAA,CACA,iDAAA,CAGD,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,0CAAA,CAEA,2DACC,eAAA\",\"sourcesContent\":[\"\\n.account-management {\\n\\t&__navigation {\\n\\t\\t:deep(.app-navigation__body) {\\n\\t\\t\\twill-change: scroll-position;\\n\\t\\t}\\n\\t}\\n\\t&__search {\\n\\t\\tpadding-block: var(--default-grid-baseline, 4px);\\n\\t\\tpadding-inline: var(--app-navigation-padding, 8px);\\n\\t}\\n\\n\\t&__system-list {\\n\\t\\theight: auto !important;\\n\\t\\toverflow: visible !important;\\n\\t}\\n\\n\\t&__group-list {\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t&__settings-toggle {\\n\\t\\tmargin-bottom: var(--body-container-margin);\\n\\n\\t\\t&-text {\\n\\t\\t\\tfont-weight: 500;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority ||= 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tlet notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn, priority] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => (chunkId + \"-\" + chunkId + \".js?v=\" + {\"4005\":\"aee79e7f1049b5e8188f\",\"4017\":\"d1523b8db423fbe47986\",\"5236\":\"ffeb871fa5beda99d3b3\",\"5862\":\"37458a2557f9c8bf7cee\",\"6798\":\"38b417c535f358052c1a\",\"7471\":\"34493087eb2469ae6e25\",\"7859\":\"0aa7564896cee7ea552c\",\"8259\":\"e914ef6a65a38374620a\",\"8374\":\"e925f5901b71aeaa37db\",\"8689\":\"5fcce4026be999b251c3\"}[chunkId] + \"\");","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","const inProgress = {};\nconst dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tlet script, needAttach;\n\tif(key !== undefined) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tconst s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tconst onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tconst doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode?.removeChild(script);\n\t\tdoneFns?.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tconst timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 516;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","let scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nconst document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript?.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tlet i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^https?:/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:|[?#].*$/g, \"\").replace(/\\/[^/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t516: 0,\n\t7471: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tlet installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tconst promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tconst error = new Error();\n\t\t\t\t\tconst loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tconst errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tconst realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\terror.event = event;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(__webpack_require__.p + __webpack_require__.u(chunkId), loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(34002)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","i","e","toPrimitive","call","r","TypeError","String","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","_defineProperties","length","key","isBrowser","window","document","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","toString","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","obj","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","_ref","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","console","warn","enabled","update","this","isDestroyed","instance","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","removeEventListeners","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","shift","basePlacement","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","offset","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","parseOffset","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Defaults","Popper","_this","classCallCheck","requestAnimationFrame","bind","jquery","Utils","globalThis","PopperUtils","vue_resize_esm_isIE","initCompat","init","ua","msie","substring","rv","edge","getInternetExplorerVersion","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","__vue_script__","emitOnMount","type","Boolean","default","ignoreWidth","ignoreHeight","mounted","$nextTick","_w","$el","_h","emitSize","object","createElement","_resizeObject","onload","addResizeHandlers","appendChild","beforeDestroy","removeResizeHandlers","methods","compareAndNotify","$emit","contentDocument","__vue_render__","$createElement","_self","_c","staticClass","attrs","tabindex","_withStripped","__vue_component__","vue_resize_esm_plugin","install","Vue","component","GlobalVue","use","SVGAnimatedString","convertToArray","addClasses","classes","classList","newClasses","className","baseVal","newClass","SVGElement","join","removeClasses","splice","supportsPassive","opts","get","ownKeys$2","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread$2","getOwnPropertyDescriptors","DEFAULT_OPTIONS","container","delay","title","trigger","openTooltips","Tooltip","_reference","_options","_classCallCheck","evt","relatedreference","toElement","relatedTarget","_tooltipNode","evt2","relatedreference2","_scheduleHide","show","_isOpen","_init","_show","_hide","_dispose","_classes","content","_setContent","classesUpdated","directive","defaultClass","isEqual","setClasses","getOptions","needPopperUpdate","needRestart","isOpen","dispose","popperInstance","events","_isDisposed","_enableDocumentTouch","_setEventListeners","$_originalTitle","getAttribute","_this2","tooltipGenerator","innerHTML","tooltipNode","childNodes","id","ariaId","random","substr","autoHide","_this3","asyncContent","_applyContent","_this4","reject","allowHtml","rootNode","titleNode","innerSelector","firstChild","loadingClass","loadingContent","asyncResult","catch","innerText","clearTimeout","_disposeTimer","updateClasses","_ensureShown","_this5","display","_create","_findContainer","_append","popperOptions","arrowSelector","_this6","_noLongerOpen","disposeTime","disposeTimeout","_removeTooltipNode","_this7","_events","func","_this8","directEvents","oppositeEvents","hideOnTargetClick","usedByTooltip","_scheduleShow","_this9","computedDelay","_scheduleTimer","_this10","_setTooltipNodeEvent","ownKeys$1","_objectSpread$1","_onDocumentTouch","capture","positions","defaultOptions","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultOpenClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","pos","getContent","destroyTooltip","_tooltip","_tooltipOldShow","_tooltipTargetClasses","oldValue","tooltip","setContent","setOptions","_vueEl","targetClasses","createTooltip","unbind","addListeners","onClick","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","currentTarget","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","all","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","abs","screenY","screenX","vclosepopover","ownKeys","_objectSpread","getDefault","isIOS","MSStream","openPopovers","Element","components","ResizeObserver","open","disabled","Number","popoverClass","popoverBaseClass","popoverInnerClass","popoverWrapperClass","popoverArrowClass","handleResize","openGroup","openClass","computed","cssClass","popoverId","watch","val","oldVal","popoverNode","$refs","$_findContainer","$_removeEventListeners","$_addEventListeners","$_updatePopper","handler","deep","created","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","deactivated","skipDelay","_ref2$force","force","$_scheduleShow","$_beingShowed","_ref3","$_scheduleHide","$_show","$_disposeTimer","hidden","$_getOffset","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref4","cb","$_restartPopper","$_handleGlobalClose","$_handleResize","handleGlobalClose","_loop","_vm","class","ref","staticStyle","_t","_v","visibility","on","keyup","$event","_k","keyCode","notify","_e","insertAt","head","getElementsByTagName","insertBefore","styleSheet","cssText","createTextNode","styleInject","plugin","installed","finalOptions","merge","global","v_tooltip_esm","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","deepCopy","cache","f","hit","c","original","copy","isArray","forEachValue","isObject","Module","rawModule","runtime","_children","create","_rawModule","rawState","prototypeAccessors","namespaced","addChild","module","getChild","hasChild","actions","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","vuex_esm_update","path","targetModule","newModule","modules","root","getNamespace","namespace","this$1","rawChildModule","unregister","child","isRegistered","Store","vuex_esm_install","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","store","dispatch","commit","payload","installModule","resetStoreVM","devtools","config","_devtoolHook","emit","targetState","replaceState","subscribe","mutation","prepend","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","subs","unshift","resetStore","hot","oldVm","wrappedGetters","arg","partial","silent","$$state","$watch","_data","sync","enableStrictMode","_withCommit","nextTick","$destroy","rootState","isRoot","parentState","getNestedState","moduleName","set","local","noNamespace","_type","_payload","args","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","registerMutation","res","rootGetters","err","registerAction","getter","rawGetter","registerGetter","_Vue","mixin","vuexInit","$store","applyMixin","entry","sub","before","after","error","registerModule","preserveState","unregisterModule","delete","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","isValidMap","helper","startMessage","logger","message","collapsed","groupCollapsed","group","log","endMessage","groupEnd","getFormattedTime","time","Date","pad","getHours","getMinutes","getSeconds","getMilliseconds","num","maxLength","times","createNamespacedHelpers","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","prevState","nextState","formattedTime","formattedMutation","formattedAction","vuex_esm","getLoggerBuilder","setApp","detectUser","build","formatGroup","displayname","usercount","canAdd","canRemove","searchGroups","limit","controller","AbortController","CancelablePromise","async","onCancel","abort","axios","generateOcsUrl","signal","ocs","groups","Users_UserFormGroupsvue_type_script_lang_js","NcSelect","inject","creatingGroup","promise","settings","getServerData","availableGroups","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","availableSubAdminGroups","groupsLabel","query","toggleLoading","cancel","createGroup","gid","formData","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","UserFormGroupsvue_type_style_index_0_id_4041cacf_prod_lang_scss_scoped_true","A","locals","UserFormGroups","componentNormalizer","placeholder","label","multiple","taggable","required","isCreating","model","$$v","$set","expression","subadminGroups","unlimitedQuota","defaultQuota","resolveLanguage","user","serverLanguages","language","code","commonLanguages","otherLanguages","lang","Users_UserFormLanguagevue_type_script_lang_js","showConfig","getShowConfig","languages","languageFilterBy","option","toLocaleLowerCase","includes","UserFormLanguage","showLanguages","clearable","selectable","UserFormManagervue_type_script_lang_js","NcSelectUsers","possibleManagers","loading","searchTimeout","managerModel","m","manager","displayName","_managerModelCache","managerOptions","u","subname","email","beforeUnmount","onManagerChange","searchUserManager","fetchManagers","response","users","values","Users_UserFormManagervue_type_script_lang_js","UserFormManager","Users_UserFormQuotavue_type_script_lang_js","quotaOptions","validateQuota","quota","fallback","parsed","parseFileSize","formatFileSize","UserFormQuota","Users_UserFormFieldsvue_type_script_lang_js","NcPasswordField","NcTextField","fieldConfig","errors","minPasswordLength","getPasswordPolicyMinLength","unhandledErrors","handled","Set","fromEntries","entries","has","focusField","focus","UserFormFieldsvue_type_style_index_0_id_0d9243e9_prod_lang_scss_scoped_true_options","UserFormFieldsvue_type_style_index_0_id_0d9243e9_prod_lang_scss_scoped_true","UserFormFields","username","_s","autocapitalize","autocomplete","spellcheck","pattern","showPasswordEmailHint","password","minlength","maxlength","role","_l","field","Users_EditUserDialogvue_type_script_lang_js","NcButton","NcDialog","provide","editedUser","emits","allGroups","getGroups","g","subadmin","q","userToFormData","initialData","structuredClone","saving","fieldErrors","canChangePassword","backendCapabilities","setPassword","save","initial","current","currentManagerId","currentGroupIds","initialGroupIds","JSON","stringify","currentSubadminIds","initialSubadminIds","diffPayload","confirmPassword","userid","showSuccess","showError","EditUserDialogvue_type_style_index_0_id_f0cc6e68_prod_lang_scss_scoped_true_options","EditUserDialogvue_type_style_index_0_id_f0cc6e68_prod_lang_scss_scoped_true","EditUserDialog_component","size","closing","scopedSlots","_u","form","variant","proxy","submit","preventDefault","EditUserDialog","Users_NewUserDialogvue_type_script_lang_js","newUser","usernameLabel","newUserGenerateUserID","newUserRequireEmail","fields","createUser","meta","statuscode","NewUserDialogvue_type_style_index_0_id_32af3da3_prod_lang_scss_scoped_true_options","NewUserDialogvue_type_style_index_0_id_32af3da3_prod_lang_scss_scoped_true","NewUserDialog_component","_g","$listeners","NewUserDialog","Users_UserListFootervue_type_script_lang_ts","extend","NcLoadingIcon","filteredUsers","userCount","l10n_dist","Tl","UserListFootervue_type_style_index_0_id_4ff6ba29_prod_lang_scss_scoped_true_options","UserListFootervue_type_style_index_0_id_4ff6ba29_prod_lang_scss_scoped_true","UserListFooter","_setupProxy","scope","Users_UserListHeadervue_type_script_lang_ts","UserListHeadervue_type_style_index_0_id_53c64244_prod_lang_scss_scoped_true_options","UserListHeadervue_type_style_index_0_id_53c64244_prod_lang_scss_scoped_true","UserListHeader","showUserBackend","showStoragePath","showFirstLogin","showLastLogin","NcActionButton_D7uypboC","N","NcActionButtonGroup_B95wg_Q6","NcActionCaption","NcActionCheckbox_Cbg5yktN","NcActionInput_Xepxb1Nk","NcActionLink","NcActionRadio_B2bgbBHw","NcActionRouter","NcActionSeparator","NcActionText","NcActionTextEditable_BykT5Byh","NcActions_JnumflF4","NcAppContent_BScPRxTJ","NcAppContentDetails","NcAppContentList","NcAppNavigation_C4iIEWY3","NcAppNavigationCaption_BJnvmftc","NcAppNavigationIconBullet","NcAppNavigationItem_DRaKry_f","NcAppNavigationList","NcAppNavigationNew_BOfIdgIu","NcAppNavigationNewItem_KbbB_8vX","NcAppNavigationSearch_CI_e6Rva","NcAppNavigationSettings_BN3w_BCp","NcAppNavigationSpacer","NcAppSettingsDialog_C7Oywy1u","NcAppSettingsSection_CsGyNFSh","NcAppSettingsShortcutsSection_D3ylJW58","NcAppSidebar_CEo2tgBa","NcAppSidebarHeader_CBE4tNYb","NcAppSidebarTab","NcAssistantButton_CHiZT_vH","NcAssistantContent","NcAssistantIcon_mcLe7umL","NcRichContenteditable_CG7oWfBl","NcAvatar_BBqomFJ3","NcBlurHash_CP2UBH_9","NcBreadcrumb_BN1Qrbjc","NcBreadcrumbs_OySgLqXi","NcButton_D6Swkr1k","NcCheckboxRadioSwitch_Ddl_QlRN","NcCollectionList_q7zkDwqG","NcColorPicker_DlAxFoRr","NcContent_BgMXU5Dv","NcCounterBubble_oxV8oMlX","NcDashboardWidget_oyS_D_B","NcDashboardWidgetItem_uYQMYeJS","NcDateTime_enXYuwj8","NcDateTimePicker","NcDateTimePickerNative","NcDialog_DmRqcm3W","NcDialogButton_Bqjj_wmb","NcEllipsisedOption","NcEmojiPicker_ClkGGFdW","NcEmptyContent","NcFilePicker_B57HJpaE","NcFormBox_Bd7m8ffs","NcFormBoxButton_CRL7kucw","NcFormBoxCopyButton_BOENrJAS","NcFormBoxSwitch_bdRBjKGq","NcFormGroup_tW_MwPUj","NcGuestContent","NcHeaderButton_MEyDJghO","NcHeaderMenu_jHItu4LV","index_CxTT94_h","NcHotkey_CpgacYSd","NcHotkeyList_BYFbKo6_","NcIconSvgWrapper_Bui9PhAS","NcInputField_BrzZ8Bne","NcListItem_Ciok4H4t","NcListItemIcon_DdkIQyoP","index_BCqXu_og","NcModal","NcNoteCard","NcPasswordField_CSeFP0Uz","NcPopover_BzTp7LfM","NcProgressBar_D7zYeXBH","NcRadioGroup_D4kc6Jjr","NcRadioGroupButton_B8a5TW2l","NcRelatedResourcesPanel_CFp3GPty","NcRichText_C3Nj11Wy","NcSavingIndicatorIcon_U7AIamCl","NcSelect_DrKzKPZL","NcSelectTags_D8pmnLor","NcSelectUsers_z2bZafO2","NcSettingsInputText_BwnkZzWL","NcSettingsSection_DV_x6Ag7","NcSettingsSelectGroup_CFvLzGNf","NcTextArea_C82D8CSK","NcTextField_BPhf3E7g","NcThemeProvider_BA_zMjAf","NcTimezonePicker_D4xfdT9T","NcUserBubble_CuCNjhc8","NcUserStatusIcon_DdPPN_cP","NcVNodes","toStringTag","Focus","Linkify","floating_vue_es","yw","Users_UserRowActionsvue_type_script_lang_ts","defineComponent","NcActionButton","NcActions","NcIconSvgWrapper","setup","SvgPencil","enabledActions","isSvg","UserRowActions_component","inline","click","svg","icon","text","UserRowActions","productName","OC","theme","UserRowvue_type_script_lang_js","NcAvatar","NcProgressBar","visible","externalActions","onEditUser","Function","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","rand","disable","wipe","isObfuscated","at","usedQuota","used","pow","userLanguage","userLang","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","Util","formatDate","userLastLogin","relativeModifiedDate","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","userGroupsLabels","userSubAdminGroupsLabels","usedSpace","canEdit","getCurrentUser","uid","userQuota","userActions","deleteUser","wipeUserDevices","enableDisableUser","sendWelcomeMail","toggleEdit","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","timeout","finally","Users_UserRowvue_type_script_lang_js","UserRowvue_type_style_index_0_id_78b3749c_prod_lang_scss_scoped_true_options","UserRowvue_type_style_index_0_id_78b3749c_prod_lang_scss_scoped_true","UserRow","backend","storageLocation","vElementVisibility","Users_VirtualListvue_type_script_lang_ts","dataComponent","dataKey","dataSources","itemHeight","extraProps","bufferItems","headerHeight","tableHeight","resizeObserver","startIndex","shownItems","ceil","renderedItems","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","paddingTop","paddingBottom","tfoot","thead","debug","onScroll","observe","disconnect","handleFooterVisibility","VirtualListvue_type_style_index_0_id_65d37ac4_prod_lang_scss_scoped_true_options","VirtualListvue_type_style_index_0_id_65d37ac4_prod_lang_scss_scoped_true","VirtualList","item","_b","tag","directives","rawName","freeze","components_UserListvue_type_script_lang_js","Fragment","frag_esm","F","selectedGroup","mdiAccountGroupOutline","mdi","dgQ","rowHeight","editingUser","searchQuery","getSearchQuery","getUsers","quotaPreset","acc","allowUnlimitedQuota","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","loadUsers","redirectIfDisabled","setNewUserDefaultGroup","Notification","showTemporary","initForm","openEditDialog","handleScrollEnd","closeDialog","resetForm","defaultLanguage","currentGroup","$router","UserListvue_type_style_index_0_id_ff26583a_prod_lang_scss_scoped_true_options","UserListvue_type_style_index_0_id_ff26583a_prod_lang_scss_scoped_true","UserList","showNewUserForm","useRoute","vue_runtime_esm","nI","_$route","route","uY","run","Gc","currentRoute","afterEach","to","vue_material_design_icons_TrashCanOutlinevue_type_script_lang_js","fillColor","TrashCanOutline","$attrs","fill","viewBox","d","components_GroupListItemvue_type_script_lang_js","AccountGroup","AccountGroupOutline","Delete","NcActionInput","NcAppNavigationItem","NcCounterBubble","Pencil","active","count","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","displayNameInput","groupid","removeGroup","GroupListItemvue_type_style_index_0_id_30743619_prod_lang_scss_scoped_true_options","GroupListItemvue_type_style_index_0_id_30743619_prod_lang_scss_scoped_true","GroupListItem","close","exact","params","formatGroupMenu","useFormatGroups","userGroups","adminGroup","disabledGroup","recentGroup","sanitize","url","api","requireAdmin","post","patch","put","oc","setAppConfig","app","serverData","loadState","setServerData","users_settings","users_settings_state","users_settings_mutations","GroupSorting","naturalCollator","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","usersSettings","defaults","systemGroups","orderBy","sortGroups","UserCount","user_list_show_storage_path","user_list_show_user_backend","user_list_show_first_login","user_list_show_last_login","user_list_show_new_user_form","user_list_show_languages","appendUsers","usersObj","existingUsers","newUsers","updateDisabledUsers","setPasswordPolicyMinLength","addGroup","newGroup","existingGroup","groupIndex","groupSearch","updatedGroup","addUserGroup","removeUserGroup","addUserSubAdmin","removeUserSubAdmin","userIndex","actionType","addUserData","updateUserCounts","userGroup","setUserData","humanValue","editUserMultiField","prevGids","resetUsers","resetGroups","setSearchQuery","setShowConfig","setGroupSorting","sorting","generateUrl","subAdminGroups","numA","numB","compare","getGroupSorting","getUserCount","CancelToken","searchRequestCancelSource","commitGroupsFromUsersResponse","users_state","users_mutations","users_getters","searchUsers","getUser","userId","cancelToken","token","getRecentUsers","getDisabledUsers","limitParam","getUsersFromList","getUsersFromGroup","groupId","getCapabilities","password_policy","minLength","Error","addUser","userStatus","migrateLocalStorage","preferences","dbKey","localKey","localValue","localStorage","getItem","removeItem","API_FAILURE","useStore","AppNavigationGroupListvue_type_script_setup_true_lang_ts","_defineComponent","__name","__props","router","onBeforeMount","loadGroups","selectedGroupDecoded","decodeURIComponent","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","filteredGroups","groupListItems","lastGroupListItem","findLast","listItem","isLastGroupVisible","useElementVisibility","__sfc","newGroupListItem","scrollIntoView","block","mdiPlus","biz","NcAppNavigationCaption","components_AppNavigationGroupListvue_type_script_setup_true_lang_ts","AppNavigationGroupList","_setup","refInFor","Users_UserSettingsDialogvue_type_script_lang_js","NcAppSettingsDialog","NcAppSettingsSection","NcAppSettingsShortcutsSection","NcCheckboxRadioSwitch","NcHotkey","NcHotkeyList","_","useHotKey","getElementById","stop","prevent","selectedQuota","loadingSendMail","groupSorting","GroupName","isGroupSortingEnforced","forceSortGroupByName","isModalOpen","status","computerFileSize","newUserSendEmail","filterQuotas","searchValue","replaceAll","validQuota","setDefaultQuota","UserSettingsDialogvue_type_style_index_0_id_649c1de8_prod_scoped_true_lang_scss_options","UserSettingsDialogvue_type_style_index_0_id_649c1de8_prod_scoped_true_lang_scss","UserSettingsDialog","hotkey","UserManagementNavigationvue_type_script_setup_true_lang_ts","searchField","searchInput","commitSearch","onBeforeUnmount","clear","inputElement","ctrl","isDialogOpen","showNewUserMenu","mdiAccountOffOutline","Zfz","mdiAccountOutline","EzL","mdiCogOutline","ED","mdiHistory","LP2","mdiShieldAccountOutline","J0H","NcAppNavigation","NcAppNavigationNew","NcAppNavigationSearch","views_UserManagementNavigationvue_type_script_setup_true_lang_ts","UserManagementNavigationvue_type_style_index_0_id_1fd1d021_prod_scoped_true_lang_scss_options","UserManagementNavigationvue_type_style_index_0_id_1fd1d021_prod_scoped_true_lang_scss","UserManagementNavigation_component","wide","UserManagementNavigation","views_UserManagementvue_type_script_lang_js","NcContent","NcAppContent","pageHeading","admin","$route","beforeMount","OCA","Settings","UserManagementvue_type_style_index_0_id_7690bc0a_prod_lang_scss_scoped_true_options","UserManagementvue_type_style_index_0_id_7690bc0a_prod_lang_scss_scoped_true","UserManagement","Router","src_router","mode","base","linkActiveClass","routes","addPasswordConfirmationInterceptors","__webpack_nonce__","getCSPNonce","PiniaVuePlugin","VTooltipPlugin","Vuex","pinia","createPinia","main_users_management_store","$mount","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","baseAssignValue","__webpack_require__","eq","exports","Stack","assignMergeValue","baseFor","baseMergeDeep","keysIn","safeGet","baseMerge","srcIndex","customizer","stack","srcValue","newValue","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArrayLikeObject","isBuffer","isPlainObject","isTypedArray","toPlainObject","mergeFunc","objValue","stacked","isCommon","isArr","isBuff","isTyped","baseRest","isIterateeCall","assigner","guard","isArrayLike","isObjectLike","baseIsEqual","other","createAssigner","copyObject","cloneRoute","from","clone","fullPath","O","ROUTE_CHANGED","transition","currentPath","isTimeTraveling","storeUnwatch","afterEachUnHook","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","deferred","chunkIds","notFulfilled","Infinity","fulfilled","j","every","__esModule","cw","mod","definition","binding","chunkId","promises","hasOwn","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","s","charset","nc","src","onScriptComplete","prev","onerror","doneFns","nmd","paths","dn","scriptUrl","importScripts","location","currentScript","tagName","p","baseURI","self","href","installedChunks","installedChunkData","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"settings-vue-settings-users-management.js?v=5fab3f7c3f183e9402c1","mappings":"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","sources":["webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///nextcloud/node_modules/popper.js/dist/esm/popper.js","webpack:///nextcloud/node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///nextcloud/node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///nextcloud/node_modules/vuex/dist/vuex.esm.js","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/apps/settings/src/service/groups.ts","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?d8ec","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?bacc","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?5fa2","webpack://nextcloud/./apps/settings/src/components/Users/UserFormLanguage.vue?3d52","webpack:///nextcloud/apps/settings/src/utils/userUtils.ts","webpack:///nextcloud/apps/settings/src/components/Users/userFormUtils.ts","webpack:///nextcloud/apps/settings/src/components/Users/UserFormLanguage.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormLanguage.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormLanguage.vue?1b13","webpack://nextcloud/./apps/settings/src/components/Users/UserFormManager.vue?f6b6","webpack:///nextcloud/apps/settings/src/components/Users/UserFormManager.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormManager.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormManager.vue?de46","webpack:///nextcloud/apps/settings/src/components/Users/UserFormQuota.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/UserFormQuota.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserFormQuota.vue?dd83","webpack://nextcloud/./apps/settings/src/components/Users/UserFormQuota.vue?4349","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?f273","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?9ff7","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?99fc","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?ea6d","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?d404","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?2166","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?2c17","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?64c6","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?dc2d","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?2d18","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?b843","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?cbdf","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?758a","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?5434","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/UserRowActions.vue?3c2a","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?a702","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?eb6e","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?2359","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?1915","webpack:///nextcloud/apps/settings/src/components/UserList.vue","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/UserList.vue?2475","webpack://nextcloud/./apps/settings/src/components/UserList.vue?02a4","webpack://nextcloud/./apps/settings/src/components/UserList.vue?c96e","webpack:///nextcloud/node_modules/vue-router/composables.mjs","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TrashCanOutline.vue?ad44","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue?vue&type=template&id=3daa0f14","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?e939","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?7b19","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?9f48","webpack:///nextcloud/apps/settings/src/composables/useGroupsNavigation.ts","webpack:///nextcloud/apps/settings/src/store/api.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/users-settings.js","webpack:///nextcloud/apps/settings/src/constants/GroupManagement.ts","webpack:///nextcloud/apps/settings/src/utils/sorting.ts","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppNavigationGroupList.vue?c74f","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?824e","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?9980","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?f361","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?27e6","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?28b6","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?8c7e","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?fd5a","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?4b28","webpack:///nextcloud/apps/settings/src/router/index.ts","webpack:///nextcloud/apps/settings/src/router/routes.ts","webpack:///nextcloud/apps/settings/src/main-users-management.ts","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=ff26583a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue?vue&type=style&index=0&id=f0cc6e68&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue?vue&type=style&index=0&id=43846e48&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=style&index=0&id=7690bc0a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=style&index=0&id=1fd1d021&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/lodash/_assignMergeValue.js","webpack:///nextcloud/node_modules/lodash/_baseMerge.js","webpack:///nextcloud/node_modules/lodash/_baseMergeDeep.js","webpack:///nextcloud/node_modules/lodash/_createAssigner.js","webpack:///nextcloud/node_modules/lodash/_safeGet.js","webpack:///nextcloud/node_modules/lodash/isArrayLikeObject.js","webpack:///nextcloud/node_modules/lodash/isEqual.js","webpack:///nextcloud/node_modules/lodash/merge.js","webpack:///nextcloud/node_modules/lodash/toPlainObject.js","webpack:///nextcloud/node_modules/vuex-router-sync/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/concatenation wrap","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/set anonymous default export name","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","function getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\n//\nvar isIE;\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n initCompat();\n this.$nextTick(function () {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n\n if (isIE) {\n this.$el.appendChild(object);\n }\n\n object.data = 'about:blank';\n\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit('notify', {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction install(Vue) {\n // eslint-disable-next-line vue/component-definition-name-casing\n Vue.component('resize-observer', __vue_component__);\n Vue.component('ResizeObserver', __vue_component__);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"1.0.1\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { __vue_component__ as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\n","import _typeof from '@babel/runtime/helpers/typeof';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport Popper from 'popper.js';\nimport isEqual from 'lodash/isEqual';\nimport { ResizeObserver } from 'vue-resize';\nimport merge from 'lodash/merge';\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\n}\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip = /*#__PURE__*/function () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='
']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @param {string} [options.ariaId] Id used for accessibility\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread$2(_objectSpread$2({}, DEFAULT_OPTIONS), _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n }, {\n key: \"_create\",\n value: function _create(reference, template) {\n var _this2 = this;\n\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = this.options.ariaId || \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n tooltipNode.addEventListener('click', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this3 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n if (!_this3.popperInstance) return;\n\n _this3.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this4 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this4._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this4.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this4.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this4._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this4._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this4._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this5 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread$2(_objectSpread$2({}, options.popperOptions), {}, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread$2(_objectSpread$2({}, popperOptions.modifiers), {}, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed && _this5.popperInstance) {\n _this5.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed) {\n _this5._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this5.dispose();\n }\n });\n } else {\n _this5.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this6 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this6._tooltipNode) {\n _this6._tooltipNode.removeEventListener('mouseenter', _this6.hide);\n\n _this6._tooltipNode.removeEventListener('click', _this6.hide); // Don't remove popper instance, just the HTML element\n\n\n _this6._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this7 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this7.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this8 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this8._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this8._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this8._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this9._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this10 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this10._isOpen === false) {\n return;\n }\n\n if (!_this10._tooltipNode.ownerDocument.body.contains(_this10._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this10._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this10._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n}\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '
',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread$1({\n title: content\n }, getOptions(_objectSpread$1(_objectSpread$1({}, _typeof(value) === 'object' ? value : {}), {}, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value;\n _ref.oldValue;\n var modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread$1(_objectSpread$1({}, value), {}, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n },\n ariaId: {\n default: null\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.ariaId != null ? this.ariaId : this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event;\n _ref2.skipDelay;\n var _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event;\n _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n this.isOpen = false;\n\n if (this.popperInstance) {\n requestAnimationFrame(function () {\n if (!_this3.hidden) {\n _this3.isOpen = true;\n }\n });\n }\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread(_objectSpread({}, this.popperOptions), {}, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread(_objectSpread({}, popperOptions.modifiers), {}, {\n arrow: _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.arrow), {}, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.offset), {}, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow), {}, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.isOpen ? _vm.popoverId : undefined,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\", null, {\n isOpen: _vm.isOpen\n })], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".resize-observer[data-v-8859cc6c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-8859cc6c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css_248z);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('VPopover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('settings')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { CancelablePromise } from 'cancelable-promise';\n/**\n *\n * @param group\n */\nfunction formatGroup(group) {\n return {\n id: group.id,\n name: group.displayname,\n usercount: group.usercount,\n disabled: group.disabled,\n canAdd: group.canAdd,\n canRemove: group.canRemove,\n };\n}\n/**\n * Search groups\n *\n * @param options Options\n * @param options.search Search query\n * @param options.offset Offset\n * @param options.limit Limit\n */\nexport function searchGroups({ search, offset, limit }) {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await axios.get(generateOcsUrl('/cloud/groups/details?search={search}&offset={offset}&limit={limit}', { search, offset, limit }), {\n signal: controller.signal,\n });\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n resolve(formattedGroups);\n }\n catch (error) {\n reject(error);\n }\n });\n}\n/**\n * Load user groups\n *\n * @param options Options\n * @param options.userId User id\n */\nexport async function loadUserGroups({ userId }) {\n const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n}\n/**\n * Load user subadmin groups\n *\n * @param options Options\n * @param options.userId User id\n */\nexport async function loadUserSubAdminGroups({ userId }) {\n const url = generateOcsUrl('/cloud/users/{userId}/subadmins/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormGroups.vue?vue&type=template&id=4041cacf&scoped=true\"\nimport script from \"./UserFormGroups.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormGroups.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4041cacf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-groups\"},[_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"data-test\":\"groups\",\"input-label\":_vm.groupsLabel,\"placeholder\":_vm.t('settings', 'Set account groups'),\"disabled\":_vm.creatingGroup,\"options\":_vm.availableGroups,\"label\":\"name\",\"keep-open\":\"\",\"multiple\":true,\"taggable\":_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin,\"required\":!_vm.settings.isAdmin && !_vm.settings.isDelegatedAdmin,\"create-option\":(value) => ({ id: value, name: value, isCreating: true })},on:{\"search\":_vm.searchGroups,\"option:created\":_vm.createGroup},model:{value:(_vm.formData.groups),callback:function ($$v) {_vm.$set(_vm.formData, \"groups\", $$v)},expression:\"formData.groups\"}})],1),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Admin of the following groups'),\"placeholder\":_vm.t('settings', 'Set account as admin for …'),\"disabled\":_vm.creatingGroup,\"options\":_vm.availableSubAdminGroups,\"keep-open\":\"\",\"multiple\":true,\"label\":\"name\"},on:{\"search\":_vm.searchGroups},model:{value:(_vm.formData.subadminGroups),callback:function ($$v) {_vm.$set(_vm.formData, \"subadminGroups\", $$v)},expression:\"formData.subadminGroups\"}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showConfig.showLanguages)?_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Language'),\"placeholder\":_vm.t('settings', 'Set default language'),\"clearable\":false,\"selectable\":option => !option.languages,\"filter-by\":_vm.languageFilterBy,\"options\":_vm.languages,\"label\":\"name\"},model:{value:(_vm.formData.language),callback:function ($$v) {_vm.$set(_vm.formData, \"language\", $$v)},expression:\"formData.language\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nexport const unlimitedQuota = {\n id: 'none',\n label: t('settings', 'Unlimited'),\n};\nexport const defaultQuota = {\n id: 'default',\n label: t('settings', 'Default quota'),\n};\n/**\n * Return `true` if the logged in user does not have permissions to view the\n * data of `user`\n *\n * @param user The user to check\n * @param user.id Id of the user\n */\nexport function isObfuscated(user) {\n const keys = Object.keys(user);\n return keys.length === 1 && keys.at(0) === 'id';\n}\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { formatFileSize, parseFileSize } from '@nextcloud/files';\nimport { unlimitedQuota } from '../../utils/userUtils.ts';\n/**\n * Resolves the user's language code to a { code, name } object.\n *\n * @param user The user store object\n * @param serverLanguages Server language configuration\n * @return Language object with code and name\n */\nexport function resolveLanguage(user, serverLanguages) {\n if (!user.language || user.language === '') {\n return { code: '', name: '' };\n }\n const allLangs = [\n ...(serverLanguages?.commonLanguages ?? []),\n ...(serverLanguages?.otherLanguages ?? []),\n ];\n const match = allLangs.find((lang) => lang.code === user.language);\n if (match) {\n return match;\n }\n return { code: user.language, name: user.language };\n}\n/**\n * Maps a user store object to the flat, API-aligned shape used by the form.\n * Keeps a clean separation between the store model (e.g. `user.displayname`,\n * `user.quota.quota`) and the form model (e.g. `displayName`, `quota`).\n *\n * @param user The user store object\n * @param allGroups All available groups from the store\n * @param quotaOptions Quota preset options\n * @param serverLanguages Server language configuration\n * @return Form-ready data object\n */\nexport function userToFormData(user, allGroups, quotaOptions, serverLanguages) {\n const groups = user.groups\n .map((id) => allGroups.find((g) => g.id === id))\n .filter(Boolean);\n const subadminGroups = (user.subadmin ?? [])\n .map((id) => allGroups.find((g) => g.id === id))\n .filter(Boolean);\n let quota;\n if (user.quota?.quota >= 0) {\n const label = formatFileSize(user.quota.quota);\n quota = quotaOptions.find((q) => q.id === label) ?? { id: label, label };\n }\n else if (user.quota?.quota === 'default') {\n quota = quotaOptions[0];\n }\n else {\n quota = unlimitedQuota;\n }\n return {\n username: user.id,\n displayName: user.displayname ?? '',\n password: '',\n email: user.email ?? '',\n groups,\n subadminGroups,\n quota,\n language: resolveLanguage(user, serverLanguages),\n manager: user.manager ?? '',\n };\n}\n/**\n * Generic shallow diff between initial and current form data.\n * Returns only fields that changed, with API-ready values.\n *\n * @param initial Snapshot of form data at mount time\n * @param current Current form data state\n * @return Changed fields with API-ready values\n */\nexport function diffPayload(initial, current) {\n const payload = {};\n if (current.displayName !== initial.displayName) {\n payload.displayName = current.displayName;\n }\n if (current.password !== '') {\n payload.password = current.password;\n }\n if (current.email !== initial.email) {\n payload.email = current.email;\n }\n if (current.quota.id !== initial.quota.id) {\n payload.quota = current.quota.id;\n }\n if (current.language.code !== initial.language.code) {\n payload.language = current.language.code;\n }\n const currentManagerId = typeof current.manager === 'object' ? (current.manager.id ?? '') : current.manager;\n const initialManagerId = typeof initial.manager === 'object' ? (initial.manager.id ?? '') : initial.manager;\n if (currentManagerId !== initialManagerId) {\n payload.manager = currentManagerId;\n }\n const currentGroupIds = current.groups.map((g) => g.id).sort();\n const initialGroupIds = initial.groups.map((g) => g.id).sort();\n if (JSON.stringify(currentGroupIds) !== JSON.stringify(initialGroupIds)) {\n payload.groups = currentGroupIds;\n }\n const currentSubadminIds = current.subadminGroups.map((g) => g.id).sort();\n const initialSubadminIds = initial.subadminGroups.map((g) => g.id).sort();\n if (JSON.stringify(currentSubadminIds) !== JSON.stringify(initialSubadminIds)) {\n payload.subadminGroups = currentSubadminIds;\n }\n return payload;\n}\n/**\n * Parses and normalizes a user-entered quota string into a quota option.\n * Returns the fallback option if the input is invalid.\n *\n * @param quota Raw quota string entered by the user (e.g. \"4 MB\")\n * @param fallback Fallback option when input is invalid\n * @param fallback.id Fallback option identifier\n * @param fallback.label Fallback option display label\n * @return Normalized quota option with id and label\n */\nexport function validateQuota(quota, fallback) {\n const parsed = parseFileSize(quota, true);\n if (parsed !== null && parsed >= 0) {\n const label = formatFileSize(parsed);\n return { id: label, label };\n }\n return fallback;\n}\n/**\n * Filter function for the language NcSelect. Handles grouped options\n * (section headers with nested languages) and plain language entries.\n *\n * @param option The select option being filtered\n * @param option.languages Nested languages for group headers\n * @param label The option's display label\n * @param search The user's search string\n * @return Whether the option matches the search\n */\nexport function languageFilterBy(option, label, search) {\n if (option.languages) {\n return option.languages.some(({ name }) => name.toLocaleLowerCase().includes(search.toLocaleLowerCase()));\n }\n return (label || '').toLocaleLowerCase().includes(search.toLocaleLowerCase());\n}\n","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormLanguage.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormLanguage.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserFormLanguage.vue?vue&type=template&id=41ac58dd\"\nimport script from \"./UserFormLanguage.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormLanguage.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form__item user-form__managers\"},[_c('NcSelectUsers',{staticClass:\"user-form__select\",attrs:{\"model-value\":_vm.managerModel,\"input-label\":_vm.t('settings', 'Manager'),\"placeholder\":_vm.t('settings', 'Search for a manager…'),\"options\":_vm.managerOptions,\"loading\":_vm.loading},on:{\"update:modelValue\":_vm.onManagerChange,\"search\":_vm.searchUserManager}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormManager.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormManager.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserFormManager.vue?vue&type=template&id=41e8838f\"\nimport script from \"./UserFormManager.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormManager.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormQuota.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormQuota.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./UserFormQuota.vue?vue&type=template&id=d14c331a\"\nimport script from \"./UserFormQuota.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormQuota.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Quota'),\"placeholder\":_vm.t('settings', 'Set account quota'),\"options\":_vm.quotaOptions,\"clearable\":false,\"taggable\":true,\"create-option\":_vm.validateQuota},model:{value:(_vm.formData.quota),callback:function ($$v) {_vm.$set(_vm.formData, \"quota\", $$v)},expression:\"formData.quota\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=style&index=0&id=43846e48&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=style&index=0&id=43846e48&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormFields.vue?vue&type=template&id=43846e48&scoped=true\"\nimport script from \"./UserFormFields.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormFields.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormFields.vue?vue&type=style&index=0&id=43846e48&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"43846e48\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-fields\"},[(_vm.fieldConfig.username?.show && _vm.fieldConfig.username?.disabled)?_c('div',{staticClass:\"user-form-fields__item user-form-fields__static\",attrs:{\"data-test\":\"username\"}},[_c('span',{staticClass:\"user-form-fields__static-label\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.fieldConfig.username?.label)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"user-form-fields__static-value\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.formData.username)+\"\\n\\t\\t\")])]):(_vm.fieldConfig.username?.show)?_c('NcTextField',{ref:\"username\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"username\",\"label\":_vm.fieldConfig.username?.label,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\",\"required\":_vm.fieldConfig.username?.required},on:{\"input\":_vm.updateUsernameValidity,\"blur\":_vm.updateUsernameValidity},model:{value:(_vm.formData.username),callback:function ($$v) {_vm.$set(_vm.formData, \"username\", $$v)},expression:\"formData.username\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"displayName\",\"label\":_vm.t('settings', 'Display name'),\"error\":!!_vm.errors.displayName,\"helper-text\":_vm.errors.displayName,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},model:{value:(_vm.formData.displayName),callback:function ($$v) {_vm.$set(_vm.formData, \"displayName\", $$v)},expression:\"formData.displayName\"}}),_vm._v(\" \"),(_vm.fieldConfig.showPasswordEmailHint)?_c('span',{staticClass:\"user-form-fields__hint\",attrs:{\"id\":\"password-email-hint\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Either password or email is required'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.fieldConfig.password?.show !== false)?_c('NcPasswordField',{ref:\"password\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"password\",\"minlength\":_vm.minPasswordLength,\"maxlength\":469,\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.password?.label,\"error\":!!_vm.errors.password,\"helper-text\":_vm.errors.password,\"autocapitalize\":\"none\",\"autocomplete\":\"new-password\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.password?.required},model:{value:(_vm.formData.password),callback:function ($$v) {_vm.$set(_vm.formData, \"password\", $$v)},expression:\"formData.password\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"email\",\"type\":\"email\",\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.email?.label || _vm.t('settings', 'Email'),\"error\":!!_vm.errors.email,\"helper-text\":_vm.errors.email,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.email?.required},model:{value:(_vm.formData.email),callback:function ($$v) {_vm.$set(_vm.formData, \"email\", $$v)},expression:\"formData.email\"}}),_vm._v(\" \"),_c('UserFormGroups'),_vm._v(\" \"),_c('UserFormQuota',{attrs:{\"quota-options\":_vm.quotaOptions}}),_vm._v(\" \"),_c('UserFormLanguage'),_vm._v(\" \"),_c('UserFormManager'),_vm._v(\" \"),(Object.keys(_vm.unhandledErrors).length > 0)?_c('div',{staticClass:\"user-form-fields__error-summary\",attrs:{\"aria-live\":\"polite\",\"role\":\"status\"}},_vm._l((_vm.unhandledErrors),function(message,field){return _c('p',{key:field},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(field)+\": \"+_vm._s(message)+\"\\n\\t\\t\")])}),0):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=style&index=0&id=f0cc6e68&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=style&index=0&id=f0cc6e68&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditUserDialog.vue?vue&type=template&id=f0cc6e68&scoped=true\"\nimport script from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./EditUserDialog.vue?vue&type=style&index=0&id=f0cc6e68&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f0cc6e68\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',{staticClass:\"edit-dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'Edit account'),\"out-transition\":\"\"},on:{\"closing\":function($event){return _vm.$emit('closing')}},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"edit-dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"edit-user-form\",\"variant\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.saving}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.saving ? _vm.t('settings', 'Saving\\u00A0…') : _vm.t('settings', 'Save'))+\"\\n\\t\\t\")])]},proxy:true}])},[_c('form',{staticClass:\"edit-dialog__form\",attrs:{\"id\":\"edit-user-form\",\"data-test\":\"form\",\"disabled\":_vm.saving},on:{\"submit\":function($event){$event.preventDefault();return _vm.save.apply(null, arguments)}}},[_c('UserFormFields',{attrs:{\"field-config\":_vm.fieldConfig,\"errors\":_vm.fieldErrors,\"quota-options\":_vm.quotaOptions}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewUserDialog.vue?vue&type=template&id=32af3da3&scoped=true\"\nimport script from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32af3da3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',_vm._g({staticClass:\"dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'New account'),\"out-transition\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"new-user-form\",\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add new account'))+\"\\n\\t\\t\")])]},proxy:true}])},_vm.$listeners),[_c('form',{staticClass:\"dialog__form\",attrs:{\"id\":\"new-user-form\",\"data-test\":\"form\",\"disabled\":_vm.loading.all},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser.apply(null, arguments)}}},[_c('UserFormFields',{ref:\"fields\",attrs:{\"field-config\":_vm.fieldConfig,\"quota-options\":_vm.quotaOptions}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"footer\"},[_c('th',{attrs:{\"scope\":\"row\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--loading\"},[(_vm.loading)?_c('NcLoadingIcon',{attrs:{\"title\":_vm.t('settings', 'Loading accounts …'),\"size\":32}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--count footer__cell--multiline\"},[_c('span',{attrs:{\"aria-describedby\":\"user-count-desc\"}},[_vm._v(_vm._s(_vm.userCount))]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":\"user-count-desc\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Scroll to load more rows'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListFooter.vue?vue&type=template&id=4ff6ba29&scoped=true\"\nimport script from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ff6ba29\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"header\"},[_c('th',{staticClass:\"header__cell header__cell--avatar\",attrs:{\"data-cy-user-list-header-avatar\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Avatar'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--displayname\",attrs:{\"data-cy-user-list-header-displayname\":\"\",\"scope\":\"col\"}},[_c('strong',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Display name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--username\",attrs:{\"data-cy-user-list-header-username\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-email\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Email')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--groups\",attrs:{\"data-cy-user-list-header-groups\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Groups')))])]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-subadmins\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-quota\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Quota')))])]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-languages\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Language')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-storage-location\":\"\",\"scope\":\"col\"}},[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account backend'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"header__subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Storage location'))+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-first-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'First login')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-last-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Last login')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large header__cell--fill\",attrs:{\"data-cy-user-list-header-manager\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Manager')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--actions\",attrs:{\"data-cy-user-list-header-actions\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account actions'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListHeader.vue?vue&type=template&id=53c64244&scoped=true\"\nimport script from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53c64244\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"user-list__row\",attrs:{\"data-cy-user-row\":_vm.user.id}},[_c('td',{staticClass:\"row__cell row__cell--avatar\",attrs:{\"data-cy-user-list-cell-avatar\":\"\"}},[(_vm.isLoadingUser)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading account …'),\"size\":32}}):(_vm.visible)?_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"hide-status\":\"\",\"user\":_vm.user.id}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--displayname\",attrs:{\"data-cy-user-list-cell-displayname\":\"\"}},[(!_vm.isObfuscated)?_c('strong',{attrs:{\"title\":_vm.user.displayname?.length > 20 ? _vm.user.displayname : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.displayname)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--username\",attrs:{\"data-cy-user-list-cell-username\":\"\"}},[_c('span',{staticClass:\"row__subtitle\"},[_vm._v(_vm._s(_vm.user.id))])]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-email\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.user.email?.length > 20 ? _vm.user.email : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.email)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--groups row__cell--multiline\",attrs:{\"data-cy-user-list-cell-groups\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userGroupsLabels?.length > 40 ? _vm.userGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-subadmins\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userSubAdminGroupsLabels?.length > 40 ? _vm.userSubAdminGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userSubAdminGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-quota\":\"\"}},[(!_vm.isObfuscated)?[_c('span',{attrs:{\"id\":'quota-progress' + _vm.uniqueId}},[_vm._v(_vm._s(_vm.userQuota)+\" (\"+_vm._s(_vm.usedSpace)+\")\")]),_vm._v(\" \"),_c('NcProgressBar',{staticClass:\"row__progress\",class:{\n\t\t\t\t\t'row__progress--warn': _vm.usedQuota > 80,\n\t\t\t\t},attrs:{\"aria-labelledby\":'quota-progress' + _vm.uniqueId,\"value\":_vm.usedQuota}})]:_vm._e()],2),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-language\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userLanguage.name)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-storage-location\":\"\"}},[(!_vm.isObfuscated)?[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"row__subtitle\",attrs:{\"title\":_vm.user.storageLocation}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.user.storageLocation)+\"\\n\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-first-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userFirstLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"title\":_vm.userLastLoginTooltip,\"data-cy-user-list-cell-last-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userLastLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--fill\",attrs:{\"data-cy-user-list-cell-manager\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.manager)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--actions\",attrs:{\"data-cy-user-list-cell-actions\":\"\"}},[(_vm.visible && !_vm.isObfuscated && _vm.canEdit && !_vm.loading.all)?_c('UserRowActions',{attrs:{\"actions\":_vm.userActions,\"disabled\":_vm.isLoadingField,\"user\":_vm.user},on:{\"update:edit\":_vm.toggleEdit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { N as NcActionButton } from \"./chunks/NcActionButton-D7uypboC.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-B95wg_Q6.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-Cbg5yktN.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-Xepxb1Nk.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-B2bgbBHw.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-JnumflF4.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-BykT5Byh.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-BScPRxTJ.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-C4iIEWY3.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-BJnvmftc.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-DRaKry-f.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport { N as NcAppNavigationNew } from \"./chunks/NcAppNavigationNew-BOfIdgIu.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-KbbB-8vX.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-CI_e6Rva.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-BN3w-BCp.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-C7Oywy1u.mjs\";\nimport { N as NcAppSettingsSection } from \"./chunks/NcAppSettingsSection-CsGyNFSh.mjs\";\nimport { N as NcAppSettingsShortcutsSection } from \"./chunks/NcAppSettingsShortcutsSection-D3ylJW58.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-CEo2tgBa.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-CBE4tNYb.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAssistantButton } from \"./chunks/NcAssistantButton-CHiZT-vH.mjs\";\nimport NcAssistantContent from \"./Components/NcAssistantContent.mjs\";\nimport { N as NcAssistantIcon } from \"./chunks/NcAssistantIcon-mcLe7umL.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-BBqomFJ3.mjs\";\nimport { u } from \"./chunks/NcAvatar-BBqomFJ3.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-CP2UBH-9.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-BN1Qrbjc.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-OySgLqXi.mjs\";\nimport { N as NcButton } from \"./chunks/NcButton-D6Swkr1k.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-Ddl_QlRN.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-q7zkDwqG.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-DlAxFoRr.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-BgMXU5Dv.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-oxV8oMlX.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-oyS__D-B.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-uYQMYeJS.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-enXYuwj8.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-DmRqcm3W.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-Bqjj-wmb.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-ClkGGFdW.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport { N as NcFilePicker } from \"./chunks/NcFilePicker-B57HJpaE.mjs\";\nimport { N as NcFormBox } from \"./chunks/NcFormBox-Bd7m8ffs.mjs\";\nimport { N as NcFormBoxButton } from \"./chunks/NcFormBoxButton-CRL7kucw.mjs\";\nimport { N as NcFormBoxCopyButton } from \"./chunks/NcFormBoxCopyButton-BOENrJAS.mjs\";\nimport { N as NcFormBoxSwitch } from \"./chunks/NcFormBoxSwitch-bdRBjKGq.mjs\";\nimport { N as NcFormGroup } from \"./chunks/NcFormGroup-tW-MwPUj.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport { N as NcHeaderButton } from \"./chunks/NcHeaderButton-MEyDJghO.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-jHItu4LV.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-CxTT94_h.mjs\";\nimport { N as NcHotkey } from \"./chunks/NcHotkey-CpgacYSd.mjs\";\nimport { N as NcHotkeyList } from \"./chunks/NcHotkeyList-BYFbKo6_.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-BrzZ8Bne.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-Ciok4H4t.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-DdkIQyoP.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-CSeFP0Uz.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-BzTp7LfM.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-D7zYeXBH.mjs\";\nimport { N as NcRadioGroup } from \"./chunks/NcRadioGroup-D4kc6Jjr.mjs\";\nimport { N as NcRadioGroupButton } from \"./chunks/NcRadioGroupButton-B8a5TW2l.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-CFp3GPty.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-BCqXu_og.mjs\";\nimport { r } from \"./chunks/index-BCqXu_og.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-CG7oWfBl.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a, g, b, c, s, d } from \"./chunks/referencePickerModal-DnsOMAHk.mjs\";\nimport \"./chunks/createElementId-DhjFt1I9.mjs\";\nimport { N, h, c as c2, i, e, r as r2, f, a as a2 } from \"./chunks/customPickerElements-BGmuXU7x.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit-parents\";\nimport \"./chunks/logger-D3RVzcfQ.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-C3Nj11Wy.mjs\";\nimport { N as NcSelect } from \"./chunks/NcSelect-DrKzKPZL.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-BPhf3E7g.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-U7AIamCl.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-D8pmnLor.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-z2bZafO2.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-BwnkZzWL.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-DV-x6Ag7.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-CFvLzGNf.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-C82D8CSK.mjs\";\nimport { N as NcThemeProvider } from \"./chunks/NcThemeProvider-BA_zMjAf.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-D4xfdT9T.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-CuCNjhc8.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-DdPPN-cP.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { useFormatDateTime, useFormatRelativeTime, useFormatTime } from \"./Composables/useFormatDateTime.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e as e2, g as g2, s as s2 } from \"./chunks/emoji-Dtn2mDf7.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { usernameToColor } from \"./Functions/usernameToColor.mjs\";\nimport directive from \"./Directives/Focus.mjs\";\nimport directive$1 from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsSectionShortcuts: NcAppSettingsShortcutsSection,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsShortcutsSection as NcAppSettingsSectionShortcuts,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e2 as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b as getProvider,\n c as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n c2 as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n e as registerCustomPickerElement,\n r2 as registerWidget,\n f as renderCustomPickerElement,\n a2 as renderWidget,\n r as richEditor,\n s as searchProvider,\n s2 as setCurrentSkinTone,\n d as sortProviders,\n spawnDialog,\n useFormatDateTime,\n useFormatRelativeTime,\n useFormatTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcActions',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle account actions menu'),\"disabled\":_vm.disabled,\"inline\":1}},[_c('NcActionButton',{attrs:{\"data-cy-user-list-action-edit\":\"\",\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('update:edit', true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.SvgPencil,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Edit'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.enabledActions),function({ action, icon, text },index){return _c('NcActionButton',{key:index,attrs:{\"disabled\":_vm.disabled,\"aria-label\":text,\"icon\":icon,\"close-after-click\":\"\"},on:{\"click\":(event) => action(event, { ..._vm.user })},scopedSlots:_vm._u([(_vm.isSvg(icon))?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":icon,\"aria-hidden\":\"true\"}})]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(text)+\"\\n\\t\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=a72dfc28\"\nimport script from \"./UserRowActions.vue?vue&type=script&lang=ts\"\nexport * from \"./UserRowActions.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=78b3749c&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78b3749c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=65d37ac4&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65d37ac4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=ff26583a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=ff26583a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=ff26583a&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=ff26583a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ff26583a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.editingUser)?_c('EditUserDialog',{attrs:{\"user\":_vm.editingUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":function($event){_vm.editingUser = null}}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroupOutline,\"size\":64}})]},proxy:true}],null,false,1584467133)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t\tonEditUser: _vm.openEditDialog,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader')]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { getCurrentInstance, effectScope, shallowReactive, onUnmounted, computed, unref } from 'vue';\n\n// dev only warn if no current instance\n\nfunction throwNoCurrentInstance (method) {\n if (!getCurrentInstance()) {\n throw new Error(\n (\"[vue-router]: Missing current instance. \" + method + \"() must be called inside ","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrashCanOutline.vue?vue&type=template&id=3daa0f14\"\nimport script from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\nexport * from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon trash-can-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupListItem.vue?vue&type=template&id=30743619&scoped=true\"\nimport script from \"./GroupListItem.vue?vue&type=script&lang=js\"\nexport * from \"./GroupListItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30743619\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"model-value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Delete group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n return {\n id: group.id,\n title: group.name,\n usercount: group.usercount ?? 0,\n count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)),\n };\n}\n/**\n *\n * @param groups\n */\nexport function useFormatGroups(groups) {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter((group) => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map((group) => formatGroupMenu(group))\n // remove invalid\n .filter((group) => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\n\n/**\n * @param {string} url - The url to sanitize\n */\nfunction sanitize(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * action(context) {\n\t * return api.requireAdmin().then((response) => {\n\t * return api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {API failure});\n\t * }).catch((error) => {requireAdmin failure});\n\t * }\n\t * // vue\n\t * this.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t *\n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t *\n\t * e.g\n\t * api.requireAdmin().then((response) => {\n\t * api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {throw error;});\n\t * }).catch((error) => {requireAdmin OR API failure});\n\t *\n\t * @return {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn confirmPassword()\n\t},\n\tget(url, options) {\n\t\treturn axios.get(sanitize(url), options)\n\t},\n\tpost(url, data, options) {\n\t\treturn axios.post(sanitize(url), data, options)\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data)\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data)\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { params: data })\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport api from './api.js'\n\nconst state = {}\nconst mutations = {}\nconst getters = {}\nconst actions = {\n\t/**\n\t * Set application config in database\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @return {Promise}\n\t */\n\tsetAppConfig(context, { app, key, value }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('apps/provisioning_api/api/v1/config/apps/{app}/{key}', { app, key }), { value })\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst state = {\n\tserverData: loadState('settings', 'usersSettings', {}),\n}\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data\n\t},\n}\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData\n\t},\n}\nconst actions = {}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n */\nexport var GroupSorting;\n(function (GroupSorting) {\n GroupSorting[GroupSorting[\"UserCount\"] = 1] = \"UserCount\";\n GroupSorting[GroupSorting[\"GroupName\"] = 2] = \"GroupName\";\n})(GroupSorting || (GroupSorting = {}));\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCanonicalLocale, getLanguage } from '@nextcloud/l10n';\nexport const naturalCollator = Intl.Collator([getLanguage(), getCanonicalLocale()], {\n numeric: true,\n usage: 'sort',\n});\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { showError } from '@nextcloud/dialogs'\nimport { parseFileSize } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport { GroupSorting } from '../constants/GroupManagement.ts'\nimport logger from '../logger.ts'\nimport { naturalCollator } from '../utils/sorting.ts'\nimport api from './api.js'\n\nconst usersSettings = loadState('settings', 'usersSettings', {})\n\nconst defaults = {\n\t/**\n\t * @type {import('../views/user-types').IGroup}\n\t */\n\tgroup: {\n\t\tid: '',\n\t\tname: '',\n\t\tusercount: 0,\n\t\tdisabled: 0,\n\t\tcanAdd: true,\n\t\tcanRemove: true,\n\t},\n}\n\nconst state = {\n\tusers: [],\n\tgroups: [\n\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t...(usersSettings.systemGroups ?? []),\n\t],\n\torderBy: usersSettings.sortGroups ?? GroupSorting.UserCount,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tdisabledUsersOffset: 0,\n\tdisabledUsersLimit: 25,\n\tsearchQuery: '',\n\tuserCount: usersSettings.userCount ?? 0,\n\tshowConfig: {\n\t\tshowStoragePath: usersSettings.showConfig?.user_list_show_storage_path,\n\t\tshowUserBackend: usersSettings.showConfig?.user_list_show_user_backend,\n\t\tshowFirstLogin: usersSettings.showConfig?.user_list_show_first_login,\n\t\tshowLastLogin: usersSettings.showConfig?.user_list_show_last_login,\n\t\tshowNewUserForm: usersSettings.showConfig?.user_list_show_new_user_form,\n\t\tshowLanguages: usersSettings.showConfig?.user_list_show_languages,\n\t},\n}\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\tconst existingUsers = state.users.map(({ id }) => id)\n\t\tconst newUsers = Object.values(usersObj)\n\t\t\t.filter(({ id }) => !existingUsers.includes(id))\n\n\t\tconst users = state.users.concat(newUsers)\n\t\tstate.usersOffset += state.usersLimit\n\t\tstate.users = users\n\t},\n\tupdateDisabledUsers(state) {\n\t\tstate.disabledUsersOffset += state.disabledUsersLimit\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0\n\t},\n\t/**\n\t * @param {object} state store state\n\t * @param {import('../views/user-types.js').IGroup} newGroup new group\n\t */\n\taddGroup(state, newGroup) {\n\t\ttry {\n\t\t\tconst existingGroup = state.groups.find((group) => group.id === newGroup.id)\n\t\t\tif (existingGroup) {\n\t\t\t\t// merge in whatever is provided, e.g. to upgrade a stub group with full details\n\t\t\t\tObject.assign(existingGroup, newGroup)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// extend group to default values\n\t\t\tconst group = { ...defaults.group, ...newGroup }\n\t\t\tstate.groups.unshift(group)\n\t\t} catch (error) {\n\t\t\tlogger.error('Cannt create group', { error })\n\t\t}\n\t},\n\trenameGroup(state, { gid, displayName }) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tconst updatedGroup = state.groups[groupIndex]\n\t\t\tupdatedGroup.name = displayName\n\t\t\tstate.groups.splice(groupIndex, 1, updatedGroup)\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1)\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// increase count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount++\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.push(gid)\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// lower count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount--\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.push(gid)\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\tdeleteUser(state, userid) {\n\t\tconst userIndex = state.users.findIndex((user) => user.id === userid)\n\t\tthis.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' })\n\t\tstate.users.splice(userIndex, 1)\n\t},\n\taddUserData(state, response) {\n\t\tconst user = response.data.ocs.data\n\t\tstate.users.unshift(user)\n\t\tthis.commit('updateUserCounts', { user, actionType: 'create' })\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\tuser.enabled = enabled\n\t\tthis.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' })\n\t},\n\t// update active/disabled counts, groups counts\n\tupdateUserCounts(state, { user, actionType }) {\n\t\t// 0 is a special value\n\t\tif (state.userCount === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst recentGroup = state.groups.find((group) => group.id === '__nc_internal_recent')\n\t\tconst disabledGroup = state.groups.find((group) => group.id === 'disabled')\n\t\tswitch (actionType) {\n\t\t\tcase 'enable':\n\t\t\tcase 'disable':\n\t\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\t\trecentGroup.usercount += user.enabled ? 1 : -1\n\t\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'create':\n\t\t\t\trecentGroup.usercount++\n\t\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount++ // increment group total count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'remove':\n\t\t\t\tif (user.enabled) {\n\t\t\t\t\trecentGroup.usercount--\n\t\t\t\t\tstate.userCount-- // decrement Active Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\tlogger.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tdisabledGroup.usercount-- // decrement Disabled Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.disabled-- // decrement group disabled count\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error(`Unknown action type in updateUserCounts: '${actionType}'`)\n\t\t\t// not throwing error to interrupt execution as this is not fatal\n\t\t}\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tconst humanValue = parseFileSize(value, true)\n\t\t\tstate.users.find((user) => user.id === userid)[key][key] = humanValue !== null ? humanValue : value\n\t\t} else {\n\t\t\tstate.users.find((user) => user.id === userid)[key] = value\n\t\t}\n\t},\n\n\t/**\n\t * Apply multiple updated fields to a user in the local store.\n\t *\n\t * @param {object} state Store state\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.data Updated user data from server\n\t */\n\teditUserMultiField(state, { userid, data }) {\n\t\tconst index = state.users.findIndex((user) => user.id === userid)\n\t\tif (index === -1) {\n\t\t\treturn\n\t\t}\n\n\t\t// Delegate group membership changes so sidebar usercount stays in sync.\n\t\tif (Array.isArray(data.groups)) {\n\t\t\tconst prevGids = state.users[index].groups ?? []\n\t\t\tfor (const gid of data.groups.filter((g) => !prevGids.includes(g))) {\n\t\t\t\tthis.commit('addUserGroup', { userid, gid })\n\t\t\t}\n\t\t\tfor (const gid of prevGids.filter((g) => !data.groups.includes(g))) {\n\t\t\t\tthis.commit('removeUserGroup', { userid, gid })\n\t\t\t}\n\t\t}\n\n\t\tstate.users.splice(index, 1, { ...state.users[index], ...data })\n\t},\n\n\t/**\n\t * Reset users list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetUsers(state) {\n\t\tstate.users = []\n\t\tstate.usersOffset = 0\n\t\tstate.disabledUsersOffset = 0\n\t},\n\n\t/**\n\t * Reset group list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetGroups(state) {\n\t\tstate.groups = [\n\t\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t\t...(usersSettings.systemGroups ?? []),\n\t\t]\n\t},\n\n\tsetSearchQuery(state, query) {\n\t\tstate.searchQuery = query\n\t},\n\n\tsetShowConfig(state, { key, value }) {\n\t\tstate.showConfig[key] = value\n\t},\n\n\tsetGroupSorting(state, sorting) {\n\t\tconst oldValue = state.orderBy\n\t\tstate.orderBy = sorting\n\n\t\t// Persist the value on the server\n\t\taxios.post(\n\t\t\tgenerateUrl('/settings/users/preferences/group.sortBy'),\n\t\t\t{\n\t\t\t\tvalue: String(sorting),\n\t\t\t},\n\t\t).catch((error) => {\n\t\t\tstate.orderBy = oldValue\n\t\t\tshowError(t('settings', 'Could not set group sorting'))\n\t\t\tlogger.error(error)\n\t\t})\n\t},\n}\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups\n\t},\n\tgetSearchQuery(state) {\n\t\treturn state.searchQuery\n\t},\n\tgetSubAdminGroups() {\n\t\treturn usersSettings.subAdminGroups ?? []\n\t},\n\n\tgetSortedGroups(state) {\n\t\tconst groups = [...state.groups]\n\t\tif (state.orderBy === GroupSorting.UserCount) {\n\t\t\treturn groups.sort((a, b) => {\n\t\t\t\tconst numA = a.usercount - a.disabled\n\t\t\t\tconst numB = b.usercount - b.disabled\n\t\t\t\treturn (numA < numB) ? 1 : (numB < numA ? -1 : naturalCollator.compare(a.name, b.name))\n\t\t\t})\n\t\t} else {\n\t\t\treturn groups.sort((a, b) => naturalCollator.compare(a.name, b.name))\n\t\t}\n\t},\n\tgetGroupSorting(state) {\n\t\treturn state.orderBy\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit\n\t},\n\tgetDisabledUsersOffset(state) {\n\t\treturn state.disabledUsersOffset\n\t},\n\tgetDisabledUsersLimit(state) {\n\t\treturn state.disabledUsersLimit\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount\n\t},\n\tgetShowConfig(state) {\n\t\treturn state.showConfig\n\t},\n}\n\nconst CancelToken = axios.CancelToken\nlet searchRequestCancelSource = null\n\n/**\n * Commit groups from a users response to the store.\n *\n * @param context - The store context\n * @param response - The response from the users API call\n */\nfunction commitGroupsFromUsersResponse(context, response) {\n\tconst groups = response.data.ocs.data.groups ?? []\n\tif (groups.length === 0) {\n\t\treturn\n\t}\n\n\t// The response only carries {id, displayname} (see AUserDataOCSController::findGroupsWithDisplayname),\n\t// so addGroup fills usercount/disabled/canAdd/canRemove with defaults. Trade-off: a group\n\t// only known through this path shows a wrong usercount until the sidebar loads full details.\n\tgroups.forEach((group) => {\n\t\tcontext.commit('addGroup', { id: group.id, name: group.displayname })\n\t})\n}\n\nconst actions = {\n\n\t/**\n\t * search users\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @return {Promise}\n\t */\n\tsearchUsers(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get user details\n\t *\n\t * @param {object} context store context\n\t * @param {string} userId user id\n\t * @return {Promise}\n\t */\n\tgetUser(context, userId) {\n\t\treturn api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @return {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tif (searchRequestCancelSource) {\n\t\t\tsearchRequestCancelSource.cancel('Operation canceled by another search request.')\n\t\t}\n\t\tsearchRequestCancelSource = CancelToken.source()\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tgroup = typeof group === 'string' ? group : ''\n\t\tif (group !== '') {\n\t\t\treturn api.get(generateOcsUrl('cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}', { group: encodeURIComponent(group), offset, limit, search }), {\n\t\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\t}\n\t\t\t\t\tcommitGroupsFromUsersResponse(context, response)\n\t\t\t\t\treturn usersCount\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }), {\n\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t}\n\t\t\t\tcommitGroupsFromUsersResponse(context, response)\n\t\t\t\treturn usersCount\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t}\n\t\t\t})\n\t},\n\n\t/**\n\t * Get recent users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search query\n\t * @return {Promise}\n\t */\n\tasync getRecentUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/recent?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\t/**\n\t * Get disabled users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param options.search\n\t * @return {Promise}\n\t */\n\tasync getDisabledUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\tcontext.commit('updateDisabledUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\tgetGroups(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tconst limitParam = limit === -1 ? '' : `&limit=${limit}`\n\t\treturn api.get(generateOcsUrl('cloud/groups?offset={offset}&search={search}', { offset, search }) + limitParam)\n\t\t\t.then((response) => {\n\t\t\t\tconst groups = response.data.ocs.data.groups ?? []\n\t\t\t\tif (groups.length > 0) {\n\t\t\t\t\tgroups.forEach(function(group) {\n\t\t\t\t\t\tcontext.commit('addGroup', { id: group, name: group })\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search -\n\t * @return {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.groupid -\n\t * @return {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(generateOcsUrl('cloud/users/{groupId}/details?offset={offset}&limit={limit}', { groupId: encodeURIComponent(groupid), offset, limit }))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tgetPasswordPolicyMinLength(context) {\n\t\tif (getCapabilities().password_policy && getCapabilities().password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', getCapabilities().password_policy.minLength)\n\t\t\treturn getCapabilities().password_policy.minLength\n\t\t}\n\t\treturn false\n\t},\n\n\t/**\n\t * Add group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('addGroup', { id: gid, name: gid })\n\t\t\t\t\treturn { gid, displayName: gid }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { gid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from adding the user to a group that doesn't exists\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Rename group\n\t *\n\t * @param {object} context store context\n\t * @param {string} groupid Group id\n\t * @param {string} displayName Group display name\n\t * @return {Promise}\n\t */\n\trenameGroup(context, { groupid, displayName }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('renameGroup', { gid: groupid, displayName })\n\t\t\t\t\treturn { groupid, displayName }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { groupid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from renaming the group\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Remove group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then(() => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t// let's throw one more time to prevent\n\t\t\t// the view from removing the user row on failure\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Add user to group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Mark all user devices for remote wipe\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tasync wipeUserDevices(context, userid) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\treturn await api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\treturn Promise.reject(new Error('Failed to wipe user devices'))\n\t\t}\n\t},\n\n\t/**\n\t * Delete a user\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tdeleteUser(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then(() => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context store context\n\t * @param {Function} context.commit -\n\t * @param {Function} context.dispatch -\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password\n\t * @param {string} options.displayName User display name\n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @param {string} options.language User language\n\t * @param {string} options.manager User manager\n\t * @return {Promise}\n\t */\n\taddUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })\n\t\t\t\t.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcommit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.get(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Enable or disable user\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @return {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tconst userStatus = enabled ? 'enable' : 'disable'\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then(() => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @return {Promise}\n\t */\n\tasync setUserData(context, { userid, key, value }) {\n\t\tconst allowedEmpty = ['email', 'displayname', 'manager']\n\t\tconst validKeys = ['email', 'language', 'quota', 'displayname', 'password', 'manager']\n\n\t\tif (!validKeys.includes(key)) {\n\t\t\tthrow new Error('Invalid request data')\n\t\t}\n\n\t\t// If value is empty and the key doesn't allow empty values, throw error\n\t\tif (value === '' && !allowedEmpty.includes(key)) {\n\t\t\tthrow new Error('Value cannot be empty for this field')\n\t\t}\n\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tawait api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })\n\t\t\treturn context.commit('setUserData', { userid, key, value })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Update multiple user fields atomically via the new bulk endpoint.\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.payload Changed fields to send\n\t * @return {Promise}\n\t */\n\tasync editUserMultiField(context, { userid, payload }) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tconst response = await api.patch(\n\t\t\t\tgenerateOcsUrl('cloud/users/{userid}', { userid }),\n\t\t\t\tpayload,\n\t\t\t)\n\t\t\tcontext.commit('editUserMultiField', { userid, data: response.data.ocs.data })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Send welcome mail\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tsendWelcomeMail(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(() => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\t/**\n\t * Migrate local storage keys to database\n\t *\n\t * @param {object} context store context\n\t * @param context.commit\n\t */\n\tmigrateLocalStorage({ commit }) {\n\t\tconst preferences = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\n\t\tfor (const [key, dbKey] of Object.entries(preferences)) {\n\t\t\tconst localKey = `account_settings__${key}`\n\t\t\tconst localValue = window.localStorage.getItem(localKey)\n\t\t\tif (localValue === null) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst value = localValue === 'true'\n\t\t\tcommit('setShowConfig', { key, value })\n\n\t\t\taxios.post(generateUrl(`/settings/users/preferences/${dbKey}`), {\n\t\t\t\tvalue: value ? 'true' : 'false',\n\t\t\t}).then(() => {\n\t\t\t\twindow.localStorage.removeItem(localKey)\n\t\t\t}).catch((error) => {\n\t\t\t\tlogger.error(`Failed to migrate preference ${key}`, { error })\n\t\t\t})\n\t\t}\n\t},\n\n\t/**\n\t * Set show config\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.key Key to set\n\t * @param {boolean} options.value Value to set\n\t */\n\tsetShowConfig(context, { key, value }) {\n\t\tcontext.commit('setShowConfig', { key, value })\n\t\tconst keyMap = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\t\taxios.post(generateUrl(`settings/users/preferences/${keyMap[key]}`), { value: value ? 'true' : 'false' })\n\t\t\t.catch((error) => logger.error(`Could not update ${key} preference`, { error }))\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tgetters,\n\tactions,\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { Store } from 'vuex'\nimport logger from '../logger.js'\nimport oc from './oc.js'\nimport settings from './users-settings.js'\nimport users from './users.js'\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\ttry {\n\t\t\tconst message = error.error.response.data.ocs.meta.message\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '
' + message, { isHTML: true })\n\t\t} catch {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tlogger.error('An error occurred during the request.', { state, error })\n\t},\n}\n\nlet store = null\n\n/**\n *\n */\nexport function useStore() {\n\tif (store === null) {\n\t\tstore = new Store({\n\t\t\tmodules: {\n\t\t\t\tusers,\n\t\t\t\tsettings,\n\t\t\t\toc,\n\t\t\t},\n\t\t\tstrict: !PRODUCTION,\n\t\t\tmutations,\n\t\t})\n\t}\n\treturn store\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-label\":_setup.t('settings', 'Groups'),\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_c(_setup.NcAppNavigationCaption,{attrs:{\"name\":_setup.t('settings', 'Groups'),\"disabled\":_setup.loadingAddGroup,\"aria-label\":_setup.loadingAddGroup ? _setup.t('settings', 'Creating group…') : _setup.t('settings', 'Create group'),\"force-menu\":\"\",\"open\":_setup.isAddGroupOpen},on:{\"update:open\":function($event){_setup.isAddGroupOpen=$event}},scopedSlots:_vm._u([(_setup.isAdminOrDelegatedAdmin)?{key:\"actionsTriggerIcon\",fn:function(){return [(_setup.loadingAddGroup)?_c(_setup.NcLoadingIcon):_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}:null,(_setup.isAdminOrDelegatedAdmin)?{key:\"actions\",fn:function(){return [_c(_setup.NcActionText,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroupOutline}})]},proxy:true}],null,false,4071362859)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"submit\":_setup.createGroup},model:{value:(_setup.newGroupName),callback:function ($$v) {_setup.newGroupName=$$v},expression:\"newGroupName\"}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_vm._l((_setup.filteredGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=694956cc\"\nimport script from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.isModalOpen,\"show-navigation\":true,\"name\":_vm.t('settings', 'Account management settings')},on:{\"update:open\":function($event){_vm.isModalOpen=$event}}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"visibility-settings\",\"name\":_vm.t('settings', 'Visibility')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLanguages\"},model:{value:(_vm.showLanguages),callback:function ($$v) {_vm.showLanguages=$$v},expression:\"showLanguages\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show language'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showUserBackend\"},model:{value:(_vm.showUserBackend),callback:function ($$v) {_vm.showUserBackend=$$v},expression:\"showUserBackend\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show account backend'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showStoragePath\"},model:{value:(_vm.showStoragePath),callback:function ($$v) {_vm.showStoragePath=$$v},expression:\"showStoragePath\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show storage path'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showFirstLogin\"},model:{value:(_vm.showFirstLogin),callback:function ($$v) {_vm.showFirstLogin=$$v},expression:\"showFirstLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show first login'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLastLogin\"},model:{value:(_vm.showLastLogin),callback:function ($$v) {_vm.showLastLogin=$$v},expression:\"showLastLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show last login'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"groups-sorting\",\"name\":_vm.t('settings', 'Sorting')}},[(_vm.isGroupSortingEnforced)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('settings', 'Group list sorting')))]),_vm._v(\" \"),_c('NcNoteCard',{staticClass:\"dialog__note\",attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By member count'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By name'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"email-settings\",\"name\":_vm.t('settings', 'Send email')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"sendWelcomeMail\",\"disabled\":_vm.loadingSendMail},model:{value:(_vm.sendWelcomeMail),callback:function ($$v) {_vm.sendWelcomeMail=$$v},expression:\"sendWelcomeMail\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Send welcome email to new accounts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"default-settings\",\"name\":_vm.t('settings', 'Defaults')}},[_c('NcSelect',{attrs:{\"clearable\":false,\"create-option\":_vm.validateQuota,\"filter-by\":_vm.filterQuotas,\"input-label\":_vm.t('settings', 'Default quota'),\"options\":_vm.quotaOptions,\"placement\":\"top\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"taggable\":\"\"},on:{\"option:selected\":_vm.setDefaultQuota},model:{value:(_vm.defaultQuota),callback:function ($$v) {_vm.defaultQuota=$$v},expression:\"defaultQuota\"}})],1),_vm._v(\" \"),_c('NcAppSettingsShortcutsSection',[_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Search')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Focus search'),\"hotkey\":\"Control F\"}})],1),_vm._v(\" \"),_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Help')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Show those shortcuts'),\"hotkey\":\"?\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserSettingsDialog.vue?vue&type=template&id=649c1de8&scoped=true\"\nimport script from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"649c1de8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCogOutline}})]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"account-management__settings-toggle-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings', 'New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationSearch,{ref:\"searchField\",attrs:{\"label\":_setup.t('settings', 'Search accounts and groups…')},model:{value:(_setup.searchInput),callback:function ($$v) {_setup.searchInput=$$v},expression:\"searchInput\"}}),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,3779933833)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOffOutline}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=1fd1d021&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=1fd1d021&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagementNavigation.vue?vue&type=template&id=1fd1d021&scoped=true\"\nimport script from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UserManagementNavigation.vue?vue&type=style&index=0&id=1fd1d021&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1fd1d021\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=7690bc0a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=7690bc0a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=7690bc0a&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=7690bc0a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7690bc0a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcContent',{attrs:{\"app-name\":\"settings\"}},[_c('UserManagementNavigation'),_vm._v(\" \"),_c('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading}},[_c('UserList',{attrs:{\"selected-group\":_vm.selectedGroupDecoded,\"external-actions\":_vm.externalActions}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport routes from './routes.ts';\nVue.use(Router);\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl(''),\n linkActiveClass: 'active',\n routes,\n});\nexport default router;\n","/*\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst routes = [\n {\n name: 'users',\n path: '/:index(index.php/)?settings/users',\n props: true,\n children: [\n {\n path: ':selectedGroup',\n name: 'group',\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { n, t } from '@nextcloud/l10n';\nimport { addPasswordConfirmationInterceptors } from '@nextcloud/password-confirmation';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport VTooltipPlugin from 'v-tooltip';\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport { sync } from 'vuex-router-sync';\nimport UserManagement from './views/UserManagement.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\naddPasswordConfirmationInterceptors(axios);\n// CSP config for webpack dynamic chunk loading\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\nconst store = useStore();\nsync(store, router);\nconst pinia = createPinia();\n// Migrate legacy local storage settings to the database\nstore.dispatch('migrateLocalStorage');\nconst App = Vue.extend(UserManagement);\nconst app = new App({\n router,\n store,\n pinia,\n});\napp.$mount('#content');\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.modal__header[data-v-30743619]{margin:0}.modal__content[data-v-30743619]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-30743619]{display:flex;width:100%;justify-content:space-between}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/GroupListItem.vue\"],\"names\":[],\"mappings\":\"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.modal {\\n\\t&__header {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 20px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__button-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tjustify-content: space-between;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.empty[data-v-ff26583a] .icon-vue{width:64px;height:64px}.empty[data-v-ff26583a] .icon-vue svg{max-width:64px;max-height:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/UserList.vue\"],\"names\":[],\"mappings\":\"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n@use './Users/shared/styles.scss' as *;\\n\\n.empty {\\n\\t:deep {\\n\\t\\t.icon-vue {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tmax-width: 64px;\\n\\t\\t\\t\\tmax-height: 64px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.edit-dialog[data-v-f0cc6e68] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/EditUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+CACC,4DAAA\",\"sourcesContent\":[\"\\n.edit-dialog {\\n\\t:deep(.dialog__actions) {\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog[data-v-32af3da3] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/NewUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,0CACC,4DAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t:deep(.dialog__actions) {\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-form-fields[data-v-43846e48]{display:flex;flex-direction:column;align-items:center;gap:calc(var(--default-grid-baseline, 4px)*2) 0}.user-form-fields__item[data-v-43846e48]{width:100%}.user-form-fields__item[data-v-43846e48]:not(:focus):not(:active){border-color:var(--color-border-dark)}.user-form-fields__static[data-v-43846e48]{display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area, 44px);padding:var(--border-width-input-focused, 2px);padding-inline:calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));margin-left:18px}.user-form-fields__static-label[data-v-43846e48]{font-size:var(--font-size-small, 13px);font-weight:500;line-height:1.5;color:var(--color-text-maxcontrast)}.user-form-fields__static-value[data-v-43846e48]{font-size:var(--default-font-size, 14px);line-height:1.5;color:var(--color-main-text)}.user-form-fields__hint[data-v-43846e48]{color:var(--color-text-maxcontrast);margin-block-start:calc(var(--default-grid-baseline, 4px)*2);align-self:flex-start}.user-form-fields[data-v-43846e48] .user-form__item{width:100%}.user-form-fields[data-v-43846e48] .user-form__select{width:100%}.user-form-fields__error-summary[data-v-43846e48]{width:100%;margin-block-start:calc(var(--default-grid-baseline, 4px)*2);color:var(--color-error);font-size:var(--default-font-size, 14px)}.user-form-fields__error-summary p[data-v-43846e48]{margin-block:calc(var(--default-grid-baseline, 4px)/2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserFormFields.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,+CAAA,CAEA,yCACC,UAAA,CAEA,kEACC,qCAAA,CAIF,2CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,8CAAA,CACA,8CAAA,CACA,+FAAA,CAIA,gBAAA,CAEA,iDACC,sCAAA,CACA,eAAA,CACA,eAAA,CACA,mCAAA,CAGD,iDACC,wCAAA,CACA,eAAA,CACA,4BAAA,CAIF,yCACC,mCAAA,CACA,4DAAA,CACA,qBAAA,CAID,oDACC,UAAA,CAGD,sDACC,UAAA,CAGD,kDACC,UAAA,CACA,4DAAA,CACA,wBAAA,CACA,wCAAA,CAEA,oDACC,sDAAA\",\"sourcesContent\":[\"\\n.user-form-fields {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n\\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\\n\\n\\t&__item {\\n\\t\\twidth: 100%;\\n\\n\\t\\t&:not(:focus):not(:active) {\\n\\t\\t\\tborder-color: var(--color-border-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__static {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tmin-height: var(--default-clickable-area, 44px);\\n\\t\\tpadding: var(--border-width-input-focused, 2px);\\n\\t\\tpadding-inline: calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));\\n\\n\\t\\t// Manually align static value with inputs below until we have a static field in component lib.\\n\\t\\t// See: https://github.com/nextcloud/server/issues/53862#issuecomment-4212613996\\n\\t\\tmargin-left: 18px;\\n\\n\\t\\t&-label {\\n\\t\\t\\tfont-size: var(--font-size-small, 13px);\\n\\t\\t\\tfont-weight: 500;\\n\\t\\t\\tline-height: 1.5;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t&-value {\\n\\t\\t\\tfont-size: var(--default-font-size, 14px);\\n\\t\\t\\tline-height: 1.5;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n\\n\\t&__hint {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\talign-self: flex-start;\\n\\t}\\n\\n\\t// Reach into sub-component root elements to apply consistent sizing\\n\\t:deep(.user-form__item) {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t:deep(.user-form__select) {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__error-summary {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\tcolor: var(--color-error);\\n\\t\\tfont-size: var(--default-font-size, 14px);\\n\\n\\t\\tp {\\n\\t\\t\\tmargin-block: calc(var(--default-grid-baseline, 4px) / 2);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-form-groups[data-v-4041cacf]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px)*2) 0;width:100%}.user-form__item[data-v-4041cacf]{width:100%}.user-form__select[data-v-4041cacf]{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserFormGroups.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,YAAA,CACA,qBAAA,CACA,+CAAA,CACA,UAAA,CAGD,kCACC,UAAA,CAGD,oCACC,UAAA\",\"sourcesContent\":[\"\\n.user-form-groups {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\\n\\twidth: 100%;\\n}\\n\\n.user-form__item {\\n\\twidth: 100%;\\n}\\n\\n.user-form__select {\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.footer[data-v-4ff6ba29]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-4ff6ba29]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-4ff6ba29],.footer__cell span[data-v-4ff6ba29],.footer__cell label[data-v-4ff6ba29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-4ff6ba29],.footer__cell--displayname[data-v-4ff6ba29]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-4ff6ba29]{inset-inline-start:0}.footer__cell--displayname[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-4ff6ba29]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-4ff6ba29]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-4ff6ba29]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-4ff6ba29]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--groups[data-v-4ff6ba29]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.footer__cell--obfuscated[data-v-4ff6ba29]{min-width:400px;width:400px}.footer__cell--fill[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-4ff6ba29]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-4ff6ba29]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-4ff6ba29]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-4ff6ba29]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListFooter.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDzGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.footer {\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tposition: sticky;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&--loading {\\n\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t&--count {\\n\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\tmin-width: var(--cell-width);\\n\\t\\t\\twidth: var(--cell-width);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.header[data-v-53c64244]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-53c64244]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-53c64244],.header__cell span[data-v-53c64244],.header__cell label[data-v-53c64244]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-53c64244],.header__cell--displayname[data-v-53c64244]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-53c64244]{inset-inline-start:0}.header__cell--displayname[data-v-53c64244]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-53c64244]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-53c64244]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-53c64244]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-53c64244]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-53c64244]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--groups[data-v-53c64244]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.header__cell--obfuscated[data-v-53c64244]{min-width:400px;width:400px}.header__cell--fill[data-v-53c64244]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-53c64244]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-53c64244]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListHeader.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.header {\\n\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list__row[data-v-78b3749c]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-78b3749c]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-78b3749c]:not(.row__cell--actions){background-color:var(--color-background-hover)}.row__cell[data-v-78b3749c]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-78b3749c],.row__cell span[data-v-78b3749c],.row__cell label[data-v-78b3749c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-78b3749c],.row__cell--displayname[data-v-78b3749c]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-78b3749c]{inset-inline-start:0}.row__cell--displayname[data-v-78b3749c]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-78b3749c]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-78b3749c]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-78b3749c]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-78b3749c]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-78b3749c]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--groups[data-v-78b3749c]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.row__cell--obfuscated[data-v-78b3749c]{min-width:400px;width:400px}.row__cell--fill[data-v-78b3749c]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-78b3749c]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-78b3749c]{color:var(--color-text-maxcontrast)}.row__cell[data-v-78b3749c]{border-bottom:1px solid var(--color-border)}.row__progress[data-v-78b3749c]{margin-top:4px}.row__progress--warn[data-v-78b3749c]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-78b3749c]::-webkit-progress-value{background:var(--color-warning) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserRow.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CCKF,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CD9FD,4BACC,2CAAA,CAGD,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.user-list__row {\\n\\t@include styles.row;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\n\\t\\t.row__cell:not(.row__cell--actions) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n}\\n\\n.row {\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&__progress {\\n\\t\\tmargin-top: 4px;\\n\\n\\t\\t&--warn {\\n\\t\\t\\t&::-moz-progress-bar {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t\\t&::-webkit-progress-value {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog__note[data-v-649c1de8]{font-weight:normal}fieldset[data-v-649c1de8]{font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__note {\\n\\t\\tfont-weight: normal;\\n\\t}\\n}\\n\\nfieldset {\\n\\tfont-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list[data-v-65d37ac4]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-width-groups: 380px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-65d37ac4],.user-list__footer[data-v-65d37ac4]{position:sticky;display:block}.user-list__header[data-v-65d37ac4]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-65d37ac4]{inset-inline-start:0}.user-list__body[data-v-65d37ac4]{display:flex;flex-direction:column;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/VirtualList.vue\"],\"names\":[],\"mappings\":\"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,0BAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.user-list {\\n\\t--avatar-cell-width: 48px;\\n\\t--cell-padding: 7px;\\n\\t--cell-width: 200px;\\n\\t--cell-width-large: 300px;\\n\\t--cell-width-groups: 380px;\\n\\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\\n\\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\\n\\n\\t// Necessary for virtual scroll optimized rendering\\n\\tdisplay: block;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: sticky;\\n\\t\\t// Fix sticky positioning in Firefox\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t&__header {\\n\\t\\ttop: 0;\\n\\t\\tz-index: calc(var(--sticky-column-z-index) + 1);\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tinset-inline-start: 0;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-content[data-v-7690bc0a]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagement.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.account-management__navigation[data-v-1fd1d021] .app-navigation__body{will-change:scroll-position}.account-management__search[data-v-1fd1d021]{padding-block:var(--default-grid-baseline, 4px);padding-inline:var(--app-navigation-padding, 8px)}.account-management__system-list[data-v-1fd1d021]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-1fd1d021]{height:100% !important}.account-management__settings-toggle[data-v-1fd1d021]{margin-bottom:var(--body-container-margin)}.account-management__settings-toggle-text[data-v-1fd1d021]{font-weight:500}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagementNavigation.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,2BAAA,CAGF,6CACC,+CAAA,CACA,iDAAA,CAGD,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,0CAAA,CAEA,2DACC,eAAA\",\"sourcesContent\":[\"\\n.account-management {\\n\\t&__navigation {\\n\\t\\t:deep(.app-navigation__body) {\\n\\t\\t\\twill-change: scroll-position;\\n\\t\\t}\\n\\t}\\n\\t&__search {\\n\\t\\tpadding-block: var(--default-grid-baseline, 4px);\\n\\t\\tpadding-inline: var(--app-navigation-padding, 8px);\\n\\t}\\n\\n\\t&__system-list {\\n\\t\\theight: auto !important;\\n\\t\\toverflow: visible !important;\\n\\t}\\n\\n\\t&__group-list {\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t&__settings-toggle {\\n\\t\\tmargin-bottom: var(--body-container-margin);\\n\\n\\t\\t&-text {\\n\\t\\t\\tfont-weight: 500;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority ||= 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tlet notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn, priority] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => (chunkId + \"-\" + chunkId + \".js?v=\" + {\"4005\":\"aee79e7f1049b5e8188f\",\"4017\":\"d1523b8db423fbe47986\",\"5236\":\"ffeb871fa5beda99d3b3\",\"5862\":\"37458a2557f9c8bf7cee\",\"6798\":\"38b417c535f358052c1a\",\"7471\":\"34493087eb2469ae6e25\",\"7859\":\"0aa7564896cee7ea552c\",\"8259\":\"e914ef6a65a38374620a\",\"8374\":\"e925f5901b71aeaa37db\",\"8689\":\"5fcce4026be999b251c3\"}[chunkId] + \"\");","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","const inProgress = {};\nconst dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tlet script, needAttach;\n\tif(key !== undefined) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tconst s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tconst onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tconst doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode?.removeChild(script);\n\t\tdoneFns?.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tconst timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 516;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","let scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nconst document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript?.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tlet i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^https?:/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:|[?#].*$/g, \"\").replace(/\\/[^/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t516: 0,\n\t7471: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tlet installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tconst promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tconst error = new Error();\n\t\t\t\t\tconst loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tconst errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tconst realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\terror.event = event;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(__webpack_require__.p + __webpack_require__.u(chunkId), loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(30484)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","i","e","toPrimitive","call","r","TypeError","String","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","_defineProperties","length","key","isBrowser","window","document","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","toString","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","obj","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","_ref","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","console","warn","enabled","update","this","isDestroyed","instance","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","removeEventListeners","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","shift","basePlacement","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","offset","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","parseOffset","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Defaults","Popper","_this","classCallCheck","requestAnimationFrame","bind","jquery","Utils","globalThis","PopperUtils","vue_resize_esm_isIE","initCompat","init","ua","msie","substring","rv","edge","getInternetExplorerVersion","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","__vue_script__","emitOnMount","type","Boolean","default","ignoreWidth","ignoreHeight","mounted","$nextTick","_w","$el","_h","emitSize","object","createElement","_resizeObject","onload","addResizeHandlers","appendChild","beforeDestroy","removeResizeHandlers","methods","compareAndNotify","$emit","contentDocument","__vue_render__","$createElement","_self","_c","staticClass","attrs","tabindex","_withStripped","__vue_component__","vue_resize_esm_plugin","install","Vue","component","GlobalVue","use","SVGAnimatedString","convertToArray","addClasses","classes","classList","newClasses","className","baseVal","newClass","SVGElement","join","removeClasses","splice","supportsPassive","opts","get","ownKeys$2","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread$2","getOwnPropertyDescriptors","DEFAULT_OPTIONS","container","delay","title","trigger","openTooltips","Tooltip","_reference","_options","_classCallCheck","evt","relatedreference","toElement","relatedTarget","_tooltipNode","evt2","relatedreference2","_scheduleHide","show","_isOpen","_init","_show","_hide","_dispose","_classes","content","_setContent","classesUpdated","directive","defaultClass","isEqual","setClasses","getOptions","needPopperUpdate","needRestart","isOpen","dispose","popperInstance","events","_isDisposed","_enableDocumentTouch","_setEventListeners","$_originalTitle","getAttribute","_this2","tooltipGenerator","innerHTML","tooltipNode","childNodes","id","ariaId","random","substr","autoHide","_this3","asyncContent","_applyContent","_this4","reject","allowHtml","rootNode","titleNode","innerSelector","firstChild","loadingClass","loadingContent","asyncResult","catch","innerText","clearTimeout","_disposeTimer","updateClasses","_ensureShown","_this5","display","_create","_findContainer","_append","popperOptions","arrowSelector","_this6","_noLongerOpen","disposeTime","disposeTimeout","_removeTooltipNode","_this7","_events","func","_this8","directEvents","oppositeEvents","hideOnTargetClick","usedByTooltip","_scheduleShow","_this9","computedDelay","_scheduleTimer","_this10","_setTooltipNodeEvent","ownKeys$1","_objectSpread$1","_onDocumentTouch","capture","positions","defaultOptions","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultOpenClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","pos","getContent","destroyTooltip","_tooltip","_tooltipOldShow","_tooltipTargetClasses","oldValue","tooltip","setContent","setOptions","_vueEl","targetClasses","createTooltip","unbind","addListeners","onClick","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","currentTarget","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","all","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","abs","screenY","screenX","vclosepopover","ownKeys","_objectSpread","getDefault","isIOS","MSStream","openPopovers","Element","components","ResizeObserver","open","disabled","Number","popoverClass","popoverBaseClass","popoverInnerClass","popoverWrapperClass","popoverArrowClass","handleResize","openGroup","openClass","computed","cssClass","popoverId","watch","val","oldVal","popoverNode","$refs","$_findContainer","$_removeEventListeners","$_addEventListeners","$_updatePopper","handler","deep","created","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","deactivated","skipDelay","_ref2$force","force","$_scheduleShow","$_beingShowed","_ref3","$_scheduleHide","$_show","$_disposeTimer","hidden","$_getOffset","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref4","cb","$_restartPopper","$_handleGlobalClose","$_handleResize","handleGlobalClose","_loop","_vm","class","ref","staticStyle","_t","_v","visibility","on","keyup","$event","_k","keyCode","notify","_e","insertAt","head","getElementsByTagName","insertBefore","styleSheet","cssText","createTextNode","styleInject","plugin","installed","finalOptions","merge","global","v_tooltip_esm","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","deepCopy","cache","f","hit","c","original","copy","isArray","forEachValue","isObject","Module","rawModule","runtime","_children","create","_rawModule","rawState","prototypeAccessors","namespaced","addChild","module","getChild","hasChild","actions","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","vuex_esm_update","path","targetModule","newModule","modules","root","getNamespace","namespace","this$1","rawChildModule","unregister","child","isRegistered","Store","vuex_esm_install","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","store","dispatch","commit","payload","installModule","resetStoreVM","devtools","config","_devtoolHook","emit","targetState","replaceState","subscribe","mutation","prepend","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","subs","unshift","resetStore","hot","oldVm","wrappedGetters","arg","partial","silent","$$state","$watch","_data","sync","enableStrictMode","_withCommit","nextTick","$destroy","rootState","isRoot","parentState","getNestedState","moduleName","set","local","noNamespace","_type","_payload","args","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","registerMutation","res","rootGetters","err","registerAction","getter","rawGetter","registerGetter","_Vue","mixin","vuexInit","$store","applyMixin","entry","sub","before","after","error","registerModule","preserveState","unregisterModule","delete","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","isValidMap","helper","startMessage","logger","message","collapsed","groupCollapsed","group","log","endMessage","groupEnd","getFormattedTime","time","Date","pad","getHours","getMinutes","getSeconds","getMilliseconds","num","maxLength","times","createNamespacedHelpers","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","prevState","nextState","formattedTime","formattedMutation","formattedAction","vuex_esm","getLoggerBuilder","setApp","detectUser","build","formatGroup","displayname","usercount","canAdd","canRemove","searchGroups","limit","controller","AbortController","CancelablePromise","async","onCancel","abort","axios","generateOcsUrl","signal","ocs","groups","Users_UserFormGroupsvue_type_script_lang_js","NcSelect","inject","creatingGroup","promise","settings","getServerData","availableGroups","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","availableSubAdminGroups","groupsLabel","query","toggleLoading","cancel","createGroup","gid","formData","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","UserFormGroupsvue_type_style_index_0_id_4041cacf_prod_lang_scss_scoped_true","A","locals","UserFormGroups","componentNormalizer","placeholder","label","multiple","taggable","required","isCreating","model","$$v","$set","expression","subadminGroups","unlimitedQuota","defaultQuota","resolveLanguage","user","serverLanguages","language","code","commonLanguages","otherLanguages","lang","Users_UserFormLanguagevue_type_script_lang_js","showConfig","getShowConfig","languages","languageFilterBy","option","toLocaleLowerCase","includes","UserFormLanguage","showLanguages","clearable","selectable","UserFormManagervue_type_script_lang_js","NcSelectUsers","possibleManagers","loading","searchTimeout","managerModel","m","manager","displayName","_managerModelCache","managerOptions","u","subname","email","beforeUnmount","onManagerChange","searchUserManager","fetchManagers","response","users","values","Users_UserFormManagervue_type_script_lang_js","UserFormManager","Users_UserFormQuotavue_type_script_lang_js","quotaOptions","validateQuota","quota","fallback","parsed","parseFileSize","formatFileSize","UserFormQuota","Users_UserFormFieldsvue_type_script_lang_js","NcPasswordField","NcTextField","fieldConfig","errors","minPasswordLength","getPasswordPolicyMinLength","unhandledErrors","handled","Set","fromEntries","entries","has","focusField","focus","UserFormFieldsvue_type_style_index_0_id_43846e48_prod_lang_scss_scoped_true_options","UserFormFieldsvue_type_style_index_0_id_43846e48_prod_lang_scss_scoped_true","UserFormFields","username","_s","autocapitalize","autocomplete","spellcheck","pattern","input","updateUsernameValidity","blur","showPasswordEmailHint","password","minlength","maxlength","role","_l","field","Users_EditUserDialogvue_type_script_lang_js","NcButton","NcDialog","provide","editedUser","emits","allGroups","getGroups","g","subadmin","q","userToFormData","initialData","structuredClone","saving","fieldErrors","canChangePassword","backendCapabilities","setPassword","save","initial","current","currentManagerId","currentGroupIds","initialGroupIds","JSON","stringify","currentSubadminIds","initialSubadminIds","diffPayload","confirmPassword","userid","showSuccess","showError","EditUserDialogvue_type_style_index_0_id_f0cc6e68_prod_lang_scss_scoped_true_options","EditUserDialogvue_type_style_index_0_id_f0cc6e68_prod_lang_scss_scoped_true","EditUserDialog_component","size","closing","scopedSlots","_u","form","variant","proxy","submit","preventDefault","EditUserDialog","Users_NewUserDialogvue_type_script_lang_js","newUser","usernameLabel","newUserGenerateUserID","newUserRequireEmail","fields","createUser","meta","statuscode","NewUserDialogvue_type_style_index_0_id_32af3da3_prod_lang_scss_scoped_true_options","NewUserDialogvue_type_style_index_0_id_32af3da3_prod_lang_scss_scoped_true","NewUserDialog_component","_g","$listeners","NewUserDialog","Users_UserListFootervue_type_script_lang_ts","extend","NcLoadingIcon","filteredUsers","userCount","l10n_dist","Tl","UserListFootervue_type_style_index_0_id_4ff6ba29_prod_lang_scss_scoped_true_options","UserListFootervue_type_style_index_0_id_4ff6ba29_prod_lang_scss_scoped_true","UserListFooter","_setupProxy","scope","Users_UserListHeadervue_type_script_lang_ts","UserListHeadervue_type_style_index_0_id_53c64244_prod_lang_scss_scoped_true_options","UserListHeadervue_type_style_index_0_id_53c64244_prod_lang_scss_scoped_true","UserListHeader","showUserBackend","showStoragePath","showFirstLogin","showLastLogin","NcActionButton_D7uypboC","N","NcActionButtonGroup_B95wg_Q6","NcActionCaption","NcActionCheckbox_Cbg5yktN","NcActionInput_Xepxb1Nk","NcActionLink","NcActionRadio_B2bgbBHw","NcActionRouter","NcActionSeparator","NcActionText","NcActionTextEditable_BykT5Byh","NcActions_JnumflF4","NcAppContent_BScPRxTJ","NcAppContentDetails","NcAppContentList","NcAppNavigation_C4iIEWY3","NcAppNavigationCaption_BJnvmftc","NcAppNavigationIconBullet","NcAppNavigationItem_DRaKry_f","NcAppNavigationList","NcAppNavigationNew_BOfIdgIu","NcAppNavigationNewItem_KbbB_8vX","NcAppNavigationSearch_CI_e6Rva","NcAppNavigationSettings_BN3w_BCp","NcAppNavigationSpacer","NcAppSettingsDialog_C7Oywy1u","NcAppSettingsSection_CsGyNFSh","NcAppSettingsShortcutsSection_D3ylJW58","NcAppSidebar_CEo2tgBa","NcAppSidebarHeader_CBE4tNYb","NcAppSidebarTab","NcAssistantButton_CHiZT_vH","NcAssistantContent","NcAssistantIcon_mcLe7umL","NcRichContenteditable_CG7oWfBl","NcAvatar_BBqomFJ3","NcBlurHash_CP2UBH_9","NcBreadcrumb_BN1Qrbjc","NcBreadcrumbs_OySgLqXi","NcButton_D6Swkr1k","NcCheckboxRadioSwitch_Ddl_QlRN","NcCollectionList_q7zkDwqG","NcColorPicker_DlAxFoRr","NcContent_BgMXU5Dv","NcCounterBubble_oxV8oMlX","NcDashboardWidget_oyS_D_B","NcDashboardWidgetItem_uYQMYeJS","NcDateTime_enXYuwj8","NcDateTimePicker","NcDateTimePickerNative","NcDialog_DmRqcm3W","NcDialogButton_Bqjj_wmb","NcEllipsisedOption","NcEmojiPicker_ClkGGFdW","NcEmptyContent","NcFilePicker_B57HJpaE","NcFormBox_Bd7m8ffs","NcFormBoxButton_CRL7kucw","NcFormBoxCopyButton_BOENrJAS","NcFormBoxSwitch_bdRBjKGq","NcFormGroup_tW_MwPUj","NcGuestContent","NcHeaderButton_MEyDJghO","NcHeaderMenu_jHItu4LV","index_CxTT94_h","NcHotkey_CpgacYSd","NcHotkeyList_BYFbKo6_","NcIconSvgWrapper_Bui9PhAS","NcInputField_BrzZ8Bne","NcListItem_Ciok4H4t","NcListItemIcon_DdkIQyoP","index_BCqXu_og","NcModal","NcNoteCard","NcPasswordField_CSeFP0Uz","NcPopover_BzTp7LfM","NcProgressBar_D7zYeXBH","NcRadioGroup_D4kc6Jjr","NcRadioGroupButton_B8a5TW2l","NcRelatedResourcesPanel_CFp3GPty","NcRichText_C3Nj11Wy","NcSavingIndicatorIcon_U7AIamCl","NcSelect_DrKzKPZL","NcSelectTags_D8pmnLor","NcSelectUsers_z2bZafO2","NcSettingsInputText_BwnkZzWL","NcSettingsSection_DV_x6Ag7","NcSettingsSelectGroup_CFvLzGNf","NcTextArea_C82D8CSK","NcTextField_BPhf3E7g","NcThemeProvider_BA_zMjAf","NcTimezonePicker_D4xfdT9T","NcUserBubble_CuCNjhc8","NcUserStatusIcon_DdPPN_cP","NcVNodes","toStringTag","Focus","Linkify","floating_vue_es","yw","Users_UserRowActionsvue_type_script_lang_ts","defineComponent","NcActionButton","NcActions","NcIconSvgWrapper","setup","SvgPencil","enabledActions","isSvg","UserRowActions_component","inline","click","svg","icon","text","UserRowActions","productName","OC","theme","UserRowvue_type_script_lang_js","NcAvatar","NcProgressBar","visible","externalActions","onEditUser","Function","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","rand","disable","wipe","isObfuscated","at","usedQuota","used","pow","userLanguage","userLang","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","Util","formatDate","userLastLogin","relativeModifiedDate","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","userGroupsLabels","userSubAdminGroupsLabels","usedSpace","canEdit","getCurrentUser","uid","userQuota","userActions","deleteUser","wipeUserDevices","enableDisableUser","sendWelcomeMail","toggleEdit","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","timeout","finally","Users_UserRowvue_type_script_lang_js","UserRowvue_type_style_index_0_id_78b3749c_prod_lang_scss_scoped_true_options","UserRowvue_type_style_index_0_id_78b3749c_prod_lang_scss_scoped_true","UserRow","backend","storageLocation","vElementVisibility","Users_VirtualListvue_type_script_lang_ts","dataComponent","dataKey","dataSources","itemHeight","extraProps","bufferItems","headerHeight","tableHeight","resizeObserver","startIndex","shownItems","ceil","renderedItems","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","paddingTop","paddingBottom","tfoot","thead","debug","onScroll","observe","disconnect","handleFooterVisibility","VirtualListvue_type_style_index_0_id_65d37ac4_prod_lang_scss_scoped_true_options","VirtualListvue_type_style_index_0_id_65d37ac4_prod_lang_scss_scoped_true","VirtualList","item","_b","tag","directives","rawName","freeze","components_UserListvue_type_script_lang_js","Fragment","frag_esm","F","selectedGroup","mdiAccountGroupOutline","mdi","dgQ","rowHeight","editingUser","searchQuery","getSearchQuery","getUsers","quotaPreset","acc","allowUnlimitedQuota","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","loadUsers","redirectIfDisabled","setNewUserDefaultGroup","Notification","showTemporary","initForm","openEditDialog","handleScrollEnd","closeDialog","resetForm","defaultLanguage","currentGroup","$router","UserListvue_type_style_index_0_id_ff26583a_prod_lang_scss_scoped_true_options","UserListvue_type_style_index_0_id_ff26583a_prod_lang_scss_scoped_true","UserList","showNewUserForm","useRoute","vue_runtime_esm","nI","_$route","route","uY","run","Gc","currentRoute","afterEach","to","vue_material_design_icons_TrashCanOutlinevue_type_script_lang_js","fillColor","TrashCanOutline","$attrs","fill","viewBox","d","components_GroupListItemvue_type_script_lang_js","AccountGroup","AccountGroupOutline","Delete","NcActionInput","NcAppNavigationItem","NcCounterBubble","Pencil","active","count","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","displayNameInput","groupid","removeGroup","GroupListItemvue_type_style_index_0_id_30743619_prod_lang_scss_scoped_true_options","GroupListItemvue_type_style_index_0_id_30743619_prod_lang_scss_scoped_true","GroupListItem","close","exact","params","formatGroupMenu","useFormatGroups","userGroups","adminGroup","disabledGroup","recentGroup","sanitize","url","api","requireAdmin","post","patch","put","oc","setAppConfig","app","serverData","loadState","setServerData","users_settings","users_settings_state","users_settings_mutations","GroupSorting","naturalCollator","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","usersSettings","defaults","systemGroups","orderBy","sortGroups","UserCount","user_list_show_storage_path","user_list_show_user_backend","user_list_show_first_login","user_list_show_last_login","user_list_show_new_user_form","user_list_show_languages","appendUsers","usersObj","existingUsers","newUsers","updateDisabledUsers","setPasswordPolicyMinLength","addGroup","newGroup","existingGroup","groupIndex","groupSearch","updatedGroup","addUserGroup","removeUserGroup","addUserSubAdmin","removeUserSubAdmin","userIndex","actionType","addUserData","updateUserCounts","userGroup","setUserData","humanValue","editUserMultiField","prevGids","resetUsers","resetGroups","setSearchQuery","setShowConfig","setGroupSorting","sorting","generateUrl","subAdminGroups","numA","numB","compare","getGroupSorting","getUserCount","CancelToken","searchRequestCancelSource","commitGroupsFromUsersResponse","users_state","users_mutations","users_getters","searchUsers","getUser","userId","cancelToken","token","getRecentUsers","getDisabledUsers","limitParam","getUsersFromList","getUsersFromGroup","groupId","getCapabilities","password_policy","minLength","Error","addUser","userStatus","migrateLocalStorage","preferences","dbKey","localKey","localValue","localStorage","getItem","removeItem","API_FAILURE","useStore","AppNavigationGroupListvue_type_script_setup_true_lang_ts","_defineComponent","__name","__props","router","onBeforeMount","loadGroups","selectedGroupDecoded","decodeURIComponent","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","filteredGroups","groupListItems","lastGroupListItem","findLast","listItem","isLastGroupVisible","useElementVisibility","__sfc","newGroupListItem","scrollIntoView","block","mdiPlus","biz","NcAppNavigationCaption","components_AppNavigationGroupListvue_type_script_setup_true_lang_ts","AppNavigationGroupList","_setup","refInFor","Users_UserSettingsDialogvue_type_script_lang_js","NcAppSettingsDialog","NcAppSettingsSection","NcAppSettingsShortcutsSection","NcCheckboxRadioSwitch","NcHotkey","NcHotkeyList","_","useHotKey","getElementById","stop","prevent","selectedQuota","loadingSendMail","groupSorting","GroupName","isGroupSortingEnforced","forceSortGroupByName","isModalOpen","status","computerFileSize","newUserSendEmail","filterQuotas","searchValue","replaceAll","validQuota","setDefaultQuota","UserSettingsDialogvue_type_style_index_0_id_649c1de8_prod_scoped_true_lang_scss_options","UserSettingsDialogvue_type_style_index_0_id_649c1de8_prod_scoped_true_lang_scss","UserSettingsDialog","hotkey","UserManagementNavigationvue_type_script_setup_true_lang_ts","searchField","searchInput","commitSearch","onBeforeUnmount","clear","inputElement","ctrl","isDialogOpen","showNewUserMenu","mdiAccountOffOutline","Zfz","mdiAccountOutline","EzL","mdiCogOutline","ED","mdiHistory","LP2","mdiShieldAccountOutline","J0H","NcAppNavigation","NcAppNavigationNew","NcAppNavigationSearch","views_UserManagementNavigationvue_type_script_setup_true_lang_ts","UserManagementNavigationvue_type_style_index_0_id_1fd1d021_prod_scoped_true_lang_scss_options","UserManagementNavigationvue_type_style_index_0_id_1fd1d021_prod_scoped_true_lang_scss","UserManagementNavigation_component","wide","UserManagementNavigation","views_UserManagementvue_type_script_lang_js","NcContent","NcAppContent","pageHeading","admin","$route","beforeMount","OCA","Settings","UserManagementvue_type_style_index_0_id_7690bc0a_prod_lang_scss_scoped_true_options","UserManagementvue_type_style_index_0_id_7690bc0a_prod_lang_scss_scoped_true","UserManagement","Router","src_router","mode","base","linkActiveClass","routes","addPasswordConfirmationInterceptors","__webpack_nonce__","getCSPNonce","PiniaVuePlugin","VTooltipPlugin","Vuex","pinia","createPinia","main_users_management_store","$mount","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","baseAssignValue","__webpack_require__","eq","exports","Stack","assignMergeValue","baseFor","baseMergeDeep","keysIn","safeGet","baseMerge","srcIndex","customizer","stack","srcValue","newValue","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArrayLikeObject","isBuffer","isPlainObject","isTypedArray","toPlainObject","mergeFunc","objValue","stacked","isCommon","isArr","isBuff","isTyped","baseRest","isIterateeCall","assigner","guard","isArrayLike","isObjectLike","baseIsEqual","other","createAssigner","copyObject","cloneRoute","from","clone","fullPath","O","ROUTE_CHANGED","transition","currentPath","isTimeTraveling","storeUnwatch","afterEachUnHook","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","deferred","chunkIds","notFulfilled","Infinity","fulfilled","j","every","__esModule","cw","mod","definition","binding","chunkId","promises","hasOwn","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","s","charset","nc","src","onScriptComplete","prev","onerror","doneFns","nmd","paths","dn","scriptUrl","importScripts","location","currentScript","tagName","p","baseURI","self","href","installedChunks","installedChunkData","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/tests/playwright/e2e/login/login.spec.ts b/tests/playwright/e2e/login/login.spec.ts index 6101e80f2e009..be003950a907f 100644 --- a/tests/playwright/e2e/login/login.spec.ts +++ b/tests/playwright/e2e/login/login.spec.ts @@ -45,24 +45,26 @@ test.describe('Login', () => { await expect(page).toHaveURL(/apps\/dashboard(\/|$)/) }) - test('wrong password shows error and marks password field invalid', async ({ page, user }) => { + test('wrong password shows error and marks both fields invalid', async ({ page, user }) => { const loginPage = new LoginPage(page) await loginPage.goto() await loginPage.login(user.userId, `${user.password}--wrong`) await expect(page).toHaveURL(/\/login/) await expect(page.getByText(/Wrong login or password/i)).toBeVisible() - await expect(loginPage.passwordInput().and(page.locator(':invalid'))).toHaveCount(1) + await expect(page.locator('.input-field--error').filter({ has: loginPage.usernameInput() })).toBeVisible() + await expect(page.locator('.input-field--error').filter({ has: loginPage.passwordInput() })).toBeVisible() }) - test('wrong account name shows error and marks password field invalid', async ({ page, user }) => { + test('wrong account name shows error and marks both fields invalid', async ({ page, user }) => { const loginPage = new LoginPage(page) await loginPage.goto() await loginPage.login(`${user.userId}--wrong`, user.password) await expect(page).toHaveURL(/\/login/) await expect(page.getByText(/Wrong login or password/i)).toBeVisible() - await expect(loginPage.passwordInput().and(page.locator(':invalid'))).toHaveCount(1) + await expect(page.locator('.input-field--error').filter({ has: loginPage.usernameInput() })).toBeVisible() + await expect(page.locator('.input-field--error').filter({ has: loginPage.passwordInput() })).toBeVisible() }) test('disabled account shows disabled error', async ({ page, disabledUser }) => { @@ -72,7 +74,8 @@ test.describe('Login', () => { await expect(page).toHaveURL(/\/login/) await expect(page.getByText(/Account.*disabled/i)).toBeVisible() - await expect(loginPage.passwordInput().and(page.locator(':invalid'))).toHaveCount(1) + await expect(page.locator('.input-field--error').filter({ has: loginPage.usernameInput() })).toBeVisible() + await expect(page.locator('.input-field--error').filter({ has: loginPage.passwordInput() })).toBeVisible() }) test('logout redirects to the login page', async ({ page, context, user }) => {