@masterteam/system-settings 0.0.20 → 0.0.21

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.
@@ -714,9 +714,15 @@ class SystemSettings {
714
714
  }
715
715
  const modalRef = this.modal.openModal(SystemSettingsHolidayEditor, 'drawer', {
716
716
  header: this.transloco.translate('system-settings.edit-holiday'),
717
- styleClass: '!w-[30rem] !absolute !shadow-none',
717
+ // Deliberately viewport-fixed (appendTo defaults to 'body', no
718
+ // `!absolute` override) - see DynamicDrawerHost.connect(): appending
719
+ // anywhere other than 'body' drops the `position: fixed` override,
720
+ // and pairing that with a forced `!absolute` used to anchor this
721
+ // drawer to #page-content's document position instead of the
722
+ // viewport, so it rendered off-screen as soon as the page scrolled
723
+ // past Holidays (a card partway down a long Settings page).
724
+ styleClass: '!w-[30rem] !shadow-none',
718
725
  position: 'end',
719
- appendTo: 'page-content',
720
726
  dismissible: true,
721
727
  inputValues: {
722
728
  holiday,
@@ -1356,14 +1362,21 @@ class SystemSettings {
1356
1362
  * Builds a localized, human-readable label for a date/time format key by
1357
1363
  * translating each format token (e.g. `dd-MM-yyyy` → `يوم-شهر-سنة`) while
1358
1364
  * preserving the original separators. Unknown characters are left as-is.
1365
+ *
1366
+ * `H` (24-hour) and `h` (12-hour) map to distinct translation keys -
1367
+ * NOT the same `format-token-hour` key. They used to share one key, which
1368
+ * made 'H:mm:ss' and 'hh:mm:ss' render as the identical label
1369
+ * "Hour:Minute:Second" despite submitting genuinely different backend
1370
+ * values (`H:mm:ss` vs `hh:mm:ss`), so an admin had no way to tell the two
1371
+ * Time Format options apart before selecting one.
1359
1372
  */
1360
1373
  formatOptionLabel(formatKey) {
1361
1374
  const tokenKeyByLetter = {
1362
1375
  y: 'format-token-year',
1363
1376
  M: 'format-token-month',
1364
1377
  d: 'format-token-day',
1365
- H: 'format-token-hour',
1366
- h: 'format-token-hour',
1378
+ H: 'format-token-hour-24',
1379
+ h: 'format-token-hour-12',
1367
1380
  m: 'format-token-minute',
1368
1381
  s: 'format-token-second',
1369
1382
  t: 'format-token-period',
@@ -1394,7 +1407,12 @@ class SystemSettings {
1394
1407
  { id: '{0:#,0.0}', name: `1,000.0 ${unitLabel}` },
1395
1408
  { id: '{0:#,0.00}', name: `1,000.00 ${unitLabel}` },
1396
1409
  { id: '{0:#,0, K}', name: `1 K ${unitLabel}` },
1397
- { id: '{0:N3}', name: `1,000 N3 ${unitLabel}` },
1410
+ // Was `1,000 N3 ${unitLabel}` - a leftover placeholder that pasted the
1411
+ // .NET format specifier itself into the label instead of what it
1412
+ // renders. N3 = thousands-separated with 3 decimal places, matching
1413
+ // the `{0:#,0.00}` entry above's convention of writing out the actual
1414
+ // formatted example rather than the format code.
1415
+ { id: '{0:N3}', name: `1,000.000 ${unitLabel}` },
1398
1416
  ];
1399
1417
  }
1400
1418
  getCurrencyFormatLabel(currency) {
@@ -2835,7 +2853,7 @@ function isTestRequestConflict(error) {
2835
2853
  const EMAIL_DELIVERY_ROUTES = [
2836
2854
  {
2837
2855
  path: '',
2838
- loadComponent: () => import('./masterteam-system-settings-email-delivery-shell-CBPKuYXr.mjs').then((module) => module.EmailDeliveryShell),
2856
+ loadComponent: () => import('./masterteam-system-settings-email-delivery-shell-CR2wsIif.mjs').then((module) => module.EmailDeliveryShell),
2839
2857
  },
2840
2858
  { path: '**', redirectTo: '' },
2841
2859
  ];
@@ -2845,4 +2863,4 @@ const EMAIL_DELIVERY_ROUTES = [
2845
2863
  */
2846
2864
 
2847
2865
  export { DEFAULT_GENERAL_CONFIGURATION as D, EmailDeliveryFacade as E, FIXED_CURRENCIES as F, GENERAL_CONFIGURATION_SETTING_KEY as G, RATE_SOURCE_OPTIONS as R, SystemSettings as S, TIMESHEET_FREQUENCY_OPTIONS as T, WEEKEND_DAY_DEFINITIONS as W, EmailDeliveryStatus as a, EMAIL_DELIVERY_ATTEMPT_STATUSES as b, createEmailTestRequestId as c, areEmailTestRecipientsValid as d, isEmailTestRequestPending as e, EMAIL_DELIVERY_PERMISSIONS as f, getEmailDeliveryStatusMap as g, EXPLORE_DEFAULT_VIEW_OPTIONS as h, isConnectionTestAttempt as i, DEFAULT_DATE_FORMAT_OPTIONS as j, DEFAULT_TIME_FORMAT_OPTIONS as k, DOTNET_DAY_DEFINITIONS as l, SCHEDULE_ITEM_TYPE_OPTIONS as m, SystemSettingsHolidayEditor as n, DEFAULT_EMAIL_DELIVERY_OPTIONS as o, parseEmailTestRecipients as p, EMAIL_DELIVERY_OPTIONS as q, provideEmailDelivery as r, EmailDeliveryAccessService as s, collectEmailTemplatePlaceholders as t, buildEmailTemplatePlaceholderFields as u, EmailUserTestDialog as v, EMAIL_USER_INITIATED_TEST_OPERATION_KIND as w, EMAIL_DELIVERY_ROUTES as x };
2848
- //# sourceMappingURL=masterteam-system-settings-masterteam-system-settings-DbsjQ7c7.mjs.map
2866
+ //# sourceMappingURL=masterteam-system-settings-masterteam-system-settings-DBy-LQB0.mjs.map