@ngx-smz/core 21.6.1 → 21.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, Injectable, InjectionToken, provideAppInitializer, inject, makeEnvironmentProviders, computed, Pipe, Input, Component, DestroyRef, EventEmitter, HostListener, Output, HostBinding, Directive, ChangeDetectionStrategy, ViewEncapsulation, Optional, NgModule, ViewChild, ElementRef, Renderer2, forwardRef, Inject, ChangeDetectorRef, LOCALE_ID, ContentChildren, Self, ErrorHandler, DEFAULT_CURRENCY_CODE, DOCUMENT, PLATFORM_ID } from '@angular/core';
2
+ import { signal, Injectable, InjectionToken, provideAppInitializer, inject, makeEnvironmentProviders, computed, Pipe, Input, Component, ChangeDetectorRef, effect, DestroyRef, EventEmitter, HostListener, Output, HostBinding, Directive, ChangeDetectionStrategy, ViewEncapsulation, Optional, NgModule, ViewChild, ElementRef, Renderer2, forwardRef, Inject, LOCALE_ID, ContentChildren, Self, ErrorHandler, DEFAULT_CURRENCY_CODE, DOCUMENT, PLATFORM_ID } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { CommonModule, getCurrencySymbol, getLocaleCurrencyCode, NgStyle, LocationStrategy, registerLocaleData, isPlatformBrowser as isPlatformBrowser$1, formatDate } from '@angular/common';
5
5
  import * as i1$3 from '@angular/forms';
@@ -21,7 +21,7 @@ import { ObjectUtils, ZIndexUtils, UniqueComponentId } from 'primeng/utils';
21
21
  import * as i1$8 from '@angular/common/http';
22
22
  import { HttpClient, provideHttpClient, withInterceptorsFromDi, HttpErrorResponse, HttpHeaders, HTTP_INTERCEPTORS } from '@angular/common/http';
23
23
  import { cloneDeep, uniqBy, flatten as flatten$1, sortBy, isBoolean as isBoolean$1, isEmpty as isEmpty$2, isEqual } from 'lodash-es';
24
- import { Subscription, BehaviorSubject, firstValueFrom, debounceTime, tap, of, take as take$1, Subject, throwError, map as map$1, throttleTime, switchMap, Observable, takeUntil as takeUntil$2, merge, filter as filter$1 } from 'rxjs';
24
+ import { Subscription, BehaviorSubject, merge, firstValueFrom, debounceTime, tap, of, take as take$1, Subject, throwError, map as map$1, throttleTime, switchMap, Observable, takeUntil as takeUntil$2, filter as filter$1 } from 'rxjs';
25
25
  import * as i1$2 from 'primeng/datepicker';
26
26
  import { DatePickerModule } from 'primeng/datepicker';
27
27
  import * as i1 from 'primeng/tooltip';
