@masterteam/system-settings 0.0.19 → 0.0.20

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,2 +1,2 @@
1
- export { j as DEFAULT_DATE_FORMAT_OPTIONS, o as DEFAULT_EMAIL_DELIVERY_OPTIONS, D as DEFAULT_GENERAL_CONFIGURATION, k as DEFAULT_TIME_FORMAT_OPTIONS, l as DOTNET_DAY_DEFINITIONS, b as EMAIL_DELIVERY_ATTEMPT_STATUSES, q as EMAIL_DELIVERY_OPTIONS, f as EMAIL_DELIVERY_PERMISSIONS, x as EMAIL_DELIVERY_ROUTES, w as EMAIL_USER_INITIATED_TEST_OPERATION_KIND, h as EXPLORE_DEFAULT_VIEW_OPTIONS, s as EmailDeliveryAccessService, v as EmailUserTestDialog, F as FIXED_CURRENCIES, G as GENERAL_CONFIGURATION_SETTING_KEY, R as RATE_SOURCE_OPTIONS, m as SCHEDULE_ITEM_TYPE_OPTIONS, S as SystemSettings, n as SystemSettingsHolidayEditor, T as TIMESHEET_FREQUENCY_OPTIONS, W as WEEKEND_DAY_DEFINITIONS, d as areEmailTestRecipientsValid, u as buildEmailTemplatePlaceholderFields, t as collectEmailTemplatePlaceholders, c as createEmailTestRequestId, i as isConnectionTestAttempt, e as isEmailTestRequestPending, p as parseEmailTestRecipients, r as provideEmailDelivery } from './masterteam-system-settings-masterteam-system-settings-BjftcBn5.mjs';
1
+ export { j as DEFAULT_DATE_FORMAT_OPTIONS, o as DEFAULT_EMAIL_DELIVERY_OPTIONS, D as DEFAULT_GENERAL_CONFIGURATION, k as DEFAULT_TIME_FORMAT_OPTIONS, l as DOTNET_DAY_DEFINITIONS, b as EMAIL_DELIVERY_ATTEMPT_STATUSES, q as EMAIL_DELIVERY_OPTIONS, f as EMAIL_DELIVERY_PERMISSIONS, x as EMAIL_DELIVERY_ROUTES, w as EMAIL_USER_INITIATED_TEST_OPERATION_KIND, h as EXPLORE_DEFAULT_VIEW_OPTIONS, s as EmailDeliveryAccessService, v as EmailUserTestDialog, F as FIXED_CURRENCIES, G as GENERAL_CONFIGURATION_SETTING_KEY, R as RATE_SOURCE_OPTIONS, m as SCHEDULE_ITEM_TYPE_OPTIONS, S as SystemSettings, n as SystemSettingsHolidayEditor, T as TIMESHEET_FREQUENCY_OPTIONS, W as WEEKEND_DAY_DEFINITIONS, d as areEmailTestRecipientsValid, u as buildEmailTemplatePlaceholderFields, t as collectEmailTemplatePlaceholders, c as createEmailTestRequestId, i as isConnectionTestAttempt, e as isEmailTestRequestPending, p as parseEmailTestRecipients, r as provideEmailDelivery } from './masterteam-system-settings-masterteam-system-settings-DbsjQ7c7.mjs';
2
2
  //# sourceMappingURL=masterteam-system-settings.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/system-settings",
3
- "version": "0.0.19",
3
+ "version": "0.0.20",
4
4
  "publishConfig": {
5
5
  "directory": "../../../dist/masterteam/system-settings",
6
6
  "linkDirectory": false,
@@ -19,8 +19,8 @@
19
19
  "rxjs": "^7.8.2",
20
20
  "tailwindcss": "^4.2.2",
21
21
  "tailwindcss-primeui": "^0.6.1",
22
- "@masterteam/components": "^0.0.280",
23
- "@masterteam/forms": "^0.0.146",
22
+ "@masterteam/components": "^0.0.282",
23
+ "@masterteam/forms": "^0.0.147",
24
24
  "@masterteam/icons": "^0.0.17"
25
25
  },
