@focus8/settings-registry 0.1.0 → 0.2.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.
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +146 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +200 -0
package/dist/index.d.ts
CHANGED
|
@@ -51,6 +51,16 @@ export type AllDayPreset = {
|
|
|
51
51
|
};
|
|
52
52
|
export declare const SETTINGS_CATEGORIES: readonly ["appearance", "calendarView", "calendars", "sound", "timer", "media", "lockScreen", "touch", "device", "language", "notification", "chronological", "eventForm", "chronologicalEventForm"];
|
|
53
53
|
export type SettingsCategory = (typeof SETTINGS_CATEGORIES)[number];
|
|
54
|
+
export declare const CATEGORY_LABELS: Record<SettingsCategory, string>;
|
|
55
|
+
/** Categories only shown for chronological calendar type */
|
|
56
|
+
export declare const CHRONOLOGICAL_ONLY_CATEGORIES: ReadonlySet<SettingsCategory>;
|
|
57
|
+
/** Categories only shown for time-based calendar type */
|
|
58
|
+
export declare const TIME_BASED_ONLY_CATEGORIES: ReadonlySet<SettingsCategory>;
|
|
59
|
+
/**
|
|
60
|
+
* Filter categories based on the active calendar type.
|
|
61
|
+
* Categories not exclusive to either type are always included.
|
|
62
|
+
*/
|
|
63
|
+
export declare function getCategoriesForCalendarType(calendarType: CalendarType): SettingsCategory[];
|
|
54
64
|
export type SettingsDataType = 'string' | 'number' | 'boolean' | 'json';
|
|
55
65
|
export type SettingDef<T = unknown> = {
|
|
56
66
|
category: SettingsCategory;
|
|
@@ -205,7 +215,51 @@ export declare class SettingsRegistry {
|
|
|
205
215
|
serialize(key: SettingKey, value: unknown): string;
|
|
206
216
|
/** Deserialize a DB string back to a typed setting value */
|
|
207
217
|
deserialize<K extends SettingKey>(key: K, raw: string | null): SettingValue<K>;
|
|
218
|
+
/**
|
|
219
|
+
* Get the category for a setting key.
|
|
220
|
+
* Returns undefined if the key is not recognized.
|
|
221
|
+
*/
|
|
222
|
+
getCategory(key: string): SettingsCategory | undefined;
|
|
223
|
+
/**
|
|
224
|
+
* Get a human-readable label for a setting key.
|
|
225
|
+
* Strips the category prefix and formats the remaining path.
|
|
226
|
+
* Example: 'lockScreen.inactivityTimeoutMinutes' → 'Inactivity Timeout Minutes'
|
|
227
|
+
*/
|
|
228
|
+
getSettingLabel(key: string): string;
|
|
208
229
|
}
|
|
230
|
+
export type ParsedSettingEntry = {
|
|
231
|
+
/** The full setting key (e.g. 'lockScreen.inactivityTimeoutMinutes') */
|
|
232
|
+
key: string;
|
|
233
|
+
/** The setting name without category prefix (e.g. 'inactivityTimeoutMinutes') */
|
|
234
|
+
name: string;
|
|
235
|
+
/** Human-readable label (e.g. 'Inactivity Timeout Minutes') */
|
|
236
|
+
label: string;
|
|
237
|
+
/** The setting value */
|
|
238
|
+
value: unknown;
|
|
239
|
+
};
|
|
240
|
+
export type ParsedSettingsGroup = {
|
|
241
|
+
/** The category key */
|
|
242
|
+
category: SettingsCategory;
|
|
243
|
+
/** Human-readable category label */
|
|
244
|
+
label: string;
|
|
245
|
+
/** Settings in this category */
|
|
246
|
+
settings: ParsedSettingEntry[];
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* Parse a settings JSON snapshot into categorized groups, optionally filtered
|
|
250
|
+
* by calendar type. This is the single function both web and mobile should use
|
|
251
|
+
* to display a settings snapshot.
|
|
252
|
+
*
|
|
253
|
+
* @param json The raw JSON string from the settings snapshot
|
|
254
|
+
* @param calendarType Optional calendar type filter — hides irrelevant categories
|
|
255
|
+
* @param registry Optional registry instance (uses defaultRegistry if omitted)
|
|
256
|
+
*/
|
|
257
|
+
export declare function parseSettingsSnapshot(json: string, calendarType?: CalendarType, registry?: SettingsRegistry): ParsedSettingsGroup[];
|
|
258
|
+
/**
|
|
259
|
+
* Format a setting value for display.
|
|
260
|
+
* Handles booleans, numbers, strings, arrays, objects, and null/undefined.
|
|
261
|
+
*/
|
|
262
|
+
export declare function formatSettingValue(value: unknown): string;
|
|
209
263
|
export declare const defaultRegistry: SettingsRegistry;
|
|
210
264
|
export declare function createSettingsRegistry(config?: Partial<RegistryConfig>): {
|
|
211
265
|
readonly 'appearance.theme': SettingDef<ThemeSetting>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -33,6 +33,48 @@ export const SETTINGS_CATEGORIES = [
|
|
|
33
33
|
'eventForm',
|
|
34
34
|
'chronologicalEventForm',
|
|
35
35
|
];
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Category display labels — human-readable names for UI rendering
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
export const CATEGORY_LABELS = {
|
|
40
|
+
appearance: 'Appearance',
|
|
41
|
+
calendarView: 'Calendar View',
|
|
42
|
+
calendars: 'Calendars',
|
|
43
|
+
sound: 'Sound & Alerts',
|
|
44
|
+
timer: 'Timer',
|
|
45
|
+
media: 'Media',
|
|
46
|
+
lockScreen: 'Lock Screen',
|
|
47
|
+
touch: 'Touch & Gestures',
|
|
48
|
+
device: 'Device',
|
|
49
|
+
language: 'Language',
|
|
50
|
+
notification: 'Notifications',
|
|
51
|
+
chronological: 'Chronological',
|
|
52
|
+
eventForm: 'Event Form',
|
|
53
|
+
chronologicalEventForm: 'Event Form (Chronological)',
|
|
54
|
+
};
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// Calendar-type filtering — which categories are exclusive to a calendar type
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
/** Categories only shown for chronological calendar type */
|
|
59
|
+
export const CHRONOLOGICAL_ONLY_CATEGORIES = new Set(['chronological', 'chronologicalEventForm']);
|
|
60
|
+
/** Categories only shown for time-based calendar type */
|
|
61
|
+
export const TIME_BASED_ONLY_CATEGORIES = new Set(['eventForm']);
|
|
62
|
+
/**
|
|
63
|
+
* Filter categories based on the active calendar type.
|
|
64
|
+
* Categories not exclusive to either type are always included.
|
|
65
|
+
*/
|
|
66
|
+
export function getCategoriesForCalendarType(calendarType) {
|
|
67
|
+
return SETTINGS_CATEGORIES.filter((cat) => {
|
|
68
|
+
if (calendarType === 'time-based' &&
|
|
69
|
+
CHRONOLOGICAL_ONLY_CATEGORIES.has(cat)) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
if (calendarType === 'chronological' && TIME_BASED_ONLY_CATEGORIES.has(cat)) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
return true;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
36
78
|
/** Default config for non-enrolled mode */
|
|
37
79
|
export const DEFAULT_REGISTRY_CONFIG = {
|
|
38
80
|
isEnrolled: false,
|
|
@@ -277,6 +319,110 @@ export class SettingsRegistry {
|
|
|
277
319
|
}
|
|
278
320
|
}
|
|
279
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Get the category for a setting key.
|
|
324
|
+
* Returns undefined if the key is not recognized.
|
|
325
|
+
*/
|
|
326
|
+
getCategory(key) {
|
|
327
|
+
if (key in this.entries) {
|
|
328
|
+
return this.entries[key].category;
|
|
329
|
+
}
|
|
330
|
+
// Fallback: extract category from dot-prefix
|
|
331
|
+
const dotIndex = key.indexOf('.');
|
|
332
|
+
if (dotIndex > 0) {
|
|
333
|
+
const prefix = key.substring(0, dotIndex);
|
|
334
|
+
if (SETTINGS_CATEGORIES.includes(prefix)) {
|
|
335
|
+
return prefix;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
return undefined;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Get a human-readable label for a setting key.
|
|
342
|
+
* Strips the category prefix and formats the remaining path.
|
|
343
|
+
* Example: 'lockScreen.inactivityTimeoutMinutes' → 'Inactivity Timeout Minutes'
|
|
344
|
+
*/
|
|
345
|
+
getSettingLabel(key) {
|
|
346
|
+
const dotIndex = key.indexOf('.');
|
|
347
|
+
const name = dotIndex > 0 ? key.substring(dotIndex + 1) : key;
|
|
348
|
+
// Convert camelCase / dot-separated path to Title Case words
|
|
349
|
+
return name
|
|
350
|
+
.replace(/\./g, ' › ')
|
|
351
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
352
|
+
.replace(/^./, (c) => c.toUpperCase());
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Parse a settings JSON snapshot into categorized groups, optionally filtered
|
|
357
|
+
* by calendar type. This is the single function both web and mobile should use
|
|
358
|
+
* to display a settings snapshot.
|
|
359
|
+
*
|
|
360
|
+
* @param json The raw JSON string from the settings snapshot
|
|
361
|
+
* @param calendarType Optional calendar type filter — hides irrelevant categories
|
|
362
|
+
* @param registry Optional registry instance (uses defaultRegistry if omitted)
|
|
363
|
+
*/
|
|
364
|
+
export function parseSettingsSnapshot(json, calendarType, registry = defaultRegistry) {
|
|
365
|
+
let parsed;
|
|
366
|
+
try {
|
|
367
|
+
parsed = JSON.parse(json);
|
|
368
|
+
}
|
|
369
|
+
catch {
|
|
370
|
+
return [];
|
|
371
|
+
}
|
|
372
|
+
const groups = new Map();
|
|
373
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
374
|
+
const category = registry.getCategory(key);
|
|
375
|
+
if (!category) {
|
|
376
|
+
continue;
|
|
377
|
+
}
|
|
378
|
+
const dotIndex = key.indexOf('.');
|
|
379
|
+
const name = dotIndex > 0 ? key.substring(dotIndex + 1) : key;
|
|
380
|
+
if (!groups.has(category)) {
|
|
381
|
+
groups.set(category, []);
|
|
382
|
+
}
|
|
383
|
+
groups.get(category).push({
|
|
384
|
+
key,
|
|
385
|
+
name,
|
|
386
|
+
label: registry.getSettingLabel(key),
|
|
387
|
+
value,
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
// Determine which categories to show
|
|
391
|
+
const allowedCategories = calendarType
|
|
392
|
+
? getCategoriesForCalendarType(calendarType)
|
|
393
|
+
: [...SETTINGS_CATEGORIES];
|
|
394
|
+
return allowedCategories
|
|
395
|
+
.filter((cat) => groups.has(cat))
|
|
396
|
+
.map((category) => ({
|
|
397
|
+
category,
|
|
398
|
+
label: CATEGORY_LABELS[category],
|
|
399
|
+
settings: groups.get(category),
|
|
400
|
+
}));
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Format a setting value for display.
|
|
404
|
+
* Handles booleans, numbers, strings, arrays, objects, and null/undefined.
|
|
405
|
+
*/
|
|
406
|
+
export function formatSettingValue(value) {
|
|
407
|
+
if (value === null || value === undefined) {
|
|
408
|
+
return '—';
|
|
409
|
+
}
|
|
410
|
+
if (typeof value === 'boolean') {
|
|
411
|
+
return value ? 'true' : 'false';
|
|
412
|
+
}
|
|
413
|
+
if (typeof value === 'number') {
|
|
414
|
+
return String(value);
|
|
415
|
+
}
|
|
416
|
+
if (typeof value === 'string') {
|
|
417
|
+
return value || '""';
|
|
418
|
+
}
|
|
419
|
+
if (Array.isArray(value)) {
|
|
420
|
+
return `[${value.length} items]`;
|
|
421
|
+
}
|
|
422
|
+
if (typeof value === 'object') {
|
|
423
|
+
return JSON.stringify(value);
|
|
424
|
+
}
|
|
425
|
+
return String(value);
|
|
280
426
|
}
|
|
281
427
|
// ---------------------------------------------------------------------------
|
|
282
428
|
// Default registry instance (non-enrolled, system theme, nb locale)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAwBH,MAAM,CAAC,MAAM,cAAc,GAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAmC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAOzC,8EAA8E;AAC9E,qEAAqE;AACrE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY;IACZ,cAAc;IACd,WAAW;IACX,OAAO;IACP,OAAO;IACP,OAAO;IACP,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,UAAU;IACV,cAAc;IACd,eAAe;IACf,WAAW;IACX,wBAAwB;CAChB,CAAC;AAIX,8EAA8E;AAC9E,kEAAkE;AAClE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAqC;IAC/D,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,eAAe;IAC7B,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,gBAAgB;IACvB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,aAAa;IACzB,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,YAAY;IACvB,sBAAsB,EAAE,4BAA4B;CACrD,CAAC;AAEF,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAE9E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GACxC,IAAI,GAAG,CAAmB,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAEzE,yDAAyD;AACzD,MAAM,CAAC,MAAM,0BAA0B,GACrC,IAAI,GAAG,CAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,YAA0B;IAE1B,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,IACE,YAAY,KAAK,YAAY;YAC7B,6BAA6B,CAAC,GAAG,CAAC,GAAG,CAAC,EACtC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,YAAY,KAAK,eAAe,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAiCD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,QAAQ;IACtB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,SAAS,GAAG,CACV,QAA0B,EAC1B,IAAsB,EACtB,YAAe,EACf,IAAI,GAAG,IAAI;IAEX,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E,SAAS,YAAY,CAAC,MAAsB;IAC1C,OAAO;QACL,0EAA0E;QAC1E,aAAa;QACb,0EAA0E;QAC1E,kBAAkB,EAAE,GAAG,CACrB,YAAY,EACZ,QAAQ,EACR,MAAM,CAAC,YAAY,CACpB;QACD,sBAAsB,EAAE,GAAG,CAAY,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC;QACzE,4BAA4B,EAAE,GAAG,CAAU,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC;QAE1E,0EAA0E;QAC1E,gBAAgB;QAChB,0EAA0E;QAC1E,mBAAmB,EAAE,GAAG,CACtB,cAAc,EACd,QAAQ,EACR,YAAY,CACb;QACD,mBAAmB,EAAE,GAAG,CAAmB,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC;QAC3E,0BAA0B,EAAE,GAAG,CAC7B,cAAc,EACd,QAAQ,EACR,EAAE,CACH;QACD,2BAA2B,EAAE,GAAG,CAC9B,cAAc,EACd,QAAQ,EACR,EAAE,CACH;QACD,wBAAwB,EAAE,GAAG,CAAU,cAAc,EAAE,SAAS,EAAE,KAAK,CAAC;QACxE,gCAAgC,EAAE,GAAG,CACnC,cAAc,EACd,SAAS,EACT,IAAI,CACL;QACD,8BAA8B,EAAE,GAAG,CAAY,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;QAC1E,uCAAuC,EAAE,GAAG,CAC1C,cAAc,EACd,SAAS,EACT,MAAM,CAAC,UAAU,CAClB;QACD,8CAA8C,EAAE,GAAG,CACjD,cAAc,EACd,QAAQ,EACR,GAAG,CACJ;QACD,kCAAkC,EAAE,GAAG,CACrC,cAAc,EACd,SAAS,EACT,KAAK,CACN;QACD,oCAAoC,EAAE,GAAG,CACvC,cAAc,EACd,SAAS,EACT,KAAK,CACN;QACD,8BAA8B,EAAE,GAAG,CACjC,cAAc,EACd,MAAM,EACN,IAAI,CACL;QAED,0EAA0E;QAC1E,2CAA2C;QAC3C,0EAA0E;QAC1E,sBAAsB,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC;QAClE,qBAAqB,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC;QACjE,0BAA0B,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC;QACvE,oBAAoB,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC;QAChE,sBAAsB,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC;QACnE,uBAAuB,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC;QACnE,qBAAqB,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC;QACjE,kBAAkB,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC;QAC/D,sBAAsB,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC;QACnE,iCAAiC,EAAE,GAAG,CACpC,WAAW,EACX,SAAS,EACT,IAAI,CACL;QACD,sBAAsB,EAAE,GAAG,CAAU,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC;QAEnE,0EAA0E;QAC1E,iBAAiB;QACjB,0EAA0E;QAC1E,mBAAmB,EAAE,GAAG,CAAS,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC;QACxD,sBAAsB,EAAE,GAAG,CAAS,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC;QAC3D,mBAAmB,EAAE,GAAG,CAAS,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC;QACxD,kBAAkB,EAAE,GAAG,CAAa,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAChE,0BAA0B,EAAE,GAAG,CAAa,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACxE,uBAAuB,EAAE,GAAG,CAAa,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACrE,yBAAyB,EAAE,GAAG,CAAe,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,4BAA4B,EAAE,GAAG,CAAe,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrE,iCAAiC,EAAE,GAAG,CAAU,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;QAC1E,kBAAkB,EAAE,GAAG,CAAU,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;QACvE,eAAe,EAAE,GAAG,CAAS,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC;QAEpD,0EAA0E;QAC1E,QAAQ;QACR,0EAA0E;QAC1E,yBAAyB,EAAE,GAAG,CAAU,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC;QACjE,mBAAmB,EAAE,GAAG,CAAU,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC;QAC3D,yBAAyB,EAAE,GAAG,CAAU,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC;QACjE,uBAAuB,EAAE,GAAG,CAAU,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC;QAE/D,0EAA0E;QAC1E,cAAc;QACd,0EAA0E;QAC1E,gBAAgB,EAAE,GAAG,CAAS,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC;QACzD,kCAAkC,EAAE,GAAG,CACrC,YAAY,EACZ,SAAS,EACT,KAAK,CACN;QACD,qCAAqC,EAAE,GAAG,CACxC,YAAY,EACZ,QAAQ,EACR,CAAC,CACF;QACD,yBAAyB,EAAE,GAAG,CAC5B,YAAY,EACZ,QAAQ,EACR,SAAS,CACV;QACD,qBAAqB,EAAE,GAAG,CAAU,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC;QAClE,4BAA4B,EAAE,GAAG,CAAU,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC;QACzE,sBAAsB,EAAE,GAAG,CACzB,YAAY,EACZ,QAAQ,EACR,MAAM,CACP;QACD,4BAA4B,EAAE,GAAG,CAC/B,YAAY,EACZ,MAAM,EACN,IAAI,CACL;QACD,6BAA6B,EAAE,GAAG,CAChC,YAAY,EACZ,MAAM,EACN,EAAE,CACH;QACD,sCAAsC,EAAE,GAAG,CACzC,YAAY,EACZ,QAAQ,EACR,EAAE,CACH;QAED,0EAA0E;QAC1E,mBAAmB;QACnB,0EAA0E;QAC1E,yBAAyB,EAAE,GAAG,CAAU,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;QAClE,sBAAsB,EAAE,GAAG,CAAU,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;QAE/D,0EAA0E;QAC1E,mCAAmC;QACnC,0EAA0E;QAC1E,WAAW,EAAE,GAAG,CAAS,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC;QACvD,uBAAuB,EAAE,GAAG,CAAiB,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;QACzE,uBAAuB,EAAE,GAAG,CAAU,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;QACxE,kCAAkC,EAAE,GAAG,CACrC,QAAQ,EACR,QAAQ,EACR,CAAC,EACD,KAAK,CACN;QAED,0EAA0E;QAC1E,WAAW;QACX,0EAA0E;QAC1E,iBAAiB,EAAE,GAAG,CACpB,UAAU,EACV,QAAQ,EACR,MAAM,CAAC,aAAa,CACrB;QAED,0EAA0E;QAC1E,gBAAgB;QAChB,0EAA0E;QAC1E,sBAAsB,EAAE,GAAG,CAAU,cAAc,EAAE,SAAS,EAAE,KAAK,CAAC;QACtE,iCAAiC,EAAE,GAAG,CACpC,cAAc,EACd,SAAS,EACT,IAAI,CACL;QACD,iCAAiC,EAAE,GAAG,CACpC,cAAc,EACd,MAAM,EACN,EAAE,CACH;QACD,8BAA8B,EAAE,GAAG,CACjC,cAAc,EACd,SAAS,EACT,KAAK,EACL,KAAK,CACN;QAED,0EAA0E;QAC1E,uEAAuE;QACvE,0EAA0E;QAC1E,SAAS;QACT,2CAA2C,EAAE,GAAG,CAC9C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,gCAAgC,EAAE,GAAG,CACnC,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,4CAA4C,EAAE,GAAG,CAC/C,eAAe,EACf,SAAS,EACT,KAAK,CACN;QACD,oCAAoC,EAAE,GAAG,CACvC,eAAe,EACf,SAAS,EACT,KAAK,CACN;QACD,SAAS;QACT,qCAAqC,EAAE,GAAG,CACxC,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,0CAA0C,EAAE,GAAG,CAC7C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,2CAA2C,EAAE,GAAG,CAC9C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,4CAA4C,EAAE,GAAG,CAC/C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,sCAAsC,EAAE,GAAG,CACzC,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,yCAAyC,EAAE,GAAG,CAC5C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,yCAAyC,EAAE,GAAG,CAC5C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,iBAAiB;QACjB,sCAAsC,EAAE,GAAG,CACzC,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,sCAAsC,EAAE,GAAG,CACzC,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,sCAAsC,EAAE,GAAG,CACzC,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,wCAAwC,EAAE,GAAG,CAC3C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,qCAAqC,EAAE,GAAG,CACxC,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,OAAO;QACP,uCAAuC,EAAE,GAAG,CAC1C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,iBAAiB;QACjB,6CAA6C,EAAE,GAAG,CAChD,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,gDAAgD,EAAE,GAAG,CACnD,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,6CAA6C,EAAE,GAAG,CAChD,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,4CAA4C,EAAE,GAAG,CAC/C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,4CAA4C,EAAE,GAAG,CAC/C,eAAe,EACf,SAAS,EACT,IAAI,CACL;QACD,sBAAsB;QACtB,sCAAsC,EAAE,GAAG,CACzC,eAAe,EACf,QAAQ,EACR,CAAC,CACF;QACD,uCAAuC,EAAE,GAAG,CAC1C,eAAe,EACf,QAAQ,EACR,CAAC,CACF;QACD,wCAAwC,EAAE,GAAG,CAC3C,eAAe,EACf,QAAQ,EACR,EAAE,CACH;QACD,sCAAsC,EAAE,GAAG,CACzC,eAAe,EACf,QAAQ,EACR,EAAE,CACH;QACD,oCAAoC,EAAE,GAAG,CACvC,eAAe,EACf,QAAQ,EACR,CAAC,CACF;QAED,0EAA0E;QAC1E,2BAA2B;QAC3B,0EAA0E;QAC1E,oBAAoB;QACpB,0CAA0C,EAAE,GAAG,CAC7C,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,yCAAyC,EAAE,GAAG,CAC5C,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,0CAA0C,EAAE,GAAG,CAC7C,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,wCAAwC,EAAE,GAAG,CAC3C,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,0CAA0C,EAAE,GAAG,CAC7C,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,wCAAwC,EAAE,GAAG,CAC3C,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,yCAAyC,EAAE,GAAG,CAC5C,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,eAAe;QACf,0CAA0C,EAAE,GAAG,CAC7C,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,2CAA2C,EAAE,GAAG,CAC9C,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,8CAA8C,EAAE,GAAG,CACjD,wBAAwB,EACxB,SAAS,EACT,IAAI,CACL;QACD,mBAAmB;QACnB,+CAA+C,EAAE,GAAG,CAClD,wBAAwB,EACxB,SAAS,EACT,KAAK,CACN;QACD,6CAA6C,EAAE,GAAG,CAChD,wBAAwB,EACxB,QAAQ,EACR,EAAE,CACH;QACD,4CAA4C,EAAE,GAAG,CAC/C,wBAAwB,EACxB,QAAQ,EACR,SAAS,CACV;QACD,qBAAqB;QACrB,0CAA0C,EAAE,GAAG,CAC7C,wBAAwB,EACxB,QAAQ,EACR,SAAS,CACV;QACD,mBAAmB;QACnB,8CAA8C,EAAE,GAAG,CACjD,wBAAwB,EACxB,MAAM,EACN,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAC3B;QACD,+CAA+C,EAAE,GAAG,CAClD,wBAAwB,EACxB,MAAM,EACN;YACE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;YAChC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;YAChC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;SACjC,CACF;KAC4C,CAAC;AAClD,CAAC;AAmBD,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,OAAO,gBAAgB;IAO3B,YAAY,SAAkC,EAAE;QAC9C,MAAM,IAAI,GAAmB,EAAE,GAAG,uBAAuB,EAAE,GAAG,MAAM,EAAE,CAAC;QACvE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAiB,CAAC;IACxD,CAAC;IAED,0CAA0C;IAC1C,UAAU,CAAuB,GAAM;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAA0B,CAAC;IACtD,CAAC;IAED,+CAA+C;IAC/C,cAAc;QACZ,MAAM,QAAQ,GAAG,EAA6B,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QAC5C,CAAC;QACD,OAAO,QAAuB,CAAC;IACjC,CAAC;IAED,0CAA0C;IAC1C,WAAW,CAAC,GAAe;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,+CAA+C;IAC/C,QAAQ,CAAC,GAAe;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,0CAA0C;IAC1C,aAAa,CAAC,QAA0B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,2DAA2D;IAC3D,SAAS,CAAC,GAAe,EAAE,KAAc;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC7B,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAC5B,KAAK,SAAS;gBACZ,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAClC,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,WAAW,CACT,GAAM,EACN,GAAkB;QAElB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,GAAsB,CAAC;YAChC,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,GAAG,CAAoB,CAAC;YACxC,KAAK,SAAS;gBACZ,OAAO,CAAC,GAAG,KAAK,MAAM,CAAoB,CAAC;YAC7C,KAAK,MAAM;gBACT,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;gBAC5C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,GAAW;QACrB,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAiB,CAAC,CAAC,QAAQ,CAAC;QAClD,CAAC;QACD,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC1C,IACE,mBAAmB,CAAC,QAAQ,CAAC,MAA0B,CAAC,EACxD,CAAC;gBACD,OAAO,MAA0B,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,GAAW;QACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9D,6DAA6D;QAC7D,OAAO,IAAI;aACR,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;aACrB,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACnC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AA0BD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,YAA2B,EAC3B,WAA6B,eAAe;IAE5C,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAGnB,CAAC;IAEJ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAE9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC;YACzB,GAAG;YACH,IAAI;YACJ,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC;YACpC,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,MAAM,iBAAiB,GAAG,YAAY;QACpC,CAAC,CAAC,4BAA4B,CAAC,YAAY,CAAC;QAC5C,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAE7B,OAAO,iBAAiB;SACrB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClB,QAAQ;QACR,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE;KAChC,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,MAAM,SAAS,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAEtD,8EAA8E;AAC9E,sEAAsE;AACtE,2EAA2E;AAC3E,kDAAkD;AAClD,8EAA8E;AAE9E,MAAM,UAAU,sBAAsB,CAAC,SAAkC,EAAE;IACzE,OAAO,YAAY,CAAC,EAAE,GAAG,uBAAuB,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -100,6 +100,60 @@ export const SETTINGS_CATEGORIES = [
|
|
|
100
100
|
|
|
101
101
|
export type SettingsCategory = (typeof SETTINGS_CATEGORIES)[number];
|
|
102
102
|
|
|
103
|
+
// ---------------------------------------------------------------------------
|
|
104
|
+
// Category display labels — human-readable names for UI rendering
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
|
|
107
|
+
export const CATEGORY_LABELS: Record<SettingsCategory, string> = {
|
|
108
|
+
appearance: 'Appearance',
|
|
109
|
+
calendarView: 'Calendar View',
|
|
110
|
+
calendars: 'Calendars',
|
|
111
|
+
sound: 'Sound & Alerts',
|
|
112
|
+
timer: 'Timer',
|
|
113
|
+
media: 'Media',
|
|
114
|
+
lockScreen: 'Lock Screen',
|
|
115
|
+
touch: 'Touch & Gestures',
|
|
116
|
+
device: 'Device',
|
|
117
|
+
language: 'Language',
|
|
118
|
+
notification: 'Notifications',
|
|
119
|
+
chronological: 'Chronological',
|
|
120
|
+
eventForm: 'Event Form',
|
|
121
|
+
chronologicalEventForm: 'Event Form (Chronological)',
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
// ---------------------------------------------------------------------------
|
|
125
|
+
// Calendar-type filtering — which categories are exclusive to a calendar type
|
|
126
|
+
// ---------------------------------------------------------------------------
|
|
127
|
+
|
|
128
|
+
/** Categories only shown for chronological calendar type */
|
|
129
|
+
export const CHRONOLOGICAL_ONLY_CATEGORIES: ReadonlySet<SettingsCategory> =
|
|
130
|
+
new Set<SettingsCategory>(['chronological', 'chronologicalEventForm']);
|
|
131
|
+
|
|
132
|
+
/** Categories only shown for time-based calendar type */
|
|
133
|
+
export const TIME_BASED_ONLY_CATEGORIES: ReadonlySet<SettingsCategory> =
|
|
134
|
+
new Set<SettingsCategory>(['eventForm']);
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Filter categories based on the active calendar type.
|
|
138
|
+
* Categories not exclusive to either type are always included.
|
|
139
|
+
*/
|
|
140
|
+
export function getCategoriesForCalendarType(
|
|
141
|
+
calendarType: CalendarType,
|
|
142
|
+
): SettingsCategory[] {
|
|
143
|
+
return SETTINGS_CATEGORIES.filter((cat) => {
|
|
144
|
+
if (
|
|
145
|
+
calendarType === 'time-based' &&
|
|
146
|
+
CHRONOLOGICAL_ONLY_CATEGORIES.has(cat)
|
|
147
|
+
) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
if (calendarType === 'chronological' && TIME_BASED_ONLY_CATEGORIES.has(cat)) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
return true;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
|
|
103
157
|
// ---------------------------------------------------------------------------
|
|
104
158
|
// Data type discriminator — stored alongside each setting in the DB
|
|
105
159
|
// ---------------------------------------------------------------------------
|
|
@@ -696,6 +750,152 @@ export class SettingsRegistry {
|
|
|
696
750
|
}
|
|
697
751
|
}
|
|
698
752
|
}
|
|
753
|
+
|
|
754
|
+
/**
|
|
755
|
+
* Get the category for a setting key.
|
|
756
|
+
* Returns undefined if the key is not recognized.
|
|
757
|
+
*/
|
|
758
|
+
getCategory(key: string): SettingsCategory | undefined {
|
|
759
|
+
if (key in this.entries) {
|
|
760
|
+
return this.entries[key as SettingKey].category;
|
|
761
|
+
}
|
|
762
|
+
// Fallback: extract category from dot-prefix
|
|
763
|
+
const dotIndex = key.indexOf('.');
|
|
764
|
+
if (dotIndex > 0) {
|
|
765
|
+
const prefix = key.substring(0, dotIndex);
|
|
766
|
+
if (
|
|
767
|
+
SETTINGS_CATEGORIES.includes(prefix as SettingsCategory)
|
|
768
|
+
) {
|
|
769
|
+
return prefix as SettingsCategory;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
return undefined;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
/**
|
|
776
|
+
* Get a human-readable label for a setting key.
|
|
777
|
+
* Strips the category prefix and formats the remaining path.
|
|
778
|
+
* Example: 'lockScreen.inactivityTimeoutMinutes' → 'Inactivity Timeout Minutes'
|
|
779
|
+
*/
|
|
780
|
+
getSettingLabel(key: string): string {
|
|
781
|
+
const dotIndex = key.indexOf('.');
|
|
782
|
+
const name = dotIndex > 0 ? key.substring(dotIndex + 1) : key;
|
|
783
|
+
// Convert camelCase / dot-separated path to Title Case words
|
|
784
|
+
return name
|
|
785
|
+
.replace(/\./g, ' › ')
|
|
786
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
787
|
+
.replace(/^./, (c) => c.toUpperCase());
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
// ---------------------------------------------------------------------------
|
|
792
|
+
// Snapshot parsing — parse a JSON settings snapshot into categorized groups
|
|
793
|
+
// ---------------------------------------------------------------------------
|
|
794
|
+
|
|
795
|
+
export type ParsedSettingEntry = {
|
|
796
|
+
/** The full setting key (e.g. 'lockScreen.inactivityTimeoutMinutes') */
|
|
797
|
+
key: string;
|
|
798
|
+
/** The setting name without category prefix (e.g. 'inactivityTimeoutMinutes') */
|
|
799
|
+
name: string;
|
|
800
|
+
/** Human-readable label (e.g. 'Inactivity Timeout Minutes') */
|
|
801
|
+
label: string;
|
|
802
|
+
/** The setting value */
|
|
803
|
+
value: unknown;
|
|
804
|
+
};
|
|
805
|
+
|
|
806
|
+
export type ParsedSettingsGroup = {
|
|
807
|
+
/** The category key */
|
|
808
|
+
category: SettingsCategory;
|
|
809
|
+
/** Human-readable category label */
|
|
810
|
+
label: string;
|
|
811
|
+
/** Settings in this category */
|
|
812
|
+
settings: ParsedSettingEntry[];
|
|
813
|
+
};
|
|
814
|
+
|
|
815
|
+
/**
|
|
816
|
+
* Parse a settings JSON snapshot into categorized groups, optionally filtered
|
|
817
|
+
* by calendar type. This is the single function both web and mobile should use
|
|
818
|
+
* to display a settings snapshot.
|
|
819
|
+
*
|
|
820
|
+
* @param json The raw JSON string from the settings snapshot
|
|
821
|
+
* @param calendarType Optional calendar type filter — hides irrelevant categories
|
|
822
|
+
* @param registry Optional registry instance (uses defaultRegistry if omitted)
|
|
823
|
+
*/
|
|
824
|
+
export function parseSettingsSnapshot(
|
|
825
|
+
json: string,
|
|
826
|
+
calendarType?: CalendarType,
|
|
827
|
+
registry: SettingsRegistry = defaultRegistry,
|
|
828
|
+
): ParsedSettingsGroup[] {
|
|
829
|
+
let parsed: Record<string, unknown>;
|
|
830
|
+
try {
|
|
831
|
+
parsed = JSON.parse(json);
|
|
832
|
+
} catch {
|
|
833
|
+
return [];
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
const groups = new Map<
|
|
837
|
+
SettingsCategory,
|
|
838
|
+
ParsedSettingEntry[]
|
|
839
|
+
>();
|
|
840
|
+
|
|
841
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
842
|
+
const category = registry.getCategory(key);
|
|
843
|
+
if (!category) {
|
|
844
|
+
continue;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
const dotIndex = key.indexOf('.');
|
|
848
|
+
const name = dotIndex > 0 ? key.substring(dotIndex + 1) : key;
|
|
849
|
+
|
|
850
|
+
if (!groups.has(category)) {
|
|
851
|
+
groups.set(category, []);
|
|
852
|
+
}
|
|
853
|
+
groups.get(category)!.push({
|
|
854
|
+
key,
|
|
855
|
+
name,
|
|
856
|
+
label: registry.getSettingLabel(key),
|
|
857
|
+
value,
|
|
858
|
+
});
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
// Determine which categories to show
|
|
862
|
+
const allowedCategories = calendarType
|
|
863
|
+
? getCategoriesForCalendarType(calendarType)
|
|
864
|
+
: [...SETTINGS_CATEGORIES];
|
|
865
|
+
|
|
866
|
+
return allowedCategories
|
|
867
|
+
.filter((cat) => groups.has(cat))
|
|
868
|
+
.map((category) => ({
|
|
869
|
+
category,
|
|
870
|
+
label: CATEGORY_LABELS[category],
|
|
871
|
+
settings: groups.get(category)!,
|
|
872
|
+
}));
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
/**
|
|
876
|
+
* Format a setting value for display.
|
|
877
|
+
* Handles booleans, numbers, strings, arrays, objects, and null/undefined.
|
|
878
|
+
*/
|
|
879
|
+
export function formatSettingValue(value: unknown): string {
|
|
880
|
+
if (value === null || value === undefined) {
|
|
881
|
+
return '—';
|
|
882
|
+
}
|
|
883
|
+
if (typeof value === 'boolean') {
|
|
884
|
+
return value ? 'true' : 'false';
|
|
885
|
+
}
|
|
886
|
+
if (typeof value === 'number') {
|
|
887
|
+
return String(value);
|
|
888
|
+
}
|
|
889
|
+
if (typeof value === 'string') {
|
|
890
|
+
return value || '""';
|
|
891
|
+
}
|
|
892
|
+
if (Array.isArray(value)) {
|
|
893
|
+
return `[${value.length} items]`;
|
|
894
|
+
}
|
|
895
|
+
if (typeof value === 'object') {
|
|
896
|
+
return JSON.stringify(value);
|
|
897
|
+
}
|
|
898
|
+
return String(value);
|
|
699
899
|
}
|
|
700
900
|
|
|
701
901
|
// ---------------------------------------------------------------------------
|