sprof 0.9.12 → 0.9.14
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/dist/auto-import.d.ts +1 -1
- package/dist/auto-import.js +9 -9
- package/dist/core/composables/index.d.ts +4 -1
- package/dist/core/composables/usePageFTSP.d.ts +55 -0
- package/dist/core/composables/usePageFTSP.test.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/sprof.js +1226 -1207
- package/dist/sprof.umd.cjs +12 -12
- package/package.json +2 -2
package/dist/auto-import.d.ts
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* его можно использовать в любом vite-конфиге без бандла sprof.
|
|
28
28
|
*/
|
|
29
29
|
/** Идентификаторы, которые инжектит unplugin-auto-import */
|
|
30
|
-
export declare const sprofAutoImportNames: readonly ["PF", "PFM", "useCrud", "useFilters", "useLoader", "useOptions", "usePagination"];
|
|
30
|
+
export declare const sprofAutoImportNames: readonly ["PF", "PFM", "useCrud", "useFilters", "useLoader", "useOptions", "usePageFTSP", "usePagination"];
|
|
31
31
|
export interface SprofAutoImportsPreset {
|
|
32
32
|
from: string;
|
|
33
33
|
imports: string[];
|
package/dist/auto-import.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
const
|
|
1
|
+
const t = ["PF", "PFM", "useCrud", "useFilters", "useLoader", "useOptions", "usePageFTSP", "usePagination"], u = {
|
|
2
2
|
from: "sprof",
|
|
3
|
-
imports: [...
|
|
3
|
+
imports: [...t]
|
|
4
4
|
};
|
|
5
|
-
function
|
|
6
|
-
const s = r.prefix ?? "P",
|
|
5
|
+
function f(r = {}) {
|
|
6
|
+
const s = r.prefix ?? "P", e = r.from ?? "sprof";
|
|
7
7
|
return {
|
|
8
8
|
type: "component",
|
|
9
9
|
resolve: (o) => {
|
|
10
10
|
if (o.startsWith(s))
|
|
11
|
-
return { name: o, from:
|
|
11
|
+
return { name: o, from: e };
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
export {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
f as SprofResolver,
|
|
17
|
+
u as default,
|
|
18
|
+
t as sprofAutoImportNames,
|
|
19
|
+
u as sprofAutoImports
|
|
20
20
|
};
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* - useFilters — фильтры FTSP: add/replace/remove/has/clear;
|
|
6
6
|
* - usePagination — пагинация FTSP: page (1-based)/rowsPerPage/next/prev/reset;
|
|
7
7
|
* - useOptions — справочник для селекта: кэш + дедуп (К1, Т8);
|
|
8
|
-
* - useLoader — состояния загрузки: loading/error/data + ретрай (Т
|
|
8
|
+
* - useLoader — состояния загрузки: loading/error/data + ретрай (Т2а, пара к `PLoader`);
|
|
9
|
+
* - usePageFTSP — FTSP НА СТРАНИЦУ через provide/inject (Ф2.3): фильтры/таблица
|
|
10
|
+
* делят одно состояние, не трогая глобальный синглтон.
|
|
9
11
|
*
|
|
10
12
|
* По умолчанию работают с глобальным синглтоном FTSP.Get(); во всех трёх можно
|
|
11
13
|
* передать свой экземпляр FTSP (страница/компонент) — см. T1 в TECH_DEBT.md.
|
|
@@ -18,6 +20,7 @@ export type { LoaderFn, LoaderRetryOptions, UseLoaderOptions, UseLoaderReturn }
|
|
|
18
20
|
export { useLoader } from './useLoader';
|
|
19
21
|
export type { UseOptionsOptions, UseOptionsReturn } from './useOptions';
|
|
20
22
|
export { useOptions } from './useOptions';
|
|
23
|
+
export { createPageFTSP, PageFTSPKey, providePageFTSP, usePageFTSP, usePageFTSPRef } from './usePageFTSP';
|
|
21
24
|
export type { UsePaginationReturn } from './usePagination';
|
|
22
25
|
export { usePagination } from './usePagination';
|
|
23
26
|
export type { PlatformName, ThemeName, UseThemeOptions, UseThemeReturn } from './useTheme';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { InjectionKey, Ref } from 'vue';
|
|
2
|
+
import { default as FTSP } from '../ftsp/FTSP';
|
|
3
|
+
/**
|
|
4
|
+
* FTSP на СТРАНИЦУ (а не на всё приложение) — через `provide`/`inject`.
|
|
5
|
+
*
|
|
6
|
+
* ⚠️ ЗАЧЕМ (Ф2.3). `FTSP.Get()` — синглтон на всё SPA: фильтры, сортировка и
|
|
7
|
+
* пагинация «перетекают» между разделами, и каждый список вынужден вручную
|
|
8
|
+
* звать `reset()`. Хуже того — состояние НЕЛЬЗЯ увидеть локально: глядя на
|
|
9
|
+
* страницу, не понимаешь, чьи фильтры в ней сейчас.
|
|
10
|
+
*
|
|
11
|
+
* Решение: корень страницы-списка создаёт СВОЙ экземпляр и публикует его для
|
|
12
|
+
* поддерева. Подкомпоненты (тулбар фильтров, таблица, под-списки) берут его
|
|
13
|
+
* через `usePageFTSP()` — и получают ОДНО состояние на всех, не зная друг о
|
|
14
|
+
* друге и не трогая глобальное.
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* // Корень страницы
|
|
18
|
+
* const ftsp = providePageFTSP();
|
|
19
|
+
* onMounted(() => store.FTSP({ ftsp }));
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* ```ts
|
|
23
|
+
* // Тулбар/таблица ниже в дереве
|
|
24
|
+
* const ftsp = usePageFTSP(); // тот же экземпляр
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* ⚠️ Вне провайдера `usePageFTSP()` возвращает ГЛОБАЛЬНЫЙ синглтон —
|
|
28
|
+
* поведение существующих компонентов не меняется, миграция постепенная.
|
|
29
|
+
* ⚠️ `createPageFTSP()` (без регистрации) — для мест, где экземпляр нужен
|
|
30
|
+
* вне компонентного дерева (сервисы, хелперы).
|
|
31
|
+
*/
|
|
32
|
+
type PageFTSPInstance = InstanceType<typeof FTSP>;
|
|
33
|
+
/** Ключ provide/inject: FTSP текущей страницы-списка. */
|
|
34
|
+
export declare const PageFTSPKey: InjectionKey<PageFTSPInstance>;
|
|
35
|
+
/**
|
|
36
|
+
* Свежий экземпляр FTSP (реактивный — как `FTSP.Get()`, C2.3), БЕЗ регистрации
|
|
37
|
+
* в дереве. Нужен сервисам/хелперам, которые не могут вызвать `provide`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createPageFTSP(): PageFTSPInstance;
|
|
40
|
+
/**
|
|
41
|
+
* Создать FTSP страницы И опубликовать его для поддерева.
|
|
42
|
+
*
|
|
43
|
+
* Возвращает тот же экземпляр — вызывающий код передаёт его в `store.FTSP({ ftsp })`.
|
|
44
|
+
* ⚠️ Вызывать в `setup()` компонента-корня списка (вне `setup` `provide`
|
|
45
|
+
* бессмыслен — предупреждаем явно, иначе ошибка всплывёт далеко от места).
|
|
46
|
+
*/
|
|
47
|
+
export declare function providePageFTSP(existing?: PageFTSPInstance): PageFTSPInstance;
|
|
48
|
+
/**
|
|
49
|
+
* FTSP текущей страницы: внутри поддерева страницы-списка — её экземпляр,
|
|
50
|
+
* иначе — глобальный синглтон (`FTSP.Get()`), то есть прежнее поведение.
|
|
51
|
+
*/
|
|
52
|
+
export declare function usePageFTSP(): PageFTSPInstance;
|
|
53
|
+
/** Реактивная ссылка на FTSP текущей страницы (удобно для `watch`). */
|
|
54
|
+
export declare function usePageFTSPRef(): Readonly<Ref<PageFTSPInstance>>;
|
|
55
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -50,6 +50,7 @@ export type { LoaderFn, LoaderRetryOptions, UseLoaderOptions, UseLoaderReturn }
|
|
|
50
50
|
export type { UsePaginationReturn } from './core/composables/usePagination';
|
|
51
51
|
export type { UseOptionsOptions, UseOptionsReturn } from './core/composables/useOptions';
|
|
52
52
|
export { useOptions } from './core/composables/useOptions';
|
|
53
|
+
export { createPageFTSP, PageFTSPKey, providePageFTSP, usePageFTSP, usePageFTSPRef } from './core/composables/usePageFTSP';
|
|
53
54
|
export type { PlatformName, ThemeName, UseThemeOptions, UseThemeReturn } from './core/composables/useTheme';
|
|
54
55
|
export { DEFAULT_PLATFORM, getStoredTheme, isThemeLockedLight, lockLightTheme, MOBILE_MAX_WIDTH, resolvePlatform, useTheme } from './core/composables/useTheme';
|
|
55
56
|
export type { QuasarBrand } from './core/brand/quasar';
|