@@ -2184,7 +2184,9 @@ class SmzFormValidationMessagesService {
2184
2184
  validationMessagesByPropertyName = new Map();
2185
2185
  messagesByPropertyNameSignal = signal({}, ...(ngDevMode ? [{ debugName: "messagesByPropertyNameSignal" }] : []));
2186
2186
  controlMessagesSignals = new WeakMap();
2187
+ viewRefreshSignal = signal(0, ...(ngDevMode ? [{ debugName: "viewRefreshSignal" }] : []));
2187
2188
  messagesByPropertyName = this.messagesByPropertyNameSignal.asReadonly();
2189
+ viewRefreshTick = this.viewRefreshSignal.asReadonly();
2188
2190
  initialize(config, form) {
2189
2191
  this.resetState();
2190
2192
  this.form = form;
@@ -2202,6 +2204,12 @@ class SmzFormValidationMessagesService {
2202
2204
  this.subscriptions.add(this.form.statusChanges.subscribe(() => {
2203
2205
  this.refreshAllMessages();
2204
2206
  }));
2207
+ this.subscriptions.add(this.form.valueChanges.subscribe(() => {
2208
+ this.refreshAllMessages();
2209
+ }));
2210
+ }
2211
+ notifyViewRefresh() {
2212
+ this.viewRefreshSignal.update(value => value + 1);
2205
2213
  }
2206
2214
  getMessagesSignalByControl(control) {
2207
2215
  if (control == null) {
@@ -2255,6 +2263,7 @@ class SmzFormValidationMessagesService {
2255
2263
  this.subscriptions = new Subscription();
2256
2264
  this.validationMessagesByPropertyName.clear();
2257
2265
  this.messagesByPropertyNameSignal.set({});
2266
+ this.viewRefreshSignal.set(0);
2258
2267
  this.form = null;
2259
2268
  }
2260
2269
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzFormValidationMessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -2854,11 +2863,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
2854
2863
 
2855
2864
  class ValidationMessagesComponent {
2856
2865
  validationMessagesService = inject(SmzFormValidationMessagesService);
2866
+ changeDetectorRef = inject(ChangeDetectorRef);
2867
+ controlSubscription;
2857
2868
  formControl;
2858
2869
  input;
2859
2870
  set control(value) {
2871
+ this.controlSubscription?.unsubscribe();
2860
2872
  this.formControl = value;
2861
2873
  this.controlMessages = this.validationMessagesService.getMessagesSignalByControl(value);
2874
+ if (value != null) {
2875
+ this.controlSubscription = merge(value.statusChanges, value.valueChanges).subscribe(() => {
2876
+ this.changeDetectorRef.markForCheck();
2877
+ });
2878
+ }
2862
2879
  }
2863
2880
  get control() {
2864
2881
  return this.formControl;
@@ -2867,13 +2884,22 @@ class ValidationMessagesComponent {
2867
2884
  extraMessages = [];
2868
2885
  controlMessages = signal([], ...(ngDevMode ? [{ debugName: "controlMessages" }] : []));
2869
2886
  uiConfig = GlobalInjector.config;
2887
+ constructor() {
2888
+ effect(() => {
2889
+ this.validationMessagesService.viewRefreshTick();
2890
+ this.changeDetectorRef.markForCheck();
2891
+ });
2892
+ }
2893
+ ngOnDestroy() {
2894
+ this.controlSubscription?.unsubscribe();
2895
+ }
2870
2896
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ValidationMessagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2871
2897
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: ValidationMessagesComponent, isStandalone: false, selector: "smz-validation-messages", inputs: { input: "input", control: "control", behaviors: "behaviors", extraMessages: "extraMessages" }, ngImport: i0, template: "@if (behaviors?.showErrorsMethod != null ? control[behaviors.showErrorsMethod] : control[uiConfig.dialogs.forms.behaviors.showErrorsMethod]) {\r\n @if (controlMessages() | join : extraMessages; as messages) {\r\n @if (messages.length === 1) {\r\n @for (message of messages; track message) {\r\n <span class=\"col-12 error-message\">{{ message }}</span>\r\n }\r\n }\r\n\r\n @if (messages.length > 1) {\r\n @if (behaviors.showMultipleErrorMessages) {\r\n <span class=\"col-12 error-message asterisk\">{{ messages | describeArray }}</span>\r\n }\r\n\r\n @if (!behaviors.showMultipleErrorMessages) {\r\n <span class=\"col-12 error-message asterisk\" [pTooltip]=\"messages | describeArray\">{{ uiConfig.dialogs.forms.multipleErrorMessagesLabel }} *</span>\r\n }\r\n }\r\n }\r\n}", dependencies: [{ kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "pipe", type: DescribeArrayPipe, name: "describeArray" }, { kind: "pipe", type: JoinPipe, name: "join" }] });
2872
2898
  }
2873
2899
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ValidationMessagesComponent, decorators: [{
2874
2900
  type: Component,
2875
2901
  args: [{ selector: 'smz-validation-messages', standalone: false, template: "@if (behaviors?.showErrorsMethod != null ? control[behaviors.showErrorsMethod] : control[uiConfig.dialogs.forms.behaviors.showErrorsMethod]) {\r\n @if (controlMessages() | join : extraMessages; as messages) {\r\n @if (messages.length === 1) {\r\n @for (message of messages; track message) {\r\n <span class=\"col-12 error-message\">{{ message }}</span>\r\n }\r\n }\r\n\r\n @if (messages.length > 1) {\r\n @if (behaviors.showMultipleErrorMessages) {\r\n <span class=\"col-12 error-message asterisk\">{{ messages | describeArray }}</span>\r\n }\r\n\r\n @if (!behaviors.showMultipleErrorMessages) {\r\n <span class=\"col-12 error-message asterisk\" [pTooltip]=\"messages | describeArray\">{{ uiConfig.dialogs.forms.multipleErrorMessagesLabel }} *</span>\r\n }\r\n }\r\n }\r\n}" }]
2876
- }], propDecorators: { input: [{
2902
+ }], ctorParameters: () => [], propDecorators: { input: [{
2877
2903
  type: Input
2878
2904
  }], control: [{
2879
2905
  type: Input
@@ -4203,6 +4229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
4203
4229
  }] } });
4204
4230
 
4205
4231
  class InputNumberComponent {
4232
+ validationMessagesService = inject(SmzFormValidationMessagesService);
4206
4233
  input;
4207
4234
  control;
4208
4235
  behaviors;
@@ -4213,12 +4240,22 @@ class InputNumberComponent {
4213
4240
  this.control.updateValueAndValidity();
4214
4241
  }
4215
4242
  }
4243
+ onInputMaskBlur() {
4244
+ this.control.markAsTouched();
4245
+ this.control.updateValueAndValidity();
4246
+ this.validationMessagesService.notifyViewRefresh();
4247
+ }
4248
+ onInputMaskInput() {
4249
+ if (this.form.updateOn !== 'blur') {
4250
+ this.control.updateValueAndValidity();
4251
+ }
4252
+ }
4216
4253
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: InputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4217
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: InputNumberComponent, isStandalone: false, selector: "smz-input-number", inputs: { input: "input", control: "control", behaviors: "behaviors", form: "form" }, ngImport: i0, template: "<smz-label\r\n class=\"smz__input_name\"\r\n [text]=\"input.name\"\r\n [propertyName]=\"input.propertyName\"\r\n [showLabel]=\"input.hideLabel != true\"\r\n [warning]=\"input.warning?.()\"\r\n [help]=\"input.tooltip?.()\"\r\n [popover]=\"input.popover?.()\">\r\n</smz-label>\r\n\r\n<div class=\"input_inner__wrapper\">\r\n @if (!input.useFraction) {\r\n <p-inputMask\r\n class=\"smz__input_value flex-1\"\r\n slotChar=\"\"\r\n [autoClear]=\"false\"\r\n mask=\"9?9999999999999999999999999999999\"\r\n characterPattern=\"([0-9])\"\r\n [id]=\"input.propertyName\"\r\n [pAutoFocus]=\"input.autoFocus\"\r\n [formControl]=\"control\">\r\n </p-inputMask>\r\n }\r\n @if (input.useFraction) {\r\n <p-inputNumber\r\n class=\"smz__input_value flex-1\"\r\n [formControl]=\"control\"\r\n [locale]=\"input.locale\"\r\n [minFractionDigits]=\"input.minFractionDigits\"\r\n [maxFractionDigits]=\"input.maxFractionDigits\"\r\n [useGrouping]=\"input.useGrouping\"\r\n [id]=\"input.propertyName\"\r\n [pAutoFocus]=\"input.autoFocus\"\r\n (onInput)=\"onInput($event)\">\r\n </p-inputNumber>\r\n }\r\n <smz-validation-messages [input]=\"input\" [control]=\"control\" [behaviors]=\"behaviors\"></smz-validation-messages>\r\n</div>", dependencies: [{ kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2$1.InputMask, selector: "p-inputmask, p-inputMask, p-input-mask", inputs: ["type", "slotChar", "autoClear", "showClear", "style", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabel", "ariaLabelledBy", "ariaRequired", "readonly", "unmask", "characterPattern", "autofocus", "autocomplete", "keepBuffer", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown", "onClear"] }, { kind: "component", type: i3$3.InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "autocomplete", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4$2.AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "component", type: LabelComponent, selector: "smz-label", inputs: ["text", "propertyName", "showLabel", "warning", "help", "popover"] }, { kind: "component", type: ValidationMessagesComponent, selector: "smz-validation-messages", inputs: ["input", "control", "behaviors", "extraMessages"] }] });
4254
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: InputNumberComponent, isStandalone: false, selector: "smz-input-number", inputs: { input: "input", control: "control", behaviors: "behaviors", form: "form" }, ngImport: i0, template: "<smz-label\r\n class=\"smz__input_name\"\r\n [text]=\"input.name\"\r\n [propertyName]=\"input.propertyName\"\r\n [showLabel]=\"input.hideLabel != true\"\r\n [warning]=\"input.warning?.()\"\r\n [help]=\"input.tooltip?.()\"\r\n [popover]=\"input.popover?.()\">\r\n</smz-label>\r\n\r\n<div class=\"input_inner__wrapper\">\r\n @if (!input.useFraction) {\r\n <p-inputMask\r\n class=\"smz__input_value flex-1\"\r\n slotChar=\"\"\r\n [autoClear]=\"false\"\r\n mask=\"9?9999999999999999999999999999999\"\r\n characterPattern=\"([0-9])\"\r\n [id]=\"input.propertyName\"\r\n [pAutoFocus]=\"input.autoFocus\"\r\n [formControl]=\"control\"\r\n (onBlur)=\"onInputMaskBlur()\"\r\n (onInput)=\"onInputMaskInput()\">\r\n </p-inputMask>\r\n }\r\n @if (input.useFraction) {\r\n <p-inputNumber\r\n class=\"smz__input_value flex-1\"\r\n [formControl]=\"control\"\r\n [locale]=\"input.locale\"\r\n [minFractionDigits]=\"input.minFractionDigits\"\r\n [maxFractionDigits]=\"input.maxFractionDigits\"\r\n [useGrouping]=\"input.useGrouping\"\r\n [id]=\"input.propertyName\"\r\n [pAutoFocus]=\"input.autoFocus\"\r\n (onInput)=\"onInput($event)\">\r\n </p-inputNumber>\r\n }\r\n <smz-validation-messages [input]=\"input\" [control]=\"control\" [behaviors]=\"behaviors\"></smz-validation-messages>\r\n</div>", dependencies: [{ kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2$1.InputMask, selector: "p-inputmask, p-inputMask, p-input-mask", inputs: ["type", "slotChar", "autoClear", "showClear", "style", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabel", "ariaLabelledBy", "ariaRequired", "readonly", "unmask", "characterPattern", "autofocus", "autocomplete", "keepBuffer", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown", "onClear"] }, { kind: "component", type: i3$3.InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "autocomplete", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4$2.AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "component", type: LabelComponent, selector: "smz-label", inputs: ["text", "propertyName", "showLabel", "warning", "help", "popover"] }, { kind: "component", type: ValidationMessagesComponent, selector: "smz-validation-messages", inputs: ["input", "control", "behaviors", "extraMessages"] }] });
4218
4255
  }
