@indigina/ui-kit 1.1.613 → 1.1.615
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.
|
@@ -9531,35 +9531,46 @@ const mapGlobalSearchResult = (store, requiredPermission, dataFetcher, categoryN
|
|
|
9531
9531
|
})));
|
|
9532
9532
|
}));
|
|
9533
9533
|
};
|
|
9534
|
-
const findMatches = (obj, translatePrefix,
|
|
9535
|
-
|
|
9536
|
-
if (!search) {
|
|
9534
|
+
const findMatches = (obj, translatePrefix, searchableKeys, search, translateValueResolver) => {
|
|
9535
|
+
if (!search || !searchableKeys.length || !obj || typeof obj !== 'object' || Array.isArray(obj)) {
|
|
9537
9536
|
return [];
|
|
9538
9537
|
}
|
|
9539
|
-
const
|
|
9540
|
-
|
|
9541
|
-
|
|
9542
|
-
|
|
9543
|
-
|
|
9544
|
-
|
|
9545
|
-
if (isMatch) {
|
|
9546
|
-
matches.push({
|
|
9547
|
-
path: currentPath,
|
|
9548
|
-
key,
|
|
9549
|
-
value: translateValueResolver?.(key, value) ?? value,
|
|
9550
|
-
translateKey: `${translatePrefix}${currentPath}`,
|
|
9551
|
-
});
|
|
9552
|
-
}
|
|
9553
|
-
traverse(value, currentPath);
|
|
9554
|
-
}
|
|
9538
|
+
const isStringArray = (value) => Array.isArray(value) && value.every(item => typeof item === 'string');
|
|
9539
|
+
const isRecord = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
|
|
9540
|
+
const getPathKey = (path) => path.split('.').pop() || path;
|
|
9541
|
+
const normalizedSearch = search.toLowerCase();
|
|
9542
|
+
const getValueByPath = (value, path) => {
|
|
9543
|
+
return path.split('.').reduce((current, segment) => isRecord(current) ? current[segment] : undefined, value);
|
|
9555
9544
|
};
|
|
9556
|
-
const
|
|
9557
|
-
if (
|
|
9558
|
-
|
|
9545
|
+
const getMatchValue = (value) => {
|
|
9546
|
+
if (typeof value === 'string') {
|
|
9547
|
+
return value.toLowerCase().includes(normalizedSearch)
|
|
9548
|
+
? { matchedValue: value, resolverValue: value }
|
|
9549
|
+
: null;
|
|
9550
|
+
}
|
|
9551
|
+
if (isStringArray(value)) {
|
|
9552
|
+
const matchedItems = value.filter(item => item.toLowerCase().includes(normalizedSearch));
|
|
9553
|
+
if (!matchedItems.length) {
|
|
9554
|
+
return null;
|
|
9555
|
+
}
|
|
9556
|
+
return { matchedValue: matchedItems.join(', '), resolverValue: matchedItems };
|
|
9559
9557
|
}
|
|
9558
|
+
return null;
|
|
9560
9559
|
};
|
|
9561
|
-
|
|
9562
|
-
|
|
9560
|
+
return Array.from(new Set(searchableKeys)).reduce((matches, path) => {
|
|
9561
|
+
const matchValue = getMatchValue(getValueByPath(obj, path));
|
|
9562
|
+
if (!matchValue) {
|
|
9563
|
+
return matches;
|
|
9564
|
+
}
|
|
9565
|
+
const key = getPathKey(path);
|
|
9566
|
+
matches.push({
|
|
9567
|
+
path,
|
|
9568
|
+
key,
|
|
9569
|
+
value: translateValueResolver?.(key, matchValue.resolverValue) ?? matchValue.matchedValue,
|
|
9570
|
+
translateKey: `${translatePrefix}${path}`,
|
|
9571
|
+
});
|
|
9572
|
+
return matches;
|
|
9573
|
+
}, []);
|
|
9563
9574
|
};
|
|
9564
9575
|
const changeFilterField = (filter, field) => ({
|
|
9565
9576
|
...filter,
|
|
@@ -10866,7 +10877,6 @@ class KitUsersSettingsDetailsFormComponent {
|
|
|
10866
10877
|
Validators.email,
|
|
10867
10878
|
]),
|
|
10868
10879
|
[KitUsersSettingsDetailsField.PASSWORD]: this.formBuilder.nonNullable.control('', [
|
|
10869
|
-
Validators.required,
|
|
10870
10880
|
Validators.maxLength(70),
|
|
10871
10881
|
]),
|
|
10872
10882
|
[KitUsersSettingsDetailsField.MFA]: this.formBuilder.nonNullable.control(false),
|
|
@@ -10875,6 +10885,7 @@ class KitUsersSettingsDetailsFormComponent {
|
|
|
10875
10885
|
this.isSaving = signal(false, /* @ts-ignore */
|
|
10876
10886
|
...(ngDevMode ? [{ debugName: "isSaving" }] : /* istanbul ignore next */ []));
|
|
10877
10887
|
this.lastPatchedUserId = null;
|
|
10888
|
+
this.initialFormValue = JSON.stringify(this.form.getRawValue());
|
|
10878
10889
|
effect(() => {
|
|
10879
10890
|
if (!this.isCreateMode()) {
|
|
10880
10891
|
const { data: userDetails, loading } = this.userDetails();
|
|
@@ -10897,6 +10908,9 @@ class KitUsersSettingsDetailsFormComponent {
|
|
|
10897
10908
|
getFormErrorMessages(form, controlName) {
|
|
10898
10909
|
return this.kitFormErrors.getErrors(form.controls[controlName]).join('. ');
|
|
10899
10910
|
}
|
|
10911
|
+
get hasUnsavedChanges() {
|
|
10912
|
+
return JSON.stringify(this.form.getRawValue()) !== this.initialFormValue;
|
|
10913
|
+
}
|
|
10900
10914
|
submit() {
|
|
10901
10915
|
this.isSaving.set(true);
|
|
10902
10916
|
return this.isCreateMode()
|
|
@@ -10920,6 +10934,7 @@ class KitUsersSettingsDetailsFormComponent {
|
|
|
10920
10934
|
...userDetails,
|
|
10921
10935
|
id,
|
|
10922
10936
|
})).pipe(takeUntilDestroyed(this.destroyRef), map(() => this.userDetails().data), tap(updatedUser => {
|
|
10937
|
+
this.initialFormValue = JSON.stringify(this.form.getRawValue());
|
|
10923
10938
|
this.form.markAsPristine();
|
|
10924
10939
|
if (updatedUser) {
|
|
10925
10940
|
this.updated.emit(updatedUser);
|
|
@@ -10945,6 +10960,7 @@ class KitUsersSettingsDetailsFormComponent {
|
|
|
10945
10960
|
[KitUsersSettingsDetailsField.MFA]: userDetails.mfaEnabled,
|
|
10946
10961
|
[KitUsersSettingsDetailsField.FORCE_PASSWORD]: false,
|
|
10947
10962
|
}, { emitEvent: false });
|
|
10963
|
+
this.initialFormValue = JSON.stringify(this.form.getRawValue());
|
|
10948
10964
|
}
|
|
10949
10965
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: KitUsersSettingsDetailsFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10950
10966
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: KitUsersSettingsDetailsFormComponent, isStandalone: true, selector: "kit-users-settings-details-form", inputs: { isCreateMode: { classPropertyName: "isCreateMode", publicName: "isCreateMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { updated: "updated" }, providers: [KitFormErrors], ngImport: i0, template: "<form class=\"kit-user-settings-details-form\"\n [formGroup]=\"form\">\n <kit-textbox [formControlName]=\"kitUsersSettingsDetailsField.USER_NAME\"\n [label]=\"'kit.usersSettings.details.loginId' | translate\"\n [readonly]=\"!isCreateMode()\"\n [showStateIcon]=\"false\"\n [state]=\"getTextboxState(form, kitUsersSettingsDetailsField.USER_NAME)\"\n [messageText]=\"getFormErrorMessages(form, kitUsersSettingsDetailsField.USER_NAME) | translate\"></kit-textbox>\n <kit-textbox [formControlName]=\"kitUsersSettingsDetailsField.FIRST_NAME\"\n [label]=\"'kit.usersSettings.details.firstName' | translate\"\n [showStateIcon]=\"false\"\n [state]=\"getTextboxState(form, kitUsersSettingsDetailsField.FIRST_NAME)\"\n [messageText]=\"getFormErrorMessages(form, kitUsersSettingsDetailsField.FIRST_NAME) | translate\"></kit-textbox>\n <kit-textbox [formControlName]=\"kitUsersSettingsDetailsField.LAST_NAME\"\n [label]=\"'kit.usersSettings.details.lastName' | translate\"\n [showStateIcon]=\"false\"\n [state]=\"getTextboxState(form, kitUsersSettingsDetailsField.LAST_NAME)\"\n [messageText]=\"getFormErrorMessages(form, kitUsersSettingsDetailsField.LAST_NAME) | translate\"></kit-textbox>\n <kit-textbox [formControlName]=\"kitUsersSettingsDetailsField.EMAIL\"\n [label]=\"'kit.usersSettings.details.email' | translate\"\n [showStateIcon]=\"false\"\n [state]=\"getTextboxState(form, kitUsersSettingsDetailsField.EMAIL)\"\n [messageText]=\"getFormErrorMessages(form, kitUsersSettingsDetailsField.EMAIL) | translate\"></kit-textbox>\n @if (isCreateMode()) {\n <kit-textbox type=\"password\"\n [formControlName]=\"kitUsersSettingsDetailsField.PASSWORD\"\n [label]=\"'kit.usersSettings.details.password' | translate\"\n [showStateIcon]=\"false\"\n [state]=\"getTextboxState(form, kitUsersSettingsDetailsField.PASSWORD)\"\n [messageText]=\"getFormErrorMessages(form, kitUsersSettingsDetailsField.PASSWORD) | translate\"></kit-textbox>\n }\n <div class=\"kit-user-settings-details-form-toggles\">\n <kit-toggle class=\"kit-user-settings-details-form-toggle\"\n [formControlName]=\"kitUsersSettingsDetailsField.MFA\"\n [label]=\"'kit.usersSettings.details.mfa' | translate\"></kit-toggle>\n @if (isCreateMode()) {\n <kit-toggle class=\"kit-user-settings-details-form-toggle\"\n [formControlName]=\"kitUsersSettingsDetailsField.FORCE_PASSWORD\"\n [label]=\"'kit.usersSettings.details.forcePassword' | translate\"></kit-toggle>\n }\n </div>\n</form>\n", styles: [".kit-user-settings-details-form{display:flex;flex-direction:column;gap:10px;width:100%}.kit-user-settings-details-form-toggles{display:flex;width:100%;gap:20px}.kit-user-settings-details-form-toggle{width:100%}.kit-user-settings-details-form-toggle ::ng-deep .kit-toggle{display:flex;align-items:center;gap:15px;justify-content:space-between;width:100%}.kit-user-settings-details-form-toggle ::ng-deep .kit-form-label{margin:0}\n"], dependencies: [{ kind: "component", type: KitTextboxComponent, selector: "kit-textbox", inputs: ["placeholder", "label", "labelTooltip", "defaultValue", "messageIcon", "messageText", "messageTemplate", "disabled", "maxlength", "state", "size", "icon", "clearButton", "showStateIcon", "readonly", "customStateIcon", "type"], outputs: ["defaultValueChange", "disabledChange", "blured", "focused", "changed"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: KitToggleComponent, selector: "kit-toggle", inputs: ["label", "disabled", "readonly", "defaultChecked", "leftLabel", "rightLabel", "messageIcon", "messageText", "size"], outputs: ["disabledChange", "defaultCheckedChange", "changed"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -11291,6 +11307,7 @@ class KitUsersSettingsEntitlementsFormComponent {
|
|
|
11291
11307
|
...(ngDevMode ? [{ debugName: "partners" }] : /* istanbul ignore next */ []));
|
|
11292
11308
|
this.roles = signal([], /* @ts-ignore */
|
|
11293
11309
|
...(ngDevMode ? [{ debugName: "roles" }] : /* istanbul ignore next */ []));
|
|
11310
|
+
this.initialFormValue = JSON.stringify(this.form.getRawValue());
|
|
11294
11311
|
this.creatingFormContext = toSignal(merge(this.form.controls[KitUsersSettingsEntitlementsField.IDENTITY_TYPE].valueChanges, this.form.controls[KitUsersSettingsEntitlementsField.PARTNERS].valueChanges).pipe(startWith(null), map(() => ({
|
|
11295
11312
|
identityType: this.form.controls[KitUsersSettingsEntitlementsField.IDENTITY_TYPE].value,
|
|
11296
11313
|
partnerId: this.form.controls[KitUsersSettingsEntitlementsField.PARTNERS].value,
|
|
@@ -11305,6 +11322,9 @@ class KitUsersSettingsEntitlementsFormComponent {
|
|
|
11305
11322
|
getFormErrorMessages(form, controlName) {
|
|
11306
11323
|
return this.kitFormErrors.getErrors(form.controls[controlName]).join('. ');
|
|
11307
11324
|
}
|
|
11325
|
+
get hasUnsavedChanges() {
|
|
11326
|
+
return JSON.stringify(this.form.getRawValue()) !== this.initialFormValue;
|
|
11327
|
+
}
|
|
11308
11328
|
submit() {
|
|
11309
11329
|
const userId = this.userId();
|
|
11310
11330
|
if (!userId) {
|
|
@@ -11358,7 +11378,10 @@ class KitUsersSettingsEntitlementsFormComponent {
|
|
|
11358
11378
|
return undefined;
|
|
11359
11379
|
}
|
|
11360
11380
|
dispatchAndMarkPristine(action) {
|
|
11361
|
-
return this.store.dispatch(action).pipe(tap(() =>
|
|
11381
|
+
return this.store.dispatch(action).pipe(tap(() => {
|
|
11382
|
+
this.initialFormValue = JSON.stringify(this.form.getRawValue());
|
|
11383
|
+
this.form.markAsPristine();
|
|
11384
|
+
}), map(() => true), catchError(() => {
|
|
11362
11385
|
this.form.setErrors({ serverError: true });
|
|
11363
11386
|
return of(false);
|
|
11364
11387
|
}), finalize(() => this.isSaving.set(false)));
|
|
@@ -11375,6 +11398,7 @@ class KitUsersSettingsEntitlementsFormComponent {
|
|
|
11375
11398
|
});
|
|
11376
11399
|
this.form.get(KitUsersSettingsEntitlementsField.IDENTITY_TYPE)?.disable();
|
|
11377
11400
|
this.form.get(KitUsersSettingsEntitlementsField.PARTNERS)?.disable();
|
|
11401
|
+
this.initialFormValue = JSON.stringify(this.form.getRawValue());
|
|
11378
11402
|
this.form.markAsPristine();
|
|
11379
11403
|
}
|
|
11380
11404
|
}
|
|
@@ -11543,7 +11567,11 @@ class KitUsersSettingsEntitlementsComponent {
|
|
|
11543
11567
|
}
|
|
11544
11568
|
get isSaveBtnDisabled() {
|
|
11545
11569
|
const formComponent = this.entitlementsForm();
|
|
11546
|
-
return !formComponent ||
|
|
11570
|
+
return !formComponent ||
|
|
11571
|
+
formComponent.form.pristine ||
|
|
11572
|
+
!formComponent.hasUnsavedChanges ||
|
|
11573
|
+
formComponent.form.invalid ||
|
|
11574
|
+
formComponent.isSaving();
|
|
11547
11575
|
}
|
|
11548
11576
|
selectItem(item) {
|
|
11549
11577
|
const collapsedList = this.collapsedList();
|
|
@@ -11752,7 +11780,11 @@ class KitUsersSettingsProfileComponent {
|
|
|
11752
11780
|
get isFormDisabled() {
|
|
11753
11781
|
if (this.currentTab() === KitUsersSettingsProfileTab.DETAILS) {
|
|
11754
11782
|
const detailsForm = this.detailsForm();
|
|
11755
|
-
return !detailsForm ||
|
|
11783
|
+
return !detailsForm ||
|
|
11784
|
+
detailsForm.form.pristine ||
|
|
11785
|
+
!detailsForm.hasUnsavedChanges ||
|
|
11786
|
+
detailsForm.form.invalid ||
|
|
11787
|
+
detailsForm.isSaving();
|
|
11756
11788
|
}
|
|
11757
11789
|
const entitlementsForm = this.entitlementsForm();
|
|
11758
11790
|
return !entitlementsForm || entitlementsForm.isSaveBtnDisabled;
|