@umituz/react-native-settings 2.4.1 → 3.0.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.
Files changed (122) hide show
  1. package/package.json +5 -13
  2. package/src/presentation/components/SettingItem.tsx +4 -4
  3. package/lib/__tests__/setup.d.ts +0 -5
  4. package/lib/__tests__/setup.d.ts.map +0 -1
  5. package/lib/__tests__/setup.js +0 -143
  6. package/lib/__tests__/setup.js.map +0 -1
  7. package/lib/domain/repositories/ISettingsRepository.d.ts +0 -51
  8. package/lib/domain/repositories/ISettingsRepository.d.ts.map +0 -1
  9. package/lib/domain/repositories/ISettingsRepository.js +0 -8
  10. package/lib/domain/repositories/ISettingsRepository.js.map +0 -1
  11. package/lib/index.d.ts +0 -35
  12. package/lib/index.d.ts.map +0 -1
  13. package/lib/index.js +0 -32
  14. package/lib/index.js.map +0 -1
  15. package/lib/infrastructure/storage/SettingsStore.d.ts +0 -36
  16. package/lib/infrastructure/storage/SettingsStore.d.ts.map +0 -1
  17. package/lib/infrastructure/storage/SettingsStore.js +0 -144
  18. package/lib/infrastructure/storage/SettingsStore.js.map +0 -1
  19. package/lib/presentation/components/CloudSyncSetting.d.ts +0 -16
  20. package/lib/presentation/components/CloudSyncSetting.d.ts.map +0 -1
  21. package/lib/presentation/components/CloudSyncSetting.js +0 -30
  22. package/lib/presentation/components/CloudSyncSetting.js.map +0 -1
  23. package/lib/presentation/components/DisclaimerCard.d.ts +0 -15
  24. package/lib/presentation/components/DisclaimerCard.d.ts.map +0 -1
  25. package/lib/presentation/components/DisclaimerCard.js +0 -73
  26. package/lib/presentation/components/DisclaimerCard.js.map +0 -1
  27. package/lib/presentation/components/DisclaimerModal.d.ts +0 -13
  28. package/lib/presentation/components/DisclaimerModal.d.ts.map +0 -1
  29. package/lib/presentation/components/DisclaimerModal.js +0 -62
  30. package/lib/presentation/components/DisclaimerModal.js.map +0 -1
  31. package/lib/presentation/components/DisclaimerSetting.d.ts +0 -39
  32. package/lib/presentation/components/DisclaimerSetting.d.ts.map +0 -1
  33. package/lib/presentation/components/DisclaimerSetting.js +0 -59
  34. package/lib/presentation/components/DisclaimerSetting.js.map +0 -1
  35. package/lib/presentation/components/SettingItem.d.ts +0 -45
  36. package/lib/presentation/components/SettingItem.d.ts.map +0 -1
  37. package/lib/presentation/components/SettingItem.js +0 -113
  38. package/lib/presentation/components/SettingItem.js.map +0 -1
  39. package/lib/presentation/components/SettingsErrorBoundary.d.ts +0 -23
  40. package/lib/presentation/components/SettingsErrorBoundary.d.ts.map +0 -1
  41. package/lib/presentation/components/SettingsErrorBoundary.js +0 -73
  42. package/lib/presentation/components/SettingsErrorBoundary.js.map +0 -1
  43. package/lib/presentation/components/SettingsFooter.d.ts +0 -11
  44. package/lib/presentation/components/SettingsFooter.d.ts.map +0 -1
  45. package/lib/presentation/components/SettingsFooter.js +0 -31
  46. package/lib/presentation/components/SettingsFooter.js.map +0 -1
  47. package/lib/presentation/components/SettingsSection.d.ts +0 -13
  48. package/lib/presentation/components/SettingsSection.d.ts.map +0 -1
  49. package/lib/presentation/components/SettingsSection.js +0 -37
  50. package/lib/presentation/components/SettingsSection.js.map +0 -1
  51. package/lib/presentation/components/StorageClearSetting.d.ts +0 -16
  52. package/lib/presentation/components/StorageClearSetting.d.ts.map +0 -1
  53. package/lib/presentation/components/StorageClearSetting.js +0 -21
  54. package/lib/presentation/components/StorageClearSetting.js.map +0 -1
  55. package/lib/presentation/components/UserProfileHeader.d.ts +0 -30
  56. package/lib/presentation/components/UserProfileHeader.d.ts.map +0 -1
  57. package/lib/presentation/components/UserProfileHeader.js +0 -119
  58. package/lib/presentation/components/UserProfileHeader.js.map +0 -1
  59. package/lib/presentation/screens/AppearanceScreen.d.ts +0 -8
  60. package/lib/presentation/screens/AppearanceScreen.d.ts.map +0 -1
  61. package/lib/presentation/screens/AppearanceScreen.js +0 -8
  62. package/lib/presentation/screens/AppearanceScreen.js.map +0 -1
  63. package/lib/presentation/screens/SettingsScreen.d.ts +0 -38
  64. package/lib/presentation/screens/SettingsScreen.d.ts.map +0 -1
  65. package/lib/presentation/screens/SettingsScreen.js +0 -37
  66. package/lib/presentation/screens/SettingsScreen.js.map +0 -1
  67. package/lib/presentation/screens/components/AboutLegalSection.d.ts +0 -15
  68. package/lib/presentation/screens/components/AboutLegalSection.d.ts.map +0 -1
  69. package/lib/presentation/screens/components/AboutLegalSection.js +0 -28
  70. package/lib/presentation/screens/components/AboutLegalSection.js.map +0 -1
  71. package/lib/presentation/screens/components/AppearanceSection.d.ts +0 -12
  72. package/lib/presentation/screens/components/AppearanceSection.d.ts.map +0 -1
  73. package/lib/presentation/screens/components/AppearanceSection.js +0 -21
  74. package/lib/presentation/screens/components/AppearanceSection.js.map +0 -1
  75. package/lib/presentation/screens/components/LanguageSection.d.ts +0 -12
  76. package/lib/presentation/screens/components/LanguageSection.d.ts.map +0 -1
  77. package/lib/presentation/screens/components/LanguageSection.js +0 -26
  78. package/lib/presentation/screens/components/LanguageSection.js.map +0 -1
  79. package/lib/presentation/screens/components/NotificationsSection.d.ts +0 -12
  80. package/lib/presentation/screens/components/NotificationsSection.d.ts.map +0 -1
  81. package/lib/presentation/screens/components/NotificationsSection.js +0 -58
  82. package/lib/presentation/screens/components/NotificationsSection.js.map +0 -1
  83. package/lib/presentation/screens/components/SettingsContent.d.ts +0 -36
  84. package/lib/presentation/screens/components/SettingsContent.d.ts.map +0 -1
  85. package/lib/presentation/screens/components/SettingsContent.js +0 -81
  86. package/lib/presentation/screens/components/SettingsContent.js.map +0 -1
  87. package/lib/presentation/screens/components/SettingsHeader.d.ts +0 -12
  88. package/lib/presentation/screens/components/SettingsHeader.d.ts.map +0 -1
  89. package/lib/presentation/screens/components/SettingsHeader.js +0 -59
  90. package/lib/presentation/screens/components/SettingsHeader.js.map +0 -1
  91. package/lib/presentation/screens/components/index.d.ts +0 -9
  92. package/lib/presentation/screens/components/index.d.ts.map +0 -1
  93. package/lib/presentation/screens/components/index.js +0 -9
  94. package/lib/presentation/screens/components/index.js.map +0 -1
  95. package/lib/presentation/screens/hooks/useFeatureDetection.d.ts +0 -21
  96. package/lib/presentation/screens/hooks/useFeatureDetection.d.ts.map +0 -1
  97. package/lib/presentation/screens/hooks/useFeatureDetection.js +0 -82
  98. package/lib/presentation/screens/hooks/useFeatureDetection.js.map +0 -1
  99. package/lib/presentation/screens/types/CustomSection.d.ts +0 -19
  100. package/lib/presentation/screens/types/CustomSection.d.ts.map +0 -1
  101. package/lib/presentation/screens/types/CustomSection.js +0 -6
  102. package/lib/presentation/screens/types/CustomSection.js.map +0 -1
  103. package/lib/presentation/screens/types/ExtendedConfig.d.ts +0 -68
  104. package/lib/presentation/screens/types/ExtendedConfig.d.ts.map +0 -1
  105. package/lib/presentation/screens/types/ExtendedConfig.js +0 -6
  106. package/lib/presentation/screens/types/ExtendedConfig.js.map +0 -1
  107. package/lib/presentation/screens/types/FeatureConfig.d.ts +0 -95
  108. package/lib/presentation/screens/types/FeatureConfig.d.ts.map +0 -1
  109. package/lib/presentation/screens/types/FeatureConfig.js +0 -6
  110. package/lib/presentation/screens/types/FeatureConfig.js.map +0 -1
  111. package/lib/presentation/screens/types/SettingsConfig.d.ts +0 -97
  112. package/lib/presentation/screens/types/SettingsConfig.d.ts.map +0 -1
  113. package/lib/presentation/screens/types/SettingsConfig.js +0 -6
  114. package/lib/presentation/screens/types/SettingsConfig.js.map +0 -1
  115. package/lib/presentation/screens/types/index.d.ts +0 -10
  116. package/lib/presentation/screens/types/index.d.ts.map +0 -1
  117. package/lib/presentation/screens/types/index.js +0 -6
  118. package/lib/presentation/screens/types/index.js.map +0 -1
  119. package/lib/presentation/screens/utils/normalizeConfig.d.ts +0 -44
  120. package/lib/presentation/screens/utils/normalizeConfig.d.ts.map +0 -1
  121. package/lib/presentation/screens/utils/normalizeConfig.js +0 -38
  122. package/lib/presentation/screens/utils/normalizeConfig.js.map +0 -1
