@arsedizioni/ars-utils 22.0.3 → 22.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,5 @@
1
1
  export * from '@arsedizioni/ars-utils/core';
2
2
  export * from '@arsedizioni/ars-utils/ui';
3
- export * from '@arsedizioni/ars-utils/ui.oauth';
4
3
  export * from '@arsedizioni/ars-utils/ui.application';
5
4
  export * from '@arsedizioni/ars-utils/support.common';
6
5
  export * from '@arsedizioni/ars-utils/support.ui';
@@ -1 +1 @@
1
- {"version":3,"file":"arsedizioni-ars-utils.mjs","sources":["../../../projects/ars-utils/public_api.ts","../../../projects/ars-utils/arsedizioni-ars-utils.ts"],"sourcesContent":["/*\r\n * Public API Surface of ars-utils\r\n */\r\nexport * from '@arsedizioni/ars-utils/core';\r\nexport * from '@arsedizioni/ars-utils/ui';\r\nexport * from '@arsedizioni/ars-utils/ui.oauth';\r\nexport * from '@arsedizioni/ars-utils/ui.application';\r\nexport * from '@arsedizioni/ars-utils/support.common';\r\nexport * from '@arsedizioni/ars-utils/support.ui';\r\nexport * from '@arsedizioni/ars-utils/help';\r\nexport * from '@arsedizioni/ars-utils/clipper.common';\r\nexport * from '@arsedizioni/ars-utils/clipper.ui';\r\nexport * from '@arsedizioni/ars-utils/tinymce';\r\nexport * from '@arsedizioni/ars-utils/evolution.common';\r\n\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;AAEG;;ACFH;;AAEG"}
1
+ {"version":3,"file":"arsedizioni-ars-utils.mjs","sources":["../../../projects/ars-utils/public_api.ts","../../../projects/ars-utils/arsedizioni-ars-utils.ts"],"sourcesContent":["/*\r\n * Public API Surface of ars-utils\r\n */\r\nexport * from '@arsedizioni/ars-utils/core';\r\nexport * from '@arsedizioni/ars-utils/ui';\r\nexport * from '@arsedizioni/ars-utils/ui.application';\r\nexport * from '@arsedizioni/ars-utils/support.common';\r\nexport * from '@arsedizioni/ars-utils/support.ui';\r\nexport * from '@arsedizioni/ars-utils/help';\r\nexport * from '@arsedizioni/ars-utils/clipper.common';\r\nexport * from '@arsedizioni/ars-utils/clipper.ui';\r\nexport * from '@arsedizioni/ars-utils/tinymce';\r\nexport * from '@arsedizioni/ars-utils/evolution.common';\r\n\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;AAAA;;AAEG;;ACFH;;AAEG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arsedizioni/ars-utils",
3
- "version": "22.0.3",
3
+ "version": "22.0.5",
4
4
  "author": {
5
5
  "email": "software@arsedizioni.it",
6
6
  "name": "Fabio Buscaroli, Alberto Doria"
@@ -1053,7 +1053,7 @@ declare class ClipperDocumentMenuComponent {
1053
1053
  /** Internal counter incremented on each external selection-model change to drive signal re-evaluation. */
1054
1054
  private readonly selectionChangeTick;
1055
1055
  readonly useSelections: _angular_core.InputSignal<boolean>;
1056
- readonly selectionSource: _angular_core.InputSignal<"selection" | "bag" | "none">;
1056
+ readonly selectionSource: _angular_core.InputSignal<"bag" | "selection" | "none">;
1057
1057
  /**
1058
1058
  * Computed signal that returns the current effective document selection.
1059
1059
  * Re-evaluates when any input signal or the underlying selection model changes.
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnDestroy, AfterViewInit, DoCheck, ElementRef } from '@angular/core';
3
- import { INode, Searchable, SearchBag, NameValueItem, DateInterval, SearchFilterMetadata, FileInfo } from '@arsedizioni/ars-utils/core';
2
+ import { OnDestroy, AfterViewInit, EnvironmentProviders, DoCheck, ElementRef } from '@angular/core';
3
+ import { INode, Searchable, SearchBag, NameValueItem, DateInterval, SearchFilterMetadata, FileInfo, EnvironmentService } from '@arsedizioni/ars-utils/core';
4
4
  import { MatFormFieldAppearance, MatFormFieldControl } from '@angular/material/form-field';
5
5
  import { MatDialogRef } from '@angular/material/dialog';
6
6
  import { DialogService } from '@arsedizioni/ars-utils/ui';
@@ -11,6 +11,8 @@ import { NgForm, ControlValueAccessor, NgControl } from '@angular/forms';
11
11
  import { MatCheckboxChange } from '@angular/material/checkbox';
12
12
  import { MatSelectionList, MatSelectionListChange } from '@angular/material/list';
13
13
  import { MatPaginator, PageEvent } from '@angular/material/paginator';
14
+ import { MsalGuardConfiguration, MsalInterceptorConfiguration } from '@azure/msal-angular';
15
+ import { IPublicClientApplication } from '@azure/msal-browser';
14
16
 
15
17
  declare class ResizeTableColumnDirective {
16
18
  /** Whether this column is resizable. Bound via the `resizeColumn` attribute. */
@@ -263,6 +265,15 @@ interface PromptDialogData {
263
265
  interface PromptTimeDialogData extends PromptDialogData {
264
266
  slots?: string;
265
267
  }
268
+ declare enum LoginOAuthType {
269
+ None = 0,
270
+ Microsoft = 1,
271
+ Google = 2
272
+ }
273
+ interface LoginOAuthResult {
274
+ type: LoginOAuthType;
275
+ token: string;
276
+ }
266
277
 
267
278
  /** Constants identifying each filter group slot and text filter channels. */
268
279
  declare const Filters: {
@@ -868,6 +879,23 @@ declare class ApplicationDialogService extends DialogService {
868
879
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ApplicationDialogService>;
869
880
  }
870
881
 
882
+ /**
883
+ * Standalone providers for the ars-utils "application" UI layer.
884
+ *
885
+ * Single source of truth for the environment-level configuration of this entry point.
886
+ * Use it in a standalone bootstrap instead of importing {@link ArsUIApplicationModule}:
887
+ *
888
+ * @example
889
+ * bootstrapApplication(AppComponent, {
890
+ * providers: [provideArsUIApplication()]
891
+ * });
892
+ */
893
+ declare function provideArsUIApplication(): EnvironmentProviders;
894
+ /**
895
+ * @deprecated Prefer the standalone {@link provideArsUIApplication} provider together with
896
+ * direct imports of the standalone components/directives. This module is kept as a thin,
897
+ * backward-compatible shim so existing NgModule-based applications keep working unchanged.
898
+ */
871
899
  declare class ArsUIApplicationModule {
872
900
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ArsUIApplicationModule, never>;
873
901
  static ɵmod: _angular_core.ɵɵNgModuleDeclaration<ArsUIApplicationModule, never, [typeof ResizeTableColumnDirective], [typeof ResizeTableColumnDirective]>;
@@ -1493,5 +1521,56 @@ declare class TreePickerComponent {
1493
1521
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreePickerComponent, "tree-picker", never, { "tree": { "alias": "tree"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "descriptionEmpty": { "alias": "descriptionEmpty"; "required": false; "isSignal": true; }; "maxDepth": { "alias": "maxDepth"; "required": false; "isSignal": true; }; "maxDepthOverrides": { "alias": "maxDepthOverrides"; "required": false; "isSignal": true; }; "minDepth": { "alias": "minDepth"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "selectionCount": "selectionCount"; "changed": "changed"; }, never, never, true, never>;
1494
1522
  }
1495
1523
 
1496
- export { ApplicationDialogService, ArsUIApplicationModule, ButtonSelectorComponent, ButtonToggleComponent, CalendarEmptyHeader, ChipsSelectorComponent, CurrentFilter, CurrentFilterChanged, CurrentFilterItem, FileInputComponent, FilePreviewComponent, FilterBarComponent, Filters, ItemNode, PromptDateDialogComponent, PromptDialogComponent, PromptDialogType, PromptOtpDialogComponent, PromptTimeDialogComponent, ResizeTableColumnDirective, SelectDialogComponent, SelectFileDialogComponent, SelectPictureDialogComponent, SelectTreeDialogComponent, SelectableItem, SelectableNode, SendToDialogComponent, TreeDataSource, TreePickerComponent };
1497
- export type { ButtonToggleInfo, FilePreviewDialogData, FilterGroup, FilterItem, ISelectableItem, PromptDateDialogResult, PromptDialogData, PromptDialogResult, PromptOtpDialogResult, PromptTimeDialogData, SelectDialogAppend, SelectDialogData, SelectDialogDelete, SelectDialogEdit, SelectDialogFilter, SelectDialogLookup, SelectDialogResult, SelectFile, SelectFileDialogData, SelectFileOption, SelectPictureFileDialogData, SelectTreeDialogAppend, SelectTreeDialogData, SelectTreeDialogResult, SelectableFilter, SendToDialogData, SendToDialogResult, SendToPopulateData };
1524
+ declare function MSALInstanceFactory(environment: EnvironmentService): IPublicClientApplication;
1525
+ declare function MSALInterceptorConfigFactory(environment: EnvironmentService): MsalInterceptorConfiguration;
1526
+ declare function MSALGuardConfigFactory(): MsalGuardConfiguration;
1527
+ declare class LoginOAuthComponent {
1528
+ private readonly destroyRef;
1529
+ private readonly msalBroadcastService;
1530
+ private readonly msaLService;
1531
+ private readonly dialogService;
1532
+ private readonly ngZone;
1533
+ /** Emitted when OAuth authentication succeeds. */
1534
+ readonly success: _angular_core.OutputEmitterRef<LoginOAuthResult>;
1535
+ /** Whether to show the introductory info panel. */
1536
+ readonly showInfo: _angular_core.InputSignal<boolean>;
1537
+ /** Application name displayed in the info panel. */
1538
+ readonly applicationName: _angular_core.InputSignal<string>;
1539
+ /** Whether to trigger `initialize()` automatically on mount. */
1540
+ readonly autoInitialize: _angular_core.InputSignal<boolean>;
1541
+ /** Whether the Microsoft login button is shown. */
1542
+ readonly allowMicrosoft: _angular_core.InputSignal<boolean>;
1543
+ /** Whether the Google login button is shown. */
1544
+ readonly allowGoogle: _angular_core.InputSignal<boolean>;
1545
+ protected readonly oauthReady: _angular_core.WritableSignal<boolean>;
1546
+ protected readonly oauthMicrosoftReady: _angular_core.WritableSignal<boolean>;
1547
+ protected readonly oauthGoogleReady: _angular_core.WritableSignal<boolean>;
1548
+ constructor();
1549
+ /**
1550
+ * Initialize OAuth providers (Microsoft MSAL and Google GSI).
1551
+ * Safe to call multiple times — already-initialized providers are skipped.
1552
+ * Must be public so the host component can trigger it manually when `autoInitialize` is false.
1553
+ */
1554
+ initialize(): void;
1555
+ /**
1556
+ * Trigger a Microsoft (MSAL) login popup and acquire an access token on success.
1557
+ */
1558
+ protected loginMSAL(): void;
1559
+ /**
1560
+ * Trigger the hidden Google GSI button to open the Google sign-in flow.
1561
+ */
1562
+ protected loginGoogle(): void;
1563
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoginOAuthComponent, never>;
1564
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoginOAuthComponent, "login-oauth", never, { "showInfo": { "alias": "showInfo"; "required": false; "isSignal": true; }; "applicationName": { "alias": "applicationName"; "required": false; "isSignal": true; }; "autoInitialize": { "alias": "autoInitialize"; "required": false; "isSignal": true; }; "allowMicrosoft": { "alias": "allowMicrosoft"; "required": false; "isSignal": true; }; "allowGoogle": { "alias": "allowGoogle"; "required": false; "isSignal": true; }; }, { "success": "success"; }, never, never, true, never>;
1565
+ }
1566
+
1567
+ declare class LoginOAuthOkMSComponent {
1568
+ /** Message displayed while the popup is completing authentication. */
1569
+ readonly message: _angular_core.InputSignal<string>;
1570
+ constructor();
1571
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoginOAuthOkMSComponent, never>;
1572
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoginOAuthOkMSComponent, "app-login-oauth-ok-ms", never, { "message": { "alias": "message"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1573
+ }
1574
+
1575
+ export { ApplicationDialogService, ArsUIApplicationModule, ButtonSelectorComponent, ButtonToggleComponent, CalendarEmptyHeader, ChipsSelectorComponent, CurrentFilter, CurrentFilterChanged, CurrentFilterItem, FileInputComponent, FilePreviewComponent, FilterBarComponent, Filters, ItemNode, LoginOAuthComponent, LoginOAuthOkMSComponent, LoginOAuthType, MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory, PromptDateDialogComponent, PromptDialogComponent, PromptDialogType, PromptOtpDialogComponent, PromptTimeDialogComponent, ResizeTableColumnDirective, SelectDialogComponent, SelectFileDialogComponent, SelectPictureDialogComponent, SelectTreeDialogComponent, SelectableItem, SelectableNode, SendToDialogComponent, TreeDataSource, TreePickerComponent, provideArsUIApplication };
1576
+ export type { ButtonToggleInfo, FilePreviewDialogData, FilterGroup, FilterItem, ISelectableItem, LoginOAuthResult, PromptDateDialogResult, PromptDialogData, PromptDialogResult, PromptOtpDialogResult, PromptTimeDialogData, SelectDialogAppend, SelectDialogData, SelectDialogDelete, SelectDialogEdit, SelectDialogFilter, SelectDialogLookup, SelectDialogResult, SelectFile, SelectFileDialogData, SelectFileOption, SelectPictureFileDialogData, SelectTreeDialogAppend, SelectTreeDialogData, SelectTreeDialogResult, SelectableFilter, SendToDialogData, SendToDialogResult, SendToPopulateData };
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { ElementRef, TemplateRef, InjectionToken, Signal, Renderer2 } from '@angular/core';
2
+ import { EnvironmentProviders, ElementRef, TemplateRef, InjectionToken, Signal, Renderer2 } from '@angular/core';
3
3
  import * as i1 from '@arsedizioni/ars-utils/core';
4
4
  import { PasswordStrength } from '@arsedizioni/ars-utils/core';
5
5
  import { MatPaginatorIntl } from '@angular/material/paginator';
@@ -384,6 +384,30 @@ declare class DialogService extends UIService {
384
384
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DialogService>;
385
385
  }
386
386
 
387
+ /**
388
+ * Standalone providers for the ars-utils "ui" layer.
389
+ *
390
+ * Currently this entry point has NO environment-level providers to register:
391
+ * - Services use `@Service()` (root-provided) and are loaded on demand when injected.
392
+ * - The core pipes (format, safeHtml, replace, ...) are standalone and template-only,
393
+ * so consuming components import them via `imports: []` — they never need to be
394
+ * listed here. Listing them would force all of them into the eager bundle and
395
+ * defeat tree-shaking.
396
+ *
397
+ * The function is kept for API symmetry / future configuration and so standalone apps
398
+ * have a stable extension point.
399
+ *
400
+ * @example
401
+ * bootstrapApplication(AppComponent, {
402
+ * providers: [provideArsUI()]
403
+ * });
404
+ */
405
+ declare function provideArsUI(): EnvironmentProviders;
406
+ /**
407
+ * @deprecated Prefer the standalone {@link provideArsUI} provider together with
408
+ * direct imports of the standalone components/directives. This module is kept as a thin,
409
+ * backward-compatible shim so existing NgModule-based applications keep working unchanged.
410
+ */
387
411
  declare class ArsUIModule {
388
412
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ArsUIModule, never>;
389
413
  static ɵmod: _angular_core.ɵɵNgModuleDeclaration<ArsUIModule, never, [typeof i1.ArsCoreModule], never>;
@@ -1396,5 +1420,5 @@ declare class ArsUIFlexModule {
1396
1420
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<ArsUIFlexModule>;
1397
1421
  }
1398
1422
 
1399
- export { ALIAS_FAMILIES, ALIAS_INDEX, ArsUIFlexModule, ArsUIModule, BS5_BREAKPOINTS, BusyDialogComponent, BusyTimer, CANONICAL_ALIASES, ConfirmDialogComponent, CredentialsDialogComponent, DeleteDialogComponent, DeleteDialogConfirmMode, DialogService, FxClassDirective, FxFlexAlignDirective, FxFlexDirective, FxFlexFillDirective, FxFlexOffsetDirective, FxFlexOrderDirective, FxGridAreaDirective, FxGridColumnDirective, FxGridDirective, FxLayoutAlignDirective, FxLayoutDirective, FxLayoutGapDirective, FxLayoutWrapDirective, FxShowHideDirective, FxStyleDirective, IfBpDirective, InfoDialogComponent, LAYOUT_BREAKPOINTS, MediaObserver, NON_CANONICAL_PRIORITY, OtpInputComponent, PaginatorIntl, PasswordStrengthComponent, RecoverPasswordDialogComponent, ResetPasswordDialogComponent, ResponsiveBaseDirective, ToastComponent, UIService, resolve, resolveAll, resolveNonCanonical };
1423
+ export { ALIAS_FAMILIES, ALIAS_INDEX, ArsUIFlexModule, ArsUIModule, BS5_BREAKPOINTS, BusyDialogComponent, BusyTimer, CANONICAL_ALIASES, ConfirmDialogComponent, CredentialsDialogComponent, DeleteDialogComponent, DeleteDialogConfirmMode, DialogService, FxClassDirective, FxFlexAlignDirective, FxFlexDirective, FxFlexFillDirective, FxFlexOffsetDirective, FxFlexOrderDirective, FxGridAreaDirective, FxGridColumnDirective, FxGridDirective, FxLayoutAlignDirective, FxLayoutDirective, FxLayoutGapDirective, FxLayoutWrapDirective, FxShowHideDirective, FxStyleDirective, IfBpDirective, InfoDialogComponent, LAYOUT_BREAKPOINTS, MediaObserver, NON_CANONICAL_PRIORITY, OtpInputComponent, PaginatorIntl, PasswordStrengthComponent, RecoverPasswordDialogComponent, ResetPasswordDialogComponent, ResponsiveBaseDirective, ToastComponent, UIService, provideArsUI, resolve, resolveAll, resolveNonCanonical };
1400
1424
  export type { BpValues, BreakpointAlias, CanonicalKey, ConfirmDialogData, ConfirmDialogOption, CredentialsDialogData, CredentialsDialogResult, DeleteDialogData, DialogOption, DialogResult, IDialogService, InfoDialogData, NcValues, NonCanonicalKey, RecoverPasswordDialogData, RecoverPasswordDialogResult, ResetPasswordDialogData, ResetPasswordDialogMode, ResetPasswordDialogResult, ToastData };
@@ -1,6 +1,5 @@
1
1
  export * from '@arsedizioni/ars-utils/core';
2
2
  export * from '@arsedizioni/ars-utils/ui';
3
- export * from '@arsedizioni/ars-utils/ui.oauth';
4
3
  export * from '@arsedizioni/ars-utils/ui.application';
5
4
  export * from '@arsedizioni/ars-utils/support.common';
6
5
  export * from '@arsedizioni/ars-utils/support.ui';