4219
4256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: InputNumberComponent, decorators: [{
4220
4257
  type: Component,
4221
- args: [{ selector: 'smz-input-number', standalone: false, template: "<smz-label\r\n class=\"smz__input_name\"\r\n [text]=\"input.name\"\r\n [propertyName]=\"input.propertyName\"\r\n [showLabel]=\"input.hideLabel != true\"\r\n [warning]=\"input.warning?.()\"\r\n [help]=\"input.tooltip?.()\"\r\n [popover]=\"input.popover?.()\">\r\n</smz-label>\r\n\r\n<div class=\"input_inner__wrapper\">\r\n @if (!input.useFraction) {\r\n <p-inputMask\r\n class=\"smz__input_value flex-1\"\r\n slotChar=\"\"\r\n [autoClear]=\"false\"\r\n mask=\"9?9999999999999999999999999999999\"\r\n characterPattern=\"([0-9])\"\r\n [id]=\"input.propertyName\"\r\n [pAutoFocus]=\"input.autoFocus\"\r\n [formControl]=\"control\">\r\n </p-inputMask>\r\n }\r\n @if (input.useFraction) {\r\n <p-inputNumber\r\n class=\"smz__input_value flex-1\"\r\n [formControl]=\"control\"\r\n [locale]=\"input.locale\"\r\n [minFractionDigits]=\"input.minFractionDigits\"\r\n [maxFractionDigits]=\"input.maxFractionDigits\"\r\n [useGrouping]=\"input.useGrouping\"\r\n [id]=\"input.propertyName\"\r\n [pAutoFocus]=\"input.autoFocus\"\r\n (onInput)=\"onInput($event)\">\r\n </p-inputNumber>\r\n }\r\n <smz-validation-messages [input]=\"input\" [control]=\"control\" [behaviors]=\"behaviors\"></smz-validation-messages>\r\n</div>" }]
4258
+ args: [{ selector: 'smz-input-number', standalone: false, template: "<smz-label\r\n class=\"smz__input_name\"\r\n [text]=\"input.name\"\r\n [propertyName]=\"input.propertyName\"\r\n [showLabel]=\"input.hideLabel != true\"\r\n [warning]=\"input.warning?.()\"\r\n [help]=\"input.tooltip?.()\"\r\n [popover]=\"input.popover?.()\">\r\n</smz-label>\r\n\r\n<div class=\"input_inner__wrapper\">\r\n @if (!input.useFraction) {\r\n <p-inputMask\r\n class=\"smz__input_value flex-1\"\r\n slotChar=\"\"\r\n [autoClear]=\"false\"\r\n mask=\"9?9999999999999999999999999999999\"\r\n characterPattern=\"([0-9])\"\r\n [id]=\"input.propertyName\"\r\n [pAutoFocus]=\"input.autoFocus\"\r\n [formControl]=\"control\"\r\n (onBlur)=\"onInputMaskBlur()\"\r\n (onInput)=\"onInputMaskInput()\">\r\n </p-inputMask>\r\n }\r\n @if (input.useFraction) {\r\n <p-inputNumber\r\n class=\"smz__input_value flex-1\"\r\n [formControl]=\"control\"\r\n [locale]=\"input.locale\"\r\n [minFractionDigits]=\"input.minFractionDigits\"\r\n [maxFractionDigits]=\"input.maxFractionDigits\"\r\n [useGrouping]=\"input.useGrouping\"\r\n [id]=\"input.propertyName\"\r\n [pAutoFocus]=\"input.autoFocus\"\r\n (onInput)=\"onInput($event)\">\r\n </p-inputNumber>\r\n }\r\n <smz-validation-messages [input]=\"input\" [control]=\"control\" [behaviors]=\"behaviors\"></smz-validation-messages>\r\n</div>" }]
4222
4259
  }], propDecorators: { input: [{
4223
4260
  type: Input
4224
4261
  }], control: [{
@@ -31164,13 +31201,180 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
31164
31201
  args: [{ providedIn: 'root' }]
31165
31202
  }], ctorParameters: () => [{ type: i1$6.Store }] });
31166
31203
 
31204
+ const ATTEMPTED_ROUTE_STORAGE_SUFFIX = '_attempted_route';
31205
+ function getAttemptedRouteStorageKey(localStoragePrefix) {
31206
+ return `${localStoragePrefix}${ATTEMPTED_ROUTE_STORAGE_SUFFIX}`;
31207
+ }
31208
+ function normalizePathname(path) {
31209
+ if (path == null || path.trim() === '') {
31210
+ return '/';
31211
+ }
31212
+ const withoutHash = path.split('#')[0];
31213
+ const withoutQuery = withoutHash.split('?')[0].trim();
31214
+ const withLeadingSlash = withoutQuery.startsWith('/') ? withoutQuery : `/${withoutQuery}`;
31215
+ if (withLeadingSlash.length > 1 && withLeadingSlash.endsWith('/')) {
31216
+ return withLeadingSlash.slice(0, -1);
31217
+ }
31218
+ return withLeadingSlash;
31219
+ }
31220
+ function pathnamesAreEqual(left, right) {
31221
+ return normalizePathname(left) === normalizePathname(right);
31222
+ }
31223
+ function isRelativeInternalPath(url) {
31224
+ if (url == null) {
31225
+ return false;
31226
+ }
31227
+ const trimmedUrl = url.trim();
31228
+ if (trimmedUrl === '') {
31229
+ return false;
31230
+ }
31231
+ if (!trimmedUrl.startsWith('/')) {
31232
+ return false;
31233
+ }
31234
+ if (trimmedUrl.startsWith('//')) {
31235
+ return false;
31236
+ }
31237
+ if (trimmedUrl.includes('\\')) {
31238
+ return false;
31239
+ }
31240
+ const pathname = normalizePathname(trimmedUrl);
31241
+ if (pathname.includes(':')) {
31242
+ return false;
31243
+ }
31244
+ return true;
31245
+ }
31246
+ function isLoginOrNonAuthenticatedPath(url, config) {
31247
+ const pathname = normalizePathname(url);
31248
+ const matchesNonAuthenticatedRoot = pathnamesAreEqual(pathname, config.nonAuthenticatedRoot);
31249
+ const matchesLoginRoute = pathnamesAreEqual(pathname, config.loginRoute);
31250
+ return matchesNonAuthenticatedRoot || matchesLoginRoute;
31251
+ }
31252
+ /**
31253
+ * Returns true when `url` is a same-app relative path and is not the login page.
31254
+ */
31255
+ function isValidAttemptedRoute(url, config) {
31256
+ if (!isRelativeInternalPath(url)) {
31257
+ return false;
31258
+ }
31259
+ if (isLoginOrNonAuthenticatedPath(url, config)) {
31260
+ return false;
31261
+ }
31262
+ return true;
31263
+ }
31264
+ /**
31265
+ * Joins the router state URL with a fragment when the URL does not already include one.
31266
+ */
31267
+ function composeAttemptedRoute(routerStateUrl, fragment) {
31268
+ if (fragment == null || fragment === '') {
31269
+ return routerStateUrl;
31270
+ }
31271
+ if (routerStateUrl.includes('#')) {
31272
+ return routerStateUrl;
31273
+ }
31274
+ return `${routerStateUrl}#${fragment}`;
31275
+ }
31276
+ function captureAttemptedRoute$1(url, config) {
31277
+ if (!isValidAttemptedRoute(url, config)) {
31278
+ return;
31279
+ }
31280
+ sessionStorage.setItem(getAttemptedRouteStorageKey(config.localStoragePrefix), url);
31281
+ }
31282
+ function peekAttemptedRoute$1(config) {
31283
+ const storedUrl = sessionStorage.getItem(getAttemptedRouteStorageKey(config.localStoragePrefix));
31284
+ if (storedUrl == null || !isValidAttemptedRoute(storedUrl, config)) {
31285
+ return null;
31286
+ }
31287
+ return storedUrl;
31288
+ }
31289
+ function consumeAttemptedRoute$1(config) {
31290
+ const storageKey = getAttemptedRouteStorageKey(config.localStoragePrefix);
31291
+ const storedUrl = sessionStorage.getItem(storageKey);
31292
+ sessionStorage.removeItem(storageKey);
31293
+ if (storedUrl == null || !isValidAttemptedRoute(storedUrl, config)) {
31294
+ return null;
31295
+ }
31296
+ return storedUrl;
31297
+ }
31298
+ function clearAttemptedRoute$1(config) {
31299
+ sessionStorage.removeItem(getAttemptedRouteStorageKey(config.localStoragePrefix));
31300
+ }
31301
+ function resolvePostLoginUrl$1(config) {
31302
+ const attemptedRoute = consumeAttemptedRoute$1(config);
31303
+ if (attemptedRoute != null) {
31304
+ return attemptedRoute;
31305
+ }
31306
+ return config.authenticatedRoot;
31307
+ }
31308
+ function buildLoginPageUrlWithOrigin(origin, nonAuthenticatedRoot, extraQuery) {
31309
+ const pathname = normalizePathname(nonAuthenticatedRoot);
31310
+ const loginUrl = new URL(pathname, origin);
31311
+ if (extraQuery != null) {
31312
+ for (const [name, value] of Object.entries(extraQuery)) {
31313
+ if (value == null || value === '') {
31314
+ continue;
31315
+ }
31316
+ loginUrl.searchParams.set(name, value);
31317
+ }
31318
+ }
31319
+ return loginUrl.toString();
31320
+ }
31321
+
31322
+ function readAttemptedRouteConfig() {
31323
+ const authentication = GlobalInjector.config.rbkUtils.authentication;
31324
+ return {
31325
+ localStoragePrefix: authentication.localStoragePrefix,
31326
+ authenticatedRoot: authentication.authenticatedRoot,
31327
+ nonAuthenticatedRoot: authentication.nonAuthenticatedRoot,
31328
+ loginRoute: authentication.login.route,
31329
+ };
31330
+ }
31331
+ /**
31332
+ * Stores the route the auth guard intercepted so a later successful login can restore it.
31333
+ * Invalid or login-page URLs are ignored.
31334
+ */
31335
+ function captureAttemptedRoute(url) {
31336
+ captureAttemptedRoute$1(url, readAttemptedRouteConfig());
31337
+ }
31338
+ /**
31339
+ * Returns the stored attempted route without removing it.
31340
+ */
31341
+ function peekAttemptedRoute() {
31342
+ return peekAttemptedRoute$1(readAttemptedRouteConfig());
31343
+ }
31344
+ /**
31345
+ * Returns and removes the stored attempted route, or `null` when none is valid.
31346
+ */
31347
+ function consumeAttemptedRoute() {
31348
+ return consumeAttemptedRoute$1(readAttemptedRouteConfig());
31349
+ }
31350
+ /**
31351
+ * Removes any stored attempted route.
31352
+ */
31353
+ function clearAttemptedRoute() {
31354
+ clearAttemptedRoute$1(readAttemptedRouteConfig());
31355
+ }
31356
+ /**
31357
+ * Returns the stored attempted route, or `authenticatedRoot` when none is valid.
31358
+ * Consumes the stored value.
31359
+ */
31360
+ function resolvePostLoginUrl() {
31361
+ return resolvePostLoginUrl$1(readAttemptedRouteConfig());
31362
+ }
31363
+ /**
31364
+ * Builds an absolute URL pointing at the configured login page.
31365
+ * Use this as the SSO `successfulUrl` so the identity provider returns to the login page, not the deep link.
31366
+ */
31367
+ function buildLoginPageUrl(extraQuery) {
31368
+ return buildLoginPageUrlWithOrigin(window.location.origin, GlobalInjector.config.rbkUtils.authentication.nonAuthenticatedRoot, extraQuery);
31369
+ }
31370
+
31167
31371
  /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @typescript-eslint/no-empty-object-type */
