@isoftdata/svelte-user-configuration 2.0.5 → 2.1.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 CHANGED
@@ -29,7 +29,7 @@ pnpm i @isoftdata/svelte-user-configuration
29
29
  | `doSendPasswordRecoveryToken` | boolean | ❌ | `false` | Whether to allow sending password recovery tokens. |
30
30
  | `hasPermissionToChangePassword` | boolean | ❌ | `false` | Whether the user has permission to change passwords. |
31
31
  | `myAccountMode` | boolean | ❌ | `false` | When `true`, admin controls will be hidden/disabled. This is designed to be used when using the user account info component standalone so the current session user can edit their own account info, including first & last name, password recovery email, & password. |
32
- | `passwordValidationRules` | `validationRules` of the [PasswordFields](<https://github.com/ISoft-Data-Systems/svelte-component-password-fields>) component | ❌ | `undefined` | Passwords rules to be enforced during password change. |
32
+ | `passwordValidationRules` | `validationRules` of the [PasswordFields](<https://github.com/ISoft-Data-Systems/svelte-component-password-fields>) component | ❌ | `undefined` | Passwords rules to be enforced during password change. |
33
33
 
34
34
  > The `passwordValidationRules` prop will be used during password setting when `hasPermissionToChangePassword` or `myAccountMode` are `true` .
35
35
 
@@ -60,6 +60,7 @@ pnpm i @isoftdata/svelte-user-configuration
60
60
  | Prop | Type | Required | Default | Description |
61
61
  |------|------|----------|---------|-------------|
62
62
  | `siteLabel` | `SiteLabel` | ❌ | `"Site"` | Label for the site. |
63
+ | `showSiteAccess` | boolean | ❌ | `true` | Whether the site access section is shown. |
63
64
  | `userAccountInfoIcon` | `IconName` | ❌ | `"user"` | Icon for the user account section. |
64
65
  | `groupMembershipIcon` | `IconName` | ❌ | `"users"` | Icon for the group membership section. |
65
66
  | `permissionListIcon` | `IconName` | ❌ | `"user-lock"` | Icon for the permission list section. |
@@ -1,4 +1,5 @@
1
1
  <script lang="ts">
2
+ import { type Snippet } from 'svelte'
2
3
  import type {
3
4
  ErrorFn,
4
5
  IconName,
@@ -56,6 +57,7 @@
56
57
  generateNewActivationPIN?: GenerateNewActivationPINFn
57
58
  userSites: UserSites
58
59
  canEditSiteAccess?: CanEditSiteAccess
60
+ showSiteAccess?: boolean
59
61
  siteAccessChange?: SiteAccessChangeFn
60
62
  groupMembership: GroupMembership
61
63
  canEditGroupMembership?: CanEditGroupMembership
@@ -64,10 +66,10 @@
64
66
  permissionValueMap?: PermissionValueMap
65
67
  groupPermissionValueMap?: GroupPermissionValueMap
66
68
  permissionValueChange?: PermissionValueChangeFn
67
- userAccountInfo?: import('svelte').Snippet
68
- siteAccess?: import('svelte').Snippet
69
- userGroupMembership?: import('svelte').Snippet
70
- permissionList?: import('svelte').Snippet
69
+ userAccountInfo?: Snippet
70
+ siteAccess?: Snippet
71
+ userGroupMembership?: Snippet
72
+ permissionList?: Snippet
71
73
  }
72
74
 
73
75
  let {
@@ -91,8 +93,9 @@
91
93
  accountInfoChanged = undefined,
92
94
  sendPasswordRecoveryToken = undefined,
93
95
  generateNewActivationPIN = () => Promise.resolve(),
94
- userSites,
96
+ userSites = [],
95
97
  canEditSiteAccess = true,
98
+ showSiteAccess = true,
96
99
  siteAccessChange = undefined,
97
100
  groupMembership,
98
101
  canEditGroupMembership = true,
@@ -113,14 +116,15 @@
113
116
  <div class="row">
114
117
  <div class="col-12 col-lg-4 mb-2">
115
118
  <UserAccountInfo
116
- bind:userAccount
117
- bind:usernameInput
118
- bind:doSendPasswordRecoveryToken
119
- bind:cardHeight
120
119
  {canToggleActive}
121
120
  {canEditAccountInfo}
122
121
  {passwordValidationRules}
123
122
  {hasPermissionToChangePassword}
123
+ icon={userAccountInfoIcon}
124
+ bind:userAccount
125
+ bind:usernameInput
126
+ bind:doSendPasswordRecoveryToken
127
+ bind:cardHeight
124
128
  {error}
125
129
  {success}
126
130
  {deactivateUser}
@@ -128,30 +132,31 @@
128
132
  {confirmPasswordSet}
129
133
  {generateNewActivationPIN}
130
134
  {sendPasswordRecoveryToken}
131
- icon={userAccountInfoIcon}
132
135
  >
133
136
  {@render userAccountInfo?.()}
134
137
  </UserAccountInfo>
135
138
  </div>
136
- <div class="col-12 col-lg-4 mb-2">
137
- <UserSiteAccess
138
- {siteLabel}
139
- {userSites}
140
- {canEditSiteAccess}
141
- {siteAccessChange}
142
- icon={userSiteAccessIcon}
143
- style="height: {cardHeight}px;"
144
- >
145
- {@render siteAccess?.()}
146
- </UserSiteAccess>
147
- </div>
139
+ {#if showSiteAccess}
140
+ <div class="col-12 col-lg-4 mb-2">
141
+ <UserSiteAccess
142
+ {siteLabel}
143
+ {userSites}
144
+ {canEditSiteAccess}
145
+ style="height: {cardHeight}px;"
146
+ icon={userSiteAccessIcon}
147
+ {siteAccessChange}
148
+ >
149
+ {@render siteAccess?.()}
150
+ </UserSiteAccess>
151
+ </div>
152
+ {/if}
148
153
  <div class="col-12 col-lg-4 mb-2">
149
154
  <UserGroupMembership
150
155
  {groupMembership}
151
156
  {canEditGroupMembership}
152
- {groupMembershipChange}
153
- icon={groupMembershipIcon}
154
157
  style="height: {cardHeight}px;"
158
+ icon={groupMembershipIcon}
159
+ {groupMembershipChange}
155
160
  >
156
161
  {@render userGroupMembership?.()}
157
162
  </UserGroupMembership>
@@ -164,9 +169,9 @@
164
169
  {permissions}
165
170
  {permissionValueMap}
166
171
  {groupPermissionValueMap}
167
- {permissionValueChange}
168
172
  icon={permissionListIcon}
169
173
  cardHeaderTitle={permissionListCardHeaderTitle}
174
+ {permissionValueChange}
170
175
  >
171
176
  {@render permissionList?.()}
172
177
  </PermissionList>
@@ -1,3 +1,4 @@
1
+ import { type Snippet } from 'svelte';
1
2
  import type { ErrorFn, IconName, UserSites, SuccessFn, SiteLabel, UserAccount, Permissions, GroupMembership, CanToggleActive, DeactivateUserFn, CanEditSiteAccess, SiteAccessChangeFn, PermissionValueMap, CanEditAccountInfo, ConfirmPasswordSetFn, AccountInfoChangedFn, CanEditGroupMembership, PasswordValidationRules, GroupMembershipChangeFn, PermissionValueChangeFn, GroupPermissionValueMap, GenerateNewActivationPINFn, DoSendPasswordRecoveryToken, SendPasswordRecoveryTokenFn, HasPermissionToChangePassword, PermissionListCardHeaderTitle } from './util';
2
3
  interface Props {
3
4
  siteLabel?: SiteLabel;
@@ -22,6 +23,7 @@ interface Props {
22
23
  generateNewActivationPIN?: GenerateNewActivationPINFn;
23
24
  userSites: UserSites;
24
25
  canEditSiteAccess?: CanEditSiteAccess;
26
+ showSiteAccess?: boolean;
25
27
  siteAccessChange?: SiteAccessChangeFn;
26
28
  groupMembership: GroupMembership;
27
29
  canEditGroupMembership?: CanEditGroupMembership;
@@ -30,10 +32,10 @@ interface Props {
30
32
  permissionValueMap?: PermissionValueMap;
31
33
  groupPermissionValueMap?: GroupPermissionValueMap;
32
34
  permissionValueChange?: PermissionValueChangeFn;
33
- userAccountInfo?: import('svelte').Snippet;
34
- siteAccess?: import('svelte').Snippet;
35
- userGroupMembership?: import('svelte').Snippet;
36
- permissionList?: import('svelte').Snippet;
35
+ userAccountInfo?: Snippet;
36
+ siteAccess?: Snippet;
37
+ userGroupMembership?: Snippet;
38
+ permissionList?: Snippet;
37
39
  }
38
40
  declare const UserConfiguration: import("svelte").Component<Props, {}, "doSendPasswordRecoveryToken" | "userAccount" | "usernameInput">;
39
41
  type UserConfiguration = ReturnType<typeof UserConfiguration>;
@@ -2,7 +2,7 @@
2
2
  import type { i18n } from 'i18next'
3
3
  import type { IconName, HTMLDivAttributes } from './'
4
4
 
5
- import { getContext } from 'svelte'
5
+ import { getContext, type Snippet } from 'svelte'
6
6
  import Icon from '@isoftdata/svelte-icon'
7
7
  import Checkbox from '@isoftdata/svelte-checkbox'
8
8
  import { translate as defaultTranslate } from '@isoftdata/utility-string'
@@ -20,7 +20,7 @@
20
20
  canEditGroupMembership?: boolean
21
21
  groupMembershipChange?: ((groupMembership: GroupMembership) => void | Promise<void>) | undefined
22
22
  icon?: IconName
23
- children?: import('svelte').Snippet
23
+ children?: Snippet
24
24
  }
25
25
 
26
26
  let {
@@ -1,4 +1,5 @@
1
1
  import type { IconName, HTMLDivAttributes } from './';
2
+ import { type Snippet } from 'svelte';
2
3
  interface GroupMembership {
3
4
  id: number;
4
5
  name: string;
@@ -9,7 +10,7 @@ interface Props extends HTMLDivAttributes {
9
10
  canEditGroupMembership?: boolean;
10
11
  groupMembershipChange?: ((groupMembership: GroupMembership) => void | Promise<void>) | undefined;
11
12
  icon?: IconName;
12
- children?: import('svelte').Snippet;
13
+ children?: Snippet;
13
14
  }
14
15
  declare const UserGroupMembership: import("svelte").Component<Props, {}, "">;
15
16
  type UserGroupMembership = ReturnType<typeof UserGroupMembership>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isoftdata/svelte-user-configuration",
3
- "version": "2.0.5",
3
+ "version": "2.1.0",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/index.d.ts",