@indigina/ui-kit 1.1.516 → 1.1.518

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.
@@ -1037,6 +1037,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
1037
1037
  ], template: "<div class=\"kit-textbox\"\n [ngClass]=\"[state(), size()]\"\n [class.disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\">\n @if (label()) {\n <kit-form-label class=\"label\"\n [for]=\"textbox\"\n [text]=\"label()\"\n [tooltip]=\"labelTooltip()\"\n ></kit-form-label>\n }\n <div class=\"kit-textbox-input\">\n @if (icon()) {\n <kit-svg-icon class=\"kit-textbox-icon\"\n [icon]=\"icon()\"\n ></kit-svg-icon>\n }\n <kendo-textbox #textbox\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [value]=\"defaultValue()\"\n [maxlength]=\"maxlength()\"\n [clearButton]=\"clearButton()\"\n (blur)=\"onInputBlur()\"\n (focus)=\"focused.emit()\"\n (valueChange)=\"onInputChange($event)\"\n ></kendo-textbox>\n @if (showStateIcon()) {\n <kit-svg-icon class=\"kit-textbox-state-icon\"\n [icon]=\"customStateIcon() || textboxStateIcon[state()]\"\n ></kit-svg-icon>\n }\n </div>\n\n <ng-container *ngTemplateOutlet=\"messageTemplate()\" />\n\n @if (messageText() && !messageTemplate()) {\n <kit-form-message [icon]=\"messageIcon()\"\n [message]=\"messageText()\"\n ></kit-form-message>\n }\n</div>\n", styles: [".kit-textbox.large .kit-textbox-input{padding:0 12px;border-radius:8px}.kit-textbox.large .k-input{height:44px}.kit-textbox.regular .kit-textbox-input{padding:0 12px;border-radius:8px}.kit-textbox.regular .k-input{height:38px}.kit-textbox.small .kit-textbox-input{padding:0 8px;border-radius:4px}.kit-textbox.small .k-input{height:30px}.kit-textbox .label{display:block;margin-bottom:4px}.kit-textbox-input{display:flex;align-items:center;border:1px solid var(--ui-kit-color-grey-11);background:var(--ui-kit-color-white)}.kit-textbox-icon{flex-shrink:0;display:block;margin-right:8px;width:16px;height:16px;fill:var(--ui-kit-color-grey-10)}.kit-textbox-state-icon{flex-shrink:0;display:block;margin-left:12px;width:14px;height:14px}.kit-textbox .k-input{padding:0;color:var(--ui-kit-color-grey-10);font-size:14px;font-weight:400;opacity:1;box-shadow:none;border:none}.kit-textbox .k-input:focus-within{box-shadow:none}.kit-textbox .k-input .k-input-inner{padding:0}.kit-textbox .k-input-inner{width:100%;color:inherit;line-height:1}.kit-textbox .k-input-inner::placeholder{color:var(--ui-kit-color-grey-12)}.kit-textbox .k-input-prefix,.kit-textbox .k-input-suffix{height:0}.kit-textbox.default .kit-textbox-state-icon{fill:var(--ui-kit-color-grey-12)}.kit-textbox.default:hover .kit-textbox-input{border-color:var(--ui-kit-color-hover)}.kit-textbox.default:focus-within .kit-textbox-input{border-color:var(--ui-kit-color-main);outline:2px solid var(--ui-kit-color-focus);outline-offset:0}.kit-textbox.warning .kit-textbox-input{border-color:var(--ui-kit-color-orange)}.kit-textbox.warning .kit-textbox-state-icon,.kit-textbox.warning .kit-textbox-icon{fill:var(--ui-kit-color-orange)}.kit-textbox.warning:focus-within .kit-textbox-input{outline:2px solid var(--ui-kit-color-orange-1);outline-offset:0}.kit-textbox.error .kit-textbox-input{border-color:var(--ui-kit-color-red-1)}.kit-textbox.error .kit-textbox-state-icon,.kit-textbox.error .kit-textbox-icon{fill:var(--ui-kit-color-red-1)}.kit-textbox.error:focus-within .kit-textbox-input{outline:2px solid var(--ui-kit-color-red-2);outline-offset:0}.kit-textbox.error .kit-form-message-text{color:var(--ui-kit-color-red-1)}.kit-textbox.success .kit-textbox-state-icon{fill:var(--ui-kit-color-green-1)}.kit-textbox.success:hover .kit-textbox-input{border-color:var(--ui-kit-color-green-1)}.kit-textbox.success:focus-within .kit-textbox-input{border-color:var(--ui-kit-color-green-1);outline:2px solid var(--ui-kit-color-green-2);outline-offset:0}.kit-textbox.disabled .k-input{color:var(--ui-kit-color-grey-12);background:var(--ui-kit-color-grey-13)}.kit-textbox.disabled .kit-textbox-input{border-color:var(--ui-kit-color-grey-11);background:var(--ui-kit-color-grey-13)}.kit-textbox.disabled .k-input-inner::placeholder{color:var(--ui-kit-color-grey-12)}.kit-textbox.disabled .kit-textbox-icon{fill:var(--ui-kit-color-grey-12)}.kit-textbox.disabled:hover .kit-textbox-input{border-color:var(--ui-kit-color-grey-11)}.kit-textbox.readonly{background:none}.kit-textbox.readonly .k-input{color:var(--ui-kit-color-grey-12)}.kit-textbox.readonly .k-input-inner{cursor:default}.kit-textbox.readonly:focus-within .kit-textbox-input{border-color:var(--ui-kit-color-grey-11);outline:none}.kit-textbox.readonly:hover .kit-textbox-input{border-color:var(--ui-kit-color-grey-11)}\n"] }]
1038
1038
  }], propDecorators: { placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], labelTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelTooltip", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }, { type: i0.Output, args: ["defaultValueChange"] }], messageIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageIcon", required: false }] }], messageText: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageText", required: false }] }], messageTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageTemplate", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], maxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxlength", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], clearButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearButton", required: false }] }], showStateIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showStateIcon", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], customStateIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "customStateIcon", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], blured: [{ type: i0.Output, args: ["blured"] }], focused: [{ type: i0.Output, args: ["focused"] }], changed: [{ type: i0.Output, args: ["changed"] }], textboxComponent: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TextBoxComponent), { isSignal: true }] }] } });
1039
1039
 
1040
+ const getTextboxState = (control = null) => {
1041
+ return control?.invalid && control?.touched ? KitTextboxState.ERROR : KitTextboxState.DEFAULT;
1042
+ };
1043
+
1040
1044
  var KitFormErrorCode;