26
26
  "sideEffects": false,
@@ -73,7 +73,7 @@ interface WeekendSettingValue extends SystemSettingObject {
73
73
  days: number[];
74
74
  }
75
75
  /** The landing view the app-client explore page opens with. */
76
- type ExploreDefaultView = 'cards' | 'timeline';
76
+ type ExploreDefaultView = 'cards' | 'timeline' | 'table';
77
77
  /**
78
78
  * General Configuration is persisted **inside the existing `Identity` record**
79
79
  * (the same record `@masterteam/brand-display` owns), not under a key of its own.
@@ -191,6 +191,10 @@ declare const EXPLORE_DEFAULT_VIEW_OPTIONS: readonly [{
191
191
  readonly id: "timeline";
192
192
  readonly translationKey: "explore-default-view-timeline";
193
193
  readonly icon: "time.clock";
194
+ }, {
195
+ readonly id: "table";
196
+ readonly translationKey: "explore-default-view-table";
197
+ readonly icon: "layout.table";
194
198
  }];
195
199
  declare const DEFAULT_GENERAL_CONFIGURATION: GeneralConfigurationSettingValue;
196
200
  declare const DEFAULT_DATE_FORMAT_OPTIONS: FormatSchemaOption[];
@@ -276,14 +280,49 @@ declare class SystemSettings implements OnInit {
276
280
  private readonly transloco;
277
281
  private readonly modal;
278
282
  private readonly toast;
279
- readonly apiBasePath: _angular_core.InputSignal<string>;
280
- readonly backRoute: _angular_core.InputSignal<string | null>;
283
+ /**
284
+ * Base path for the settings API. Safe to omit from a route's `data`
285
+ * even when the host uses `withComponentInputBinding()` - see
286
+ * `defaultWhenUndefined`.
287
+ */
288
+ readonly apiBasePath: _angular_core.InputSignalWithTransform<string, string | undefined>;
289
+ /**
290
+ * Route the page's back button navigates to; falsy (including an
291
+ * explicit `null`) disables it - see `goBack()`. Safe to omit from a
292
+ * route's `data` even when the host uses `withComponentInputBinding()`
293
+ * - see `defaultWhenUndefined`.
294
+ */
295
+ readonly backRoute: _angular_core.InputSignalWithTransform<string | null, string | null | undefined>;
281
296
  readonly formatSchema: _angular_core.InputSignal<SystemSettingsFormatSchema | null>;
282
- readonly breadcrumbItems: {
297
+ /**
298
+ * Breadcrumb "home" link. `null` renders the crumb as non-navigable.
299
+ * Safe to omit from a route's `data` even when the host uses
300
+ * `withComponentInputBinding()` - see `defaultWhenUndefined`.
301
+ */
302
+ readonly homeRoute: _angular_core.InputSignalWithTransform<string | null, string | null | undefined>;
303
+ /**
304
+ * Hides the Timesheet Policy card only - Global Working Hours stays
305
+ * visible and required, since it's host-relevant on its own (working
306
+ * days/hours feed scheduling and calendar logic beyond timesheets).
307
+ * TimeSheetPolicy's fields lose their validators and are excluded from
308
+ * save diffing while hidden; GlobalWorkingHours is unaffected.
309
+ */
310
+ readonly hideTimeSheet: _angular_core.InputSignal<boolean>;
311
+ /**
312
+ * Restricts which Explore-default-view options are offered. `null` (the
313
+ * default) preserves pplus5's original two options (`'cards'`,
314
+ * `'timeline'`) - NOT the full catalog, since the catalog now also
315
+ * contains `'table'` (added for splus4) and an unset input must not
316
+ * silently surface it to hosts that never opted in. Pass the ids
317
+ * explicitly (e.g. `['cards', 'table']`, or all three) to get anything
318
+ * else.
319
+ */
320
+ readonly exploreViewOptions: _angular_core.InputSignal<ExploreDefaultView[] | null>;
321
+ readonly breadcrumbItems: _angular_core.Signal<{
283
322
  label?: string;
284
323
  routerLink?: string;
285
324
  icon?: string;
286
- }[];
325
+ }[]>;
287
326
  readonly form: SystemSettingsForm;
