@isoftdata/svelte-user-configuration 1.0.4 → 1.0.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.
@@ -11,23 +11,24 @@ export let siteLabel = "Site";
11
11
  export let permissionValueChange = void 0;
12
12
  export let icon = "user-lock";
13
13
  export let cardHeaderTitle = translate("common:permissions", "Permissions");
14
+ export let permissionValueMap = /* @__PURE__ */ new Map();
15
+ export let groupPermissionValueMap = void 0;
14
16
  let computedPermissions = [];
15
17
  let selectedPermissionIds = /* @__PURE__ */ new Set();
16
18
  let selectedPermissionValue = null;
17
- const permissionColumns = getColumns(permissions);
19
+ const permissionColumns = getColumns(groupPermissionValueMap);
18
20
  const permissionValueList = {
19
21
  NONE: { label: translate("common:permissionLevel.none", "None"), value: "NONE", color: "danger" },
20
22
  SITE: { label: translate(`common:permissionLevel.${siteLabel.toLowerCase()}`, siteLabel), value: "SITE", color: "primary" },
21
23
  GLOBAL: { label: translate("common:permissionLevel.global", "Global"), value: "GLOBAL", color: "success" }
22
24
  };
23
- function getColumns(permissions2) {
24
- const hasGroupValue = permissions2.every((permission) => !!permission.groupValue);
25
+ function getColumns(groupPermissionValueMap2) {
25
26
  let columns = [
26
- { property: "value", name: hasGroupValue ? translate("common:user", "User") : translate("common:permission", "Permission"), width: "1rem" },
27
+ { property: "value", name: groupPermissionValueMap2 ? translate("common:user", "User") : translate("common:permission", "Permission"), width: "1rem" },
27
28
  { property: "category", name: translate("common:category", "Category") },
28
29
  { property: "displayName", name: translate("common:name", "Name") }
29
30
  ];
30
- if (hasGroupValue) {
31
+ if (groupPermissionValueMap2) {
31
32
  columns.splice(
32
33
  1,
33
34
  0,
@@ -55,31 +56,32 @@ const isValidPermissionValue = (value) => Object.keys(permissionValueList).inclu
55
56
  async function updatePermissionValues(event, permissionIds) {
56
57
  const newValue = getEventValue(event);
57
58
  if (isValidPermissionValue(newValue)) {
58
- for (const permission of permissions) {
59
- if (permissionIds.has(permission.id)) {
60
- permission.value = newValue;
61
- }
59
+ const permissionIdsArray = Array.from(permissionIds);
60
+ for (const id of permissionIdsArray) {
61
+ permissionValueMap.set(id, newValue);
62
62
  }
63
- permissions = permissions;
63
+ permissionValueMap = permissionValueMap;
64
64
  await permissionValueChange?.({
65
65
  value: newValue,
66
- permissionIds: Array.from(permissionIds)
66
+ permissionIds: permissionIdsArray
67
67
  });
68
68
  }
69
69
  }
70
- function getComputedPermissions(permissions2) {
70
+ function getComputedPermissions(permissions2, permissionValueMap2, groupPermissionValueMap2) {
71
71
  return permissions2.map((permission) => {
72
- const { value, groupValue } = permission;
73
- let computedValue = value === "NONE" && groupValue || value === "SITE" && groupValue === "GLOBAL" ? groupValue : value;
72
+ const value = permissionValueMap2.get(permission.id) ?? "NONE";
73
+ const groupValue = groupPermissionValueMap2?.get(permission.id);
74
74
  return {
75
75
  ...permission,
76
76
  displayName: translate(`permissions:${camelCase(permission.codeName)}.displayName`, permission.displayName),
77
77
  category: translate(`permissions:categories.${camelCase(permission.category)}`, permission.category),
78
- computedValue
78
+ value,
79
+ groupValue,
80
+ computedValue: value === "NONE" && groupValue || value === "SITE" && groupValue === "GLOBAL" ? groupValue : value
79
81
  };
80
82
  });
81
83
  }
82
- $: computedPermissions = getComputedPermissions(permissions);
84
+ $: computedPermissions = getComputedPermissions(permissions, permissionValueMap, groupPermissionValueMap);
83
85
  </script>
84
86
 
85
87
  <div
@@ -6,11 +6,7 @@ declare const __propDef: {
6
6
  id: number;
7
7
  displayName: string;
8
8
  category: string;
9
- value: "NONE" | "SITE" | "GLOBAL";
10
- /** Ractive version of this component didn't require `codeName`, but the translation key for permissions requires it, so we can't translate without it.*/
11
9
  codeName: string;
12
- /** Providing this value will cause the Group and Access columns to be rendered*/
13
- groupValue?: "NONE" | "SITE" | "GLOBAL";
14
10
  }>;
15
11
  siteLabel?: SiteLabel;
16
12
  permissionValueChange?: ((change: {
@@ -19,6 +15,8 @@ declare const __propDef: {
19
15
  }) => void | Promise<void>) | undefined;
20
16
  icon?: IconName;
21
17
  cardHeaderTitle?: string;
18
+ permissionValueMap: Map<number, "NONE" | "SITE" | "GLOBAL">;
19
+ groupPermissionValueMap?: Map<number, "NONE" | "SITE" | "GLOBAL"> | undefined;
22
20
  };
23
21
  events: {
24
22
  [evt: string]: CustomEvent<any>;
@@ -27,6 +27,8 @@ export let groupMembership;
27
27
  export let canEditGroupMembership = true;
28
28
  export let groupMembershipChange = void 0;
29
29
  export let permissions;
30
+ export let permissionValueMap = /* @__PURE__ */ new Map();
31
+ export let groupPermissionValueMap = void 0;
30
32
  export let permissionValueChange = void 0;
31
33
  </script>
32
34
 
@@ -79,6 +81,8 @@ export let permissionValueChange = void 0;
79
81
  <div class="col-12">
80
82
  <PermissionList
81
83
  {permissions}
84
+ {permissionValueMap}
85
+ {groupPermissionValueMap}
82
86
  {permissionValueChange}
83
87
  icon={permissionListIcon}
84
88
  cardHeaderTitle={permissionListCardHeaderTitle}
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import type { ErrorFn, IconName, UserSites, SuccessFn, SiteLabel, UserAccount, Permissions, GroupMembership, CanToggleActive, DeactivateUserFn, CanEditSiteAccess, IsCreatingNewUser, SiteAccessChangeFn, CanEditAccountInfo, ConfirmPasswordSetFn, AccountInfoChangedFn, CanEditGroupMembership, GroupMembershipChangeFn, PermissionValueChangeFn, GenerateNewActivationPINFn, SendPasswordRecoveryTokenFn, HasPermissionToChangePassword, PermissionListCardHeaderTitle } from './util';
2
+ import type { ErrorFn, IconName, UserSites, SuccessFn, SiteLabel, UserAccount, Permissions, GroupMembership, CanToggleActive, DeactivateUserFn, CanEditSiteAccess, IsCreatingNewUser, SiteAccessChangeFn, PermissionValueMap, CanEditAccountInfo, ConfirmPasswordSetFn, AccountInfoChangedFn, CanEditGroupMembership, GroupMembershipChangeFn, PermissionValueChangeFn, GroupPermissionValueMap, GenerateNewActivationPINFn, SendPasswordRecoveryTokenFn, HasPermissionToChangePassword, PermissionListCardHeaderTitle } from './util';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  siteLabel?: SiteLabel;
@@ -27,6 +27,8 @@ declare const __propDef: {
27
27
  canEditGroupMembership?: CanEditGroupMembership;
28
28
  groupMembershipChange?: GroupMembershipChangeFn;
29
29
  permissions: Permissions;
30
+ permissionValueMap?: PermissionValueMap;
31
+ groupPermissionValueMap?: GroupPermissionValueMap;
30
32
  permissionValueChange?: PermissionValueChangeFn;
31
33
  };
32
34
  events: {
package/dist/util.d.ts CHANGED
@@ -41,5 +41,7 @@ export type GroupMembership = ComponentProps<UserGroupMembership>['groupMembersh
41
41
  export type GroupMembershipChangeFn = ComponentProps<UserGroupMembership>['groupMembershipChange'];
42
42
  export type CanEditGroupMembership = ComponentProps<UserGroupMembership>['canEditGroupMembership'];
43
43
  export type Permissions = ComponentProps<PermissionList>['permissions'];
44
+ export type PermissionValueMap = ComponentProps<PermissionList>['permissionValueMap'];
45
+ export type GroupPermissionValueMap = ComponentProps<PermissionList>['groupPermissionValueMap'];
44
46
  export type PermissionValueChangeFn = ComponentProps<PermissionList>['permissionValueChange'];
45
47
  export type PermissionListCardHeaderTitle = ComponentProps<PermissionList>['cardHeaderTitle'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isoftdata/svelte-user-configuration",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build && npm run package",