31168
31372
  class RbkAuthGuard {
31169
31373
  store;
31170
31374
  constructor(store) {
31171
31375
  this.store = store;
31172
31376
  }
31173
- async canActivate(snapshot) {
31377
+ async canActivate(snapshot, state) {
31174
31378
  if (GlobalInjector.config.debugMode)
31175
31379
  console.groupCollapsed(`RbkAuthGuard on route /${snapshot.routeConfig.path}`);
31176
31380
  let isAuthenticated = this.store.selectSnapshot(AuthenticationSelectors.isAuthenticated);
@@ -31211,6 +31415,10 @@ class RbkAuthGuard {
31211
31415
  if (!isAuthenticated) {
31212
31416
  if (GlobalInjector.config.debugMode)
31213
31417
  console.log('[RbkAuthGuard] Could not login locally using localstorage, redirecting user to landing page');
31418
+ if (GlobalInjector.config.rbkUtils.authentication.returnToAttemptedRoute === true) {
31419
+ const attemptedRoute = composeAttemptedRoute(state.url, snapshot.fragment);
31420
+ captureAttemptedRoute(attemptedRoute);
31421
+ }
31214
31422
  this.store.dispatch(new Navigate([GlobalInjector.config.rbkUtils.authentication.nonAuthenticatedRoot]));
31215
31423
  // this.store.dispatch(new ToastActions.Error('Usuário não autenticado, redirecionando para ' + GlobalInjector.config.authentication.nonAuthenticatedRoot));
31216
31424
  }
@@ -31295,13 +31503,15 @@ class BoilerplateService {
31295
31503
  titleService;
31296
31504
  store;
31297
31505
  actions$;
31506
+ router;
31298
31507
  subs1;
31299
31508
  subs2;
31300
31509
  subs3;
31301
- constructor(titleService, store, actions$) {
31510
+ constructor(titleService, store, actions$, router) {
31302
31511
  this.titleService = titleService;
31303
31512
  this.store = store;
31304
31513
  this.actions$ = actions$;
31514
+ this.router = router;
31305
31515
  }
31306
31516
  init(callback) {
31307
31517
  if (callback != null) {
@@ -31312,12 +31522,11 @@ class BoilerplateService {
31312
31522
  if (GlobalInjector.config.rbkUtils.useTitleService === true) {
31313
31523
  this.titleService.init();
31314
31524
  }
31315
- this.subs1 = this.actions$.subscribe(dispatchData => {
31316
- if (dispatchData.action.constructor.type === AuthenticationActions.RemoteLoginSuccess.type) {
31317
- this.store.dispatch(new Navigate([GlobalInjector.config.rbkUtils.authentication.authenticatedRoot]));
31318
- }
31525
+ this.subs1 = this.actions$.pipe(ofActionSuccessful(AuthenticationActions.RemoteLoginSuccess)).subscribe(() => {
31526
+ this.navigateAfterRemoteLoginSuccess();
31319
31527
  });
31320
31528
  this.subs3 = this.actions$.pipe(ofActionDispatched(AuthenticationActions.Logout)).subscribe((event) => {
31529
+ clearAttemptedRoute();
31321
31530
  this.store.dispatch(new Navigate([event.redirectTo ?? GlobalInjector.config.rbkUtils.authentication.login.route]));
31322
31531
  this.store.dispatch(new DatabaseActions.Clear());
31323
31532
  this.store.dispatch(new FeaturesActions.Clear());
@@ -31325,6 +31534,14 @@ class BoilerplateService {
31325
31534
  });
31326
31535
  this.store.dispatch(new AuthenticationActions.LocalLogin());
31327
31536
  }
31537
+ navigateAfterRemoteLoginSuccess() {
31538
+ const shouldReturnToAttemptedRoute = GlobalInjector.config.rbkUtils.authentication.returnToAttemptedRoute === true;
31539
+ if (shouldReturnToAttemptedRoute) {
31540
+ this.router.navigateByUrl(resolvePostLoginUrl());
31541
+ return;
31542
+ }
31543
+ this.store.dispatch(new Navigate([GlobalInjector.config.rbkUtils.authentication.authenticatedRoot]));
31544
+ }
31328
31545
  killSubscriptions() {
31329
31546
  if (GlobalInjector.config.debugMode)
31330
31547
  console.log('[Boilerplate Service] Killing subscriptions, if any');
@@ -31335,13 +31552,13 @@ class BoilerplateService {
31335
31552
  if (this.subs3 != null)
31336
31553
  this.subs3.unsubscribe();
31337
31554
  }
31338
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: BoilerplateService, deps: [{ token: TitleService }, { token: i1$6.Store }, { token: i1$6.Actions }], target: i0.ɵɵFactoryTarget.Injectable });
31555
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: BoilerplateService, deps: [{ token: TitleService }, { token: i1$6.Store }, { token: i1$6.Actions }, { token: i1$9.Router }], target: i0.ɵɵFactoryTarget.Injectable });
31339
31556
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: BoilerplateService, providedIn: 'root' });
31340
31557
  }
31341
31558
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: BoilerplateService, decorators: [{
31342
31559
  type: Injectable,
31343
31560
  args: [{ providedIn: 'root' }]
31344
- }], ctorParameters: () => [{ type: TitleService }, { type: i1$6.Store }, { type: i1$6.Actions }] });
31561
+ }], ctorParameters: () => [{ type: TitleService }, { type: i1$6.Store }, { type: i1$6.Actions }, { type: i1$9.Router }] });
31345
31562
 
31346
31563
  /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @typescript-eslint/no-empty-object-type, @angular-eslint/directive-selector */