288
327
  readonly settings: _angular_core.WritableSignal<SystemSetting[] | null>;
289
328
  readonly settingsLoading: _angular_core.WritableSignal<boolean>;
@@ -385,6 +424,17 @@ declare class SystemSettings implements OnInit {
385
424
  readonly currencyOptions: _angular_core.Signal<SelectOption[]>;
386
425
  readonly currencyFormatOptions: _angular_core.Signal<SelectOption[]>;
387
426
  readonly dotnetDayOptions: _angular_core.Signal<WeekendDayOption[]>;
427
+ /**
428
+ * The Explore-default-view ids actually offered, in the fixed catalog's
429
+ * order: `exploreViewOptions()` when the host sets it, else the legacy
430
+ * pplus5 pair (`DEFAULT_EXPLORE_VIEW_OPTIONS`) - deliberately NOT the full
431
+ * `EXPLORE_DEFAULT_VIEW_OPTIONS` catalog, since that now includes `'table'`
432
+ * and an unconfigured host must keep seeing exactly what it saw before.
433
+ * Filtered against the catalog either way, so an invalid/unknown id in a
434
+ * host's list is silently dropped rather than offered. Always non-empty
435
+ * unless a host passes an empty array.
436
+ */
437
+ readonly allowedExploreDefaultViews: _angular_core.Signal<ExploreDefaultView[]>;
388
438
  readonly exploreDefaultViewOptions: _angular_core.Signal<IconSelectOption[]>;
389
439
  readonly frequencyOptions: _angular_core.Signal<SelectOption[]>;
390
440
  readonly isReady: _angular_core.Signal<boolean>;
@@ -428,6 +478,14 @@ declare class SystemSettings implements OnInit {
428
478
  private normalizeTimezoneRegion;
429
479
  private normalizeCurrencyUnit;
430
480
  private normalizeGeneralConfigurationSnapshot;
481
+ /**
482
+ * Resolves a stored/incoming value against the currently allowed Explore
483
+ * views (`allowedExploreDefaultViews()`), not the full static catalog, so a
484
+ * host-restricted `exploreViewOptions` is enforced on both hydration and
485
+ * save. Falls back to the first allowed option - not a hardcoded 'cards' -
486
+ * since a host may configure a subset that excludes it.
487
+ */
488
+ private normalizeExploreDefaultView;
431
489
  private normalizeTimezoneSnapshot;
432
490
  private normalizeCurrencySnapshot;
433
491
  private normalizeWeekendSnapshot;
@@ -453,7 +511,7 @@ declare class SystemSettings implements OnInit {
453
511
  private applyUpdatedSettings;
454
512
  private areEqual;
455
513
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SystemSettings, never>;
456
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SystemSettings, "mt-system-settings", never, { "apiBasePath": { "alias": "apiBasePath"; "required": false; "isSignal": true; }; "backRoute": { "alias": "backRoute"; "required": false; "isSignal": true; }; "formatSchema": { "alias": "formatSchema"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
514
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SystemSettings, "mt-system-settings", never, { "apiBasePath": { "alias": "apiBasePath"; "required": false; "isSignal": true; }; "backRoute": { "alias": "backRoute"; "required": false; "isSignal": true; }; "formatSchema": { "alias": "formatSchema"; "required": false; "isSignal": true; }; "homeRoute": { "alias": "homeRoute"; "required": false; "isSignal": true; }; "hideTimeSheet": { "alias": "hideTimeSheet"; "required": false; "isSignal": true; }; "exploreViewOptions": { "alias": "exploreViewOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
457
515
  }
458
516
 
459
517
  type HolidayEditorForm = FormGroup<{