@@ -1,97 +0,0 @@
1
- /**
2
- * Main Settings Configuration Type
3
- * Combines all feature configurations
4
- */
5
- import type { FeatureVisibility } from "./FeatureConfig";
6
- import type { AppearanceConfig, LanguageConfig, NotificationsConfig, AboutConfig, LegalConfig } from "./FeatureConfig";
7
- import type { AccountConfig, SupportConfig, DeveloperConfig } from "./ExtendedConfig";
8
- /**
9
- * Main Settings Configuration
10
- *
11
- * Controls which settings features are visible in the SettingsScreen.
12
- * Each feature can be configured with:
13
- * - Simple: boolean | 'auto' (quick setup)
14
- * - Advanced: Detailed config object (full control)
15
- *
16
- * @example
17
- * // Simple configuration
18
- * const config: SettingsConfig = {
19
- * appearance: true,
20
- * notifications: 'auto',
21
- * about: false,
22
- * };
23
- *
24
- * @example
25
- * // Advanced configuration
26
- * const config: SettingsConfig = {
27
- * appearance: {
28
- * enabled: true,
29
- * route: 'CustomAppearance',
30
- * showLanguage: true,
31
- * showTheme: true,
32
- * },
33
- * notifications: {
34
- * enabled: 'auto',
35
- * showToggle: true,
36
- * initialValue: false,
37
- * onToggleChange: (value) => console.log(value),
38
- * },
39
- * support: {
40
- * enabled: true,
41
- * items: {
42
- * liveSupport: {
43
- * enabled: true,
44
- * route: 'ChatSupport',
45
- * title: 'Live Chat',
46
- * },
47
- * },
48
- * },
49
- * };
50
- */
51
- export interface SettingsConfig {
52
- /**
53
- * Appearance settings (Theme customization)
54
- * @default 'auto'
55
- */
56
- appearance?: FeatureVisibility | AppearanceConfig;
57
- /**
58
- * Language settings
59
- * @default 'auto'
60
- */
61
- language?: FeatureVisibility | LanguageConfig;
62
- /**
63
- * Notifications settings
64
- * @default 'auto'
65
- */
66
- notifications?: FeatureVisibility | NotificationsConfig;
67
- /**
68
- * About settings
69
- * @default 'auto'
70
- */
71
- about?: FeatureVisibility | AboutConfig;
72
- /**
73
- * Legal settings (Terms, Privacy Policy)
74
- * @default 'auto'
75
- */
76
- legal?: FeatureVisibility | LegalConfig;
77
- /**
78
- * Account settings
79
- * @default false
80
- */
81
- account?: FeatureVisibility | AccountConfig;
82
- /**
83
- * Support settings
84
- * @default false
85
- */
86
- support?: FeatureVisibility | SupportConfig;
87
- /**
88
- * Developer settings (only shown in __DEV__ mode)
89
- * @default false
90
- */
91
- developer?: boolean | DeveloperConfig;
92
- /**
93
- * Custom empty state text when no settings are available
94
- */
95
- emptyStateText?: string;
96
- }
97
- //# sourceMappingURL=SettingsConfig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsConfig.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/types/SettingsConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,WAAW,EACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAElD;;;OAGG;IACH,QAAQ,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAE9C;;;OAGG;IACH,aAAa,CAAC,EAAE,iBAAiB,GAAG,mBAAmB,CAAC;IAExD;;;OAGG;IACH,KAAK,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAAC;IAExC;;;OAGG;IACH,KAAK,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAAC;IAExC;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,GAAG,aAAa,CAAC;IAE5C;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,GAAG,aAAa,CAAC;IAE5C;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IAEtC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Main Settings Configuration Type
3
- * Combines all feature configurations
4
- */
5
- export {};
6
- //# sourceMappingURL=SettingsConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsConfig.js","sourceRoot":"","sources":["../../../../src/presentation/screens/types/SettingsConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Settings Types - Public API
3
- * Exports all settings-related types
4
- */
5
- export type { FeatureVisibility } from "./FeatureConfig";
6
- export type { AppearanceConfig, LanguageConfig, NotificationsConfig, AboutConfig, LegalConfig, } from "./FeatureConfig";
7
- export type { AccountConfig, SupportConfig, DeveloperConfig, } from "./ExtendedConfig";
8
- export type { SettingsConfig } from "./SettingsConfig";
9
- export type { CustomSettingsSection } from "./CustomSection";
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Settings Types - Public API
3
- * Exports all settings-related types
4
- */
5
- export {};
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/presentation/screens/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Config Normalization Utilities
3
- * Single Responsibility: Normalize config values to consistent format
4
- */
5
- import type { AppearanceConfig, LanguageConfig, NotificationsConfig, AboutConfig, LegalConfig, AccountConfig, SupportConfig, DeveloperConfig, SettingsConfig } from "../types";
6
- export interface NormalizedConfig {
7
- appearance: {
8
- enabled: boolean;
9
- config?: AppearanceConfig;
10
- };
11
- language: {
12
- enabled: boolean;
13
- config?: LanguageConfig;
14
- };
15
- notifications: {
16
- enabled: boolean;
17
- config?: NotificationsConfig;
18
- };
19
- about: {
20
- enabled: boolean;
21
- config?: AboutConfig;
22
- };
23
- legal: {
24
- enabled: boolean;
25
- config?: LegalConfig;
26
- };
27
- account: {
28
- enabled: boolean;
29
- config?: AccountConfig;
30
- };
31
- support: {
32
- enabled: boolean;
33
- config?: SupportConfig;
34
- };
35
- developer: {
36
- enabled: boolean;
37
- config?: DeveloperConfig;
38
- };
39
- }
40
- /**
41
- * Normalize entire SettingsConfig to consistent format
42
- */
43
- export declare function normalizeSettingsConfig(config: SettingsConfig | undefined): NormalizedConfig;
44
- //# sourceMappingURL=normalizeConfig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalizeConfig.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/utils/normalizeConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,cAAc,CAAC;KACzB,CAAC;IACF,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,mBAAmB,CAAC;KAC9B,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,CAAC;IACF,SAAS,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,eAAe,CAAC;KAC1B,CAAC;CACH;AA2BD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,GAAG,SAAS,GACjC,gBAAgB,CAWlB"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Config Normalization Utilities
3
- * Single Responsibility: Normalize config values to consistent format
4
- */
5
- /**
6
- * Normalize a config value to enabled boolean and optional config object
7
- */
8
- function normalizeConfigValue(value, defaultValue) {
9
- if (value === undefined) {
10
- return { enabled: defaultValue === true };
11
- }
12
- if (typeof value === "boolean" || value === "auto") {
13
- return { enabled: value === true };
14
- }
15
- // It's a config object
16
- const config = value;
17
- const enabled = config?.enabled ?? defaultValue;
18
- return {
19
- enabled: enabled === true,
20
- config,
21
- };
22
- }
23
- /**
24
- * Normalize entire SettingsConfig to consistent format
25
- */
26
- export function normalizeSettingsConfig(config) {
27
- return {
28
- appearance: normalizeConfigValue(config?.appearance, "auto"),
29
- language: normalizeConfigValue(config?.language, "auto"),
30
- notifications: normalizeConfigValue(config?.notifications, "auto"),
31
- about: normalizeConfigValue(config?.about, "auto"),
32
- legal: normalizeConfigValue(config?.legal, "auto"),
33
- account: normalizeConfigValue(config?.account, false),
34
- support: normalizeConfigValue(config?.support, false),
35
- developer: normalizeConfigValue(config?.developer, false),
36
- };
37
- }
38
- //# sourceMappingURL=normalizeConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalizeConfig.js","sourceRoot":"","sources":["../../../../src/presentation/screens/utils/normalizeConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkDH;;GAEG;AACH,SAAS,oBAAoB,CAC3B,KAAwC,EACxC,YAA+B;IAE/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,uBAAuB;IACvB,MAAM,MAAM,GAAG,KAAU,CAAC;IAC1B,MAAM,OAAO,GACV,MAA0C,EAAE,OAAO,IAAI,YAAY,CAAC;IACvE,OAAO;QACL,OAAO,EAAE,OAAO,KAAK,IAAI;QACzB,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAkC;IAElC,OAAO;QACL,UAAU,EAAE,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;QAC5D,QAAQ,EAAE,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;QACxD,aAAa,EAAE,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC;QAClE,KAAK,EAAE,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;QAClD,KAAK,EAAE,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;QAClD,OAAO,EAAE,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;QACrD,OAAO,EAAE,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;QACrD,SAAS,EAAE,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;KAC1D,CAAC;AACJ,CAAC"}