@neovici/cosmoz-queue 1.0.0
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 +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/queue/actions/index.d.ts +22 -0
- package/dist/queue/actions/index.d.ts.map +1 -0
- package/dist/queue/actions/index.js +20 -0
- package/dist/queue/icon.d.ts +2 -0
- package/dist/queue/icon.d.ts.map +1 -0
- package/dist/queue/icon.js +12 -0
- package/dist/queue/icons.d.ts +4 -0
- package/dist/queue/icons.d.ts.map +1 -0
- package/dist/queue/icons.js +61 -0
- package/dist/queue/index.d.ts +8 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +5 -0
- package/dist/queue/item-click.d.ts +5 -0
- package/dist/queue/item-click.d.ts.map +1 -0
- package/dist/queue/item-click.js +15 -0
- package/dist/queue/list-core/column.d.ts +34 -0
- package/dist/queue/list-core/column.d.ts.map +1 -0
- package/dist/queue/list-core/column.js +10 -0
- package/dist/queue/list-core/index.d.ts +7 -0
- package/dist/queue/list-core/index.d.ts.map +1 -0
- package/dist/queue/list-core/index.js +6 -0
- package/dist/queue/list-core/list-core.d.ts +6 -0
- package/dist/queue/list-core/list-core.d.ts.map +1 -0
- package/dist/queue/list-core/list-core.js +6 -0
- package/dist/queue/list-core/render-generic-actions.d.ts +4 -0
- package/dist/queue/list-core/render-generic-actions.d.ts.map +1 -0
- package/dist/queue/list-core/render-generic-actions.js +14 -0
- package/dist/queue/list-core/render-list-core.d.ts +18 -0
- package/dist/queue/list-core/render-list-core.d.ts.map +1 -0
- package/dist/queue/list-core/render-list-core.js +42 -0
- package/dist/queue/list-core/style.css.d.ts +2 -0
- package/dist/queue/list-core/style.css.d.ts.map +1 -0
- package/dist/queue/list-core/style.css.js +20 -0
- package/dist/queue/list-core/use-inline-actions.d.ts +4 -0
- package/dist/queue/list-core/use-inline-actions.d.ts.map +1 -0
- package/dist/queue/list-core/use-inline-actions.js +10 -0
- package/dist/queue/list-core/use-list-core.d.ts +34 -0
- package/dist/queue/list-core/use-list-core.d.ts.map +1 -0
- package/dist/queue/list-core/use-list-core.js +36 -0
- package/dist/queue/list-core/use-list-state.d.ts +24 -0
- package/dist/queue/list-core/use-list-state.d.ts.map +1 -0
- package/dist/queue/list-core/use-list-state.js +25 -0
- package/dist/queue/list-core/use-more.d.ts +23 -0
- package/dist/queue/list-core/use-more.d.ts.map +1 -0
- package/dist/queue/list-core/use-more.js +41 -0
- package/dist/queue/omnitable.d.ts +19 -0
- package/dist/queue/omnitable.d.ts.map +1 -0
- package/dist/queue/omnitable.js +31 -0
- package/dist/queue/pagination.d.ts +5 -0
- package/dist/queue/pagination.d.ts.map +1 -0
- package/dist/queue/pagination.js +10 -0
- package/dist/queue/queue.d.ts +24 -0
- package/dist/queue/queue.d.ts.map +1 -0
- package/dist/queue/queue.js +58 -0
- package/dist/queue/render.d.ts +74 -0
- package/dist/queue/render.d.ts.map +1 -0
- package/dist/queue/render.js +134 -0
- package/dist/queue/style.d.ts +7 -0
- package/dist/queue/style.d.ts.map +1 -0
- package/dist/queue/style.js +182 -0
- package/dist/queue/test/__snapshots__/render.test.snap.d.ts +2 -0
- package/dist/queue/test/__snapshots__/render.test.snap.d.ts.map +1 -0
- package/dist/queue/test/__snapshots__/render.test.snap.js +64 -0
- package/dist/queue/test/item-click.test.d.ts +2 -0
- package/dist/queue/test/item-click.test.d.ts.map +1 -0
- package/dist/queue/test/item-click.test.js +28 -0
- package/dist/queue/test/render.test.d.ts +2 -0
- package/dist/queue/test/render.test.d.ts.map +1 -0
- package/dist/queue/test/render.test.js +27 -0
- package/dist/queue/test/use-pref.test.d.ts +2 -0
- package/dist/queue/test/use-pref.test.d.ts.map +1 -0
- package/dist/queue/test/use-pref.test.js +16 -0
- package/dist/queue/types.d.ts +10 -0
- package/dist/queue/types.d.ts.map +1 -0
- package/dist/queue/types.js +1 -0
- package/dist/queue/use-async-action.d.ts +15 -0
- package/dist/queue/use-async-action.d.ts.map +1 -0
- package/dist/queue/use-async-action.js +17 -0
- package/dist/queue/use-data-nav.d.ts +20 -0
- package/dist/queue/use-data-nav.d.ts.map +1 -0
- package/dist/queue/use-data-nav.js +59 -0
- package/dist/queue/use-data-service.d.ts +31 -0
- package/dist/queue/use-data-service.d.ts.map +1 -0
- package/dist/queue/use-data-service.js +26 -0
- package/dist/queue/use-fetch-actions.d.ts +42 -0
- package/dist/queue/use-fetch-actions.d.ts.map +1 -0
- package/dist/queue/use-fetch-actions.js +38 -0
- package/dist/queue/use-key-nav.d.ts +8 -0
- package/dist/queue/use-key-nav.d.ts.map +1 -0
- package/dist/queue/use-key-nav.js +49 -0
- package/dist/queue/use-list-sse.d.ts +42 -0
- package/dist/queue/use-list-sse.d.ts.map +1 -0
- package/dist/queue/use-list-sse.js +82 -0
- package/dist/queue/use-list.d.ts +33 -0
- package/dist/queue/use-list.d.ts.map +1 -0
- package/dist/queue/use-list.js +42 -0
- package/dist/queue/use-pref.d.ts +5 -0
- package/dist/queue/use-pref.d.ts.map +1 -0
- package/dist/queue/use-pref.js +11 -0
- package/dist/queue/use-queue.d.ts +132 -0
- package/dist/queue/use-queue.d.ts.map +1 -0
- package/dist/queue/use-queue.js +69 -0
- package/dist/queue/use-split.d.ts +8 -0
- package/dist/queue/use-split.d.ts.map +1 -0
- package/dist/queue/use-split.js +30 -0
- package/dist/queue/use-tabs.d.ts +54 -0
- package/dist/queue/use-tabs.d.ts.map +1 -0
- package/dist/queue/use-tabs.js +31 -0
- package/dist/queue/use-updates.d.ts +9 -0
- package/dist/queue/use-updates.d.ts.map +1 -0
- package/dist/queue/use-updates.js +17 -0
- package/dist/queue/util.d.ts +4 -0
- package/dist/queue/util.d.ts.map +1 -0
- package/dist/queue/util.js +16 -0
- package/dist/types/dialogable.d.ts +39 -0
- package/dist/types/dialogable.d.ts.map +1 -0
- package/dist/types/dialogable.js +5 -0
- package/dist/types/performable.d.ts +5 -0
- package/dist/types/performable.d.ts.map +1 -0
- package/dist/types/performable.js +1 -0
- package/dist/util/dom/active-element.d.ts +3 -0
- package/dist/util/dom/active-element.d.ts.map +1 -0
- package/dist/util/dom/active-element.js +11 -0
- package/dist/util/fetch/fetch.d.ts +41 -0
- package/dist/util/fetch/fetch.d.ts.map +1 -0
- package/dist/util/fetch/fetch.js +74 -0
- package/dist/util/fetch/url.d.ts +30 -0
- package/dist/util/fetch/url.d.ts.map +1 -0
- package/dist/util/fetch/url.js +29 -0
- package/dist/util/path.d.ts +42 -0
- package/dist/util/path.d.ts.map +1 -0
- package/dist/util/path.js +68 -0
- package/dist/util/polymer-property-changed-event.d.ts +6 -0
- package/dist/util/polymer-property-changed-event.d.ts.map +1 -0
- package/dist/util/polymer-property-changed-event.js +27 -0
- package/dist/util/test/path.test.d.ts +2 -0
- package/dist/util/test/path.test.d.ts.map +1 -0
- package/dist/util/test/path.test.js +99 -0
- package/package.json +113 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useEffect, useMemo, useState } from '@pionjs/pion';
|
|
2
|
+
export const useMore = ({ params: _params, list$, pageSize = 50, setTotalAvailable, }) => {
|
|
3
|
+
const [{ page, data$, totalAvailable, params }, setData] = useState({
|
|
4
|
+
page: 0,
|
|
5
|
+
data$: Promise.resolve([]),
|
|
6
|
+
totalAvailable: Infinity,
|
|
7
|
+
params: _params,
|
|
8
|
+
});
|
|
9
|
+
const hasMore = pageSize > 0 &&
|
|
10
|
+
totalAvailable < Infinity &&
|
|
11
|
+
totalAvailable >= pageSize &&
|
|
12
|
+
page < Math.ceil(totalAvailable / pageSize);
|
|
13
|
+
const loadMore = useMemo(() => hasMore ? () => setData((s) => ({ ...s, page: s.page + 1 })) : undefined, [hasMore]);
|
|
14
|
+
useEffect(() => setData((d) => ({
|
|
15
|
+
...d,
|
|
16
|
+
params: _params,
|
|
17
|
+
page: 0,
|
|
18
|
+
data$: Promise.resolve([]),
|
|
19
|
+
})), [_params, list$]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
setData(({ data$, params, page, ...thru }) => ({
|
|
22
|
+
...thru,
|
|
23
|
+
params,
|
|
24
|
+
page,
|
|
25
|
+
data$: Promise.resolve(data$).then((prev) => list$({
|
|
26
|
+
params,
|
|
27
|
+
page,
|
|
28
|
+
pageSize,
|
|
29
|
+
}).then((data) => {
|
|
30
|
+
const totalAvailable = data.total;
|
|
31
|
+
setTotalAvailable(totalAvailable);
|
|
32
|
+
setData((s) => ({
|
|
33
|
+
...s,
|
|
34
|
+
totalAvailable,
|
|
35
|
+
}));
|
|
36
|
+
return [...prev, ...data.items];
|
|
37
|
+
})),
|
|
38
|
+
}));
|
|
39
|
+
}, [page, params, list$, pageSize]);
|
|
40
|
+
return { data$, loadMore };
|
|
41
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import '@neovici/cosmoz-omnitable';
|
|
2
|
+
import { Rec } from '@neovici/cosmoz-utils/object';
|
|
3
|
+
import { Ref } from '@pionjs/pion';
|
|
4
|
+
interface Props<I> {
|
|
5
|
+
exposedParts?: string;
|
|
6
|
+
settingsId?: string;
|
|
7
|
+
data$?: Promise<I[]>;
|
|
8
|
+
onData?: (v: I[]) => void;
|
|
9
|
+
selected?: I[];
|
|
10
|
+
onSelected?: (v: I[]) => void;
|
|
11
|
+
descending?: boolean;
|
|
12
|
+
onDescending?: (v: boolean) => void;
|
|
13
|
+
sortOn?: string;
|
|
14
|
+
onSort?: (v: string) => void;
|
|
15
|
+
ref?: Ref<HTMLElement | undefined>;
|
|
16
|
+
}
|
|
17
|
+
declare const omnitable: <I extends Rec>({ exposedParts, settingsId, data$, onData, selected, onSelected, descending, onDescending, sortOn, onSort, ref: omnitableRef, }: Props<I>, content?: unknown) => import("lit-html").TemplateResult<1>;
|
|
18
|
+
export default omnitable;
|
|
19
|
+
//# sourceMappingURL=omnitable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omnitable.d.ts","sourceRoot":"","sources":["../../src/queue/omnitable.ts"],"names":[],"mappings":"AAIA,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAEnD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,UAAU,KAAK,CAAC,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAErB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAE9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7B,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;CACnC;AA0BD,QAAA,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAC/B,iIAYG,KAAK,CAAC,CAAC,CAAC,EACX,UAAU,OAAO,yCAoBjB,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { html } from 'lit-html';
|
|
2
|
+
import { guard } from 'lit-html/directives/guard.js';
|
|
3
|
+
import { until } from 'lit-html/directives/until.js';
|
|
4
|
+
import { when } from 'lit-html/directives/when.js';
|
|
5
|
+
import '@neovici/cosmoz-omnitable';
|
|
6
|
+
import { updateWith } from '../util/polymer-property-changed-event.js';
|
|
7
|
+
import { ref } from 'lit-html/directives/ref.js';
|
|
8
|
+
const loading$$ = (data$, loading) => guard([data$, loading], () => when(data$, (data$) => until(data$?.then(() => false, () => false), true), () => loading));
|
|
9
|
+
const data$$ = (data$, data) => guard([data$, data], () => when(data$, () => until(data$, []), () => data));
|
|
10
|
+
const omnitable = ({ exposedParts, settingsId, data$, onData, selected, onSelected, descending, onDescending, sortOn, onSort, ref: omnitableRef, }, content) => html `
|
|
11
|
+
<cosmoz-omnitable
|
|
12
|
+
${ref((el) => {
|
|
13
|
+
if (omnitableRef)
|
|
14
|
+
omnitableRef.current = el;
|
|
15
|
+
})}
|
|
16
|
+
class="ot"
|
|
17
|
+
.settingsId=${settingsId}
|
|
18
|
+
.data=${data$$(data$)}
|
|
19
|
+
?loading=${loading$$(data$)}
|
|
20
|
+
exportparts=${exposedParts}
|
|
21
|
+
.sortOn=${sortOn}
|
|
22
|
+
@sort-on-changed=${updateWith(onSort)}
|
|
23
|
+
.descending=${descending}
|
|
24
|
+
@descending-changed=${updateWith(onDescending)}
|
|
25
|
+
.selectedItems=${selected}
|
|
26
|
+
@selected-items-changed=${updateWith(onSelected)}
|
|
27
|
+
@visible-data-changed=${updateWith(onData)}
|
|
28
|
+
>${content}</cosmoz-omnitable
|
|
29
|
+
>
|
|
30
|
+
`;
|
|
31
|
+
export default omnitable;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/queue/pagination.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;oBAQhB,MAAM;CAIf,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { useCallback, useMemo } from '@pionjs/pion';
|
|
2
|
+
import { useHashParam } from '@neovici/cosmoz-router/use-hash-param';
|
|
3
|
+
import { parse as parseNumber } from '@neovici/cosmoz-utils/number';
|
|
4
|
+
export const usePagination = () => {
|
|
5
|
+
const [_page, setPageNumber] = useHashParam('page');
|
|
6
|
+
return {
|
|
7
|
+
page: useMemo(() => Math.max(1, parseNumber(_page) || 1), [_page]),
|
|
8
|
+
onPage: useCallback((page = 0) => setPageNumber(page < 2 ? undefined : page), []),
|
|
9
|
+
};
|
|
10
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { RenderQueue } from './render';
|
|
3
|
+
import { Pagination } from './types';
|
|
4
|
+
import useQueue, { UseQueue } from './use-queue';
|
|
5
|
+
type QueueProps<I> = ReturnType<typeof useQueue<I>>;
|
|
6
|
+
type ViewProps<I> = Omit<QueueProps<I>, 'nav'> & {
|
|
7
|
+
nav: TemplateResult;
|
|
8
|
+
item: I;
|
|
9
|
+
};
|
|
10
|
+
interface Props<I, D> extends Pick<UseQueue<I>, 'id' | 'api' | 'fallback' | 'split'>, Pick<RenderQueue<I, D>, 'details' | 'afterHeading'> {
|
|
11
|
+
list: (thru: Record<string, any>, props: QueueProps<I> & {
|
|
12
|
+
onRef: (el?: Element) => void;
|
|
13
|
+
}) => TemplateResult;
|
|
14
|
+
view: (thru: Record<string, any>, props: ViewProps<I>) => TemplateResult;
|
|
15
|
+
loader: (thru: Record<string, any>, props: ViewProps<I>) => TemplateResult;
|
|
16
|
+
heading: string;
|
|
17
|
+
settingsId?: string;
|
|
18
|
+
idHashParam?: string;
|
|
19
|
+
tabHashParam?: string;
|
|
20
|
+
pagination?: Pagination;
|
|
21
|
+
}
|
|
22
|
+
export declare const queue: <I, D = I>(props: Props<I, D>) => TemplateResult<1>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/queue/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAe,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD,KAAK,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAChD,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC;CACR,CAAC;AAEF,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC,CACnB,SAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC,EAC7D,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;IACpD,IAAI,EAAE,CACL,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,KACpD,cAAc,CAAC;IACpB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;IACzE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;CACxB;AAMD,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,sBAgGjD,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { updateWith } from '../util/polymer-property-changed-event.js';
|
|
2
|
+
import { renderQueue } from './render';
|
|
3
|
+
import useAsyncAction from './use-async-action';
|
|
4
|
+
import useQueue from './use-queue';
|
|
5
|
+
export const queue = (props) => {
|
|
6
|
+
const { heading, afterHeading, settingsId, idHashParam = 'qid', tabHashParam = 'qtab', id, api, details, list, view, loader, pagination, fallback, split, } = props;
|
|
7
|
+
const queueProps = useQueue({
|
|
8
|
+
id,
|
|
9
|
+
api,
|
|
10
|
+
idHashParam,
|
|
11
|
+
tabHashParam,
|
|
12
|
+
fallback,
|
|
13
|
+
split,
|
|
14
|
+
});
|
|
15
|
+
const { index, mobile, hideActions, items, setItems, setSelected, totalAvailable, setTotalAvailable, onItemClick, nav, tabnav, } = queueProps;
|
|
16
|
+
const { listRef, onAsyncSimpleAction } = useAsyncAction(nav);
|
|
17
|
+
const renderProps = {
|
|
18
|
+
...queueProps,
|
|
19
|
+
onAsyncSimpleAction,
|
|
20
|
+
};
|
|
21
|
+
return renderQueue({
|
|
22
|
+
details,
|
|
23
|
+
heading,
|
|
24
|
+
afterHeading,
|
|
25
|
+
mobile,
|
|
26
|
+
index,
|
|
27
|
+
items,
|
|
28
|
+
tabnav,
|
|
29
|
+
totalAvailable,
|
|
30
|
+
nav,
|
|
31
|
+
pagination,
|
|
32
|
+
list: list({
|
|
33
|
+
id: 'list',
|
|
34
|
+
'.exposedParts': `itemRow, itemRow-${index}`,
|
|
35
|
+
'.settingsId': settingsId,
|
|
36
|
+
'@visible-items-changed': updateWith(setItems),
|
|
37
|
+
'@selected-items-changed': updateWith(setSelected),
|
|
38
|
+
'@total-available-changed': updateWith(setTotalAvailable),
|
|
39
|
+
'@async-simple-action': onAsyncSimpleAction,
|
|
40
|
+
'@omnitable-item-click': onItemClick,
|
|
41
|
+
}, {
|
|
42
|
+
...renderProps,
|
|
43
|
+
onRef: (el) => (listRef.current = el),
|
|
44
|
+
}),
|
|
45
|
+
renderItem: ({ item, nav }) => view({
|
|
46
|
+
class: 'view-core',
|
|
47
|
+
exportparts: 'header, header-bg',
|
|
48
|
+
'.hideActions': hideActions,
|
|
49
|
+
'.item': item,
|
|
50
|
+
'@async-simple-action': onAsyncSimpleAction,
|
|
51
|
+
'@rendered': (event) => event.target.syncImageState(),
|
|
52
|
+
}, { ...renderProps, nav, item: item }),
|
|
53
|
+
renderLoader: ({ item, nav }) => loader({
|
|
54
|
+
class: 'view-core',
|
|
55
|
+
'.item': item,
|
|
56
|
+
}, { ...renderProps, nav, item }),
|
|
57
|
+
});
|
|
58
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { nothing, TemplateResult } from 'lit-html';
|
|
2
|
+
import { RenderTabs } from '@neovici/cosmoz-tabs/next/index.js';
|
|
3
|
+
import type { Tab } from './use-tabs';
|
|
4
|
+
import type { Pagination } from './types';
|
|
5
|
+
export declare const renderNav: ({ next, prev, }: {
|
|
6
|
+
next?: () => void;
|
|
7
|
+
prev?: () => void;
|
|
8
|
+
}) => TemplateResult<1>;
|
|
9
|
+
export declare const renderPagination: (pagination?: Pagination) => TemplateResult<1> | typeof nothing;
|
|
10
|
+
export declare const renderStats: <I>({ pagination, index, items, totalAvailable, nav, }: {
|
|
11
|
+
pagination?: Pagination;
|
|
12
|
+
totalAvailable?: number;
|
|
13
|
+
index?: number;
|
|
14
|
+
items: I[];
|
|
15
|
+
nav: {
|
|
16
|
+
items?: I[];
|
|
17
|
+
index: number;
|
|
18
|
+
};
|
|
19
|
+
}) => TemplateResult<1> | typeof nothing;
|
|
20
|
+
interface RenderView<I, D> {
|
|
21
|
+
animationEnd$: Promise<unknown>;
|
|
22
|
+
details?: (i: I) => PromiseLike<D>;
|
|
23
|
+
item: I;
|
|
24
|
+
next?: () => void;
|
|
25
|
+
prev?: () => void;
|
|
26
|
+
renderItem: (opts: {
|
|
27
|
+
item: I | D;
|
|
28
|
+
nav: TemplateResult;
|
|
29
|
+
next?: () => void;
|
|
30
|
+
prev?: () => void;
|
|
31
|
+
animationEnd$?: Promise<unknown>;
|
|
32
|
+
}) => TemplateResult;
|
|
33
|
+
renderLoader: (opts: {
|
|
34
|
+
item: I;
|
|
35
|
+
nav: TemplateResult;
|
|
36
|
+
}) => TemplateResult;
|
|
37
|
+
}
|
|
38
|
+
export declare const renderView: <I, D>({ animationEnd$, details, item, next, prev, renderItem, renderLoader, }: RenderView<I, D>) => import("lit-html/directive.js").DirectiveResult<{
|
|
39
|
+
new (_partInfo: import("lit-html/directive.js").PartInfo): import("lit-html/directives/guard.js").GuardDirective<import("lit-html/directive.js").DirectiveResult<typeof import("@neovici/cosmoz-utils/directives/lazy-until").UntilDirective>>;
|
|
40
|
+
}>;
|
|
41
|
+
interface RenderSlide<I, D> extends Omit<RenderView<I, D>, 'animationEnd$'> {
|
|
42
|
+
id: (i: I) => unknown;
|
|
43
|
+
forward?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export declare const renderSlide: <I, D>({ id, forward, item, ...thru }: RenderSlide<I, D>) => {
|
|
46
|
+
id: string;
|
|
47
|
+
content: symbol;
|
|
48
|
+
animation: (inEl: HTMLElement, outEl: HTMLElement) => Promise<[Animation, Animation]>;
|
|
49
|
+
} | {
|
|
50
|
+
id: unknown;
|
|
51
|
+
render: (rnd: {
|
|
52
|
+
animationEnd$: Promise<unknown>;
|
|
53
|
+
}) => import("lit-html/directive.js").DirectiveResult<{
|
|
54
|
+
new (_partInfo: import("lit-html/directive.js").PartInfo): import("lit-html/directives/guard.js").GuardDirective<import("lit-html/directive.js").DirectiveResult<typeof import("@neovici/cosmoz-utils/directives/lazy-until").UntilDirective>>;
|
|
55
|
+
}>;
|
|
56
|
+
animation: (inEl: HTMLElement, outEl: HTMLElement) => Promise<[Animation, Animation]>;
|
|
57
|
+
};
|
|
58
|
+
export interface RenderQueue<I, D> extends Pick<RenderView<I, D>, 'renderItem' | 'renderLoader' | 'details'> {
|
|
59
|
+
heading?: string;
|
|
60
|
+
afterHeading?: unknown;
|
|
61
|
+
index?: number;
|
|
62
|
+
mobile?: boolean;
|
|
63
|
+
items: I[];
|
|
64
|
+
totalAvailable?: number;
|
|
65
|
+
list: TemplateResult;
|
|
66
|
+
pagination?: Pagination;
|
|
67
|
+
tabnav: RenderTabs<Tab>;
|
|
68
|
+
nav: Omit<RenderSlide<I, D>, 'renderItem' | 'renderLoader' | 'details'> & Pick<RenderView<I, D>, 'details'> & {
|
|
69
|
+
index: number;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export declare const renderQueue: <I, D>({ heading, afterHeading, index, mobile, tabnav, items, totalAvailable, nav, list, renderLoader, renderItem, details, pagination: _pagination, }: RenderQueue<I, D>) => TemplateResult<1>;
|
|
73
|
+
export {};
|
|
74
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/queue/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { html, nothing } from 'lit-html';
|
|
2
|
+
import { guard } from 'lit-html/directives/guard.js';
|
|
3
|
+
import { lazyUntil } from '@neovici/cosmoz-utils/directives/lazy-until';
|
|
4
|
+
import { t } from 'i18next';
|
|
5
|
+
import { renderTabs } from '@neovici/cosmoz-tabs/next/index.js';
|
|
6
|
+
import { slideInRight, slideInLeft } from '@neovici/cosmoz-slider';
|
|
7
|
+
import renderStyles from './style';
|
|
8
|
+
import { arrow } from './icon';
|
|
9
|
+
const _emptySlide = {
|
|
10
|
+
id: 'empty',
|
|
11
|
+
content: nothing,
|
|
12
|
+
animation: slideInRight,
|
|
13
|
+
};
|
|
14
|
+
const emptySlide = () => _emptySlide;
|
|
15
|
+
export const renderNav = ({ next, prev, }) => html ` <button
|
|
16
|
+
class="button-nav prev"
|
|
17
|
+
title="${t('Previous item')}"
|
|
18
|
+
?disabled=${!prev}
|
|
19
|
+
slot="extra"
|
|
20
|
+
@click=${prev}
|
|
21
|
+
>
|
|
22
|
+
${arrow}
|
|
23
|
+
</button>
|
|
24
|
+
<button
|
|
25
|
+
title="${t('Next item')}"
|
|
26
|
+
class="button-nav next"
|
|
27
|
+
?disabled=${!next}
|
|
28
|
+
slot="extra"
|
|
29
|
+
@click=${next}
|
|
30
|
+
>
|
|
31
|
+
${arrow}
|
|
32
|
+
</button>`;
|
|
33
|
+
export const renderPagination = (pagination) => {
|
|
34
|
+
if (!pagination)
|
|
35
|
+
return nothing;
|
|
36
|
+
const { pageNumber = -1, onPage } = pagination;
|
|
37
|
+
const totalPages = pagination.totalPages ??
|
|
38
|
+
Math.ceil((pagination.totalAvailable ?? 0) / (pagination.pageSize ?? 0));
|
|
39
|
+
return html ` <div class="tabn-pagination">
|
|
40
|
+
<button
|
|
41
|
+
title="${t('Previous page')}"
|
|
42
|
+
class="button-page page-prev"
|
|
43
|
+
?disabled=${!(pageNumber > 1)}
|
|
44
|
+
@click=${(e) => onPage(e.ctrlKey ? 1 : pageNumber - 1)}
|
|
45
|
+
>
|
|
46
|
+
${arrow}
|
|
47
|
+
</button>
|
|
48
|
+
<button
|
|
49
|
+
title="${t('Next page')}"
|
|
50
|
+
class="button-page page-next"
|
|
51
|
+
?disabled=${!(pageNumber < totalPages)}
|
|
52
|
+
@click=${(e) => onPage(e.ctrlKey ? totalPages : pageNumber + 1)}
|
|
53
|
+
>
|
|
54
|
+
${arrow}
|
|
55
|
+
</button>
|
|
56
|
+
</div>`;
|
|
57
|
+
};
|
|
58
|
+
export const renderStats = ({ pagination, index, items, totalAvailable, nav, }) => {
|
|
59
|
+
if (items.length < 1) {
|
|
60
|
+
return nothing;
|
|
61
|
+
}
|
|
62
|
+
return html `<div class="tabn-stats">
|
|
63
|
+
${(() => {
|
|
64
|
+
if (pagination) {
|
|
65
|
+
const { pageNumber, pageSize } = pagination;
|
|
66
|
+
const size = pageSize ?? items.length;
|
|
67
|
+
const start = ((pageNumber ?? 1) - 1) * size + index + 1;
|
|
68
|
+
const end = items.length < size
|
|
69
|
+
? pagination.totalAvailable
|
|
70
|
+
: (pageNumber ?? 1) * size;
|
|
71
|
+
return [start, end].join('-');
|
|
72
|
+
}
|
|
73
|
+
const qidx = nav.index;
|
|
74
|
+
const qlen = nav.items?.length;
|
|
75
|
+
return [
|
|
76
|
+
qlen !== items.length
|
|
77
|
+
? [qidx < 0 ? '?' : qidx + 1, qlen].join('/')
|
|
78
|
+
: [index + 1, items.length].join('-'),
|
|
79
|
+
];
|
|
80
|
+
})()}
|
|
81
|
+
${[t('of'), totalAvailable ?? t('many')].join(' ')}
|
|
82
|
+
</div>`;
|
|
83
|
+
};
|
|
84
|
+
export const renderView = ({ animationEnd$, details, item, next, prev, renderItem, renderLoader, }) => {
|
|
85
|
+
const nav = renderNav({ next, prev });
|
|
86
|
+
if (!details) {
|
|
87
|
+
return renderItem({ item, nav, next, prev, animationEnd$ });
|
|
88
|
+
}
|
|
89
|
+
const detail$ = details(item);
|
|
90
|
+
return guard([detail$, animationEnd$, next], () => lazyUntil(Promise.all([detail$, animationEnd$]).then(([item]) => renderItem({ item, nav, next, prev })), renderLoader({ item, nav })));
|
|
91
|
+
};
|
|
92
|
+
export const renderSlide = ({ id, forward, item, ...thru }) => item
|
|
93
|
+
? {
|
|
94
|
+
id: id(item),
|
|
95
|
+
render: (rnd) => renderView({
|
|
96
|
+
...rnd,
|
|
97
|
+
item,
|
|
98
|
+
...thru,
|
|
99
|
+
}),
|
|
100
|
+
animation: forward ? slideInRight : slideInLeft,
|
|
101
|
+
}
|
|
102
|
+
: emptySlide();
|
|
103
|
+
export const renderQueue = ({ heading, afterHeading, index, mobile, tabnav, items, totalAvailable, nav, list, renderLoader, renderItem, details = nav?.details, pagination: _pagination, }) => {
|
|
104
|
+
const activeTab = tabnav.active?.name;
|
|
105
|
+
const pagination = _pagination
|
|
106
|
+
? { ..._pagination, totalAvailable }
|
|
107
|
+
: undefined;
|
|
108
|
+
return html `
|
|
109
|
+
<style>
|
|
110
|
+
${renderStyles({ index, mobile })}
|
|
111
|
+
</style>
|
|
112
|
+
|
|
113
|
+
<cosmoz-tabs-next class="tabn">
|
|
114
|
+
<div class="tabn-heading">${heading}${afterHeading}</div>
|
|
115
|
+
${renderTabs({ ...tabnav, className: 'tabn-tab' })}
|
|
116
|
+
${renderStats({
|
|
117
|
+
pagination,
|
|
118
|
+
totalAvailable,
|
|
119
|
+
index,
|
|
120
|
+
items,
|
|
121
|
+
nav,
|
|
122
|
+
})}
|
|
123
|
+
${renderPagination(pagination)}
|
|
124
|
+
</cosmoz-tabs-next>
|
|
125
|
+
|
|
126
|
+
<div class="split" data-active=${activeTab}>
|
|
127
|
+
${list}
|
|
128
|
+
<cosmoz-slider
|
|
129
|
+
id="queue"
|
|
130
|
+
.slide=${renderSlide({ ...nav, renderLoader, renderItem, details })}
|
|
131
|
+
></cosmoz-slider>
|
|
132
|
+
</div>
|
|
133
|
+
`;
|
|
134
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/queue/style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,QA2JhB,CAAC;yBAEc,oBAGb;IACF,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAND,wBA8BE"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { css } from '@pionjs/pion';
|
|
2
|
+
export const base = css `
|
|
3
|
+
:host {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
height: 100%;
|
|
7
|
+
position: relative;
|
|
8
|
+
font-size: 14px;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.tabn {
|
|
12
|
+
--cosmoz-tabs-bg-color: var(--cz-bg-color);
|
|
13
|
+
box-shadow: none;
|
|
14
|
+
position: relative;
|
|
15
|
+
color: #959ba5;
|
|
16
|
+
}
|
|
17
|
+
.tabn-tab {
|
|
18
|
+
flex: 0 1 0.000001px;
|
|
19
|
+
flex: 0 1 min-content;
|
|
20
|
+
padding: 11px 16px;
|
|
21
|
+
background: inherit;
|
|
22
|
+
}
|
|
23
|
+
.tabn-tab:first-of-type {
|
|
24
|
+
margin-left: auto;
|
|
25
|
+
}
|
|
26
|
+
.tabn-tab[active] {
|
|
27
|
+
color: var(--cz-tabn-tab-active-color);
|
|
28
|
+
box-shadow: none;
|
|
29
|
+
}
|
|
30
|
+
.tabn-heading {
|
|
31
|
+
font-size: 17px;
|
|
32
|
+
font-weight: 600;
|
|
33
|
+
line-height: 25px;
|
|
34
|
+
color: var(--cz-tabn-heading-color, var(--cz-text-secondary-color));
|
|
35
|
+
margin-left: 18px;
|
|
36
|
+
white-space: nowrap;
|
|
37
|
+
}
|
|
38
|
+
.tabn-stats {
|
|
39
|
+
margin: 0 16px;
|
|
40
|
+
color: var(--cz-text-color);
|
|
41
|
+
white-space: nowrap;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.split {
|
|
45
|
+
display: flex;
|
|
46
|
+
flex: auto;
|
|
47
|
+
flex-direction: row;
|
|
48
|
+
min-height: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.gutter {
|
|
52
|
+
cursor: col-resize;
|
|
53
|
+
flex: none;
|
|
54
|
+
display: flex;
|
|
55
|
+
background: var(--cz-queue-gutter-bg, var(--cz-header-bg-color, #fff));
|
|
56
|
+
z-index: 2;
|
|
57
|
+
position: relative;
|
|
58
|
+
}
|
|
59
|
+
.gutter::before {
|
|
60
|
+
content: '';
|
|
61
|
+
display: block;
|
|
62
|
+
flex: none;
|
|
63
|
+
background: var(--cz-queue-gutter-bg, var(--cz-header-bg-color, #bbb));
|
|
64
|
+
width: 1px;
|
|
65
|
+
margin-left: auto;
|
|
66
|
+
pointer-events: none;
|
|
67
|
+
}
|
|
68
|
+
.gutter:hover::before {
|
|
69
|
+
background: var(--cz-accent-color);
|
|
70
|
+
box-shadow: -1px 0 0 1px var(--cz-accent-color);
|
|
71
|
+
}
|
|
72
|
+
.gutter:hover::after {
|
|
73
|
+
content: '';
|
|
74
|
+
display: block;
|
|
75
|
+
position: absolute;
|
|
76
|
+
top: 0;
|
|
77
|
+
left: -2px;
|
|
78
|
+
right: -2px;
|
|
79
|
+
bottom: 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
#list {
|
|
83
|
+
min-width: 0;
|
|
84
|
+
}
|
|
85
|
+
#list,
|
|
86
|
+
#queue {
|
|
87
|
+
flex: auto;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
[data-active='split'] .view-core::part(header-bg) {
|
|
91
|
+
border-top-left-radius: 0;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
[data-active='overview'] .view-core,
|
|
95
|
+
[data-active='queue'] #list {
|
|
96
|
+
display: none;
|
|
97
|
+
}
|
|
98
|
+
[data-active='overview'] #queue {
|
|
99
|
+
flex: none;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.button-nav {
|
|
103
|
+
width: 40px;
|
|
104
|
+
height: 40px;
|
|
105
|
+
cursor: pointer;
|
|
106
|
+
outline: none;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.button-nav:active {
|
|
110
|
+
background: rgba(52, 52, 52, 0.4);
|
|
111
|
+
}
|
|
112
|
+
.button-nav.prev,
|
|
113
|
+
.button-page.prev,
|
|
114
|
+
.page-prev {
|
|
115
|
+
transform: scaleX(-1);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.tabn-pagination {
|
|
119
|
+
font-size: 0;
|
|
120
|
+
display: flex;
|
|
121
|
+
border: var(--cz-pagination-border-color);
|
|
122
|
+
border-radius: var(--cz-pagination-border-radius);
|
|
123
|
+
}
|
|
124
|
+
.button-page {
|
|
125
|
+
width: 30px;
|
|
126
|
+
height: 30px;
|
|
127
|
+
padding: 0 5px;
|
|
128
|
+
cursor: pointer;
|
|
129
|
+
outline: none;
|
|
130
|
+
border: none;
|
|
131
|
+
border-radius: var(--cz-pagination-border);
|
|
132
|
+
fill: var(--cz-pagination-color);
|
|
133
|
+
position: relative;
|
|
134
|
+
background-color: transparent;
|
|
135
|
+
}
|
|
136
|
+
.button-page[disabled] {
|
|
137
|
+
opacity: 0.45;
|
|
138
|
+
pointer-events: none;
|
|
139
|
+
fill: var(--cz-pagination-inactive-color);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.button-page:active,
|
|
143
|
+
.button-page:hover {
|
|
144
|
+
fill: var(--cz-pagination-active-color);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.tabn-pagination .button-page + .button-page::before {
|
|
148
|
+
content: '';
|
|
149
|
+
position: absolute;
|
|
150
|
+
width: 1px;
|
|
151
|
+
height: 18.5px;
|
|
152
|
+
background-color: var(--cz-pagination-border-divider-color);
|
|
153
|
+
left: -0.5px;
|
|
154
|
+
top: 50%;
|
|
155
|
+
transform: translateY(-50%);
|
|
156
|
+
}
|
|
157
|
+
`;
|
|
158
|
+
export default ({ index, mobile, }) => css `
|
|
159
|
+
${base}
|
|
160
|
+
|
|
161
|
+
#list::part(itemRow-${index || '0'}) {
|
|
162
|
+
background: var(
|
|
163
|
+
--cosmoz-omnitable-highlight-color,
|
|
164
|
+
rgba(80, 138, 239, 0.4)
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
${(mobile &&
|
|
169
|
+
css `
|
|
170
|
+
.tabn-heading {
|
|
171
|
+
font-size: 14px;
|
|
172
|
+
margin-left: 12px;
|
|
173
|
+
}
|
|
174
|
+
.tabn-tab {
|
|
175
|
+
padding: 10px;
|
|
176
|
+
}
|
|
177
|
+
[name="split"] {
|
|
178
|
+
display: none;
|
|
179
|
+
}
|
|
180
|
+
}`) ||
|
|
181
|
+
''}
|
|
182
|
+
`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.test.snap.d.ts","sourceRoot":"","sources":["../../../../src/queue/test/__snapshots__/render.test.snap.js"],"names":[],"mappings":"AACA,yCAA4B"}
|