1041
1045
  (function (KitFormErrorCode) {
1042
1046
  KitFormErrorCode["Required"] = "required";
@@ -8319,7 +8323,7 @@ class KitSearchBarComponent {
8319
8323
  this.closeButtonClick.emit();
8320
8324
  }
8321
8325
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitSearchBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: KitSearchBarComponent, isStandalone: true, selector: "kit-search-bar", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, searchButtonLabel: { classPropertyName: "searchButtonLabel", publicName: "searchButtonLabel", isSignal: false, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: false, isRequired: false, transformFunction: null }, searchString: { classPropertyName: "searchString", publicName: "searchString", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", searchButtonClick: "searchButtonClick", closeButtonClick: "closeButtonClick" }, viewQueries: [{ propertyName: "searchTextboxElementRef", first: true, predicate: ["searchTextboxElement"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"kit-search-bar\">\n @if (!searchVisible()) {\n <kit-button [label]=\"searchButtonLabel\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"KitSvgIcon.SEARCH\"\n [iconType]=\"kitSvgIconType.STROKE\"\n [iconPosition]=\"KitButtonIconPosition.LEADING\"\n [disabled]=\"disabled()\"\n (clicked)=\"onSearchButtonClick()\"\n ></kit-button>\n } @else {\n <div class=\"textbox-wrapper\">\n <kit-textbox #searchTextboxElement\n class=\"search-textbox\"\n [maxlength]=\"maxLength()\"\n [placeholder]=\"placeholder\"\n [size]=\"kitTextboxSize.SMALL\"\n [icon]=\"KitSvgIcon.SEARCH\"\n [defaultValue]=\"searchString() ?? ''\"\n (changed)=\"onSearchChange($event)\"\n ></kit-textbox>\n <button class=\"clear-button\"\n (click)=\"clearSearch()\">\n <kit-svg-icon [icon]=\"KitSvgIcon.BACKSPACE\"\n ></kit-svg-icon>\n </button>\n <button class=\"close-button\"\n (click)=\"onCloseButtonClick()\">\n <kit-svg-icon [icon]=\"KitSvgIcon.CIRCLE_CROSS_THIN\"\n ></kit-svg-icon>\n </button>\n </div>\n }\n</div>\n", styles: [".kit-search-bar .textbox-wrapper{position:relative;display:flex;width:340px}.kit-search-bar .search-textbox{flex:1}.kit-search-bar .search-textbox .kit-textbox-state-icon{display:none}.kit-search-bar .search-textbox .kit-textbox-input .kit-svg-icon{stroke:var(--ui-kit-color-grey-10);fill:none}.kit-search-bar .clear-button,.kit-search-bar .close-button{position:absolute;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;z-index:1}.kit-search-bar .clear-button .kit-svg-icon,.kit-search-bar .close-button .kit-svg-icon{display:block;width:16px;height:16px}.kit-search-bar .close-button{right:3px}.kit-search-bar .close-button .kit-svg-icon{stroke:var(--ui-kit-color-grey-14);fill:none}.kit-search-bar .clear-button{right:27px}.kit-search-bar .clear-button .kit-svg-icon{fill:var(--ui-kit-color-grey-14)}.kit-search-bar .k-input-md .k-input-inner,.kit-search-bar .k-picker-md .k-input-inner{padding-right:50px}\n"], dependencies: [{ kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { 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: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8326
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: KitSearchBarComponent, isStandalone: true, selector: "kit-search-bar", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, searchButtonLabel: { classPropertyName: "searchButtonLabel", publicName: "searchButtonLabel", isSignal: false, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: false, isRequired: false, transformFunction: null }, searchString: { classPropertyName: "searchString", publicName: "searchString", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", searchButtonClick: "searchButtonClick", closeButtonClick: "closeButtonClick" }, viewQueries: [{ propertyName: "searchTextboxElementRef", first: true, predicate: ["searchTextboxElement"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"kit-search-bar\">\n @if (!searchVisible()) {\n <kit-button [label]=\"searchButtonLabel\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"KitSvgIcon.SEARCH\"\n [iconType]=\"kitSvgIconType.STROKE\"\n [iconPosition]=\"KitButtonIconPosition.LEADING\"\n [disabled]=\"disabled()\"\n (clicked)=\"onSearchButtonClick()\"\n ></kit-button>\n } @else {\n <div class=\"textbox-wrapper\">\n <kit-textbox #searchTextboxElement\n class=\"search-textbox\"\n [maxlength]=\"maxLength()\"\n [placeholder]=\"placeholder\"\n [size]=\"kitTextboxSize.SMALL\"\n [icon]=\"KitSvgIcon.SEARCH\"\n [defaultValue]=\"searchString() ?? ''\"\n (changed)=\"onSearchChange($event)\"\n ></kit-textbox>\n <button class=\"clear-button\"\n (click)=\"clearSearch()\">\n <kit-svg-icon [icon]=\"KitSvgIcon.BACKSPACE\"\n ></kit-svg-icon>\n </button>\n <button class=\"close-button\"\n (click)=\"onCloseButtonClick()\">\n <kit-svg-icon [icon]=\"KitSvgIcon.CIRCLE_CROSS_THIN\"\n ></kit-svg-icon>\n </button>\n </div>\n }\n</div>\n", styles: [".kit-search-bar .textbox-wrapper{position:relative;display:flex;width:340px}.kit-search-bar .search-textbox{flex:1}.kit-search-bar .search-textbox .kit-textbox-state-icon{display:none}.kit-search-bar .search-textbox .kit-textbox .kit-textbox-input{padding:0 55px 0 8px}.kit-search-bar .search-textbox .kit-textbox .kit-textbox-input .kit-svg-icon{stroke:var(--ui-kit-color-grey-10);fill:none}.kit-search-bar .clear-button,.kit-search-bar .close-button{position:absolute;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;z-index:1}.kit-search-bar .clear-button .kit-svg-icon,.kit-search-bar .close-button .kit-svg-icon{display:block;width:16px;height:16px}.kit-search-bar .close-button{right:3px}.kit-search-bar .close-button .kit-svg-icon{stroke:var(--ui-kit-color-grey-14);fill:none}.kit-search-bar .clear-button{right:27px}.kit-search-bar .clear-button .kit-svg-icon{fill:var(--ui-kit-color-grey-14)}.kit-search-bar .k-input-md .k-input-inner,.kit-search-bar .k-picker-md .k-input-inner{padding-right:50px}\n"], dependencies: [{ kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { 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: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8323
8327
  }
8324
8328
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitSearchBarComponent, decorators: [{
8325
8329
  type: Component,
@@ -8327,7 +8331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
8327
8331
  KitButtonComponent,
8328
8332
  KitTextboxComponent,
8329
8333
  KitSvgIconComponent,
8330
- ], template: "<div class=\"kit-search-bar\">\n @if (!searchVisible()) {\n <kit-button [label]=\"searchButtonLabel\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"KitSvgIcon.SEARCH\"\n [iconType]=\"kitSvgIconType.STROKE\"\n [iconPosition]=\"KitButtonIconPosition.LEADING\"\n [disabled]=\"disabled()\"\n (clicked)=\"onSearchButtonClick()\"\n ></kit-button>\n } @else {\n <div class=\"textbox-wrapper\">\n <kit-textbox #searchTextboxElement\n class=\"search-textbox\"\n [maxlength]=\"maxLength()\"\n [placeholder]=\"placeholder\"\n [size]=\"kitTextboxSize.SMALL\"\n [icon]=\"KitSvgIcon.SEARCH\"\n [defaultValue]=\"searchString() ?? ''\"\n (changed)=\"onSearchChange($event)\"\n ></kit-textbox>\n <button class=\"clear-button\"\n (click)=\"clearSearch()\">\n <kit-svg-icon [icon]=\"KitSvgIcon.BACKSPACE\"\n ></kit-svg-icon>\n </button>\n <button class=\"close-button\"\n (click)=\"onCloseButtonClick()\">\n <kit-svg-icon [icon]=\"KitSvgIcon.CIRCLE_CROSS_THIN\"\n ></kit-svg-icon>\n </button>\n </div>\n }\n</div>\n", styles: [".kit-search-bar .textbox-wrapper{position:relative;display:flex;width:340px}.kit-search-bar .search-textbox{flex:1}.kit-search-bar .search-textbox .kit-textbox-state-icon{display:none}.kit-search-bar .search-textbox .kit-textbox-input .kit-svg-icon{stroke:var(--ui-kit-color-grey-10);fill:none}.kit-search-bar .clear-button,.kit-search-bar .close-button{position:absolute;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;z-index:1}.kit-search-bar .clear-button .kit-svg-icon,.kit-search-bar .close-button .kit-svg-icon{display:block;width:16px;height:16px}.kit-search-bar .close-button{right:3px}.kit-search-bar .close-button .kit-svg-icon{stroke:var(--ui-kit-color-grey-14);fill:none}.kit-search-bar .clear-button{right:27px}.kit-search-bar .clear-button .kit-svg-icon{fill:var(--ui-kit-color-grey-14)}.kit-search-bar .k-input-md .k-input-inner,.kit-search-bar .k-picker-md .k-input-inner{padding-right:50px}\n"] }]
8334
+ ], template: "<div class=\"kit-search-bar\">\n @if (!searchVisible()) {\n <kit-button [label]=\"searchButtonLabel\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"KitSvgIcon.SEARCH\"\n [iconType]=\"kitSvgIconType.STROKE\"\n [iconPosition]=\"KitButtonIconPosition.LEADING\"\n [disabled]=\"disabled()\"\n (clicked)=\"onSearchButtonClick()\"\n ></kit-button>\n } @else {\n <div class=\"textbox-wrapper\">\n <kit-textbox #searchTextboxElement\n class=\"search-textbox\"\n [maxlength]=\"maxLength()\"\n [placeholder]=\"placeholder\"\n [size]=\"kitTextboxSize.SMALL\"\n [icon]=\"KitSvgIcon.SEARCH\"\n [defaultValue]=\"searchString() ?? ''\"\n (changed)=\"onSearchChange($event)\"\n ></kit-textbox>\n <button class=\"clear-button\"\n (click)=\"clearSearch()\">\n <kit-svg-icon [icon]=\"KitSvgIcon.BACKSPACE\"\n ></kit-svg-icon>\n </button>\n <button class=\"close-button\"\n (click)=\"onCloseButtonClick()\">\n <kit-svg-icon [icon]=\"KitSvgIcon.CIRCLE_CROSS_THIN\"\n ></kit-svg-icon>\n </button>\n </div>\n }\n</div>\n", styles: [".kit-search-bar .textbox-wrapper{position:relative;display:flex;width:340px}.kit-search-bar .search-textbox{flex:1}.kit-search-bar .search-textbox .kit-textbox-state-icon{display:none}.kit-search-bar .search-textbox .kit-textbox .kit-textbox-input{padding:0 55px 0 8px}.kit-search-bar .search-textbox .kit-textbox .kit-textbox-input .kit-svg-icon{stroke:var(--ui-kit-color-grey-10);fill:none}.kit-search-bar .clear-button,.kit-search-bar .close-button{position:absolute;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;z-index:1}.kit-search-bar .clear-button .kit-svg-icon,.kit-search-bar .close-button .kit-svg-icon{display:block;width:16px;height:16px}.kit-search-bar .close-button{right:3px}.kit-search-bar .close-button .kit-svg-icon{stroke:var(--ui-kit-color-grey-14);fill:none}.kit-search-bar .clear-button{right:27px}.kit-search-bar .clear-button .kit-svg-icon{fill:var(--ui-kit-color-grey-14)}.kit-search-bar .k-input-md .k-input-inner,.kit-search-bar .k-picker-md .k-input-inner{padding-right:50px}\n"] }]
8331
8335
  }], ctorParameters: () => [], propDecorators: { placeholder: [{
8332
8336
  type: Input
8333
8337
  }], searchButtonLabel: [{
@@ -8433,6 +8437,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
8433
8437
  }]
8434
8438
  }] });
8435
8439
 
8440
+ const KIT_ALL_PERMISSIONS_PATH = new InjectionToken('kitAllPermissionsPath');
8441
+
8436
8442
  const KIT_BASE_PATH = new InjectionToken('kitBasePath');
8437
8443
  const trimTrailingSlash = (path) => {
8438
8444
  return path.endsWith('/') ? path.slice(0, -1) : path;
@@ -8445,11 +8451,16 @@ class KitPermissionsApiService {
8445
8451
  this.httpClient = inject(HttpClient);
8446
8452
  this.basePath = inject(KIT_BASE_PATH);
8447
8453
  this.userPermissionsPath = inject(KIT_USER_PERMISSIONS_PATH);
8454
+ this.allPermissionsPath = inject(KIT_ALL_PERMISSIONS_PATH);
8448
8455
  }
8449
8456
  getUserPermissions() {
8450
8457
  const url = `${this.basePath}/${this.userPermissionsPath}`;
8451
8458
  return this.httpClient.get(url);
8452
8459
  }
8460
+ getAllPermissions() {
8461
+ const url = `${this.basePath}/${this.allPermissionsPath}`;
8462
+ return this.httpClient.get(url);
8463
+ }
8453
8464
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitPermissionsApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8454
8465
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitPermissionsApiService, providedIn: 'root' }); }
8455
8466
  }
@@ -11003,6 +11014,11 @@ const kitTranslations = {
11003
11014
  error: 'An error occurred while loading data',
11004
11015
  loadMore: 'Load More',
11005
11016
  selectValue: 'Select value',
11017
+ create: 'Create New',
11018
+ delete: 'Delete',
11019
+ confirmationDelete: 'Are you sure you want to permanently delete {{name}}?',
11020
+ name: 'Name',
11021
+ save: 'Save',
11006
11022
  },
11007
11023
  tree: {
11008
11024
  actions: {
@@ -11080,6 +11096,13 @@ const kitTranslations = {
11080
11096
  cancel: 'Cancel',
11081
11097
  delete: 'Delete',
11082
11098
  },
11099
+ userRoles: {
11100
+ title: 'User\'s Roles Maintenance',
11101
+ details: 'User\'s Role Details',
11102
+ permissions: {
11103
+ maintain: 'Maintain',
11104
+ },
11105
+ },
11083
11106
  },
11084
11107
  },
