@simplysm/solid 13.0.41 → 13.0.43
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/components/data/permission-table/PermissionTable.d.ts +5 -11
- package/dist/components/data/permission-table/PermissionTable.d.ts.map +1 -1
- package/dist/components/data/permission-table/PermissionTable.js.map +1 -1
- package/dist/components/layout/sidebar/Sidebar.d.ts +1 -1
- package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar/SidebarMenu.d.ts +2 -8
- package/dist/components/layout/sidebar/SidebarMenu.d.ts.map +1 -1
- package/dist/components/layout/sidebar/SidebarMenu.js.map +1 -1
- package/dist/helpers/createAppStructure.d.ts +22 -4
- package/dist/helpers/createAppStructure.d.ts.map +1 -1
- package/dist/helpers/createAppStructure.js +126 -27
- package/dist/helpers/createAppStructure.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/docs/helpers.md +29 -6
- package/docs/hooks.md +62 -7
- package/docs/styling.md +36 -14
- package/package.json +3 -3
- package/src/components/data/permission-table/PermissionTable.tsx +25 -35
- package/src/components/layout/sidebar/Sidebar.tsx +1 -1
- package/src/components/layout/sidebar/SidebarMenu.tsx +8 -15
- package/src/helpers/createAppStructure.ts +196 -36
- package/src/index.ts +3 -0
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import type { JSX } from "solid-js";
|
|
2
2
|
import { type Component } from "solid-js";
|
|
3
|
-
|
|
4
|
-
title: string;
|
|
5
|
-
href?: string;
|
|
6
|
-
modules?: TModule[];
|
|
7
|
-
perms?: string[];
|
|
8
|
-
children?: PermissionItem<TModule>[];
|
|
9
|
-
}
|
|
3
|
+
import type { AppPerm } from "../../../helpers/createAppStructure";
|
|
10
4
|
export interface PermissionTableProps<TModule = string> {
|
|
11
|
-
items?:
|
|
5
|
+
items?: AppPerm<TModule>[];
|
|
12
6
|
value?: Record<string, boolean>;
|
|
13
7
|
onValueChange?: (value: Record<string, boolean>) => void;
|
|
14
8
|
modules?: TModule[];
|
|
@@ -17,10 +11,10 @@ export interface PermissionTableProps<TModule = string> {
|
|
|
17
11
|
style?: JSX.CSSProperties;
|
|
18
12
|
}
|
|
19
13
|
/** 트리에서 모든 고유 perm 타입을 수집 */
|
|
20
|
-
export declare function collectAllPerms<TModule>(items:
|
|
14
|
+
export declare function collectAllPerms<TModule>(items: AppPerm<TModule>[]): string[];
|
|
21
15
|
/** modules 필터: 활성 모듈과 교차가 있는 아이템만 남김 */
|
|
22
|
-
export declare function filterByModules<TModule>(items:
|
|
16
|
+
export declare function filterByModules<TModule>(items: AppPerm<TModule>[], modules: TModule[] | undefined): AppPerm<TModule>[];
|
|
23
17
|
/** 체크 변경 시 cascading 처리 */
|
|
24
|
-
export declare function changePermCheck<TModule>(value: Record<string, boolean>, item:
|
|
18
|
+
export declare function changePermCheck<TModule>(value: Record<string, boolean>, item: AppPerm<TModule>, perm: string, checked: boolean): Record<string, boolean>;
|
|
25
19
|
export declare const PermissionTable: Component<PermissionTableProps>;
|
|
26
20
|
//# sourceMappingURL=PermissionTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionTable.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\permission-table\\PermissionTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACL,KAAK,SAAS,EAQf,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PermissionTable.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\permission-table\\PermissionTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACL,KAAK,SAAS,EAQf,MAAM,UAAU,CAAC;AAMlB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAQnE,MAAM,WAAW,oBAAoB,CAAC,OAAO,GAAG,MAAM;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACzD,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAID,6BAA6B;AAC7B,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,CAY5E;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAAC,OAAO,EACrC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EACzB,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,GAC7B,OAAO,CAAC,OAAO,CAAC,EAAE,CAiBpB;AAED,2BAA2B;AAC3B,wBAAgB,eAAe,CAAC,OAAO,EACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCzB;AA8FD,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,oBAAoB,CAqG3D,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/data/permission-table/PermissionTable.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;AACA,SAEEA,cACAC,YACAC,cACAC,KACAC,IACAC,MACAC,kBACK;AACP,OAAOC,UAAU;AACjB,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,qBAAqB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["createEffect", "createMemo", "createSignal", "For", "on", "Show", "splitProps", "clsx", "twMerge", "DataSheet", "Checkbox", "borderDefault", "titleCellClass", "indentGuideWrapperClass", "indentGuideLineClass", "collectAllPerms", "items", "set", "Set", "walk", "list", "item", "perms", "p", "add", "children", "filterByModules", "modules", "length", "result", "some", "m", "includes", "undefined", "push", "changePermCheck", "value", "perm", "checked", "apply", "target", "href", "permIndex", "indexOf", "basePerm", "baseOff", "i", "child", "isItemVisible", "collectVisiblePerms", "isGroupPermChecked", "hasPermInTree", "isPermDisabled", "collectExpandable", "getChildren", "PermissionTable", "props", "local", "visibleItems", "filter", "filtered", "allPerms", "currentValue", "getAllExpandable", "expandedItems", "setExpandedItems", "defer", "handlePermChange", "newValue", "onValueChange", "_el$", "_tmpl$", "_$insert", "_$createComponent", "onExpandedItemsChange", "hideConfigBar", "Column", "key", "header", "sortable", "resizable", "ctx", "_el$2", "_tmpl$2", "_el$3", "firstChild", "_$className", "each", "Array", "from", "depth", "_el$4", "_tmpl$3", "_el$5", "title", "when", "disabled", "inset", "_$effect", "_p$", "_v$", "class", "_v$2", "style", "e", "t", "_$style"]
|
|
6
6
|
}
|
|
@@ -3,7 +3,7 @@ import { SidebarContainer } from "./SidebarContainer";
|
|
|
3
3
|
import { SidebarMenu } from "./SidebarMenu";
|
|
4
4
|
import { SidebarUser } from "./SidebarUser";
|
|
5
5
|
export type { SidebarContainerProps } from "./SidebarContainer";
|
|
6
|
-
export type {
|
|
6
|
+
export type { SidebarMenuProps } from "./SidebarMenu";
|
|
7
7
|
export type { SidebarUserMenu, SidebarUserProps } from "./SidebarUser";
|
|
8
8
|
export interface SidebarProps extends JSX.HTMLAttributes<HTMLElement> {
|
|
9
9
|
children: JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAA0B,MAAM,UAAU,CAAC;AAMlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAA0B,MAAM,UAAU,CAAC;AAMlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAuBvE,MAAM,WAAW,YAAa,SAAQ,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;IACnE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,UAAU,gBAAiB,SAAQ,eAAe,CAAC,YAAY,CAAC;IAC9D,SAAS,EAAE,OAAO,gBAAgB,CAAC;IACnC,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB,IAAI,EAAE,OAAO,WAAW,CAAC;CAC1B;AAwCD,eAAO,MAAM,OAAO,EAAkB,gBAAgB,CAAC"}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import { type Component, type JSX } from "solid-js";
|
|
2
|
-
import type {
|
|
3
|
-
export interface SidebarMenuItem {
|
|
4
|
-
title: string;
|
|
5
|
-
href?: string;
|
|
6
|
-
icon?: Component<IconProps>;
|
|
7
|
-
children?: SidebarMenuItem[];
|
|
8
|
-
}
|
|
2
|
+
import type { AppMenu } from "../../../helpers/createAppStructure";
|
|
9
3
|
export interface SidebarMenuProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
10
4
|
/**
|
|
11
5
|
* 메뉴 아이템 배열
|
|
12
6
|
*/
|
|
13
|
-
menus:
|
|
7
|
+
menus: AppMenu[];
|
|
14
8
|
}
|
|
15
9
|
/**
|
|
16
10
|
* 사이드바 메뉴 컴포넌트
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\SidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,GAAG,EAUT,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\SidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,GAAG,EAUT,MAAM,UAAU,CAAC;AAKlB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAgBnE,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5F;;OAEG;IACH,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AASD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,gBAAgB,CA4CnD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/layout/sidebar/SidebarMenu.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;AAAA,SAGEA,KACAC,MACAC,YACAC,cACAC,YACAC,cACAC,eACAC,kBAEK;AACP,SAASC,aAAaC,mBAAmB;AACzC,OAAOC,UAAU;AACjB,SAASC,eAAe;AAGxB,SAASC,YAAY;AACrB,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAEzB,MAAMC,cAAcL,KAClB,QACA,QACA,WACA,aACA,iBACA,sBACA,aACA,gBACF;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["For", "Show", "splitProps", "createSignal", "createMemo", "createEffect", "createContext", "useContext", "useLocation", "useNavigate", "clsx", "twMerge", "Icon", "List", "ListItem", "headerClass", "MenuContext", "SidebarMenu", "props", "local", "rest", "location", "findSelectedPath", "menus", "pathname", "path", "menu", "currentPath", "href", "children", "found", "initialOpenItems", "selectedPath", "Set", "slice", "getClassName", "class", "_$createComponent", "Provider", "value", "_el$", "_tmpl$", "_el$2", "firstChild", "_$spread", "_$mergeProps", "_$className", "_$insert", "inset", "each", "MenuItem", "size", "navigate", "menuContext", "hasChildren", "undefined", "length", "isExternalLink", "includes", "isSelected", "shouldBeOpen", "has", "open", "setOpen", "handleClick", "v", "window", "selected", "onOpenChange", "onClick", "when", "icon", "_el$3", "_tmpl$2", "title", "Children", "child"]
|
|
6
6
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type Accessor } from "solid-js";
|
|
2
2
|
import type { Component } from "solid-js";
|
|
3
3
|
import type { IconProps } from "@tabler/icons-solidjs";
|
|
4
|
-
import type { SidebarMenuItem } from "../components/layout/sidebar/SidebarMenu";
|
|
5
4
|
export interface AppStructureGroupItem<TModule> {
|
|
6
5
|
code: string;
|
|
7
6
|
title: string;
|
|
@@ -29,6 +28,24 @@ export interface AppStructureSubPerm<TModule> {
|
|
|
29
28
|
requiredModules?: TModule[];
|
|
30
29
|
perms: ("use" | "edit")[];
|
|
31
30
|
}
|
|
31
|
+
export interface AppMenu {
|
|
32
|
+
title: string;
|
|
33
|
+
href?: string;
|
|
34
|
+
icon?: Component<IconProps>;
|
|
35
|
+
children?: AppMenu[];
|
|
36
|
+
}
|
|
37
|
+
export interface AppPerm<TModule = string> {
|
|
38
|
+
title: string;
|
|
39
|
+
href?: string;
|
|
40
|
+
modules?: TModule[];
|
|
41
|
+
perms?: string[];
|
|
42
|
+
children?: AppPerm<TModule>[];
|
|
43
|
+
}
|
|
44
|
+
export interface AppFlatPerm<TModule = string> {
|
|
45
|
+
titleChain: string[];
|
|
46
|
+
code: string;
|
|
47
|
+
modulesChain: TModule[][];
|
|
48
|
+
}
|
|
32
49
|
export interface AppRoute {
|
|
33
50
|
path: string;
|
|
34
51
|
component: Component;
|
|
@@ -39,10 +56,11 @@ export interface AppFlatMenu {
|
|
|
39
56
|
}
|
|
40
57
|
export interface AppStructure<TModule> {
|
|
41
58
|
items: AppStructureItem<TModule>[];
|
|
42
|
-
|
|
43
|
-
usableMenus: Accessor<
|
|
59
|
+
usableRoutes: Accessor<AppRoute[]>;
|
|
60
|
+
usableMenus: Accessor<AppMenu[]>;
|
|
44
61
|
usableFlatMenus: Accessor<AppFlatMenu[]>;
|
|
45
|
-
|
|
62
|
+
usablePerms: Accessor<AppPerm<TModule>[]>;
|
|
63
|
+
flatPerms: AppFlatPerm<TModule>[];
|
|
46
64
|
getTitleChainByHref(href: string): string[];
|
|
47
65
|
}
|
|
48
66
|
export declare function createAppStructure<TModule>(opts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAppStructure.d.ts","sourceRoot":"","sources":["..\\..\\src\\helpers\\createAppStructure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,UAAU,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"createAppStructure.d.ts","sourceRoot":"","sources":["..\\..\\src\\helpers\\createAppStructure.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,27 +12,24 @@ function checkModules(modules, requiredModules, usableModules) {
|
|
|
12
12
|
}
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
15
|
-
function
|
|
15
|
+
function buildUsableRoutes(items, routeBasePath, permBasePath, usableModules, permRecord) {
|
|
16
|
+
var _a;
|
|
17
|
+
const result = [];
|
|
16
18
|
for (const item of items) {
|
|
17
|
-
|
|
19
|
+
if (!checkModules(item.modules, item.requiredModules, usableModules)) continue;
|
|
20
|
+
const routePath = routeBasePath + "/" + item.code;
|
|
21
|
+
const permPath = permBasePath + "/" + item.code;
|
|
18
22
|
if (isGroupItem(item)) {
|
|
19
|
-
|
|
23
|
+
result.push(
|
|
24
|
+
...buildUsableRoutes(item.children, routePath, permPath, usableModules, permRecord)
|
|
25
|
+
);
|
|
20
26
|
} else if (item.component !== void 0) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
});
|
|
27
|
+
if (permRecord !== void 0 && ((_a = item.perms) == null ? void 0 : _a.includes("use")) && !permRecord[permPath + "/use"])
|
|
28
|
+
continue;
|
|
29
|
+
result.push({ path: routePath, component: item.component });
|
|
25
30
|
}
|
|
26
31
|
}
|
|
27
|
-
|
|
28
|
-
function extractRoutes(items) {
|
|
29
|
-
const routes = [];
|
|
30
|
-
for (const top of items) {
|
|
31
|
-
if (isGroupItem(top)) {
|
|
32
|
-
collectRoutes(top.children, [], routes);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return routes;
|
|
32
|
+
return result;
|
|
36
33
|
}
|
|
37
34
|
function buildMenus(items, basePath, usableModules, permRecord) {
|
|
38
35
|
var _a;
|
|
@@ -47,7 +44,7 @@ function buildMenus(items, basePath, usableModules, permRecord) {
|
|
|
47
44
|
}
|
|
48
45
|
} else {
|
|
49
46
|
if (item.isNotMenu) continue;
|
|
50
|
-
if (((_a = item.perms) == null ? void 0 : _a.includes("use")) && !permRecord[href + "/use"]) continue;
|
|
47
|
+
if (((_a = item.perms) == null ? void 0 : _a.includes("use")) && !(permRecord == null ? void 0 : permRecord[href + "/use"])) continue;
|
|
51
48
|
result.push({ title: item.title, href, icon: item.icon });
|
|
52
49
|
}
|
|
53
50
|
}
|
|
@@ -65,6 +62,84 @@ function flattenMenus(menus, titleChain = []) {
|
|
|
65
62
|
}
|
|
66
63
|
return result;
|
|
67
64
|
}
|
|
65
|
+
function buildPerms(items, basePath, usableModules) {
|
|
66
|
+
var _a;
|
|
67
|
+
const result = [];
|
|
68
|
+
for (const item of items) {
|
|
69
|
+
if (!checkModules(item.modules, item.requiredModules, usableModules)) continue;
|
|
70
|
+
const href = basePath + "/" + item.code;
|
|
71
|
+
if (isGroupItem(item)) {
|
|
72
|
+
const children = buildPerms(item.children, href, usableModules);
|
|
73
|
+
result.push({
|
|
74
|
+
title: item.title,
|
|
75
|
+
modules: item.modules,
|
|
76
|
+
children
|
|
77
|
+
});
|
|
78
|
+
} else {
|
|
79
|
+
result.push({
|
|
80
|
+
title: item.title,
|
|
81
|
+
href,
|
|
82
|
+
modules: item.modules,
|
|
83
|
+
perms: item.perms,
|
|
84
|
+
children: (_a = item.subPerms) == null ? void 0 : _a.filter((sp) => checkModules(sp.modules, sp.requiredModules, usableModules)).map((sp) => ({
|
|
85
|
+
title: sp.title,
|
|
86
|
+
href: href + "/" + sp.code,
|
|
87
|
+
modules: sp.modules,
|
|
88
|
+
perms: sp.perms
|
|
89
|
+
}))
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
function collectFlatPerms(items) {
|
|
96
|
+
const results = [];
|
|
97
|
+
const queue = items.map((item) => ({
|
|
98
|
+
item,
|
|
99
|
+
titleChain: [],
|
|
100
|
+
codePath: "",
|
|
101
|
+
modulesChain: []
|
|
102
|
+
}));
|
|
103
|
+
while (queue.length > 0) {
|
|
104
|
+
const { item, titleChain, codePath, modulesChain } = queue.shift();
|
|
105
|
+
const currTitleChain = [...titleChain, item.title];
|
|
106
|
+
const currCodePath = codePath + "/" + item.code;
|
|
107
|
+
const currModulesChain = item.modules ? [...modulesChain, item.modules] : modulesChain;
|
|
108
|
+
if (isGroupItem(item)) {
|
|
109
|
+
for (const child of item.children) {
|
|
110
|
+
queue.push({
|
|
111
|
+
item: child,
|
|
112
|
+
titleChain: currTitleChain,
|
|
113
|
+
codePath: currCodePath,
|
|
114
|
+
modulesChain: currModulesChain
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
} else {
|
|
118
|
+
if (item.perms) {
|
|
119
|
+
for (const perm of item.perms) {
|
|
120
|
+
results.push({
|
|
121
|
+
titleChain: currTitleChain,
|
|
122
|
+
code: currCodePath + "/" + perm,
|
|
123
|
+
modulesChain: currModulesChain
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (item.subPerms) {
|
|
128
|
+
for (const subPerm of item.subPerms) {
|
|
129
|
+
const subModulesChain = subPerm.modules ? [...currModulesChain, subPerm.modules] : currModulesChain;
|
|
130
|
+
for (const perm of subPerm.perms) {
|
|
131
|
+
results.push({
|
|
132
|
+
titleChain: currTitleChain,
|
|
133
|
+
code: currCodePath + "/" + subPerm.code + "/" + perm,
|
|
134
|
+
modulesChain: subModulesChain
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return results;
|
|
142
|
+
}
|
|
68
143
|
function findItemChainByCodes(items, codes) {
|
|
69
144
|
const result = [];
|
|
70
145
|
let currentItems = items;
|
|
@@ -77,33 +152,57 @@ function findItemChainByCodes(items, codes) {
|
|
|
77
152
|
return result;
|
|
78
153
|
}
|
|
79
154
|
function createAppStructure(opts) {
|
|
80
|
-
const
|
|
81
|
-
var _a;
|
|
82
|
-
return ((_a = opts.permRecord) == null ? void 0 : _a.call(opts)) ?? {};
|
|
83
|
-
};
|
|
84
|
-
const routes = extractRoutes(opts.items);
|
|
155
|
+
const flatPerms = collectFlatPerms(opts.items);
|
|
85
156
|
const memos = createRoot(() => {
|
|
157
|
+
const usableRoutes = createMemo(() => {
|
|
158
|
+
var _a, _b;
|
|
159
|
+
const routes = [];
|
|
160
|
+
for (const top of opts.items) {
|
|
161
|
+
if (isGroupItem(top)) {
|
|
162
|
+
routes.push(
|
|
163
|
+
...buildUsableRoutes(
|
|
164
|
+
top.children,
|
|
165
|
+
"",
|
|
166
|
+
"/" + top.code,
|
|
167
|
+
(_a = opts.usableModules) == null ? void 0 : _a.call(opts),
|
|
168
|
+
(_b = opts.permRecord) == null ? void 0 : _b.call(opts)
|
|
169
|
+
)
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return routes;
|
|
174
|
+
});
|
|
86
175
|
const usableMenus = createMemo(() => {
|
|
87
|
-
var _a;
|
|
176
|
+
var _a, _b;
|
|
88
177
|
const menus = [];
|
|
89
178
|
for (const top of opts.items) {
|
|
90
179
|
if (isGroupItem(top)) {
|
|
91
180
|
menus.push(
|
|
92
|
-
...buildMenus(
|
|
181
|
+
...buildMenus(
|
|
182
|
+
top.children,
|
|
183
|
+
"/" + top.code,
|
|
184
|
+
(_a = opts.usableModules) == null ? void 0 : _a.call(opts),
|
|
185
|
+
(_b = opts.permRecord) == null ? void 0 : _b.call(opts)
|
|
186
|
+
)
|
|
93
187
|
);
|
|
94
188
|
}
|
|
95
189
|
}
|
|
96
190
|
return menus;
|
|
97
191
|
});
|
|
98
192
|
const usableFlatMenus = createMemo(() => flattenMenus(usableMenus()));
|
|
99
|
-
|
|
193
|
+
const usablePerms = createMemo(() => {
|
|
194
|
+
var _a;
|
|
195
|
+
return buildPerms(opts.items, "", (_a = opts.usableModules) == null ? void 0 : _a.call(opts));
|
|
196
|
+
});
|
|
197
|
+
return { usableRoutes, usableMenus, usableFlatMenus, usablePerms };
|
|
100
198
|
});
|
|
101
199
|
return {
|
|
102
200
|
items: opts.items,
|
|
103
|
-
|
|
201
|
+
usableRoutes: memos.usableRoutes,
|
|
104
202
|
usableMenus: memos.usableMenus,
|
|
105
203
|
usableFlatMenus: memos.usableFlatMenus,
|
|
106
|
-
|
|
204
|
+
usablePerms: memos.usablePerms,
|
|
205
|
+
flatPerms,
|
|
107
206
|
getTitleChainByHref(href) {
|
|
108
207
|
const codes = href.split("/").filter(Boolean);
|
|
109
208
|
return findItemChainByCodes(opts.items, codes).map((item) => item.title);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/helpers/createAppStructure.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAwB,YAAY,kBAAkB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -84,5 +84,5 @@ export { ripple } from "./directives/ripple";
|
|
|
84
84
|
export { mergeStyles } from "./helpers/mergeStyles";
|
|
85
85
|
export { splitSlots } from "./helpers/splitSlots";
|
|
86
86
|
export { createAppStructure } from "./helpers/createAppStructure";
|
|
87
|
-
export type { AppStructureItem, AppStructureGroupItem, AppStructureLeafItem, AppStructureSubPerm, AppRoute, AppFlatMenu, AppStructure, } from "./helpers/createAppStructure";
|
|
87
|
+
export type { AppStructureItem, AppStructureGroupItem, AppStructureLeafItem, AppStructureSubPerm, AppRoute, AppFlatMenu, AppMenu, AppPerm, AppFlatPerm, AppStructure, } from "./helpers/createAppStructure";
|
|
88
88
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["..\\src\\index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["..\\src\\index.ts"],"names":[],"mappings":"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"}
|
package/docs/helpers.md
CHANGED
|
@@ -14,18 +14,41 @@ const style = mergeStyles("color: red", { fontSize: "14px" }, props.style);
|
|
|
14
14
|
|
|
15
15
|
## splitSlots
|
|
16
16
|
|
|
17
|
-
Utility for splitting children into named slots based on
|
|
17
|
+
Utility for splitting resolved children into named slots based on `data-*` attributes. Returns a tuple of `[slots accessor, content accessor]`.
|
|
18
|
+
|
|
19
|
+
Slot keys are matched against the element's `dataset` (camelCase). Sub-components that set a matching data attribute (e.g., `data-select-header`) are separated into the named slot; all other children remain in `content`.
|
|
18
20
|
|
|
19
21
|
```typescript
|
|
20
22
|
import { splitSlots } from "@simplysm/solid";
|
|
23
|
+
import { children } from "solid-js";
|
|
24
|
+
|
|
25
|
+
// Inside a component:
|
|
26
|
+
const resolved = children(() => props.children);
|
|
27
|
+
const [slots, content] = splitSlots(resolved, ["selectHeader", "selectAction"] as const);
|
|
28
|
+
|
|
29
|
+
// Access inside JSX (within a reactive context)
|
|
30
|
+
<div>{slots().selectHeader}</div> // HTMLElement[] matching data-select-header
|
|
31
|
+
<div>{content()}</div> // JSX.Element[] – remaining children
|
|
32
|
+
```
|
|
21
33
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
34
|
+
**Signature:**
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
function splitSlots<K extends string>(
|
|
38
|
+
resolved: { toArray: () => unknown[] },
|
|
39
|
+
keys: readonly K[],
|
|
40
|
+
): [Accessor<Record<K, HTMLElement[]>>, Accessor<JSX.Element[]>]
|
|
27
41
|
```
|
|
28
42
|
|
|
43
|
+
| Parameter | Type | Description |
|
|
44
|
+
|-----------|------|-------------|
|
|
45
|
+
| `resolved` | `{ toArray: () => unknown[] }` | Resolved children from SolidJS `children()` |
|
|
46
|
+
| `keys` | `readonly K[]` | Slot key names (camelCase, matched against `element.dataset`) |
|
|
47
|
+
|
|
48
|
+
Returns a tuple:
|
|
49
|
+
- `slots` — `Accessor<Record<K, HTMLElement[]>>` — named slot elements per key
|
|
50
|
+
- `content` — `Accessor<JSX.Element[]>` — remaining children not matched by any key
|
|
51
|
+
|
|
29
52
|
---
|
|
30
53
|
|
|
31
54
|
## ripple directive
|
package/docs/hooks.md
CHANGED
|
@@ -238,13 +238,14 @@ const items: AppStructureItem<string>[] = [
|
|
|
238
238
|
const structure = createAppStructure({
|
|
239
239
|
items,
|
|
240
240
|
usableModules: () => activeModules(), // optional: filter by active modules
|
|
241
|
-
permRecord: () => userPermissions(), // optional:
|
|
241
|
+
permRecord: () => userPermissions(), // optional: Record<string, boolean> permission state
|
|
242
242
|
});
|
|
243
243
|
|
|
244
|
-
// structure.
|
|
245
|
-
// structure.usableMenus()
|
|
246
|
-
// structure.usableFlatMenus() --
|
|
247
|
-
// structure.
|
|
244
|
+
// structure.usableRoutes() -- Accessor<AppRoute[]> - filtered route array (pass to @solidjs/router)
|
|
245
|
+
// structure.usableMenus() -- Accessor<AppMenu[]> - filtered menu array for Sidebar.Menu
|
|
246
|
+
// structure.usableFlatMenus() -- Accessor<AppFlatMenu[]> - flat filtered menu list
|
|
247
|
+
// structure.usablePerms() -- Accessor<AppPerm[]> - filtered permission tree
|
|
248
|
+
// structure.flatPerms -- AppFlatPerm[] - all flat perm entries (static, not reactive)
|
|
248
249
|
```
|
|
249
250
|
|
|
250
251
|
**Routing integration with `@solidjs/router`:**
|
|
@@ -261,7 +262,7 @@ render(
|
|
|
261
262
|
<Route path="/" component={App}>
|
|
262
263
|
<Route path="/home" component={Home}>
|
|
263
264
|
<Route path="/" component={() => <Navigate href="/home/main" />} />
|
|
264
|
-
<For each={appStructure.
|
|
265
|
+
<For each={appStructure.usableRoutes()}>
|
|
265
266
|
{(r) => <Route path={r.path} component={r.component} />}
|
|
266
267
|
</For>
|
|
267
268
|
<Route path="/*" component={NotFoundPage} />
|
|
@@ -274,7 +275,52 @@ render(
|
|
|
274
275
|
);
|
|
275
276
|
```
|
|
276
277
|
|
|
277
|
-
Each route object in `structure.
|
|
278
|
+
Each route object in `structure.usableRoutes()` has `path` (derived from nested `code` values) and `component` properties, ready to pass directly to `<Route>`. Note that `usableRoutes` is a reactive accessor — it re-evaluates when `usableModules` or `permRecord` signals change.
|
|
279
|
+
|
|
280
|
+
**AppStructure return type:**
|
|
281
|
+
|
|
282
|
+
```typescript
|
|
283
|
+
interface AppStructure<TModule> {
|
|
284
|
+
items: AppStructureItem<TModule>[];
|
|
285
|
+
usableRoutes: Accessor<AppRoute[]>; // reactive, filtered by modules + permRecord
|
|
286
|
+
usableMenus: Accessor<AppMenu[]>; // reactive, filtered by modules + permRecord
|
|
287
|
+
usableFlatMenus: Accessor<AppFlatMenu[]>; // reactive, flat version of usableMenus
|
|
288
|
+
usablePerms: Accessor<AppPerm<TModule>[]>; // reactive, filtered permission tree
|
|
289
|
+
flatPerms: AppFlatPerm<TModule>[]; // static, all perm entries (not reactive)
|
|
290
|
+
getTitleChainByHref(href: string): string[];
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
interface AppRoute {
|
|
294
|
+
path: string;
|
|
295
|
+
component: Component;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
interface AppMenu {
|
|
299
|
+
title: string;
|
|
300
|
+
href?: string;
|
|
301
|
+
icon?: Component<IconProps>;
|
|
302
|
+
children?: AppMenu[];
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
interface AppFlatMenu {
|
|
306
|
+
titleChain: string[];
|
|
307
|
+
href: string;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
interface AppPerm<TModule = string> {
|
|
311
|
+
title: string;
|
|
312
|
+
href?: string;
|
|
313
|
+
modules?: TModule[];
|
|
314
|
+
perms?: string[];
|
|
315
|
+
children?: AppPerm<TModule>[];
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
interface AppFlatPerm<TModule = string> {
|
|
319
|
+
titleChain: string[];
|
|
320
|
+
code: string;
|
|
321
|
+
modulesChain: TModule[][];
|
|
322
|
+
}
|
|
323
|
+
```
|
|
278
324
|
|
|
279
325
|
**AppStructureItem types:**
|
|
280
326
|
|
|
@@ -302,6 +348,15 @@ interface AppStructureLeafItem<TModule> {
|
|
|
302
348
|
isNotMenu?: boolean; // exclude from menu but include in routing
|
|
303
349
|
}
|
|
304
350
|
|
|
351
|
+
// Sub-permission item
|
|
352
|
+
interface AppStructureSubPerm<TModule> {
|
|
353
|
+
code: string;
|
|
354
|
+
title: string;
|
|
355
|
+
modules?: TModule[];
|
|
356
|
+
requiredModules?: TModule[];
|
|
357
|
+
perms: ("use" | "edit")[];
|
|
358
|
+
}
|
|
359
|
+
|
|
305
360
|
type AppStructureItem<TModule> = AppStructureGroupItem<TModule> | AppStructureLeafItem<TModule>;
|
|
306
361
|
```
|
|
307
362
|
|