@scaleflex/uploader 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/drop-zone.d.ts +3 -0
- package/dist/components/drop-zone.d.ts.map +1 -1
- package/dist/components/file-item.d.ts.map +1 -1
- package/dist/components/file-list.d.ts +9 -0
- package/dist/components/file-list.d.ts.map +1 -1
- package/dist/define.cjs +1 -1
- package/dist/define.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{provider-browser-YA7MCWl4.cjs → provider-browser-B_4n6_hA.cjs} +1 -1
- package/dist/{provider-browser-ZgbnfTHX.js → provider-browser-CWEFYWp6.js} +1 -1
- package/dist/{search-provider-browser-Dywv08pq.js → search-provider-browser-BYkWbFar.js} +1 -1
- package/dist/{search-provider-browser-C0yqcOmH.cjs → search-provider-browser-CCknibp_.cjs} +1 -1
- package/dist/{sfx-uploader-DfRa5s6H.js → sfx-uploader-CqgLT0sR.js} +594 -452
- package/dist/{sfx-uploader-D1QE07Cn.cjs → sfx-uploader-Cwh7eKfe.cjs} +212 -143
- package/dist/sfx-uploader.d.ts +6 -0
- package/dist/sfx-uploader.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -50,7 +50,7 @@ npm install @scaleflex/uploader
|
|
|
50
50
|
Or use the CDN for a no-bundler setup:
|
|
51
51
|
|
|
52
52
|
```html
|
|
53
|
-
<script src="https://scaleflex.
|
|
53
|
+
<script src="https://cdn.scaleflex.com/uploader/0.2.5/sfx-uploader.min.js"></script>
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
## Quick start
|
|
@@ -25,7 +25,10 @@ export declare class SfxDropZone extends LitElement {
|
|
|
25
25
|
private _onPaste;
|
|
26
26
|
private _onSourceIconClick;
|
|
27
27
|
private _emitFiles;
|
|
28
|
+
private _portalContainer;
|
|
28
29
|
private _toggleMore;
|
|
30
|
+
private _updateDropdownPortal;
|
|
31
|
+
private _injectDropdownStyles;
|
|
29
32
|
/** Position the fixed dropdown, choosing above or below based on available space. */
|
|
30
33
|
private _positionDropdown;
|
|
31
34
|
private _onMoreItemClick;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-zone.d.ts","sourceRoot":"","sources":["../../src/components/drop-zone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"drop-zone.d.ts","sourceRoot":"","sources":["../../src/components/drop-zone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2C,MAAM,KAAK,CAAC;AAK1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BA8wBX;IAE0C,OAAO,UAAS;IACE,gBAAgB,UAAS;IAC3D,MAAM,SAAM;IACb,OAAO,EAAE,SAAS,EAAE,CAAM;IACI,aAAa,EAAE,OAAO,GAAG,OAAO,CAAW;IAE3F,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAiB;IAE7B,OAAO,CAAC,SAAS,CAAe;IACrB,SAAS,EAAG,gBAAgB,CAAC;IAE1D,OAAO,CAAC,YAAY,CAAK;IAEzB,0CAA0C;IAC1C,MAAM;IAMN,OAAO,CAAC,YAAY,CAMlB;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEF,OAAO,CAAC,YAAY,CAOlB;IAEF,OAAO,CAAC,OAAO,CAUb;IAIF,OAAO,CAAC,QAAQ,CAad;IAEF,OAAO,CAAC,UAAU,CAKhB;IAEF,OAAO,CAAC,aAAa,CAQnB;IAIF,OAAO,CAAC,QAAQ,CAkBd;IAEF,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,gBAAgB,CAA+B;IAEvD,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,qBAAqB;IAmB7B,qFAAqF;IACrF,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,WAAW,CAMjB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,YAAY,CAA8C;IAElE,OAAO,CAAC,iBAAiB,CAMvB;IAEF,OAAO,CAAC,mBAAmB;IAqB3B,iBAAiB;IAUjB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAMrC,oBAAoB;IAepB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,mBAAmB;IAW3B,MAAM;CAuGP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-item.d.ts","sourceRoot":"","sources":["../../src/components/file-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"file-item.d.ts","sourceRoot":"","sources":["../../src/components/file-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BA6XX;IAE8B,IAAI,EAAG,UAAU,CAAC;IAElD,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,QAAQ;IAWhB,MAAM;IAiHN,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;CAcxB"}
|
|
@@ -8,11 +8,20 @@ export declare class SfxFileList extends LitElement {
|
|
|
8
8
|
sources: SourceDef[];
|
|
9
9
|
accept: string;
|
|
10
10
|
private _moreOpen;
|
|
11
|
+
private _portalContainer;
|
|
11
12
|
private _outsideClickHandler;
|
|
12
13
|
private _onDropTileClick;
|
|
13
14
|
private _onFileInput;
|
|
14
15
|
private _onSourceClick;
|
|
16
|
+
private _onScrollOrResize;
|
|
17
|
+
private _onKeyDown;
|
|
18
|
+
private _addGlobalListeners;
|
|
19
|
+
private _removeGlobalListeners;
|
|
15
20
|
private _toggleMore;
|
|
21
|
+
private _openPortal;
|
|
22
|
+
private _positionPortal;
|
|
23
|
+
private _closePortal;
|
|
24
|
+
private _injectTileDropdownStyles;
|
|
16
25
|
disconnectedCallback(): void;
|
|
17
26
|
private _onMoreSourceClick;
|
|
18
27
|
private _renderDropTile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-list.d.ts","sourceRoot":"","sources":["../../src/components/file-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"file-list.d.ts","sourceRoot":"","sources":["../../src/components/file-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0D,MAAM,KAAK,CAAC;AAIzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BA6SX;IAE8B,KAAK,EAAE,UAAU,EAAE,CAAM;IAC5B,YAAY,UAAS;IAClB,OAAO,EAAE,SAAS,EAAE,CAAM;IAC9B,MAAM,SAAM;IAE/B,OAAO,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAA+B;IAEvD,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,UAAU,CAMhB;IAEF,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,yBAAyB;IAoBjC,oBAAoB;IAOpB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IA4CvB,MAAM;CAUP"}
|
package/dist/define.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("./sfx-uploader-
|
|
1
|
+
"use strict";const e=require("./sfx-uploader-Cwh7eKfe.cjs"),s=(f,i)=>{typeof customElements<"u"&&!customElements.get(f)&&customElements.define(f,i)};s("sfx-uploader",e.SfxUploader);s("sfx-drop-zone",e.SfxDropZone);s("sfx-import-divider",e.SfxImportDivider);s("sfx-source-pills",e.SfxSourcePills);s("sfx-file-list",e.SfxFileList);s("sfx-file-item",e.SfxFileItem);s("sfx-success-card",e.SfxSuccessCard);s("sfx-actions-bar",e.SfxActionsBar);s("sfx-url-dialog",e.SfxUrlDialog);s("sfx-camera-dialog",e.SfxCameraDialog);s("sfx-screen-cast-dialog",e.SfxScreenCastDialog);
|
package/dist/define.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as f, a as i, d as o, e as r, c as l, b as x, f as t, S as c, n as d, o as S, p as m } from "./sfx-uploader-
|
|
1
|
+
import { g as f, a as i, d as o, e as r, c as l, b as x, f as t, S as c, n as d, o as S, p as m } from "./sfx-uploader-CqgLT0sR.js";
|
|
2
2
|
const s = (e, a) => {
|
|
3
3
|
typeof customElements < "u" && !customElements.get(e) && customElements.define(e, a);
|
|
4
4
|
};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./sfx-uploader-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./sfx-uploader-Cwh7eKfe.cjs");exports.CORE_SOURCES=e.CORE_SOURCES;exports.PublicEvents=e.PublicEvents;exports.SfxActionsBar=e.SfxActionsBar;exports.SfxDropZone=e.SfxDropZone;exports.SfxFileItem=e.SfxFileItem;exports.SfxFileList=e.SfxFileList;exports.SfxImportDivider=e.SfxImportDivider;exports.SfxSourcePills=e.SfxSourcePills;exports.SfxSuccessCard=e.SfxSuccessCard;exports.SfxUploader=e.SfxUploader;exports.Store=e.Store;exports.UploadEngine=e.UploadEngine;exports.buildAuthHeaders=e.buildAuthHeaders;exports.createStore=e.createStore;exports.exchangeSassKey=e.exchangeSassKey;exports.getApiBase=e.getApiBase;exports.getProviderSources=e.getProviderSources;exports.resolveAuth=e.resolveAuth;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as e, P as r, S, a as o, b as i, c as t, d as f, e as l, f as x, g as c, h as d, U as u, i as n, j as p, k as g, l as h, m, r as v } from "./sfx-uploader-
|
|
1
|
+
import { C as e, P as r, S, a as o, b as i, c as t, d as f, e as l, f as x, g as c, h as d, U as u, i as n, j as p, k as g, l as h, m, r as v } from "./sfx-uploader-CqgLT0sR.js";
|
|
2
2
|
export {
|
|
3
3
|
e as CORE_SOURCES,
|
|
4
4
|
r as PublicEvents,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("lit"),l=require("lit/decorators.js"),b=require("lit/directives/unsafe-html.js"),c=require("./sfx-uploader-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("lit"),l=require("lit/decorators.js"),b=require("lit/directives/unsafe-html.js"),c=require("./sfx-uploader-Cwh7eKfe.cjs"),x="sfx-uploader-token:";function p(o){try{return localStorage.getItem(`${x}${o}`)}catch{return null}}function v(o,e){try{localStorage.setItem(`${x}${o}`,e)}catch{}}function u(o){try{localStorage.removeItem(`${x}${o}`)}catch{}}function k(o,e){const r=i=>{if(i.origin!==new URL(o).origin)return;const t=typeof i.data=="string"?y(i.data):i.data;t!=null&&t.token&&e(t.token)};return window.addEventListener("message",r),()=>window.removeEventListener("message",r)}function y(o){try{return JSON.parse(o)}catch{return null}}var _=Object.defineProperty,d=(o,e,r,i)=>{for(var t=void 0,n=o.length-1,h;n>=0;n--)(h=o[n])&&(t=h(e,r,t)||t);return t&&_(e,r,t),t};const g=class g extends s.LitElement{constructor(){super(...arguments),this.provider="google-drive",this.companionUrl="",this._authenticated=!1,this._loading=!1,this._items=[],this._selectedIds=new Set,this._breadcrumbs=[],this._nextPagePath=null,this._error=null,this._loadingMore=!1,this._username=null,this._cleanupAuthListener=null,this._authWindow=null,this._handleConnect=()=>{var r;const e=c.getAuthUrl(this.companionUrl,this.provider);this._authWindow=window.open(e,"_blank","width=600,height=600"),(r=this._cleanupAuthListener)==null||r.call(this),this._cleanupAuthListener=k(this.companionUrl,i=>{var t,n;(t=this._authWindow)==null||t.close(),this._authWindow=null,(n=this._cleanupAuthListener)==null||n.call(this),this._cleanupAuthListener=null,v(this.provider,i),this._authenticated=!0,this._loadFolder("")})},this._lastClickedIndex=null,this._toggleSelectAll=()=>{const e=this._items.filter(i=>!i.isFolder);e.every(i=>this._selectedIds.has(i.id))?this._selectedIds=new Set:this._selectedIds=new Set(e.map(i=>i.id))},this._onAddSelected=()=>{const e=p(this.provider);if(!e)return;const i=this._items.filter(t=>!t.isFolder&&this._selectedIds.has(t.id)).map(t=>({companionUrl:this.companionUrl,provider:this.provider,token:e,requestPath:t.requestPath,fileId:t.id,name:t.name,mimeType:t.mimeType,size:t.size,thumbnail:t.thumbnail}));this.dispatchEvent(new CustomEvent("connector-files-selected",{detail:{files:i},bubbles:!0,composed:!0}))},this._onClose=()=>{this.dispatchEvent(new CustomEvent("connector-close",{bubbles:!0,composed:!0}))},this._handleLogout=async()=>{const e=p(this.provider);if(e){try{await c.logout(this.companionUrl,this.provider,e)}catch{}u(this.provider)}this._reset()}}connectedCallback(){super.connectedCallback(),this._checkAuth()}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._cleanupAuthListener)==null||e.call(this),this._cleanupAuthListener=null}updated(e){e.has("provider")&&(this._reset(),this._checkAuth())}_reset(){this._authenticated=!1,this._loading=!1,this._items=[],this._selectedIds=new Set,this._breadcrumbs=[],this._nextPagePath=null,this._error=null,this._username=null}_checkAuth(){p(this.provider)&&(this._authenticated=!0,this._loadFolder(""))}get _providerDef(){return c.getProviderSources([this.provider])[0]??null}get _providerLabel(){var e;return((e=this._providerDef)==null?void 0:e.label)??this.provider}async _loadFolder(e){const r=p(this.provider);if(!r){this._authenticated=!1;return}this.offsetHeight>0&&(this.style.minHeight=`${this.offsetHeight}px`),this._loading=!0,this._error=null,this._items=[],this._selectedIds=new Set,this._lastClickedIndex=null,this._nextPagePath=null;try{const i=await c.listFiles(this.companionUrl,this.provider,r,e);this._items=i.items,this._nextPagePath=i.nextPagePath,i.username&&(this._username=i.username)}catch(i){i instanceof c.AuthExpiredError?(u(this.provider),this._authenticated=!1):this._error=i instanceof Error?i.message:"Failed to load files"}finally{this._loading=!1}}_onFolderClick(e){this._breadcrumbs=[...this._breadcrumbs,{name:e.name,path:e.requestPath}],this._loadFolder(e.requestPath)}_onBreadcrumbClick(e){if(e<0)this._breadcrumbs=[],this._loadFolder("");else{const r=this._breadcrumbs[e];this._breadcrumbs=this._breadcrumbs.slice(0,e+1),this._loadFolder(r.path)}}async _onLoadMore(){const e=p(this.provider);if(!(!e||!this._nextPagePath)){this._loadingMore=!0;try{const r=await c.listNextPage(this.companionUrl,e,this._nextPagePath);this._items=[...this._items,...r.items],this._nextPagePath=r.nextPagePath}catch(r){r instanceof c.AuthExpiredError&&(u(this.provider),this._authenticated=!1)}finally{this._loadingMore=!1}}}_toggleSelect(e,r){const i=this._items.filter(n=>!n.isFolder),t=i.findIndex(n=>n.id===e.id);if(r!=null&&r.shiftKey&&this._lastClickedIndex!==null&&t!==-1){const n=Math.min(this._lastClickedIndex,t),h=Math.max(this._lastClickedIndex,t),m=new Set(this._selectedIds);for(let f=n;f<=h;f++)m.add(i[f].id);this._selectedIds=m}else{const n=new Set(this._selectedIds);n.has(e.id)?n.delete(e.id):n.add(e.id),this._selectedIds=n}t!==-1&&(this._lastClickedIndex=t)}render(){return s.html`
|
|
2
2
|
${this._renderHeader()}
|
|
3
3
|
${this._authenticated?this._loading?this._renderLoading():this._error?this._renderError():this._renderBrowser():this._renderAuthView()}
|
|
4
4
|
`}_renderHeader(){const e=this._providerDef;return s.html`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LitElement as y, css as w, html as s, nothing as h } from "lit";
|
|
2
2
|
import { property as k, state as d } from "lit/decorators.js";
|
|
3
3
|
import { unsafeHTML as b } from "lit/directives/unsafe-html.js";
|
|
4
|
-
import { q as _, t as $, m as z, u as C, A as v, v as I } from "./sfx-uploader-
|
|
4
|
+
import { q as _, t as $, m as z, u as C, A as v, v as I } from "./sfx-uploader-CqgLT0sR.js";
|
|
5
5
|
const x = "sfx-uploader-token:";
|
|
6
6
|
function p(n) {
|
|
7
7
|
try {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LitElement as x, css as g, html as s, nothing as d } from "lit";
|
|
2
2
|
import { property as f, state as n } from "lit/decorators.js";
|
|
3
|
-
import { m as b, s as u } from "./sfx-uploader-
|
|
3
|
+
import { m as b, s as u } from "./sfx-uploader-CqgLT0sR.js";
|
|
4
4
|
var m = Object.defineProperty, a = (c, r, e, t) => {
|
|
5
5
|
for (var i = void 0, l = c.length - 1, h; l >= 0; l--)
|
|
6
6
|
(h = c[l]) && (i = h(r, e, i) || i);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("lit"),a=require("lit/decorators.js"),l=require("./sfx-uploader-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("lit"),a=require("lit/decorators.js"),l=require("./sfx-uploader-Cwh7eKfe.cjs");var u=Object.defineProperty,n=(c,r,e,s)=>{for(var i=void 0,d=c.length-1,h;d>=0;d--)(h=c[d])&&(i=h(r,e,i)||i);return i&&u(r,e,i),i};const p=class p extends t.LitElement{constructor(){super(...arguments),this.provider="unsplash",this.companionUrl="",this._loading=!1,this._loadingMore=!1,this._items=[],this._selectedIds=new Set,this._error=null,this._searchQuery="",this._nextPageQuery=null,this._searched=!1,this._onResultsScroll=r=>{if(!this._nextPageQuery||this._loadingMore)return;const e=r.target;e.scrollHeight-e.scrollTop-e.clientHeight<200&&this._onLoadMore()},this._onSearchInput=r=>{this._searchQuery=r.target.value},this._onSearchKeydown=r=>{r.key==="Enter"&&this._doSearch()},this._onAddSelected=()=>{const e=this._items.filter(s=>this._selectedIds.has(s.id)).map(s=>({companionUrl:this.companionUrl,provider:this.provider,token:"",requestPath:s.requestPath,fileId:s.id,name:s.name||s.id,mimeType:s.mimeType,size:s.size,thumbnail:s.thumbnail}));this.dispatchEvent(new CustomEvent("connector-files-selected",{detail:{files:e},bubbles:!0,composed:!0}))},this._onClose=()=>{this.dispatchEvent(new CustomEvent("connector-close",{bubbles:!0,composed:!0}))}}get _providerLabel(){var e;return((e=l.getProviderSources([this.provider])[0])==null?void 0:e.label)??this.provider}async _doSearch(){const r=this._searchQuery.trim();if(r){this._loading=!0,this._error=null,this._items=[],this._selectedIds=new Set,this._nextPageQuery=null,this._searched=!0;try{const e=await l.searchProvider(this.companionUrl,this.provider,r),s=new Set;this._items=e.items.filter(i=>s.has(i.id)?!1:(s.add(i.id),!0)),this._nextPageQuery=e.nextPageQuery}catch(e){this._error=e instanceof Error?e.message:"Search failed"}finally{this._loading=!1}}}async _onLoadMore(){if(!(!this._nextPageQuery||this._loadingMore)){this._loadingMore=!0;try{const r=await l.searchProvider(this.companionUrl,this.provider,this._searchQuery.trim(),this._nextPageQuery),e=new Set(this._items.map(i=>i.id)),s=r.items.filter(i=>!e.has(i.id));this._items=[...this._items,...s],this._nextPageQuery=r.nextPageQuery}catch{}finally{this._loadingMore=!1}}}_toggleSelect(r){const e=new Set(this._selectedIds);e.has(r.id)?e.delete(r.id):e.add(r.id),this._selectedIds=e}render(){return t.html`
|
|
2
2
|
${this._renderHeader()}
|
|
3
3
|
${this._renderSearchBar()}
|
|
4
4
|
${this._loading?this._renderLoading():this._error?this._renderError():this._renderResults()}
|