11085
11108
  ru: {
@@ -11245,6 +11268,11 @@ const kitTranslations = {
11245
11268
  error: 'Произошла ошибка при загрузке данных',
11246
11269
  loadMore: 'Загрузить еще',
11247
11270
  selectValue: 'Выберите значение',
11271
+ create: 'Создать',
11272
+ delete: 'Удалить',
11273
+ confirmationDelete: 'Вы уверены, что хотите безвозвратно удалить {{name}}?',
11274
+ name: 'Название',
11275
+ save: 'Сохранить',
11248
11276
  },
11249
11277
  tree: {
11250
11278
  actions: {
@@ -11319,6 +11347,10 @@ const kitTranslations = {
11319
11347
  cancel: 'Отмена',
11320
11348
  delete: 'Удалить',
11321
11349
  },
11350
+ userRoles: {
11351
+ title: 'Управление ролями пользователей',
11352
+ details: 'Детали роли пользователя',
11353
+ },
11322
11354
  },
11323
11355
  },
11324
11356
  };
@@ -15982,11 +16014,484 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
15982
16014
  ], template: "<div class=\"kit-tree\">\n <div class=\"kit-tree-toolbar\">\n @if (isStructuredFormat()) {\n <kit-button kitTooltip\n kitTooltipFilter=\"kit-button\"\n [title]=\"toggleAllTitleKey() | translate\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"toggleAllIcon()\"\n [disabled]=\"isExpandAllDisabled()\"\n (clicked)=\"toggleAll()\"\n ></kit-button>\n }\n <kit-button kitTooltip\n kitTooltipFilter=\"kit-button\"\n [title]=\"'kit.tree.actions.copyRaw' | translate\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"kitSvgIcon.COPY\"\n [iconType]=\"kitSvgIconType.STROKE\"\n (clicked)=\"copyRawInput()\"\n ></kit-button>\n <kit-button kitTooltip\n kitTooltipFilter=\"kit-button\"\n [title]=\"'kit.tree.actions.copyPrettified' | translate\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"kitSvgIcon.MAGIC_WAND\"\n (clicked)=\"copyPrettifiedInput()\"\n ></kit-button>\n\n @if (isStructuredFormat()) {\n <kit-button kitTooltip\n kitTooltipFilter=\"kit-button\"\n [title]=\"toggleViewTitleKey() | translate\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"toggleViewIcon()\"\n [active]=\"isRawView()\"\n (clicked)=\"toggleRawFormattedView()\"\n ></kit-button>\n }\n\n @for (action of customActions(); track action.id) {\n <kit-button kitTooltip\n kitTooltipFilter=\"kit-button\"\n [title]=\"action.label\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"action.icon\"\n [active]=\"activeCustomActionId() === action.id\"\n [disabled]=\"!!action.disabled\"\n (clicked)=\"onCustomActionClick(action)\"\n ></kit-button>\n }\n </div>\n\n <div class=\"kit-tree-content\">\n @if (isCustomContentActive()) {\n <div class=\"kit-tree-custom-content\">\n <ng-container [ngTemplateOutlet]=\"activeTemplate()?.templateRef ?? null\"></ng-container>\n </div>\n } @else if (isRawView() || !isStructuredFormat()) {\n <pre class=\"kit-tree-raw\">{{ rawContent() }}</pre>\n } @else {\n <kendo-treeview kendoTreeViewHierarchyBinding\n kendoTreeViewExpandable\n childrenField=\"children\"\n textField=\"displayKey\"\n expandBy=\"key\"\n [nodes]=\"treeNodes()\"\n [expandedKeys]=\"expandedKeys()\"\n (expandedKeysChange)=\"onExpandedKeysChange($event)\">\n <ng-template kendoTreeViewNodeTemplate\n let-dataItem>\n <div class=\"kit-tree-node\">\n @if (dataItem.displayValue !== undefined) {\n <div class=\"kit-tree-node-key\">{{ dataItem.displayKey }}</div>\n <div class=\"kit-tree-node-separator\">:</div>\n @if (!isNodeExpanded(dataItem)) {\n <div class=\"kit-tree-node-value\">{{ dataItem.displayValue }}</div>\n }\n } @else {\n <div class=\"kit-tree-node-key\">{{ dataItem.text }}</div>\n }\n </div>\n </ng-template>\n </kendo-treeview>\n }\n </div>\n</div>\n", styles: [".display-flex{display:flex}.flex-align-items-center{align-items:center}.flex-justify-content-center{justify-content:center}.flex-justify-content-end{justify-content:flex-end}.display-block{display:block}div[kendowatermarkoverlay]{display:none}:root{--ui-kit-header-height: 86px;--ui-kit-sidebar-collapsed-width: 56px;--ui-kit-sidebar-expanded-width: 256px;--ui-kit-layout-gap: 25px}.kit-tree{padding:15px;background-color:var(--ui-kit-color-white);border:1px solid var(--ui-kit-color-grey-11);border-radius:10px}.kit-tree-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--ui-kit-color-grey-11)}.kit-tree-content{padding:15px 0 0}.kit-tree-node{display:flex;align-items:center;gap:5px;padding:3px 0;font-size:14px;font-family:monospace;line-height:1.5}.kit-tree-node-key{color:var(--ui-kit-color-grey-10);font-weight:600}.kit-tree-node-separator{color:var(--ui-kit-color-grey-10)}.kit-tree-node-value{color:var(--ui-kit-color-main)}.kit-tree-raw{margin:0;padding:10px;color:var(--ui-kit-color-grey-10);font-family:monospace;border-radius:6px;white-space:pre-wrap;word-break:break-word;background:var(--ui-kit-color-grey-8)}.kit-tree .k-treeview::-webkit-scrollbar{height:8px;width:8px;background-color:var(--ui-kit-color-white)}.kit-tree .k-treeview::-webkit-scrollbar-thumb{background-color:var(--ui-kit-color-grey-12);border-radius:4px}.kit-tree .k-treeview::-webkit-scrollbar-thumb:hover{background-color:var(--ui-kit-color-grey-18)}.kit-tree .k-treeview{scrollbar-color:initial}.kit-tree .k-treeview-group{padding-left:20px}.kit-tree .k-treeview-lines{margin:0;padding:0;list-style:none}.kit-tree .k-treeview-leaf{padding:0}.kit-tree .k-treeview-item{list-style:none}.kit-tree .k-treeview-item-content{display:flex;align-items:center;gap:5px;padding-inline-start:calc(var(--kendo-treeview-level, 0) * 20px)}.kit-tree .k-treeview-item-content:hover{background:none}.kit-tree .k-treeview-item-content.k-focus{box-shadow:none}.kit-tree .k-treeview-toggle{margin-inline-start:-25px;width:18px;height:18px;cursor:pointer}.kit-tree .k-treeview-toggle:hover{color:var(--ui-kit-color-main)}.kit-tree .k-treeview-toggle .k-icon{padding:0;width:100%;height:100%}\n"] }]
15983
16015
  }], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], customActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "customActions", required: false }] }], contentTemplates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KitTreeContentDirective), { isSignal: true }] }] } });
15984
16016
 