31347
31564
  class InputClearExtensionDirective {
@@ -50553,6 +50770,15 @@ class SmzUiAuthenticationBuilder extends SmzBuilderUtilities {
50553
50770
  this._builder._state.rbkUtils.authentication.login.page.useSmzLoginModule = false;
50554
50771
  return this.that;
50555
50772
  }
50773
+ /**
50774
+ * After a successful remote login, navigate back to the route the auth guard intercepted
50775
+ * (including query parameters) instead of always using `authenticatedRoot`.
50776
+ * `authenticatedRoot` remains the fallback when no attempted route was stored.
50777
+ */
50778
+ returnToAttemptedRoute() {
50779
+ this._builder._state.rbkUtils.authentication.returnToAttemptedRoute = true;
50780
+ return this.that;
50781
+ }
50556
50782
  mapAccessTokenData(from, to, type) {
50557
50783
  this._builder._state.rbkUtils.authentication.accessTokenClaims.push({ claimName: from, propertyName: to, type });
50558
50784
  return this.that;
@@ -51603,6 +51829,7 @@ class SmzUiBuilder extends SmzBuilderUtilities {
51603
51829
  localStoragePrefix: 'ui-demo',
51604
51830
  authenticatedRoot: '/home',
51605
51831
  nonAuthenticatedRoot: '/login',
51832
+ returnToAttemptedRoute: false,
51606
51833
  allowSuperuser: false,
51607
51834
  useSingleTenantAplication: false,
51608
51835
  allowTenantSwitching: false,
@@ -57995,5 +58222,5 @@ __decorate([
57995
58222
  * Generated bundle index. Do not edit.
57996
58223
  */
57997
58224
 
57998
- export { AUTHORIZATION_HEADER, AccessControlService, ActionDispatchDirective, ApplicationActions, ApplicationSelectors, ApplicationState, AsPipe, AthenaLayout, AthenaLayoutComponent, AthenaLayoutModule, AuthClaimDefinitions, AuthHandler, AuthService, AuthenticationActions, AuthenticationSelectors, AuthenticationService, AuthenticationState, AuthorizationService, AxisOverflowDirection, AxisOverflowType, AxisPosition, BaseApiService, BoilerplateService, BreadcrumbService, CLAIMS_PAGE_ROUTE, CLAIMS_PATH, CLAIMS_STATE_NAME, CONTENT_ENCODING_HEADER, CachedRouteReuseStrategy, CalendarComponent, CalendarPipe, CanAccess, ChartType, CheckBoxComponent, CheckBoxGroupComponent, ClaimAccessType, ClaimAccessTypeDescription, ClaimAccessTypeValues, ClaimsActions, ClaimsModule, ClaimsSelectors, ClaimsState, ClickStopPropagationDirective, ClickStopPropagationModule, ClonePipe, ColorPallete, ColorPickerComponent, Confirmable, CreateLinearChart, CreateRadialChart, CustomError, CustomNgForDirective, CustomNgForModule, DATABASE_REQUIRED_ACTIONS, DATABASE_STATES, DECORATOR_APPLIED, DEFAULT_AUTHENTICATION_ENDPOINTS_ROUTES, DEFAULT_AUTHORIZATION_ENDPOINTS_ROUTES, DatabaseActions, DatabaseSelectors, DatabaseState, DatasetType, DeepWrapper, DescribeAnyPipe, DescribeArrayPipe, DescribeSimpleNamedPipe, DialogContentManagerComponent, DialogService, DropdownComponent, DynamicDialogComponent, DynamicDialogConfig, DynamicDialogInjector, DynamicDialogModule, DynamicDialogRef, ERROR_HANDLING_TYPE_HEADER, ExcelsUiActions, FEATURE_STATES, FeaturesActions, FeaturesSelectors, FeaturesState, FileUploadComponent, FilterContains, FirstOrDefaultPipe, FormGroupComponent, FormSubmitComponent, GenericInjectComponentDirective, GetElementById, GetElementsByParentId, GlobalActions, GlobalFilter, GlobalInjector, GlobalLoaderComponent, GlobalLoaderModule, GlobalState, GroupingType, HephaestusLayout, HephaestusLayoutComponent, HephaestusLayoutModule, HephaestusProviderModule, HostElement, HttpErrorHandler, IGNORE_ERROR_HANDLING, InViewportMetadata, InjectComponentDirective, InjectComponentService, InjectContentAppModule, InjectContentDirective, InjectContentService, InputBlurDetectionModule, InputChangeDetectionDirective, InputClearExtensionDirective, InputCurrencyComponent, InputListComponent, InputMaskComponent, InputNumberComponent, InputPasswordComponent, InputSwitchComponent, InputTagAreaComponent, InputTextAreaComponent, InputTextComponent, InputTreeComponent, IsVisiblePipe, IsVisiblePipeModule, JoinPipe, LOADING_BEHAVIOR_HEADER, LOCAL_LOADING_TAG_HEADER, LayoutUiActions, LayoutUiSelectors, LayoutUiState, LegacyAuthenticationSelectors, LinearChartBuilder, LinkedDropdownComponent, LinkedMultiSelectComponent, LoggingScope, LoggingService, MAIN_LAYOUT_PATH, MentionableTextareaComponent, MenuHelperService, MenuType, MergeClonePipe, MergeClonePipeModule, MultiSelectComponent, NG_ON_INIT, NewAthenaLayout, NewAthenaLayoutComponent, NewAthenaLayoutModule, NewAthenaProviderModule, NgCloneDirective, NgCloneModule, NgIfLandscapeDirective, NgIfLandscapeDirectiveModule, NgIfPortraitDirective, NgIfPortraitDirectiveModule, NgVar, NgVarContext, NgVarModule, NgxRbkUtilsConfig, NgxRbkUtilsModule, NgxSmzCardsModule, NgxSmzCommentsModule, NgxSmzDataInfoModule, NgxSmzDataPipesModule, NgxSmzDialogsModule, NgxSmzDockModule, NgxSmzDocumentsModule, NgxSmzFaqsModule, NgxSmzFormsModule, NgxSmzLayoutsModule, NgxSmzMenuModule, NgxSmzMultiTablesModule, NgxSmzRouterParamsModule, NgxSmzSafeImageModule, NgxSmzServerImageModule, NgxSmzServerImageToBase64Module, NgxSmzSideContentModule, NgxSmzTablesModule, NgxSmzTreeWithDetailsModule, NgxSmzTreesModule, NgxSmzUiBlockModule, NgxSmzUiComponent, NgxSmzUiConfig, NgxSmzUiGuidesModule, NgxSmzUiModule, NgxSmzViewportModule, NotificationFolder, NotificationFolderStatus, NotificationStatus, NotificationType, NotificationTypeClass, NotificationsUiActions, NotificationsUiSelectors, PrettyJsonPipe$1 as PrettyJsonPipe, PrettyJsonPipeModule, PrimeConfigService, REFRESH_TOKEN_BEHAVIOR_HEADER, RESTORE_STATE_ON_ERROR_HEADER, ROLES_PAGE_ROUTE, ROLES_PATH, ROLES_STATE_NAME, RadialChartBuilder, RadioButtonComponent, RbkAccessControlModule, RbkAuthGuard, RbkCanAccessAnyPipe, RbkCanAccessPipe, RbkClaimGuardDirective, RbkDatabaseStateGuard, RbkFeatureStateGuard, RbkPipesModule, RbkTableFilterClearDirectivesModule, RegistrySmzUiConfiguration, RepositoryForm, RoleMode, RoleModeDescription, RoleModeValues, RoleSource, RoleSourceDescription, RoleSourceValues, RolesActions, RolesModule, RolesSelectors, RolesState, RouterParamsActions, RouterParamsSelectors, SMZ_CORE_LOGGING_CONFIG, SMZ_UI_ENVIRONMENT_CONFIG, SafeHtmlPipe$2 as SafeHtmlPipe, SafeImageDirective, SafeUrlPipe$1 as SafeUrlPipe, SelectorPipe, ServerImageDirective, ServerImageToBase64Directive, ServerPathPipe, SetTemplateClasses, SetTemplateClassesPipe, SidebarState, SimpleCalendarPipe, SmzActionDispatchModule, SmzAuthorizationDeactivatedUsersTableBuilder, SmzAuthorizationUsersTableBuilder, SmzBaseColumnBuilder, SmzBaseEditableBuilder, SmzBreakpoints, SmzBuilderUtilities, SmzCardsBuilder, SmzCardsComponent, SmzCardsContentType, SmzCardsInjectableComponentBuilder, SmzCardsTemplate, SmzCardsView, SmzChartComponent, SmzChartModule, SmzClipboardService, SmzColumnCollectionBuilder, SmzCommentsBuilder, SmzCommentsComponent, SmzCommentsSectionComponent, SmzContentTheme, SmzContentThemes, SmzContentType, SmzControlType, SmzCoreLogging, SmzCurrencyColumnBuilder, SmzCustomColumnBuilder, SmzDataInfoComponent, SmzDataTransformColumnBuilder, SmzDataTransformTreePipe, SmzDateColumnBuilder, SmzDialogBuilder, SmzDialogComponentBuilder, SmzDialogFormBuilder, SmzDialogTableBuilder, SmzDialogsConfig, SmzDialogsPresets, SmzDialogsService, SmzDockComponent, SmzDockService, SmzDocumentBaseCellBuilder, SmzDocumentBuilder, SmzDocumentComponent, SmzDocumentsService, SmzDragDropModule, SmzDraggable, SmzDropdownEditableBuilder, SmzDroppable, SmzDynamicDialogConfig, SmzEasyBaseColumnBuilder, SmzEasyColumnCollectionBuilder, SmzEasyCustomColumnBuilder, SmzEasyDataTransformColumnBuilder, SmzEasyDateColumnBuilder, SmzEasyMenuTableBuilder, SmzEasyTableBuilder, SmzEasyTableComponent, SmzEasyTableContentType, SmzEasyTableModule, SmzEasyTextColumnBuilder, SmzEditableCollectionBuilder, SmzEditableTableBuilder, SmzEditableType, SmzEnvironment, SmzExcelColorDefinitions, SmzExcelDataDefinitions, SmzExcelFontDefinitions, SmzExcelService, SmzExcelSortOrderDefinitions, SmzExcelThemeDefinitions, SmzExcelTypeDefinitions, SmzExcelsBuilder, SmzExportDialogComponent, SmzExportDialogModule, SmzExportDialogService, SmzExportableContentSource, SmzExportableContentType, SmzFaqsComponent, SmzFaqsConfig, SmzFilterType, SmzFlattenMenuPipe, SmzFlipCardContext, SmzFormBuilder, SmzFormViewdata, SmzFormsConfig, SmzFormsPresets, SmzFormsRepositoryService, SmzGaugeBuilder, SmzGaugeComponent, SmzGaugeThresholdBuilder, SmzGetDataPipe, SmzGridItemComponent, SmzHelpDialogService, SmzHtmlViewerComponent, SmzHtmlViewerModule, SmzIconColumnBuilder, SmzIconMessageComponent, SmzInfoDateComponent, SmzInfoDateModule, SmzInitialPipe, SmzInputAutocompleteTagArea, SmzInputTextModule, SmzInputTextPipe, SmzLayoutsConfig, SmzLoader, SmzLoaders, SmzLoginBuilder, SmzLoginComponent, SmzLoginModule, SmzMenuBuilder, SmzMenuComponent, SmzMenuCreationBuilder, SmzMenuCreationItemBuilder, SmzMenuItemActionsDirective, SmzMenuItemBuilder, SmzMenuItemEasyTableBuilder, SmzMenuItemTableBuilder, SmzMenuTableBuilder, SmzMessagesModule, SmzMultiTablesBuilder, SmzMultiTablesComponent, SmzNotificationsComponent, SmzNotificationsModule, SmzNumberEditableBuilder, SmzPresets, SmzProxyStore, SmzResponsiveBreakpointsDirective, SmzResponsiveBreakpointsDirectiveModule, SmzResponsiveComponent, SmzRouteDatas, SmzRouteParams, SmzRouteQueryParams, SmzSideContentComponent, SmzSideContentDefault, SmzSincronizeTablePipe, SmzSmartTag, SmzSmartTagModule, SmzSubmitComponent, SmzSvgBuilder, SmzSvgComponent, SmzSvgFeatureBuilder, SmzSvgModule, SmzSvgPinBuilder, SmzSvgRootBuilder, SmzSvgWorldCoordinates, SmzSwitchEditableBuilder, SmzTableBuilder, SmzTableComponent, SmzTablesConfig, SmzTagMessage, SmzTailPipe, SmzTemplatesPipeModule, SmzTenantSwitchComponent, SmzTextColumnBuilder, SmzTextEditableBuilder, SmzTextPattern, SmzTimelineBuilder, SmzTimelineComponent, SmzToastComponent, SmzToastModule, SmzTooltipTouchSupportModule, SmzTreeBuilder, SmzTreeComponent, SmzTreeDragAndDropBuilder, SmzTreeDropBuilder, SmzTreeDynamicMenuBuilder, SmzTreeDynamicMenuItemBuilder, SmzTreeEmptyFeedbackBuilder, SmzTreeMenuBuilder, SmzTreeMenuItemBuilder, SmzTreeToolbarBuilder, SmzTreeToolbarButtonBuilder, SmzTreeToolbarButtonCollectionBuilder, SmzTreeWithDetailsBuilder, SmzTreeWithDetailsComponent, SmzUiBlockComponent, SmzUiBlockDirective, SmzUiBlockService, SmzUiBuilder, SmzUiEnvironment, SmzUiGuidesBuilder, SmzUiGuidesService, SmzViewportDirective, SmzViewportService, StandaloneInjectComponentDirective, StateBuilderPipe, TENANTS_PAGE_ROUTE, TENANTS_PATH, TENANTS_STATE_NAME, TableClearExtensionDirective, TableHelperService, TenantAuthenticationSelectors, TenantsActions, TenantsModule, TenantsSelectors, TenantsState, ThemeManagerService, TitleService, Toast, ToastActions, ToastItem, ToastService, TooltipTouchSupportDirective, TreeHelperService, TreeHelpers, Tunnel, UI_DEFINITIONS_STATE_NAME, UI_LOCALIZATION_STATE_NAME, USERS_PAGE_ROUTE, USERS_PATH, USERS_STATE_NAME, USER_ID_HEADER, LayoutUiActions as UiActions, UiDefinitionsDbActions, UiDefinitionsDbSelectors, UiDefinitionsDbState, UiDefinitionsService, UiLocalizationDbActions, UiLocalizationDbSelectors, UiLocalizationDbState, UiLocalizationService, LayoutUiSelectors as UiSelectors, UniqueFilterPipe, UrlCheckerPipe, UrlCheckerPipeModule, UsersActions, UsersModule, UsersSelectors, UsersState, WINDOWS_AUTHENTICATION_HEADER, Wait, applyTableContentNgStyle, b64toBlob, base64ToFile, breakLinesForHtml, buildAuthenticationEndpointsRoutes, buildAuthenticationUrl, buildAuthorizationEndpointsRoutes, buildServerApiUrl, buildSmzDialogCustomButtonTestId, buildSmzDialogTestId, buildSmzDialogTopbarButtonTestId, buildSmzTableTestId, buildState, capitalizeFirstLetter, capitalizeWithSlash, clearArray, clone, cloneAndRemoveProperties, cloneAndRemoveProperty, compare, compareInsensitive, completeSubjectOnTheInstance, convertFormCreationFeature, convertFormFeature, convertFormFeatureFromInputData, convertFormUpdateFeature, count, createObjectFromString, createRound, createSubjectOnTheInstance, dataURLtoFile, databaseSmzAccessStates, debounce, deepClone, deepEqual, deepIndexOf, deepMerge, defaultFormsModuleConfig, defaultState, downloadBase64File, downloadFromServerUrl, downloadFromUrl, empty, every, executeTextPattern, featureSmzAccessStates, fixDate$1 as fixDate, fixDateProperties, fixDates, flatten, flattenObject, getAuthenticationInitialState, getCleanApplicationState, getFirst, getFirstElement, getFirstElements, getFormInputFromDialog, getGlobalInitialState, getInitialApplicationState, getInitialDatabaseStoreState, getInitialState$8 as getInitialState, getLastElements, getPreset, getProperty, getSymbol, getTreeNodeFromKey, getUiDefinitionsInitialState, getUiLocalizationInitialState, getUsersInitialState, getValidatorsForInput, handleBase64, isArray, isConvertibleToNumber, isDeepObject, isEmpty$1 as isEmpty, isFunction$1 as isFunction, isInteger, isNil, isNull$1 as isNull, isNullOrEmptyString, isNumber$1 as isNumber, isNumberFinite$1 as isNumberFinite, isNumeric, isObject$2 as isObject, isObjectHelper, isPositive, isSimpleNamedEntity, isString$1 as isString, isUndefined$1 as isUndefined, isWithinTime, leftPad, longestStringInArray, mapParamsToObject, markAsDecorated, mergeClone, mergeDeep, nameof, namesof, ngxsModuleForFeatureFaqsDbState, ngxsModuleForFeatureUiAthenaLayoutState, ngxsModuleForFeatureUiHephaestusLayoutState, ngxsModuleForFeatureUiNewAthenaLayoutState, normalizeDateToUtc, orderArrayByProperty, pad, provideSmzCoreLogging, provideSmzEnvironment, rbkSafeHtmlPipe, removeElementFromArray, replaceAll, replaceArrayItem, replaceArrayPartialItem, replaceItem, replaceNgOnInit, resolveSmzTableRowId, rightPad, routerModuleForChildUsersModule, routerParamsDispatch, routerParamsListener, setNestedObject, shorten, showConfirmation, showDialog, showMarkdownDialog, showMessage, showObjectDialog, showPersistentDialog, shuffle, slugSmzDialogTestIdKey, slugSmzTableTestIdKey, sortArray, sortArrayOfObjects, sortArrayOfStrings, sortMenuItemsByLabel, sum, synchronizeNodes, synchronizeRow, synchronizeTable, synchronizeTrees, takeUntil, takeWhile, toDecimal, toSimpleNamedEntity, toString, unwrapDeep, upperFirst, uuidv4, wrapDeep };
58225
+ export { AUTHORIZATION_HEADER, AccessControlService, ActionDispatchDirective, ApplicationActions, ApplicationSelectors, ApplicationState, AsPipe, AthenaLayout, AthenaLayoutComponent, AthenaLayoutModule, AuthClaimDefinitions, AuthHandler, AuthService, AuthenticationActions, AuthenticationSelectors, AuthenticationService, AuthenticationState, AuthorizationService, AxisOverflowDirection, AxisOverflowType, AxisPosition, BaseApiService, BoilerplateService, BreadcrumbService, CLAIMS_PAGE_ROUTE, CLAIMS_PATH, CLAIMS_STATE_NAME, CONTENT_ENCODING_HEADER, CachedRouteReuseStrategy, CalendarComponent, CalendarPipe, CanAccess, ChartType, CheckBoxComponent, CheckBoxGroupComponent, ClaimAccessType, ClaimAccessTypeDescription, ClaimAccessTypeValues, ClaimsActions, ClaimsModule, ClaimsSelectors, ClaimsState, ClickStopPropagationDirective, ClickStopPropagationModule, ClonePipe, ColorPallete, ColorPickerComponent, Confirmable, CreateLinearChart, CreateRadialChart, CustomError, CustomNgForDirective, CustomNgForModule, DATABASE_REQUIRED_ACTIONS, DATABASE_STATES, DECORATOR_APPLIED, DEFAULT_AUTHENTICATION_ENDPOINTS_ROUTES, DEFAULT_AUTHORIZATION_ENDPOINTS_ROUTES, DatabaseActions, DatabaseSelectors, DatabaseState, DatasetType, DeepWrapper, DescribeAnyPipe, DescribeArrayPipe, DescribeSimpleNamedPipe, DialogContentManagerComponent, DialogService, DropdownComponent, DynamicDialogComponent, DynamicDialogConfig, DynamicDialogInjector, DynamicDialogModule, DynamicDialogRef, ERROR_HANDLING_TYPE_HEADER, ExcelsUiActions, FEATURE_STATES, FeaturesActions, FeaturesSelectors, FeaturesState, FileUploadComponent, FilterContains, FirstOrDefaultPipe, FormGroupComponent, FormSubmitComponent, GenericInjectComponentDirective, GetElementById, GetElementsByParentId, GlobalActions, GlobalFilter, GlobalInjector, GlobalLoaderComponent, GlobalLoaderModule, GlobalState, GroupingType, HephaestusLayout, HephaestusLayoutComponent, HephaestusLayoutModule, HephaestusProviderModule, HostElement, HttpErrorHandler, IGNORE_ERROR_HANDLING, InViewportMetadata, InjectComponentDirective, InjectComponentService, InjectContentAppModule, InjectContentDirective, InjectContentService, InputBlurDetectionModule, InputChangeDetectionDirective, InputClearExtensionDirective, InputCurrencyComponent, InputListComponent, InputMaskComponent, InputNumberComponent, InputPasswordComponent, InputSwitchComponent, InputTagAreaComponent, InputTextAreaComponent, InputTextComponent, InputTreeComponent, IsVisiblePipe, IsVisiblePipeModule, JoinPipe, LOADING_BEHAVIOR_HEADER, LOCAL_LOADING_TAG_HEADER, LayoutUiActions, LayoutUiSelectors, LayoutUiState, LegacyAuthenticationSelectors, LinearChartBuilder, LinkedDropdownComponent, LinkedMultiSelectComponent, LoggingScope, LoggingService, MAIN_LAYOUT_PATH, MentionableTextareaComponent, MenuHelperService, MenuType, MergeClonePipe, MergeClonePipeModule, MultiSelectComponent, NG_ON_INIT, NewAthenaLayout, NewAthenaLayoutComponent, NewAthenaLayoutModule, NewAthenaProviderModule, NgCloneDirective, NgCloneModule, NgIfLandscapeDirective, NgIfLandscapeDirectiveModule, NgIfPortraitDirective, NgIfPortraitDirectiveModule, NgVar, NgVarContext, NgVarModule, NgxRbkUtilsConfig, NgxRbkUtilsModule, NgxSmzCardsModule, NgxSmzCommentsModule, NgxSmzDataInfoModule, NgxSmzDataPipesModule, NgxSmzDialogsModule, NgxSmzDockModule, NgxSmzDocumentsModule, NgxSmzFaqsModule, NgxSmzFormsModule, NgxSmzLayoutsModule, NgxSmzMenuModule, NgxSmzMultiTablesModule, NgxSmzRouterParamsModule, NgxSmzSafeImageModule, NgxSmzServerImageModule, NgxSmzServerImageToBase64Module, NgxSmzSideContentModule, NgxSmzTablesModule, NgxSmzTreeWithDetailsModule, NgxSmzTreesModule, NgxSmzUiBlockModule, NgxSmzUiComponent, NgxSmzUiConfig, NgxSmzUiGuidesModule, NgxSmzUiModule, NgxSmzViewportModule, NotificationFolder, NotificationFolderStatus, NotificationStatus, NotificationType, NotificationTypeClass, NotificationsUiActions, NotificationsUiSelectors, PrettyJsonPipe$1 as PrettyJsonPipe, PrettyJsonPipeModule, PrimeConfigService, REFRESH_TOKEN_BEHAVIOR_HEADER, RESTORE_STATE_ON_ERROR_HEADER, ROLES_PAGE_ROUTE, ROLES_PATH, ROLES_STATE_NAME, RadialChartBuilder, RadioButtonComponent, RbkAccessControlModule, RbkAuthGuard, RbkCanAccessAnyPipe, RbkCanAccessPipe, RbkClaimGuardDirective, RbkDatabaseStateGuard, RbkFeatureStateGuard, RbkPipesModule, RbkTableFilterClearDirectivesModule, RegistrySmzUiConfiguration, RepositoryForm, RoleMode, RoleModeDescription, RoleModeValues, RoleSource, RoleSourceDescription, RoleSourceValues, RolesActions, RolesModule, RolesSelectors, RolesState, RouterParamsActions, RouterParamsSelectors, SMZ_CORE_LOGGING_CONFIG, SMZ_UI_ENVIRONMENT_CONFIG, SafeHtmlPipe$2 as SafeHtmlPipe, SafeImageDirective, SafeUrlPipe$1 as SafeUrlPipe, SelectorPipe, ServerImageDirective, ServerImageToBase64Directive, ServerPathPipe, SetTemplateClasses, SetTemplateClassesPipe, SidebarState, SimpleCalendarPipe, SmzActionDispatchModule, SmzAuthorizationDeactivatedUsersTableBuilder, SmzAuthorizationUsersTableBuilder, SmzBaseColumnBuilder, SmzBaseEditableBuilder, SmzBreakpoints, SmzBuilderUtilities, SmzCardsBuilder, SmzCardsComponent, SmzCardsContentType, SmzCardsInjectableComponentBuilder, SmzCardsTemplate, SmzCardsView, SmzChartComponent, SmzChartModule, SmzClipboardService, SmzColumnCollectionBuilder, SmzCommentsBuilder, SmzCommentsComponent, SmzCommentsSectionComponent, SmzContentTheme, SmzContentThemes, SmzContentType, SmzControlType, SmzCoreLogging, SmzCurrencyColumnBuilder, SmzCustomColumnBuilder, SmzDataInfoComponent, SmzDataTransformColumnBuilder, SmzDataTransformTreePipe, SmzDateColumnBuilder, SmzDialogBuilder, SmzDialogComponentBuilder, SmzDialogFormBuilder, SmzDialogTableBuilder, SmzDialogsConfig, SmzDialogsPresets, SmzDialogsService, SmzDockComponent, SmzDockService, SmzDocumentBaseCellBuilder, SmzDocumentBuilder, SmzDocumentComponent, SmzDocumentsService, SmzDragDropModule, SmzDraggable, SmzDropdownEditableBuilder, SmzDroppable, SmzDynamicDialogConfig, SmzEasyBaseColumnBuilder, SmzEasyColumnCollectionBuilder, SmzEasyCustomColumnBuilder, SmzEasyDataTransformColumnBuilder, SmzEasyDateColumnBuilder, SmzEasyMenuTableBuilder, SmzEasyTableBuilder, SmzEasyTableComponent, SmzEasyTableContentType, SmzEasyTableModule, SmzEasyTextColumnBuilder, SmzEditableCollectionBuilder, SmzEditableTableBuilder, SmzEditableType, SmzEnvironment, SmzExcelColorDefinitions, SmzExcelDataDefinitions, SmzExcelFontDefinitions, SmzExcelService, SmzExcelSortOrderDefinitions, SmzExcelThemeDefinitions, SmzExcelTypeDefinitions, SmzExcelsBuilder, SmzExportDialogComponent, SmzExportDialogModule, SmzExportDialogService, SmzExportableContentSource, SmzExportableContentType, SmzFaqsComponent, SmzFaqsConfig, SmzFilterType, SmzFlattenMenuPipe, SmzFlipCardContext, SmzFormBuilder, SmzFormViewdata, SmzFormsConfig, SmzFormsPresets, SmzFormsRepositoryService, SmzGaugeBuilder, SmzGaugeComponent, SmzGaugeThresholdBuilder, SmzGetDataPipe, SmzGridItemComponent, SmzHelpDialogService, SmzHtmlViewerComponent, SmzHtmlViewerModule, SmzIconColumnBuilder, SmzIconMessageComponent, SmzInfoDateComponent, SmzInfoDateModule, SmzInitialPipe, SmzInputAutocompleteTagArea, SmzInputTextModule, SmzInputTextPipe, SmzLayoutsConfig, SmzLoader, SmzLoaders, SmzLoginBuilder, SmzLoginComponent, SmzLoginModule, SmzMenuBuilder, SmzMenuComponent, SmzMenuCreationBuilder, SmzMenuCreationItemBuilder, SmzMenuItemActionsDirective, SmzMenuItemBuilder, SmzMenuItemEasyTableBuilder, SmzMenuItemTableBuilder, SmzMenuTableBuilder, SmzMessagesModule, SmzMultiTablesBuilder, SmzMultiTablesComponent, SmzNotificationsComponent, SmzNotificationsModule, SmzNumberEditableBuilder, SmzPresets, SmzProxyStore, SmzResponsiveBreakpointsDirective, SmzResponsiveBreakpointsDirectiveModule, SmzResponsiveComponent, SmzRouteDatas, SmzRouteParams, SmzRouteQueryParams, SmzSideContentComponent, SmzSideContentDefault, SmzSincronizeTablePipe, SmzSmartTag, SmzSmartTagModule, SmzSubmitComponent, SmzSvgBuilder, SmzSvgComponent, SmzSvgFeatureBuilder, SmzSvgModule, SmzSvgPinBuilder, SmzSvgRootBuilder, SmzSvgWorldCoordinates, SmzSwitchEditableBuilder, SmzTableBuilder, SmzTableComponent, SmzTablesConfig, SmzTagMessage, SmzTailPipe, SmzTemplatesPipeModule, SmzTenantSwitchComponent, SmzTextColumnBuilder, SmzTextEditableBuilder, SmzTextPattern, SmzTimelineBuilder, SmzTimelineComponent, SmzToastComponent, SmzToastModule, SmzTooltipTouchSupportModule, SmzTreeBuilder, SmzTreeComponent, SmzTreeDragAndDropBuilder, SmzTreeDropBuilder, SmzTreeDynamicMenuBuilder, SmzTreeDynamicMenuItemBuilder, SmzTreeEmptyFeedbackBuilder, SmzTreeMenuBuilder, SmzTreeMenuItemBuilder, SmzTreeToolbarBuilder, SmzTreeToolbarButtonBuilder, SmzTreeToolbarButtonCollectionBuilder, SmzTreeWithDetailsBuilder, SmzTreeWithDetailsComponent, SmzUiBlockComponent, SmzUiBlockDirective, SmzUiBlockService, SmzUiBuilder, SmzUiEnvironment, SmzUiGuidesBuilder, SmzUiGuidesService, SmzViewportDirective, SmzViewportService, StandaloneInjectComponentDirective, StateBuilderPipe, TENANTS_PAGE_ROUTE, TENANTS_PATH, TENANTS_STATE_NAME, TableClearExtensionDirective, TableHelperService, TenantAuthenticationSelectors, TenantsActions, TenantsModule, TenantsSelectors, TenantsState, ThemeManagerService, TitleService, Toast, ToastActions, ToastItem, ToastService, TooltipTouchSupportDirective, TreeHelperService, TreeHelpers, Tunnel, UI_DEFINITIONS_STATE_NAME, UI_LOCALIZATION_STATE_NAME, USERS_PAGE_ROUTE, USERS_PATH, USERS_STATE_NAME, USER_ID_HEADER, LayoutUiActions as UiActions, UiDefinitionsDbActions, UiDefinitionsDbSelectors, UiDefinitionsDbState, UiDefinitionsService, UiLocalizationDbActions, UiLocalizationDbSelectors, UiLocalizationDbState, UiLocalizationService, LayoutUiSelectors as UiSelectors, UniqueFilterPipe, UrlCheckerPipe, UrlCheckerPipeModule, UsersActions, UsersModule, UsersSelectors, UsersState, WINDOWS_AUTHENTICATION_HEADER, Wait, applyTableContentNgStyle, b64toBlob, base64ToFile, breakLinesForHtml, buildAuthenticationEndpointsRoutes, buildAuthenticationUrl, buildAuthorizationEndpointsRoutes, buildLoginPageUrl, buildServerApiUrl, buildSmzDialogCustomButtonTestId, buildSmzDialogTestId, buildSmzDialogTopbarButtonTestId, buildSmzTableTestId, buildState, capitalizeFirstLetter, capitalizeWithSlash, captureAttemptedRoute, clearArray, clearAttemptedRoute, clone, cloneAndRemoveProperties, cloneAndRemoveProperty, compare, compareInsensitive, completeSubjectOnTheInstance, composeAttemptedRoute, consumeAttemptedRoute, convertFormCreationFeature, convertFormFeature, convertFormFeatureFromInputData, convertFormUpdateFeature, count, createObjectFromString, createRound, createSubjectOnTheInstance, dataURLtoFile, databaseSmzAccessStates, debounce, deepClone, deepEqual, deepIndexOf, deepMerge, defaultFormsModuleConfig, defaultState, downloadBase64File, downloadFromServerUrl, downloadFromUrl, empty, every, executeTextPattern, featureSmzAccessStates, fixDate$1 as fixDate, fixDateProperties, fixDates, flatten, flattenObject, getAuthenticationInitialState, getCleanApplicationState, getFirst, getFirstElement, getFirstElements, getFormInputFromDialog, getGlobalInitialState, getInitialApplicationState, getInitialDatabaseStoreState, getInitialState$8 as getInitialState, getLastElements, getPreset, getProperty, getSymbol, getTreeNodeFromKey, getUiDefinitionsInitialState, getUiLocalizationInitialState, getUsersInitialState, getValidatorsForInput, handleBase64, isArray, isConvertibleToNumber, isDeepObject, isEmpty$1 as isEmpty, isFunction$1 as isFunction, isInteger, isNil, isNull$1 as isNull, isNullOrEmptyString, isNumber$1 as isNumber, isNumberFinite$1 as isNumberFinite, isNumeric, isObject$2 as isObject, isObjectHelper, isPositive, isSimpleNamedEntity, isString$1 as isString, isUndefined$1 as isUndefined, isValidAttemptedRoute, isWithinTime, leftPad, longestStringInArray, mapParamsToObject, markAsDecorated, mergeClone, mergeDeep, nameof, namesof, ngxsModuleForFeatureFaqsDbState, ngxsModuleForFeatureUiAthenaLayoutState, ngxsModuleForFeatureUiHephaestusLayoutState, ngxsModuleForFeatureUiNewAthenaLayoutState, normalizeDateToUtc, orderArrayByProperty, pad, peekAttemptedRoute, provideSmzCoreLogging, provideSmzEnvironment, rbkSafeHtmlPipe, removeElementFromArray, replaceAll, replaceArrayItem, replaceArrayPartialItem, replaceItem, replaceNgOnInit, resolvePostLoginUrl, resolveSmzTableRowId, rightPad, routerModuleForChildUsersModule, routerParamsDispatch, routerParamsListener, setNestedObject, shorten, showConfirmation, showDialog, showMarkdownDialog, showMessage, showObjectDialog, showPersistentDialog, shuffle, slugSmzDialogTestIdKey, slugSmzTableTestIdKey, sortArray, sortArrayOfObjects, sortArrayOfStrings, sortMenuItemsByLabel, sum, synchronizeNodes, synchronizeRow, synchronizeTable, synchronizeTrees, takeUntil, takeWhile, toDecimal, toSimpleNamedEntity, toString, unwrapDeep, upperFirst, uuidv4, wrapDeep };
57999
58226
  //# sourceMappingURL=ngx-smz-core.mjs.map