16017
+ const KIT_ENTITY_CREATE_SERVICE = new InjectionToken('kitEntityCreateService');
16018
+ class KitCreateEntityDialogComponent extends DialogContentBase {
16019
+ constructor() {
16020
+ super(...arguments);
16021
+ this.entityService = inject(KIT_ENTITY_CREATE_SERVICE);
16022
+ this.kitFormErrors = inject(KitFormErrors);
16023
+ this.formBuilder = inject(FormBuilder);
16024
+ this.form = this.formBuilder.group({
16025
+ name: this.formBuilder.control('', [
16026
+ Validators.required,
16027
+ kitWhitespaceValidator(),
16028
+ Validators.maxLength(256),
16029
+ ]),
16030
+ });
16031
+ this.kitButtonKind = KitButtonKind;
16032
+ this.kitButtonType = KitButtonType;
16033
+ this.isSaving = signal(false, ...(ngDevMode ? [{ debugName: "isSaving" }] : /* istanbul ignore next */ []));
16034
+ this.getTextboxState = getTextboxState;
16035
+ }
16036
+ createEntity() {
16037
+ this.isSaving.set(true);
16038
+ this.entityService.save({ name: this.form.controls['name'].value }).pipe(finalize(() => this.isSaving.set(false))).subscribe((data) => {
16039
+ this.dialog.close(data);
16040
+ });
16041
+ }
16042
+ getFormErrorMessages(form, controlName) {
16043
+ return this.kitFormErrors.getErrors(form.controls[controlName]).join('. ');
16044
+ }
16045
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitCreateEntityDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16046
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: KitCreateEntityDialogComponent, isStandalone: true, selector: "kit-create-entity-dialog", providers: [KitFormErrors], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\">\n <kit-textbox class=\"textbox\"\n formControlName=\"name\"\n [label]=\"'Name' | translate\"\n [showStateIcon]=\"false\"\n [state]=\"getTextboxState(form.get('name'))\"\n [messageText]=\"getFormErrorMessages(form, 'name')\" />\n\n <kit-dialog-actions>\n <kit-button [label]=\"'Cancel' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"dialog.close()\" />\n <kit-button [label]=\"'Save' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [disabled]=\"form.invalid || isSaving()\"\n (clicked)=\"createEntity()\" />\n </kit-dialog-actions>\n</div>\n", styles: ["::ng-deep .kit-dialog .k-dialog{min-width:400px}::ng-deep .kit-dialog .k-dialog .k-dialog-content{padding:20px 25px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { 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: "component", type: KitDialogActionsComponent, selector: "kit-dialog-actions" }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { kind: "ngmodule", type: FormsModule }, { 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: "ngmodule", type: ReactiveFormsModule }, { 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: "pipe", type: i1$e.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16047
+ }
16048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitCreateEntityDialogComponent, decorators: [{
16049
+ type: Component,
16050
+ args: [{ selector: 'kit-create-entity-dialog', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
16051
+ TranslateModule,
16052
+ KitTextboxComponent,
16053
+ KitDialogActionsComponent,
16054
+ KitButtonComponent,
16055
+ FormsModule,
16056
+ ReactiveFormsModule,
16057
+ ], providers: [KitFormErrors], template: "<div [formGroup]=\"form\">\n <kit-textbox class=\"textbox\"\n formControlName=\"name\"\n [label]=\"'Name' | translate\"\n [showStateIcon]=\"false\"\n [state]=\"getTextboxState(form.get('name'))\"\n [messageText]=\"getFormErrorMessages(form, 'name')\" />\n\n <kit-dialog-actions>\n <kit-button [label]=\"'Cancel' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"dialog.close()\" />\n <kit-button [label]=\"'Save' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [disabled]=\"form.invalid || isSaving()\"\n (clicked)=\"createEntity()\" />\n </kit-dialog-actions>\n</div>\n", styles: ["::ng-deep .kit-dialog .k-dialog{min-width:400px}::ng-deep .kit-dialog .k-dialog .k-dialog-content{padding:20px 25px}\n"] }]
16058
+ }] });
16059
+
16060
+ var KitPermissionTypes;
16061
+ (function (KitPermissionTypes) {
16062
+ KitPermissionTypes["Create"] = "Create";
16063
+ KitPermissionTypes["Delete"] = "Delete";
16064
+ KitPermissionTypes["Edit"] = "Edit";
16065
+ KitPermissionTypes["View"] = "View";
16066
+ KitPermissionTypes["Set"] = "Set";
16067
+ KitPermissionTypes["Use"] = "Use";
16068
+ })(KitPermissionTypes || (KitPermissionTypes = {}));
16069
+ const defaultUserRolesSort = [{ field: 'name', dir: 'asc' }];
16070
+ const exportedUserRoleColumns = [
16071
+ kitBuildGridColumn('name', 'Name', 'string', false, false, KIT_GRID_COLUMN_WIDTH),
16072
+ ];
16073
+
16074
+ class FetchUserRoles extends KitAbstractPayloadAction {
16075
+ static { this.type = '[KitUserRoles] Fetch User Roles'; }
16076
+ }
16077
+ class FetchUserRoleDetails extends KitAbstractPayloadAction {
16078
+ static { this.type = '[KitUserRoles] Fetch User Role Details'; }
16079
+ }
16080
+ class DeleteUserRole extends KitAbstractPayloadAction {
16081
+ static { this.type = '[KitUserRoles] Delete User Role'; }
16082
+ }
16083
+ class UpdateUserRole extends KitAbstractPayloadAction {
16084
+ static { this.type = '[KitUserRoles] Update User Role'; }
16085
+ }
16086
+
16087
+ class KitUserRolesService {
16088
+ constructor() {
16089
+ this.httpClient = inject(HttpClient);
16090
+ this.baseUrl = `${trimTrailingSlash(inject(KIT_BASE_PATH))}`;
16091
+ }
16092
+ fetchUserRoles({ skip, take, sort, filter }) {
16093
+ return this.httpClient.get(`${this.baseUrl}/users/roles`, { params: kitBuildHttpParams({ $skip: skip, $top: take, $orderby: kitBuildSortString(sort), $filter: kitBuildOdataFilter(filter) }) });
16094
+ }
16095
+ fetchUserRoleDetails(id) {
16096
+ return this.httpClient.get(`${this.baseUrl}/users/roles/${id}`);
16097
+ }
16098
+ save(payload) {
16099
+ if (!payload.id) {
16100
+ return this.httpClient.post(`${this.baseUrl}/users/roles`, { ...payload, permissions: {} });
16101
+ }
16102
+ return this.httpClient.put(`${this.baseUrl}/users/roles/${payload.id}`, payload);
16103
+ }
16104
+ deleteUserRole(id) {
16105
+ return this.httpClient.delete(`${this.baseUrl}/users/roles/${id}`);
16106
+ }
16107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRolesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16108
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRolesService }); }
16109
+ }
16110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRolesService, decorators: [{
16111
+ type: Injectable
16112
+ }] });
16113
+
16114
+ const KIT_USER_ROLES_STATE_TOKEN = new StateToken('kitUserRoles');
16115
+ let KitUserRolesState = class KitUserRolesState {
16116
+ constructor() {
16117
+ this.kitUserRolesService = inject(KitUserRolesService);
16118
+ }
16119
+ fetchUserRoles(ctx, action) {
16120
+ const { skip, take, filter, sort } = action.payload;
16121
+ return this.kitUserRolesService.fetchUserRoles({ skip, take, filter, sort }).pipe(tap(data => {
16122
+ ctx.patchState({
16123
+ roles: {
16124
+ loading: false,
16125
+ data: data.data,
16126
+ total: data.total,
16127
+ },
16128
+ });
16129
+ }), catchError(err => {
16130
+ ctx.patchState({
16131
+ roles: {
16132
+ loading: false,
16133
+ data: [],
16134
+ total: 0,
16135
+ },
16136
+ });
16137
+ return throwError(() => err);
16138
+ }));
16139
+ }
16140
+ fetchUserRoleDetails(ctx, { payload }) {
16141
+ ctx.patchState({
16142
+ roleDetails: { loading: true, data: null },
16143
+ });
16144
+ return this.kitUserRolesService.fetchUserRoleDetails(payload.id).pipe(tap(data => ctx.patchState({
16145
+ roleDetails: {
16146
+ loading: false,
16147
+ data,
16148
+ },
16149
+ })));
16150
+ }
16151
+ deleteUserRole(ctx, { payload }) {
16152
+ return this.kitUserRolesService.deleteUserRole(payload.id).pipe(tap(() => {
16153
+ const state = ctx.getState();
16154
+ const filteredData = state.roles.data.filter(p => p.id !== payload.id);
16155
+ const wasDeleted = filteredData.length < state.roles.data.length;
16156
+ ctx.patchState({
16157
+ roles: {
16158
+ loading: false,
16159
+ data: filteredData,
16160
+ total: wasDeleted ? (state.roles.total ?? 1) - 1 : state.roles.total,
16161
+ },
16162
+ roleDetails: {
16163
+ data: null,
16164
+ loading: false,
16165
+ },
16166
+ });
16167
+ }));
16168
+ }
16169
+ updateUserRoleDetails(ctx, { payload }) {
16170
+ return this.kitUserRolesService.save(payload).pipe(tap(() => {
16171
+ ctx.setState(patch({
16172
+ roles: patch({
16173
+ data: updateItem(ud => ud?.id === payload.id, patch({ name: payload.name })),
16174
+ }),
16175
+ roleDetails: patch({
16176
+ data: payload,
16177
+ }),
16178
+ }));
16179
+ }));
16180
+ }
16181
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRolesState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16182
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRolesState }); }
16183
+ };
16184
+ __decorate([
16185
+ Action(FetchUserRoles)
16186
+ ], KitUserRolesState.prototype, "fetchUserRoles", null);
16187
+ __decorate([
16188
+ Action(FetchUserRoleDetails)
16189
+ ], KitUserRolesState.prototype, "fetchUserRoleDetails", null);
16190
+ __decorate([
16191
+ Action(DeleteUserRole)
16192
+ ], KitUserRolesState.prototype, "deleteUserRole", null);
16193
+ __decorate([
16194
+ Action(UpdateUserRole)
16195
+ ], KitUserRolesState.prototype, "updateUserRoleDetails", null);
16196
+ KitUserRolesState = __decorate([
16197
+ State({
16198
+ name: KIT_USER_ROLES_STATE_TOKEN,
16199
+ defaults: {
16200
+ roles: kitApiResponseDefaultEntities(),
16201
+ roleDetails: kitApiResponseDefaultEntities(),
16202
+ },
16203
+ })
16204
+ ], KitUserRolesState);
16205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRolesState, decorators: [{
16206
+ type: Injectable
16207
+ }], propDecorators: { fetchUserRoles: [], fetchUserRoleDetails: [], deleteUserRole: [], updateUserRoleDetails: [] } });
16208
+
16209
+ class KitUserRoleDetailsComponent {
16210
+ constructor() {
16211
+ this.store = inject(Store);
16212
+ this.kitDialogService = inject(KitDialogService);
16213
+ this.translateService = inject(TranslateService);
16214
+ this.viewContainerRef = inject(ViewContainerRef);
16215
+ this.kitFormErrors = inject(KitFormErrors);
16216
+ this.roleId = input.required(...(ngDevMode ? [{ debugName: "roleId" }] : /* istanbul ignore next */ []));
16217
+ this.allPermissions = input.required(...(ngDevMode ? [{ debugName: "allPermissions" }] : /* istanbul ignore next */ []));
16218
+ this.deleted = output();
16219
+ this.updated = output();
16220
+ this.kitSvgIcon = KitSvgIcon;
16221
+ this.kitSvgIconType = KitSvgIconType;
16222
+ this.kitButtonType = KitButtonType;
16223
+ this.kitButtonKind = KitButtonKind;
16224
+ this.kitButtonIconPosition = KitButtonIconPosition;
16225
+ this.crudPermissionTypes = [
16226
+ KitPermissionTypes.View,
16227
+ KitPermissionTypes.Create,
16228
+ KitPermissionTypes.Edit,
16229
+ KitPermissionTypes.Delete,
16230
+ ];
16231
+ this.nameControl = new FormControl('', {
16232
+ nonNullable: true,
16233
+ validators: [
16234
+ Validators.required,
16235
+ Validators.maxLength(256),
16236
+ ],
16237
+ });
16238
+ this.userRoleDetails = toSignal(this.store.select(KIT_USER_ROLES_STATE_TOKEN).pipe(map(({ roleDetails }) => roleDetails)), { initialValue: { loading: false, data: null } });
16239
+ this.pendingRoleDetails = signal(null, ...(ngDevMode ? [{ debugName: "pendingRoleDetails" }] : /* istanbul ignore next */ []));
16240
+ this.crudCategories = computed(() => this.filterCategories(true), ...(ngDevMode ? [{ debugName: "crudCategories" }] : /* istanbul ignore next */ []));
16241
+ this.nonCrudCategories = computed(() => this.filterCategories(false), ...(ngDevMode ? [{ debugName: "nonCrudCategories" }] : /* istanbul ignore next */ []));
16242
+ this.isNameTouched = signal(false, ...(ngDevMode ? [{ debugName: "isNameTouched" }] : /* istanbul ignore next */ []));
16243
+ this.isDirty = computed(() => {
16244
+ const pending = this.pendingRoleDetails();
16245
+ const original = this.userRoleDetails().data;
16246
+ if (!pending || !original) {
16247
+ return false;
16248
+ }
16249
+ if (this.nameValue() !== original.name) {
16250
+ return true;
16251
+ }
16252
+ return !this.permissionsEqual(pending.permissions, original.permissions);
16253
+ }, ...(ngDevMode ? [{ debugName: "isDirty" }] : /* istanbul ignore next */ []));
16254
+ this.canSave = computed(() => this.isDirty() && this.nameStatus() === 'VALID', ...(ngDevMode ? [{ debugName: "canSave" }] : /* istanbul ignore next */ []));
16255
+ this.getTextboxState = getTextboxState;
16256
+ this.nameStatus = toSignal(this.nameControl.statusChanges, { initialValue: this.nameControl.status });
16257
+ this.nameValue = toSignal(this.nameControl.valueChanges, { initialValue: this.nameControl.value });
16258
+ this.cancelAction = {
16259
+ text: this.translateService.instant('Cancel'),
16260
+ cssClass: `${KitButtonType.GHOST} ${KitButtonState.DEFAULT} ${KitButtonKind.MEDIUM}`,
16261
+ };
16262
+ this.deleteAction = {
16263
+ text: this.translateService.instant('Buttons.Delete'),
16264
+ cssClass: `${KitButtonType.PRIMARY} ${KitButtonState.ERROR} ${KitButtonKind.MEDIUM}`,
16265
+ };
16266
+ effect(() => {
16267
+ const id = this.roleId();
16268
+ this.store.dispatch(new FetchUserRoleDetails({ id }));
16269
+ this.pendingRoleDetails.set(null);
16270
+ this.isNameTouched.set(false);
16271
+ this.nameControl.reset();
16272
+ });
16273
+ effect(() => {
16274
+ const state = this.userRoleDetails();
16275
+ if (!state.loading && state.data && !this.pendingRoleDetails()) {
16276
+ this.pendingRoleDetails.set({ ...state.data, permissions: { ...state.data.permissions } });
16277
+ this.nameControl.setValue(state.data.name);
16278
+ this.nameControl.markAsPristine();
16279
+ }
16280
+ });
16281
+ }
16282
+ isPermissionSelected(permissions, category, type) {
16283
+ return permissions[category]?.includes(type) ?? false;
16284
+ }
16285
+ togglePermission(category, type, selected) {
16286
+ const pending = this.pendingRoleDetails();
16287
+ if (!pending) {
16288
+ return;
16289
+ }
16290
+ ;
16291
+ const currentTypes = pending.permissions[category] ?? [];
16292
+ const updatedTypes = selected
16293
+ ? [
16294
+ ...currentTypes,
16295
+ type,
16296
+ ]
16297
+ : currentTypes.filter(t => t !== type);
16298
+ this.pendingRoleDetails.set({
16299
+ ...pending,
16300
+ permissions: {
16301
+ ...pending.permissions,
16302
+ [category]: updatedTypes,
16303
+ },
16304
+ });
16305
+ }
16306
+ saveRole() {
16307
+ const pending = this.pendingRoleDetails();
16308
+ if (!pending) {
16309
+ return;
16310
+ }
16311
+ ;
16312
+ this.updated.emit({ ...pending, name: this.nameControl.value });
16313
+ }
16314
+ deleteRole(name) {
16315
+ this.kitDialogService.openDialog({
16316
+ title: `${this.translateService.instant('kit.common.delete')} ${name}`,
16317
+ content: `${this.translateService.instant('kit.common.confirmationDelete', { name })}`,
16318
+ appendTo: this.viewContainerRef,
16319
+ actions: [
16320
+ this.cancelAction,
16321
+ this.deleteAction,
16322
+ ],
16323
+ cssClass: 'delete-group-dialog',
16324
+ });
16325
+ this.kitDialogService.dialogRef?.result.pipe(take(1)).subscribe(action => {
16326
+ if (action === this.deleteAction) {
16327
+ this.deleted.emit();
16328
+ }
16329
+ });
16330
+ }
16331
+ getNameErrorMessages() {
16332
+ return this.kitFormErrors.getErrors(this.nameControl).join('. ');
16333
+ }
16334
+ isCrudCategory(types) {
16335
+ if (types.length !== this.crudPermissionTypes.length) {
16336
+ return false;
16337
+ }
16338
+ return this.crudPermissionTypes.every(t => types.includes(t));
16339
+ }
16340
+ filterCategories(crud) {
16341
+ return Object.entries(this.allPermissions())
16342
+ .filter(([, types]) => this.isCrudCategory(types) === crud)
16343
+ .map(entry => ({ category: entry[0], types: entry[1] }))
16344
+ .sort((a, b) => a.category.localeCompare(b.category));
16345
+ }
16346
+ permissionsEqual(a, b) {
16347
+ const keysA = Object.keys(a).sort((x, y) => x.localeCompare(y));
16348
+ const keysB = Object.keys(b).sort((x, y) => x.localeCompare(y));
16349
+ if (keysA.join() !== keysB.join()) {
16350
+ return false;
16351
+ }
16352
+ return keysA.every(key => {
16353
+ const sortedA = [...(a[key] ?? [])].sort((x, y) => x.localeCompare(y)).join();
16354
+ const sortedB = [...(b[key] ?? [])].sort((x, y) => x.localeCompare(y)).join();
16355
+ return sortedA === sortedB;
16356
+ });
16357
+ }
16358
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRoleDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16359
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: KitUserRoleDetailsComponent, isStandalone: true, selector: "kit-user-role-details", inputs: { roleId: { classPropertyName: "roleId", publicName: "roleId", isSignal: true, isRequired: true, transformFunction: null }, allPermissions: { classPropertyName: "allPermissions", publicName: "allPermissions", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { deleted: "deleted", updated: "updated" }, providers: [KitFormErrors], ngImport: i0, template: "@if (userRoleDetails().loading) {\n <kit-skeleton-section />\n} @else if (pendingRoleDetails()) {\n <div class=\"user-role-details\">\n <kit-entity-section-container>\n <ng-container title>\n <div class=\"details-header\">\n <span>{{ \"kit.userRoles.details\" | translate }}</span>\n <div class=\"details-header-actions\">\n <kit-button [label]=\"'kit.common.save' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.PRIMARY\"\n [disabled]=\"!canSave()\"\n (clicked)=\"saveRole()\" />\n <kit-button [label]=\"'kit.common.delete' | translate\"\n [icon]=\"kitSvgIcon.TRASH\"\n [iconType]=\"kitSvgIconType.STROKE\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n (clicked)=\"deleteRole(pendingRoleDetails()?.name || '')\"/>\n </div>\n </div>\n </ng-container>\n </kit-entity-section-container>\n <div class=\"details-content\">\n <kit-textbox class=\"textbox-name\"\n [label]=\"'kit.common.name' | translate\"\n [showStateIcon]=\"false\"\n [formControl]=\"nameControl\"\n [state]=\"getTextboxState(nameControl)\"\n [messageText]=\"getNameErrorMessages()\" />\n\n <div class=\"permissions\">\n @if (crudCategories().length) {\n <table class=\"permissions-table\">\n <thead>\n <tr>\n <th></th>\n @for (type of crudPermissionTypes; track type) {\n <th>{{ \"Permissions.\" + type | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (entry of crudCategories(); track entry.category) {\n <tr>\n <td class=\"permissions-table-category\">\n {{ \"kit.userRoles.permissions.maintain\" | translate }} {{ \"Permissions.\" + entry.category | translate }}\n </td>\n @for (type of crudPermissionTypes; track type) {\n <td class=\"permissions-table-cell\">\n <kit-checkbox [checked]=\"isPermissionSelected(pendingRoleDetails()!.permissions, entry.category, type)\"\n (changed)=\"togglePermission(entry.category, type, $event)\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n\n @if (nonCrudCategories().length) {\n <div class=\"non-crud-permissions\">\n @for (entry of nonCrudCategories(); track entry.category) {\n @for (type of $any(entry.types); track type) {\n <kit-checkbox [label]=\"('Permissions.' + entry.category | translate) + ' ' + ('Permissions.' + type | translate)\"\n [checked]=\"isPermissionSelected(pendingRoleDetails()!.permissions, entry.category, type)\"\n (changed)=\"togglePermission(entry.category, type, $event)\"\n />\n }\n }\n </div>\n }\n </div>\n </div>\n </div>\n}\n", styles: [".user-role-details .details-header{display:flex;justify-content:space-between;align-items:center}.user-role-details .details-header-actions{display:flex;gap:10px}.user-role-details .details-content{padding-top:20px}.user-role-details .permissions{margin-top:15px}.user-role-details .permissions-table{width:100%;border-collapse:collapse}.user-role-details .permissions-table thead th{text-align:center;padding:8px 12px;font-weight:600}.user-role-details .permissions-table thead th:first-child{text-align:left}.user-role-details .permissions-table tbody tr:nth-child(odd){background-color:var(--ui-kit-color-white)}.user-role-details .permissions-table .permissions-table-category,.user-role-details .permissions-table .permissions-table-cell{padding:8px 12px}.user-role-details .permissions-table .permissions-table-cell{text-align:center}.user-role-details .non-crud-permissions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px;padding:8px 12px;margin-top:15px}.user-role-details ::ng-deep .kit-entity-section-container{padding-bottom:10px;gap:0}.user-role-details ::ng-deep .permissions-table .kit-checkbox-input{margin:auto}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: KitCheckboxComponent, selector: "kit-checkbox", inputs: ["label", "disabled", "checked", "readonly", "state", "messageIcon", "messageText", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: KitEntitySectionContainerComponent, selector: "kit-entity-section-container" }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { 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: "component", type: KitSkeletonSectionComponent, selector: "kit-skeleton-section" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16360
+ }
16361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRoleDetailsComponent, decorators: [{
16362
+ type: Component,
16363
+ args: [{ selector: 'kit-user-role-details', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
16364
+ ReactiveFormsModule,
16365
+ KitCheckboxComponent,
16366
+ KitEntitySectionContainerComponent,
16367
+ KitButtonComponent,
16368
+ KitTextboxComponent,
16369
+ TranslatePipe,
16370
+ KitSkeletonSectionComponent,
16371
+ ], providers: [KitFormErrors], template: "@if (userRoleDetails().loading) {\n <kit-skeleton-section />\n} @else if (pendingRoleDetails()) {\n <div class=\"user-role-details\">\n <kit-entity-section-container>\n <ng-container title>\n <div class=\"details-header\">\n <span>{{ \"kit.userRoles.details\" | translate }}</span>\n <div class=\"details-header-actions\">\n <kit-button [label]=\"'kit.common.save' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.PRIMARY\"\n [disabled]=\"!canSave()\"\n (clicked)=\"saveRole()\" />\n <kit-button [label]=\"'kit.common.delete' | translate\"\n [icon]=\"kitSvgIcon.TRASH\"\n [iconType]=\"kitSvgIconType.STROKE\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n (clicked)=\"deleteRole(pendingRoleDetails()?.name || '')\"/>\n </div>\n </div>\n </ng-container>\n </kit-entity-section-container>\n <div class=\"details-content\">\n <kit-textbox class=\"textbox-name\"\n [label]=\"'kit.common.name' | translate\"\n [showStateIcon]=\"false\"\n [formControl]=\"nameControl\"\n [state]=\"getTextboxState(nameControl)\"\n [messageText]=\"getNameErrorMessages()\" />\n\n <div class=\"permissions\">\n @if (crudCategories().length) {\n <table class=\"permissions-table\">\n <thead>\n <tr>\n <th></th>\n @for (type of crudPermissionTypes; track type) {\n <th>{{ \"Permissions.\" + type | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (entry of crudCategories(); track entry.category) {\n <tr>\n <td class=\"permissions-table-category\">\n {{ \"kit.userRoles.permissions.maintain\" | translate }} {{ \"Permissions.\" + entry.category | translate }}\n </td>\n @for (type of crudPermissionTypes; track type) {\n <td class=\"permissions-table-cell\">\n <kit-checkbox [checked]=\"isPermissionSelected(pendingRoleDetails()!.permissions, entry.category, type)\"\n (changed)=\"togglePermission(entry.category, type, $event)\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n\n @if (nonCrudCategories().length) {\n <div class=\"non-crud-permissions\">\n @for (entry of nonCrudCategories(); track entry.category) {\n @for (type of $any(entry.types); track type) {\n <kit-checkbox [label]=\"('Permissions.' + entry.category | translate) + ' ' + ('Permissions.' + type | translate)\"\n [checked]=\"isPermissionSelected(pendingRoleDetails()!.permissions, entry.category, type)\"\n (changed)=\"togglePermission(entry.category, type, $event)\"\n />\n }\n }\n </div>\n }\n </div>\n </div>\n </div>\n}\n", styles: [".user-role-details .details-header{display:flex;justify-content:space-between;align-items:center}.user-role-details .details-header-actions{display:flex;gap:10px}.user-role-details .details-content{padding-top:20px}.user-role-details .permissions{margin-top:15px}.user-role-details .permissions-table{width:100%;border-collapse:collapse}.user-role-details .permissions-table thead th{text-align:center;padding:8px 12px;font-weight:600}.user-role-details .permissions-table thead th:first-child{text-align:left}.user-role-details .permissions-table tbody tr:nth-child(odd){background-color:var(--ui-kit-color-white)}.user-role-details .permissions-table .permissions-table-category,.user-role-details .permissions-table .permissions-table-cell{padding:8px 12px}.user-role-details .permissions-table .permissions-table-cell{text-align:center}.user-role-details .non-crud-permissions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px;padding:8px 12px;margin-top:15px}.user-role-details ::ng-deep .kit-entity-section-container{padding-bottom:10px;gap:0}.user-role-details ::ng-deep .permissions-table .kit-checkbox-input{margin:auto}\n"] }]
16372
+ }], ctorParameters: () => [], propDecorators: { roleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "roleId", required: true }] }], allPermissions: [{ type: i0.Input, args: [{ isSignal: true, alias: "allPermissions", required: true }] }], deleted: [{ type: i0.Output, args: ["deleted"] }], updated: [{ type: i0.Output, args: ["updated"] }] } });
16373
+
16374
+ const kitUserRolesConfig = new InjectionToken('KitUserRolesConfig', {
16375
+ factory: () => {
16376
+ return {
16377
+ listFilters$: of([]),
16378
+ };
16379
+ },
16380
+ });
16381
+
16382
+ class KitUserRolesComponent {
16383
+ constructor() {
16384
+ this.store = inject(Store);
16385
+ this.kitUserRolesService = inject(KitUserRolesService);
16386
+ this.kitDialogService = inject(KitDialogService);
16387
+ this.translateService = inject(TranslateService);
16388
+ this.viewContainerRef = inject(ViewContainerRef);
16389
+ this.injector = inject(Injector);
16390
+ this.kitExcelExportService = inject(KitExcelExportService);
16391
+ this.kitPermissionsApiService = inject(KitPermissionsApiService);
16392
+ this.configFilters = toSignal(inject(kitUserRolesConfig).listFilters$, { initialValue: [] });
16393
+ this.kitCardDetailsComponent = viewChild.required((KitCardDetailsComponent));
16394
+ this.roles$ = this.store.select(KIT_USER_ROLES_STATE_TOKEN).pipe(map(({ roles }) => kitBuildGridDataResults(roles.data, roles.loading, roles.total)));
16395
+ this.permissions$ = this.kitPermissionsApiService.getAllPermissions();
16396
+ this.kitSvgIcon = KitSvgIcon;
16397
+ this.kitSvgIconType = KitSvgIconType;
16398
+ this.kitButtonType = KitButtonType;
16399
+ this.kitButtonKind = KitButtonKind;
16400
+ this.kitButtonIconPosition = KitButtonIconPosition;
16401
+ this.selectedCard = signal(null, ...(ngDevMode ? [{ debugName: "selectedCard" }] : /* istanbul ignore next */ []));
16402
+ this.cardDetailsSkeletonConfig = {
16403
+ itemHeight: 54,
16404
+ itemsCount: 5,
16405
+ };
16406
+ }
16407
+ ngOnDestroy() {
16408
+ this.store.dispatch(new StateReset(KitUserRolesState));
16409
+ }
16410
+ onDataStateChanged({ skip, take, search, filters }) {
16411
+ const filter = {
16412
+ logic: filters?.logic ?? KitFilterLogic.AND,
16413
+ filters: [
16414
+ ...(search ? [{ field: 'name', operator: 'contains', value: search }] : []),
16415
+ ...(filters?.filters || []),
16416
+ ...this.configFilters(),
16417
+ ],
16418
+ };
16419
+ this.store.dispatch(new FetchUserRoles({ skip, take, filter, sort: defaultUserRolesSort }));
16420
+ }
16421
+ createNewRole() {
16422
+ this.kitDialogService.openDialog({
16423
+ title: `${this.translateService.instant('CreateNew')}`,
16424
+ content: KitCreateEntityDialogComponent,
16425
+ appendTo: this.viewContainerRef,
16426
+ });
16427
+ this.kitDialogService.dialogRef?.result.pipe(take(1)).subscribe((result) => {
16428
+ if (result && 'id' in result) {
16429
+ this.kitCardDetailsComponent().appendCard(result);
16430
+ this.kitCardDetailsComponent().onCardClick(result);
16431
+ requestAnimationFrame(() => this.kitCardDetailsComponent().scrollToCardById(result.id.toString()));
16432
+ }
16433
+ });
16434
+ }
16435
+ deleteRole(id) {
16436
+ this.store.dispatch(new DeleteUserRole({ id })).subscribe(() => {
16437
+ this.kitCardDetailsComponent().deleteCard(id);
16438
+ });
16439
+ }
16440
+ updateRole(role) {
16441
+ this.store.dispatch(new UpdateUserRole(role)).subscribe(() => {
16442
+ this.kitCardDetailsComponent().updateSpecificCardData({ id: role.id, name: role.name });
16443
+ });
16444
+ }
16445
+ exportExcel() {
16446
+ const configFilters = this.configFilters();
16447
+ const filter = {
16448
+ logic: KitFilterLogic.AND,
16449
+ filters: [...configFilters],
16450
+ };
16451
+ this.kitUserRolesService.fetchUserRoles({ filter }).subscribe(data => {
16452
+ runInInjectionContext(this.injector, () => {
16453
+ this.kitExcelExportService.export(data.data, exportedUserRoleColumns, 'User Roles', {});
16454
+ });
16455
+ });
16456
+ }
16457
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRolesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16458
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: KitUserRolesComponent, isStandalone: true, selector: "kit-user-roles", providers: [
16459
+ KitGridCellService,
16460
+ DecimalPipe,
16461
+ DatePipe,
16462
+ KitExcelExportService,
16463
+ {
16464
+ provide: KIT_ENTITY_CREATE_SERVICE,
16465
+ useExisting: KitUserRolesService,
16466
+ },
16467
+ ], viewQueries: [{ propertyName: "kitCardDetailsComponent", first: true, predicate: (KitCardDetailsComponent), descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"user-roles\">\n <kit-card-details [cardData$]=\"roles$\"\n [pageSize]=\"10\"\n [title]=\"'kit.userRoles.title' | translate\"\n [cardSkeletonConfig]=\"cardDetailsSkeletonConfig\"\n (dataStateChanged)=\"onDataStateChanged($event)\"\n (cardClicked)=\"selectedCard.set($event)\">\n <ng-template #headerActions>\n <div class=\"header-actions\">\n <kit-button [label]=\"'kit.export.title' | translate\"\n [icon]=\"kitSvgIcon.EXPORT\"\n [iconType]=\"kitSvgIconType.STROKE\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"exportExcel()\" />\n <kit-button [label]=\"'kit.common.create' | translate\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"createNewRole()\" />\n </div>\n </ng-template>\n\n <ng-template #cardElement\n let-card>\n <p class=\"user-roles-card-name\">\n <kit-truncate-text>{{ card.name }}</kit-truncate-text>\n </p>\n </ng-template>\n\n <ng-template #details\n let-activeId>\n <div class=\"user-roles-details\">\n <kit-user-role-details [roleId]=\"activeId\"\n [allPermissions]=\"(permissions$ | async) || {}\"\n (deleted)=\"deleteRole(activeId)\"\n (updated)=\"updateRole($event)\" />\n </div>\n </ng-template>\n </kit-card-details>\n</div>\n", styles: [".user-roles .header-actions{display:flex;gap:10px}.user-roles-card-name{margin:10px 0}\n"], dependencies: [{ kind: "component", type: KitCardDetailsComponent, selector: "kit-card-details", inputs: ["cardData$", "pageSize", "title", "cardSkeletonConfig"], outputs: ["dataStateChanged", "cardClicked"] }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { kind: "component", type: KitTruncateTextComponent, selector: "kit-truncate-text", inputs: ["tooltipText"] }, { kind: "component", type: KitUserRoleDetailsComponent, selector: "kit-user-role-details", inputs: ["roleId", "allPermissions"], outputs: ["deleted", "updated"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16468
+ }
16469
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitUserRolesComponent, decorators: [{
16470
+ type: Component,
16471
+ args: [{ selector: 'kit-user-roles', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
16472
+ KitCardDetailsComponent,
16473
+ TranslatePipe,
16474
+ KitButtonComponent,
16475
+ KitTruncateTextComponent,
16476
+ KitUserRoleDetailsComponent,
16477
+ AsyncPipe,
16478
+ ], providers: [
16479
+ KitGridCellService,
16480
+ DecimalPipe,
16481
+ DatePipe,
16482
+ KitExcelExportService,
16483
+ {
16484
+ provide: KIT_ENTITY_CREATE_SERVICE,
16485
+ useExisting: KitUserRolesService,
16486
+ },
16487
+ ], template: "<div class=\"user-roles\">\n <kit-card-details [cardData$]=\"roles$\"\n [pageSize]=\"10\"\n [title]=\"'kit.userRoles.title' | translate\"\n [cardSkeletonConfig]=\"cardDetailsSkeletonConfig\"\n (dataStateChanged)=\"onDataStateChanged($event)\"\n (cardClicked)=\"selectedCard.set($event)\">\n <ng-template #headerActions>\n <div class=\"header-actions\">\n <kit-button [label]=\"'kit.export.title' | translate\"\n [icon]=\"kitSvgIcon.EXPORT\"\n [iconType]=\"kitSvgIconType.STROKE\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"exportExcel()\" />\n <kit-button [label]=\"'kit.common.create' | translate\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"createNewRole()\" />\n </div>\n </ng-template>\n\n <ng-template #cardElement\n let-card>\n <p class=\"user-roles-card-name\">\n <kit-truncate-text>{{ card.name }}</kit-truncate-text>\n </p>\n </ng-template>\n\n <ng-template #details\n let-activeId>\n <div class=\"user-roles-details\">\n <kit-user-role-details [roleId]=\"activeId\"\n [allPermissions]=\"(permissions$ | async) || {}\"\n (deleted)=\"deleteRole(activeId)\"\n (updated)=\"updateRole($event)\" />\n </div>\n </ng-template>\n </kit-card-details>\n</div>\n", styles: [".user-roles .header-actions{display:flex;gap:10px}.user-roles-card-name{margin:10px 0}\n"] }]
16488
+ }], propDecorators: { kitCardDetailsComponent: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KitCardDetailsComponent), { isSignal: true }] }] } });
16489
+
15985
16490
  // KitButton
15986
16491
 
15987
16492
  /**
15988
16493
  * Generated bundle index. Do not edit.
15989
16494
  */
15990
16495
 
15991
- export { AbstractKitCtaPanelConfirmationComponent, AddGridFilter, FetchApiTokens, FetchUser, FetchUserIdentities, FetchUserPermissions, FetchUserSettings, HighlightPipe, KIT_API_TOKENS_STATE_TOKEN, KIT_BASE_PATH, KIT_DATETIME_FORMAT_LONG, KIT_DATE_FORMAT, KIT_DATE_FORMAT_SHORT, KIT_GRID_CELL_DATE_FORMAT_CONFIG, KIT_GRID_COLUMN_WIDTH, KIT_GRID_PAGE_SIZE, KIT_GRID_STATE_TOKEN, KIT_TIME_FORMAT_SHORT, KIT_USER_APPLICATIONS_PATH, KIT_USER_IDENTITIES_STATE_TOKEN, KIT_USER_PATH, KIT_USER_PERMISSIONS_PATH, KIT_USER_PERMISSIONS_STATE_TOKEN, KIT_USER_STATE_TOKEN, KitAbstractIdPayloadAction, KitAbstractPayloadAction, KitAccountService, KitApiTokenMaintenanceListComponent, KitApiTokenMaintenanceListState, KitApiTokensPermissionCategories, KitAutocompleteComponent, KitAutocompleteDirective, KitAvatarComponent, KitAvatarSize, KitBackButtonComponent, KitBadgeDirective, KitBadgeTheme, KitBreadcrumbsComponent, KitBreadcrumbsService, KitButtonComponent, KitButtonIconPosition, KitButtonKind, KitButtonState, KitButtonType, KitCardComponent, KitCardDetailsComponent, KitCardTheme, KitCheckboxComponent, KitCheckboxState, KitClipboardService, KitCodeEditorComponent, KitCodeEditorLanguage, KitCollapsedListComponent, KitCollapsedListDropdownAlign, KitCopyTextComponent, KitCtaPanelAbstractConfirmationComponent, KitCtaPanelActionComponent, KitCtaPanelConfirmationComponent, KitCtaPanelItemComponent, KitCtaPanelItemType, KitDataFieldComponent, KitDataFieldState, KitDateRangeSingleInput, KitDatepickerComponent, KitDatepickerSize, KitDaterangeComponent, KitDaterangeType, KitDatetimepickerComponent, KitDeferredFailedRequestService, KitDialogActionsComponent, KitDialogComponent, KitDialogService, KitDialogTitlebarComponent, KitDialogType, KitDrawerComponent, KitDrawerContentTemplateDirective, KitDrawerFooterTemplateDirective, KitDrawerMode, KitDropdownComponent, KitDropdownItemTemplateDirective, KitDropdownSize, KitEmptySectionComponent, KitEntityGridComponent, KitEntitySectionComponent, KitEntitySectionContainerComponent, KitEntitySectionEditableActionsTemplateDirective, KitEntitySectionEditableComponent, KitEntitySectionEditableEditTemplateDirective, KitEntitySectionEditableMode, KitEntitySectionEditableViewTemplateDirective, KitEntityTitleComponent, KitExcelExportService, KitExpansionPanelComponent, KitExpansionPanelHeaderTemplateDirective, KitExpansionPanelToggleMode, KitExpansionPanelView, KitFileCardComponent, KitFileCardMessagesComponent, KitFileCardSize, KitFileUploadComponent, KitFilterCheckboxComponent, KitFilterDateRange, KitFilterLogic, KitFilterOperator, KitFilterType, KitForbiddenComponent, KitFormErrors, KitFormFieldComponent, KitFormLabelComponent, KitFormMessageComponent, KitGlobalSearchComponent, KitGridActionComponent, KitGridArchiveToggle, KitGridCellComponent, KitGridCellService, KitGridCellTemplateDirective, KitGridCheckboxColumnComponent, KitGridCheckboxColumnType, KitGridColumnComponent, KitGridColumnManagerComponent, KitGridComponent, KitGridDetailTemplateDirective, KitGridDetailsButtonComponent, KitGridDropPosition, KitGridExportComponent, KitGridFiltersComponent, KitGridFiltersToggleComponent, KitGridLiveUpdatesControlComponent, KitGridSearchComponent, KitGridSortSettingsMode, KitGridState, KitGridUrlStateService, KitGridViewType, KitGridViewsComponent, KitGridViewsState, KitListComponent, KitLoaderComponent, KitLocationStepperComponent, KitLocationStepperIconTheme, KitLocationStepperTheme, KitMobileHeaderComponent, KitMobileMenuComponent, KitMobileMenuState, KitMultiselectComponent, KitMultiselectGroupTagTemplateDirective, KitMultiselectItemsDirection, KitMultiselectSize, KitNavigationMenuComponent, KitNavigationMenuService, KitNavigationMenuSubmenuComponent, KitNavigationTabsComponent, KitNavigationTabsType, KitNotFoundComponent, KitNoteComponent, KitNotificationComponent, KitNotificationService, KitNotificationType, KitNumericTextboxComponent, KitNumericTextboxSize, KitNumericTextboxState, KitOptionToggleComponent, KitOptionToggleSize, KitPageLayoutComponent, KitPermissionDirective, KitPillComponent, KitPillTheme, KitPillType, KitPopoverAnchorDirective, KitPopoverComponent, KitPopoverPosition, KitPopoverShowOption, KitPopupAlignHorizontal, KitPopupAlignVertical, KitPopupComponent, KitPopupPositionMode, KitProfileMenuComponent, KitQueryParamsName, KitQueryParamsService, KitRadioButtonComponent, KitRadioButtonType, KitRoutePathComponent, KitSchedulerAgendaTimeTemplateDirective, KitSchedulerComponent, KitSchedulerCustomViewTemplateDirective, KitSchedulerMonthEventTemplateDirective, KitSchedulerMonthHeaderCellTemplateDirective, KitSchedulerToolbarTemplateDirective, KitSchedulerWeekEventTemplateDirective, KitScrollNavigationComponent, KitScrollNavigationSectionComponent, KitSearchBarComponent, KitSidebarComponent, KitSkeletonAnimation, KitSkeletonComponent, KitSkeletonGridComponent, KitSkeletonSectionComponent, KitSkeletonShape, KitSortDirection, KitSortableComponent, KitSplitContainerComponent, KitStatusLabelColor, KitStatusLabelComponent, KitStatusLabelSize, KitSvgIcon, KitSvgIconComponent, KitSvgIconType, KitSvgSpriteComponent, KitSwitchComponent, KitSwitchMode, KitSwitchState, KitTabComponent, KitTabContentDirective, KitTabsComponent, KitTabsSize, KitTabsType, KitTextLabelComponent, KitTextLabelState, KitTextareaAutoresizeDirective, KitTextareaComponent, KitTextareaState, KitTextboxActionsComponent, KitTextboxComponent, KitTextboxSize, KitTextboxState, KitThemeService, KitThemes, KitTileLayoutComponent, KitTileLayoutItemComponent, KitTimelineCardComponent, KitTimelineCompactComponent, KitTimelineCompactItemTheme, KitTimelineComponent, KitTimelineTheme, KitTimelineType, KitTimepickerComponent, KitTitleTemplateDirective, KitToastrModule, KitToastrPosition, KitToastrService, KitToastrType, KitToggleComponent, KitToggleSize, KitTooltipDirective, KitTooltipPosition, KitTopBarComponent, KitTrackingCardComponent, KitTrackingTimelineComponent, KitTranslateLoader, KitTranslateService, KitTreeComponent, KitTreeContentDirective, KitTreeContentFormat, KitTreeViewMode, KitTruncateTextComponent, KitUnitsTextboxComponent, KitUnitsTextboxDropdownPosition, KitUnitsTextboxType, KitUserApplicationsState, KitUserIdentitiesInterceptor, KitUserIdentitiesSelector, KitUserIdentitiesState, KitUserPermissionsState, KitUserSettingsComponent, KitUserSettingsKeys, KitUserSettingsState, KitUserState, KitUserType, KitUsersSettingsComponent, KitUsersSettingsEntitlementsService, KitUsersSettingsEntitlementsState, KitUsersSettingsReferenceService, KitUsersSettingsService, KitUsersSettingsState, RemoveGridFilter, SetGridColumns, SetGridFilters, SetGridSearch, SetGridSkip, SetGridSort, SetGridTake, SetUserIdentity, UpdateGridFilter, buildRandomUUID, changeFilterField, createDataFetcherFactory, findMatches, isKitFilterDescriptor, kitApiResponseDefaultEntities, kitApiTokenMaintenanceConfig, kitApiTokenMaintenanceRoutes, kitBuildFilterBooleanOptions, kitBuildFilterListOptions, kitBuildFilters, kitBuildGridColumn, kitBuildGridDataResults, kitBuildHttpParams, kitBuildOdataFilter, kitBuildSortString, kitDataStateToODataString, kitEncodeViewNameToUrl, kitFetchExportGridData, kitFetchGridData, kitFilterBy, kitFormatStringForSearch, kitGetPermissionTypesByCategory, kitHasPermission, kitNormalizeDateToUtc, kitShouldResetGridState, kitTranslations, kitUserPermissionsGuard, kitWhitespaceValidator, mapGlobalSearchResult, trimTrailingSlash };
16496
+ export { AbstractKitCtaPanelConfirmationComponent, AddGridFilter, FetchApiTokens, FetchUser, FetchUserIdentities, FetchUserPermissions, FetchUserSettings, HighlightPipe, KIT_ALL_PERMISSIONS_PATH, KIT_API_TOKENS_STATE_TOKEN, KIT_BASE_PATH, KIT_DATETIME_FORMAT_LONG, KIT_DATE_FORMAT, KIT_DATE_FORMAT_SHORT, KIT_ENTITY_CREATE_SERVICE, KIT_GRID_CELL_DATE_FORMAT_CONFIG, KIT_GRID_COLUMN_WIDTH, KIT_GRID_PAGE_SIZE, KIT_GRID_STATE_TOKEN, KIT_TIME_FORMAT_SHORT, KIT_USER_APPLICATIONS_PATH, KIT_USER_IDENTITIES_STATE_TOKEN, KIT_USER_PATH, KIT_USER_PERMISSIONS_PATH, KIT_USER_PERMISSIONS_STATE_TOKEN, KIT_USER_STATE_TOKEN, KitAbstractIdPayloadAction, KitAbstractPayloadAction, KitAccountService, KitApiTokenMaintenanceListComponent, KitApiTokenMaintenanceListState, KitApiTokensPermissionCategories, KitAutocompleteComponent, KitAutocompleteDirective, KitAvatarComponent, KitAvatarSize, KitBackButtonComponent, KitBadgeDirective, KitBadgeTheme, KitBreadcrumbsComponent, KitBreadcrumbsService, KitButtonComponent, KitButtonIconPosition, KitButtonKind, KitButtonState, KitButtonType, KitCardComponent, KitCardDetailsComponent, KitCardTheme, KitCheckboxComponent, KitCheckboxState, KitClipboardService, KitCodeEditorComponent, KitCodeEditorLanguage, KitCollapsedListComponent, KitCollapsedListDropdownAlign, KitCopyTextComponent, KitCreateEntityDialogComponent, KitCtaPanelAbstractConfirmationComponent, KitCtaPanelActionComponent, KitCtaPanelConfirmationComponent, KitCtaPanelItemComponent, KitCtaPanelItemType, KitDataFieldComponent, KitDataFieldState, KitDateRangeSingleInput, KitDatepickerComponent, KitDatepickerSize, KitDaterangeComponent, KitDaterangeType, KitDatetimepickerComponent, KitDeferredFailedRequestService, KitDialogActionsComponent, KitDialogComponent, KitDialogService, KitDialogTitlebarComponent, KitDialogType, KitDrawerComponent, KitDrawerContentTemplateDirective, KitDrawerFooterTemplateDirective, KitDrawerMode, KitDropdownComponent, KitDropdownItemTemplateDirective, KitDropdownSize, KitEmptySectionComponent, KitEntityGridComponent, KitEntitySectionComponent, KitEntitySectionContainerComponent, KitEntitySectionEditableActionsTemplateDirective, KitEntitySectionEditableComponent, KitEntitySectionEditableEditTemplateDirective, KitEntitySectionEditableMode, KitEntitySectionEditableViewTemplateDirective, KitEntityTitleComponent, KitExcelExportService, KitExpansionPanelComponent, KitExpansionPanelHeaderTemplateDirective, KitExpansionPanelToggleMode, KitExpansionPanelView, KitFileCardComponent, KitFileCardMessagesComponent, KitFileCardSize, KitFileUploadComponent, KitFilterCheckboxComponent, KitFilterDateRange, KitFilterLogic, KitFilterOperator, KitFilterType, KitForbiddenComponent, KitFormErrors, KitFormFieldComponent, KitFormLabelComponent, KitFormMessageComponent, KitGlobalSearchComponent, KitGridActionComponent, KitGridArchiveToggle, KitGridCellComponent, KitGridCellService, KitGridCellTemplateDirective, KitGridCheckboxColumnComponent, KitGridCheckboxColumnType, KitGridColumnComponent, KitGridColumnManagerComponent, KitGridComponent, KitGridDetailTemplateDirective, KitGridDetailsButtonComponent, KitGridDropPosition, KitGridExportComponent, KitGridFiltersComponent, KitGridFiltersToggleComponent, KitGridLiveUpdatesControlComponent, KitGridSearchComponent, KitGridSortSettingsMode, KitGridState, KitGridUrlStateService, KitGridViewType, KitGridViewsComponent, KitGridViewsState, KitListComponent, KitLoaderComponent, KitLocationStepperComponent, KitLocationStepperIconTheme, KitLocationStepperTheme, KitMobileHeaderComponent, KitMobileMenuComponent, KitMobileMenuState, KitMultiselectComponent, KitMultiselectGroupTagTemplateDirective, KitMultiselectItemsDirection, KitMultiselectSize, KitNavigationMenuComponent, KitNavigationMenuService, KitNavigationMenuSubmenuComponent, KitNavigationTabsComponent, KitNavigationTabsType, KitNotFoundComponent, KitNoteComponent, KitNotificationComponent, KitNotificationService, KitNotificationType, KitNumericTextboxComponent, KitNumericTextboxSize, KitNumericTextboxState, KitOptionToggleComponent, KitOptionToggleSize, KitPageLayoutComponent, KitPermissionDirective, KitPillComponent, KitPillTheme, KitPillType, KitPopoverAnchorDirective, KitPopoverComponent, KitPopoverPosition, KitPopoverShowOption, KitPopupAlignHorizontal, KitPopupAlignVertical, KitPopupComponent, KitPopupPositionMode, KitProfileMenuComponent, KitQueryParamsName, KitQueryParamsService, KitRadioButtonComponent, KitRadioButtonType, KitRoutePathComponent, KitSchedulerAgendaTimeTemplateDirective, KitSchedulerComponent, KitSchedulerCustomViewTemplateDirective, KitSchedulerMonthEventTemplateDirective, KitSchedulerMonthHeaderCellTemplateDirective, KitSchedulerToolbarTemplateDirective, KitSchedulerWeekEventTemplateDirective, KitScrollNavigationComponent, KitScrollNavigationSectionComponent, KitSearchBarComponent, KitSidebarComponent, KitSkeletonAnimation, KitSkeletonComponent, KitSkeletonGridComponent, KitSkeletonSectionComponent, KitSkeletonShape, KitSortDirection, KitSortableComponent, KitSplitContainerComponent, KitStatusLabelColor, KitStatusLabelComponent, KitStatusLabelSize, KitSvgIcon, KitSvgIconComponent, KitSvgIconType, KitSvgSpriteComponent, KitSwitchComponent, KitSwitchMode, KitSwitchState, KitTabComponent, KitTabContentDirective, KitTabsComponent, KitTabsSize, KitTabsType, KitTextLabelComponent, KitTextLabelState, KitTextareaAutoresizeDirective, KitTextareaComponent, KitTextareaState, KitTextboxActionsComponent, KitTextboxComponent, KitTextboxSize, KitTextboxState, KitThemeService, KitThemes, KitTileLayoutComponent, KitTileLayoutItemComponent, KitTimelineCardComponent, KitTimelineCompactComponent, KitTimelineCompactItemTheme, KitTimelineComponent, KitTimelineTheme, KitTimelineType, KitTimepickerComponent, KitTitleTemplateDirective, KitToastrModule, KitToastrPosition, KitToastrService, KitToastrType, KitToggleComponent, KitToggleSize, KitTooltipDirective, KitTooltipPosition, KitTopBarComponent, KitTrackingCardComponent, KitTrackingTimelineComponent, KitTranslateLoader, KitTranslateService, KitTreeComponent, KitTreeContentDirective, KitTreeContentFormat, KitTreeViewMode, KitTruncateTextComponent, KitUnitsTextboxComponent, KitUnitsTextboxDropdownPosition, KitUnitsTextboxType, KitUserApplicationsState, KitUserIdentitiesInterceptor, KitUserIdentitiesSelector, KitUserIdentitiesState, KitUserPermissionsState, KitUserRoleDetailsComponent, KitUserRolesComponent, KitUserRolesService, KitUserRolesState, KitUserSettingsComponent, KitUserSettingsKeys, KitUserSettingsState, KitUserState, KitUserType, KitUsersSettingsComponent, KitUsersSettingsEntitlementsService, KitUsersSettingsEntitlementsState, KitUsersSettingsReferenceService, KitUsersSettingsService, KitUsersSettingsState, RemoveGridFilter, SetGridColumns, SetGridFilters, SetGridSearch, SetGridSkip, SetGridSort, SetGridTake, SetUserIdentity, UpdateGridFilter, buildRandomUUID, changeFilterField, createDataFetcherFactory, findMatches, getTextboxState, isKitFilterDescriptor, kitApiResponseDefaultEntities, kitApiTokenMaintenanceConfig, kitApiTokenMaintenanceRoutes, kitBuildFilterBooleanOptions, kitBuildFilterListOptions, kitBuildFilters, kitBuildGridColumn, kitBuildGridDataResults, kitBuildHttpParams, kitBuildOdataFilter, kitBuildSortString, kitDataStateToODataString, kitEncodeViewNameToUrl, kitFetchExportGridData, kitFetchGridData, kitFilterBy, kitFormatStringForSearch, kitGetPermissionTypesByCategory, kitHasPermission, kitNormalizeDateToUtc, kitShouldResetGridState, kitTranslations, kitUserPermissionsGuard, kitUserRolesConfig, kitWhitespaceValidator, mapGlobalSearchResult, trimTrailingSlash };
15992
16497
  //# sourceMappingURL=indigina-ui-kit.mjs.map