cloud-ide-layout 1.0.203 → 1.0.206
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/fesm2022/{cloud-ide-layout-cloud-ide-layout-BvFZVSjZ.mjs → cloud-ide-layout-cloud-ide-layout-B0-zQGMo.mjs} +179 -52
- package/fesm2022/cloud-ide-layout-cloud-ide-layout-B0-zQGMo.mjs.map +1 -0
- package/fesm2022/{cloud-ide-layout-dashboard-manager.component-CYS-8fLf.mjs → cloud-ide-layout-dashboard-manager.component-BhdibeqP.mjs} +2 -2
- package/fesm2022/{cloud-ide-layout-dashboard-manager.component-CYS-8fLf.mjs.map → cloud-ide-layout-dashboard-manager.component-BhdibeqP.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-layout-drawer-theme.component-XFb3tGBD.mjs → cloud-ide-layout-drawer-theme.component-DMwnoVZe.mjs} +2 -2
- package/fesm2022/{cloud-ide-layout-drawer-theme.component-XFb3tGBD.mjs.map → cloud-ide-layout-drawer-theme.component-DMwnoVZe.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-layout-home-wrapper.component-w9Okruwd.mjs → cloud-ide-layout-home-wrapper.component-BDrz_P5S.mjs} +2 -2
- package/fesm2022/{cloud-ide-layout-home-wrapper.component-w9Okruwd.mjs.map → cloud-ide-layout-home-wrapper.component-BDrz_P5S.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-CCiOXRJJ.mjs → cloud-ide-layout-sidedrawer-notes.component-v3FvA4dr.mjs} +2 -2
- package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-CCiOXRJJ.mjs.map → cloud-ide-layout-sidedrawer-notes.component-v3FvA4dr.mjs.map} +1 -1
- package/fesm2022/cloud-ide-layout.mjs +1 -1
- package/index.d.ts +4 -0
- package/package.json +1 -1
- package/fesm2022/cloud-ide-layout-cloud-ide-layout-BvFZVSjZ.mjs.map +0 -1
|
@@ -1630,6 +1630,9 @@ const DEFAULT_SETTINGS = {
|
|
|
1630
1630
|
quietHoursEnabled: false,
|
|
1631
1631
|
quietHoursStart: '22:00',
|
|
1632
1632
|
quietHoursEnd: '08:00',
|
|
1633
|
+
channelInApp: true,
|
|
1634
|
+
channelEmail: true,
|
|
1635
|
+
channelSms: true,
|
|
1633
1636
|
desktopNotifications: true,
|
|
1634
1637
|
showPreview: true,
|
|
1635
1638
|
groupNotifications: true
|
|
@@ -1863,6 +1866,9 @@ class NotificationSettingsComponent {
|
|
|
1863
1866
|
quietHoursEnabled: [settings.quietHoursEnabled],
|
|
1864
1867
|
quietHoursStart: [settings.quietHoursStart],
|
|
1865
1868
|
quietHoursEnd: [settings.quietHoursEnd],
|
|
1869
|
+
channelInApp: [settings.channelInApp],
|
|
1870
|
+
channelEmail: [settings.channelEmail],
|
|
1871
|
+
channelSms: [settings.channelSms],
|
|
1866
1872
|
desktopNotifications: [settings.desktopNotifications],
|
|
1867
1873
|
showPreview: [settings.showPreview],
|
|
1868
1874
|
groupNotifications: [settings.groupNotifications]
|
|
@@ -1929,12 +1935,62 @@ class NotificationSettingsComponent {
|
|
|
1929
1935
|
<cide-ele-icon class="tw-text-white">settings</cide-ele-icon>
|
|
1930
1936
|
</div>
|
|
1931
1937
|
<div>
|
|
1932
|
-
<h3 class="tw-m-0 tw-text-sm tw-font-semibold
|
|
1938
|
+
<h3 class="tw-m-0 tw-text-sm tw-font-semibold">Notification Settings</h3>
|
|
1933
1939
|
<p class="tw-m-0 tw-text-xs tw-text-gray-600 dark:tw-text-gray-400">Customize your notification preferences</p>
|
|
1934
1940
|
</div>
|
|
1935
1941
|
</div>
|
|
1936
1942
|
|
|
1937
1943
|
<form [formGroup]="settingsForm" class="tw-space-y-6">
|
|
1944
|
+
<!-- Notification Channels -->
|
|
1945
|
+
<div class="tw-space-y-3">
|
|
1946
|
+
<h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Notification Channels</h4>
|
|
1947
|
+
|
|
1948
|
+
<!-- In-App Notifications -->
|
|
1949
|
+
<div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
1950
|
+
<div class="tw-flex tw-items-center tw-gap-2">
|
|
1951
|
+
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">notifications</cide-ele-icon>
|
|
1952
|
+
<div>
|
|
1953
|
+
<label class="tw-text-sm tw-font-medium">In-App Notifications</label>
|
|
1954
|
+
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Receive notifications within the app</p>
|
|
1955
|
+
</div>
|
|
1956
|
+
</div>
|
|
1957
|
+
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
1958
|
+
<input type="checkbox" formControlName="channelInApp" class="tw-sr-only tw-peer">
|
|
1959
|
+
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
1960
|
+
</label>
|
|
1961
|
+
</div>
|
|
1962
|
+
|
|
1963
|
+
<!-- Email Notifications -->
|
|
1964
|
+
<div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
1965
|
+
<div class="tw-flex tw-items-center tw-gap-2">
|
|
1966
|
+
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">mail</cide-ele-icon>
|
|
1967
|
+
<div>
|
|
1968
|
+
<label class="tw-text-sm tw-font-medium">Email Notifications</label>
|
|
1969
|
+
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Receive notifications via email</p>
|
|
1970
|
+
</div>
|
|
1971
|
+
</div>
|
|
1972
|
+
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
1973
|
+
<input type="checkbox" formControlName="channelEmail" class="tw-sr-only tw-peer">
|
|
1974
|
+
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
1975
|
+
</label>
|
|
1976
|
+
</div>
|
|
1977
|
+
|
|
1978
|
+
<!-- SMS Notifications -->
|
|
1979
|
+
<div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
1980
|
+
<div class="tw-flex tw-items-center tw-gap-2">
|
|
1981
|
+
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">sms</cide-ele-icon>
|
|
1982
|
+
<div>
|
|
1983
|
+
<label class="tw-text-sm tw-font-medium">SMS Notifications</label>
|
|
1984
|
+
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Receive notifications via SMS</p>
|
|
1985
|
+
</div>
|
|
1986
|
+
</div>
|
|
1987
|
+
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
1988
|
+
<input type="checkbox" formControlName="channelSms" class="tw-sr-only tw-peer">
|
|
1989
|
+
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
1990
|
+
</label>
|
|
1991
|
+
</div>
|
|
1992
|
+
</div>
|
|
1993
|
+
|
|
1938
1994
|
<!-- Sound Settings -->
|
|
1939
1995
|
<div class="tw-space-y-3">
|
|
1940
1996
|
<h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Sound Settings</h4>
|
|
@@ -1944,15 +2000,14 @@ class NotificationSettingsComponent {
|
|
|
1944
2000
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
1945
2001
|
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">volume_up</cide-ele-icon>
|
|
1946
2002
|
<div>
|
|
1947
|
-
<label class="tw-text-sm tw-font-medium
|
|
2003
|
+
<label class="tw-text-sm tw-font-medium">Enable Sound</label>
|
|
1948
2004
|
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Play sound when receiving notifications</p>
|
|
1949
2005
|
</div>
|
|
1950
2006
|
</div>
|
|
1951
2007
|
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
1952
2008
|
<input
|
|
1953
2009
|
type="checkbox"
|
|
1954
|
-
|
|
1955
|
-
(change)="settingsForm.get('soundEnabled')?.setValue($any($event.target).checked)"
|
|
2010
|
+
formControlName="soundEnabled"
|
|
1956
2011
|
class="tw-sr-only tw-peer">
|
|
1957
2012
|
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
1958
2013
|
</label>
|
|
@@ -1961,7 +2016,7 @@ class NotificationSettingsComponent {
|
|
|
1961
2016
|
@if (settingsForm.get('soundEnabled')?.value) {
|
|
1962
2017
|
<!-- Sound Type -->
|
|
1963
2018
|
<div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
1964
|
-
<label class="tw-block tw-text-xs tw-font-medium tw-
|
|
2019
|
+
<label class="tw-block tw-text-xs tw-font-medium tw-mb-2">Sound Type</label>
|
|
1965
2020
|
<cide-ele-select
|
|
1966
2021
|
formControlName="soundType"
|
|
1967
2022
|
[options]="soundTypeOptions"
|
|
@@ -1972,7 +2027,7 @@ class NotificationSettingsComponent {
|
|
|
1972
2027
|
<!-- Sound Volume -->
|
|
1973
2028
|
<div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
1974
2029
|
<div class="tw-flex tw-items-center tw-justify-between tw-mb-2">
|
|
1975
|
-
<label class="tw-text-xs tw-font-medium
|
|
2030
|
+
<label class="tw-text-xs tw-font-medium">Volume</label>
|
|
1976
2031
|
<span class="tw-text-xs tw-text-gray-600 dark:tw-text-gray-400">{{ settingsForm.get('soundVolume')?.value }}%</span>
|
|
1977
2032
|
</div>
|
|
1978
2033
|
<div class="volume-slider-container">
|
|
@@ -2014,15 +2069,14 @@ class NotificationSettingsComponent {
|
|
|
2014
2069
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2015
2070
|
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">schedule</cide-ele-icon>
|
|
2016
2071
|
<div>
|
|
2017
|
-
<label class="tw-text-sm tw-font-medium
|
|
2072
|
+
<label class="tw-text-sm tw-font-medium">Enable Quiet Hours</label>
|
|
2018
2073
|
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Mute notifications during specified hours</p>
|
|
2019
2074
|
</div>
|
|
2020
2075
|
</div>
|
|
2021
2076
|
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2022
2077
|
<input
|
|
2023
2078
|
type="checkbox"
|
|
2024
|
-
|
|
2025
|
-
(change)="settingsForm.get('quietHoursEnabled')?.setValue($any($event.target).checked)"
|
|
2079
|
+
formControlName="quietHoursEnabled"
|
|
2026
2080
|
class="tw-sr-only tw-peer">
|
|
2027
2081
|
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2028
2082
|
</label>
|
|
@@ -2031,7 +2085,7 @@ class NotificationSettingsComponent {
|
|
|
2031
2085
|
@if (settingsForm.get('quietHoursEnabled')?.value) {
|
|
2032
2086
|
<div class="tw-grid tw-grid-cols-2 tw-gap-3 tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
2033
2087
|
<div>
|
|
2034
|
-
<label class="tw-block tw-text-xs tw-font-medium tw-
|
|
2088
|
+
<label class="tw-block tw-text-xs tw-font-medium tw-mb-2">Start Time</label>
|
|
2035
2089
|
<cide-ele-input
|
|
2036
2090
|
type="time"
|
|
2037
2091
|
formControlName="quietHoursStart"
|
|
@@ -2039,7 +2093,7 @@ class NotificationSettingsComponent {
|
|
|
2039
2093
|
</cide-ele-input>
|
|
2040
2094
|
</div>
|
|
2041
2095
|
<div>
|
|
2042
|
-
<label class="tw-block tw-text-xs tw-font-medium tw-
|
|
2096
|
+
<label class="tw-block tw-text-xs tw-font-medium tw-mb-2">End Time</label>
|
|
2043
2097
|
<cide-ele-input
|
|
2044
2098
|
type="time"
|
|
2045
2099
|
formControlName="quietHoursEnd"
|
|
@@ -2059,15 +2113,14 @@ class NotificationSettingsComponent {
|
|
|
2059
2113
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2060
2114
|
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">snooze</cide-ele-icon>
|
|
2061
2115
|
<div>
|
|
2062
|
-
<label class="tw-text-sm tw-font-medium
|
|
2116
|
+
<label class="tw-text-sm tw-font-medium">Enable Snooze</label>
|
|
2063
2117
|
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Temporarily pause notifications</p>
|
|
2064
2118
|
</div>
|
|
2065
2119
|
</div>
|
|
2066
2120
|
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2067
2121
|
<input
|
|
2068
2122
|
type="checkbox"
|
|
2069
|
-
|
|
2070
|
-
(change)="settingsForm.get('snoozeEnabled')?.setValue($any($event.target).checked)"
|
|
2123
|
+
formControlName="snoozeEnabled"
|
|
2071
2124
|
class="tw-sr-only tw-peer">
|
|
2072
2125
|
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2073
2126
|
</label>
|
|
@@ -2075,7 +2128,7 @@ class NotificationSettingsComponent {
|
|
|
2075
2128
|
|
|
2076
2129
|
@if (settingsForm.get('snoozeEnabled')?.value) {
|
|
2077
2130
|
<div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
2078
|
-
<label class="tw-block tw-text-xs tw-font-medium tw-
|
|
2131
|
+
<label class="tw-block tw-text-xs tw-font-medium tw-mb-2">Snooze Duration (minutes)</label>
|
|
2079
2132
|
<cide-ele-input
|
|
2080
2133
|
type="number"
|
|
2081
2134
|
formControlName="snoozeDuration"
|
|
@@ -2096,15 +2149,14 @@ class NotificationSettingsComponent {
|
|
|
2096
2149
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2097
2150
|
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">desktop_windows</cide-ele-icon>
|
|
2098
2151
|
<div>
|
|
2099
|
-
<label class="tw-text-sm tw-font-medium
|
|
2152
|
+
<label class="tw-text-sm tw-font-medium">Desktop Notifications</label>
|
|
2100
2153
|
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Show browser notifications</p>
|
|
2101
2154
|
</div>
|
|
2102
2155
|
</div>
|
|
2103
2156
|
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2104
2157
|
<input
|
|
2105
2158
|
type="checkbox"
|
|
2106
|
-
|
|
2107
|
-
(change)="settingsForm.get('desktopNotifications')?.setValue($any($event.target).checked)"
|
|
2159
|
+
formControlName="desktopNotifications"
|
|
2108
2160
|
class="tw-sr-only tw-peer">
|
|
2109
2161
|
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2110
2162
|
</label>
|
|
@@ -2134,7 +2186,8 @@ class NotificationSettingsComponent {
|
|
|
2134
2186
|
</div>
|
|
2135
2187
|
</form>
|
|
2136
2188
|
</div>
|
|
2137
|
-
|
|
2189
|
+
|
|
2190
|
+
`, isInline: true, styles: [":host{display:block}.volume-slider-container{position:relative;width:100%}.volume-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:#e5e7eb;outline:none;cursor:pointer;transition:background .3s ease}:host-context(.dark-mode) .volume-slider{background:#374151}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#2563eb;cursor:pointer;border:2px solid #ffffff;box-shadow:0 2px 4px #0003;transition:all .2s ease}.volume-slider::-webkit-slider-thumb:hover{background:#1d4ed8;transform:scale(1.1);box-shadow:0 3px 6px #0000004d}:host-context(.dark-mode) .volume-slider::-webkit-slider-thumb{background:#3b82f6;border-color:#1e293b}.volume-slider{background-size:var(--slider-value, 0%) 100%;background-repeat:no-repeat}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CideIconComponent, selector: "cide-ele-icon", inputs: ["size", "type", "toolTip"] }, { kind: "component", type: CideEleButtonComponent, selector: "button[cideEleButton], a[cideEleButton], cide-ele-button", inputs: ["label", "variant", "size", "type", "shape", "elevation", "disabled", "id", "loading", "fullWidth", "leftIcon", "rightIcon", "customClass", "tooltip", "ariaLabel", "testId", "routerLink", "routerExtras", "preventDoubleClick", "animated"], outputs: ["btnClick", "doubleClick"] }, { kind: "component", type: CideInputComponent, selector: "cide-ele-input", inputs: ["fill", "label", "labelHide", "disabled", "clearInput", "labelPlacement", "labelDir", "placeholder", "leadingIcon", "trailingIcon", "helperText", "helperTextCollapse", "hideHelperAndErrorText", "errorText", "maxlength", "minlength", "required", "autocapitalize", "autocomplete", "type", "width", "id", "ngModel", "option", "min", "max", "step", "size"], outputs: ["ngModelChange"] }, { kind: "component", type: CideSelectComponent, selector: "cide-ele-select", inputs: ["label", "labelHide", "placeholder", "helperText", "errorText", "required", "disabled", "id", "ngModel", "size", "fill", "labelPlacement", "labelDir", "leadingIcon", "trailingIcon", "clearInput", "options", "multiple", "searchable", "showSearchInput", "loading", "valueKey", "labelKey", "treeView"], outputs: ["ngModelChange", "change", "searchChange"] }] });
|
|
2138
2191
|
}
|
|
2139
2192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NotificationSettingsComponent, decorators: [{
|
|
2140
2193
|
type: Component,
|
|
@@ -2153,12 +2206,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2153
2206
|
<cide-ele-icon class="tw-text-white">settings</cide-ele-icon>
|
|
2154
2207
|
</div>
|
|
2155
2208
|
<div>
|
|
2156
|
-
<h3 class="tw-m-0 tw-text-sm tw-font-semibold
|
|
2209
|
+
<h3 class="tw-m-0 tw-text-sm tw-font-semibold">Notification Settings</h3>
|
|
2157
2210
|
<p class="tw-m-0 tw-text-xs tw-text-gray-600 dark:tw-text-gray-400">Customize your notification preferences</p>
|
|
2158
2211
|
</div>
|
|
2159
2212
|
</div>
|
|
2160
2213
|
|
|
2161
2214
|
<form [formGroup]="settingsForm" class="tw-space-y-6">
|
|
2215
|
+
<!-- Notification Channels -->
|
|
2216
|
+
<div class="tw-space-y-3">
|
|
2217
|
+
<h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Notification Channels</h4>
|
|
2218
|
+
|
|
2219
|
+
<!-- In-App Notifications -->
|
|
2220
|
+
<div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
2221
|
+
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2222
|
+
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">notifications</cide-ele-icon>
|
|
2223
|
+
<div>
|
|
2224
|
+
<label class="tw-text-sm tw-font-medium">In-App Notifications</label>
|
|
2225
|
+
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Receive notifications within the app</p>
|
|
2226
|
+
</div>
|
|
2227
|
+
</div>
|
|
2228
|
+
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2229
|
+
<input type="checkbox" formControlName="channelInApp" class="tw-sr-only tw-peer">
|
|
2230
|
+
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2231
|
+
</label>
|
|
2232
|
+
</div>
|
|
2233
|
+
|
|
2234
|
+
<!-- Email Notifications -->
|
|
2235
|
+
<div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
2236
|
+
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2237
|
+
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">mail</cide-ele-icon>
|
|
2238
|
+
<div>
|
|
2239
|
+
<label class="tw-text-sm tw-font-medium">Email Notifications</label>
|
|
2240
|
+
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Receive notifications via email</p>
|
|
2241
|
+
</div>
|
|
2242
|
+
</div>
|
|
2243
|
+
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2244
|
+
<input type="checkbox" formControlName="channelEmail" class="tw-sr-only tw-peer">
|
|
2245
|
+
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2246
|
+
</label>
|
|
2247
|
+
</div>
|
|
2248
|
+
|
|
2249
|
+
<!-- SMS Notifications -->
|
|
2250
|
+
<div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
2251
|
+
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2252
|
+
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">sms</cide-ele-icon>
|
|
2253
|
+
<div>
|
|
2254
|
+
<label class="tw-text-sm tw-font-medium">SMS Notifications</label>
|
|
2255
|
+
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Receive notifications via SMS</p>
|
|
2256
|
+
</div>
|
|
2257
|
+
</div>
|
|
2258
|
+
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2259
|
+
<input type="checkbox" formControlName="channelSms" class="tw-sr-only tw-peer">
|
|
2260
|
+
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2261
|
+
</label>
|
|
2262
|
+
</div>
|
|
2263
|
+
</div>
|
|
2264
|
+
|
|
2162
2265
|
<!-- Sound Settings -->
|
|
2163
2266
|
<div class="tw-space-y-3">
|
|
2164
2267
|
<h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Sound Settings</h4>
|
|
@@ -2168,15 +2271,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2168
2271
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2169
2272
|
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">volume_up</cide-ele-icon>
|
|
2170
2273
|
<div>
|
|
2171
|
-
<label class="tw-text-sm tw-font-medium
|
|
2274
|
+
<label class="tw-text-sm tw-font-medium">Enable Sound</label>
|
|
2172
2275
|
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Play sound when receiving notifications</p>
|
|
2173
2276
|
</div>
|
|
2174
2277
|
</div>
|
|
2175
2278
|
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2176
2279
|
<input
|
|
2177
2280
|
type="checkbox"
|
|
2178
|
-
|
|
2179
|
-
(change)="settingsForm.get('soundEnabled')?.setValue($any($event.target).checked)"
|
|
2281
|
+
formControlName="soundEnabled"
|
|
2180
2282
|
class="tw-sr-only tw-peer">
|
|
2181
2283
|
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2182
2284
|
</label>
|
|
@@ -2185,7 +2287,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2185
2287
|
@if (settingsForm.get('soundEnabled')?.value) {
|
|
2186
2288
|
<!-- Sound Type -->
|
|
2187
2289
|
<div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
2188
|
-
<label class="tw-block tw-text-xs tw-font-medium tw-
|
|
2290
|
+
<label class="tw-block tw-text-xs tw-font-medium tw-mb-2">Sound Type</label>
|
|
2189
2291
|
<cide-ele-select
|
|
2190
2292
|
formControlName="soundType"
|
|
2191
2293
|
[options]="soundTypeOptions"
|
|
@@ -2196,7 +2298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2196
2298
|
<!-- Sound Volume -->
|
|
2197
2299
|
<div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
2198
2300
|
<div class="tw-flex tw-items-center tw-justify-between tw-mb-2">
|
|
2199
|
-
<label class="tw-text-xs tw-font-medium
|
|
2301
|
+
<label class="tw-text-xs tw-font-medium">Volume</label>
|
|
2200
2302
|
<span class="tw-text-xs tw-text-gray-600 dark:tw-text-gray-400">{{ settingsForm.get('soundVolume')?.value }}%</span>
|
|
2201
2303
|
</div>
|
|
2202
2304
|
<div class="volume-slider-container">
|
|
@@ -2238,15 +2340,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2238
2340
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2239
2341
|
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">schedule</cide-ele-icon>
|
|
2240
2342
|
<div>
|
|
2241
|
-
<label class="tw-text-sm tw-font-medium
|
|
2343
|
+
<label class="tw-text-sm tw-font-medium">Enable Quiet Hours</label>
|
|
2242
2344
|
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Mute notifications during specified hours</p>
|
|
2243
2345
|
</div>
|
|
2244
2346
|
</div>
|
|
2245
2347
|
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2246
2348
|
<input
|
|
2247
2349
|
type="checkbox"
|
|
2248
|
-
|
|
2249
|
-
(change)="settingsForm.get('quietHoursEnabled')?.setValue($any($event.target).checked)"
|
|
2350
|
+
formControlName="quietHoursEnabled"
|
|
2250
2351
|
class="tw-sr-only tw-peer">
|
|
2251
2352
|
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2252
2353
|
</label>
|
|
@@ -2255,7 +2356,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2255
2356
|
@if (settingsForm.get('quietHoursEnabled')?.value) {
|
|
2256
2357
|
<div class="tw-grid tw-grid-cols-2 tw-gap-3 tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
2257
2358
|
<div>
|
|
2258
|
-
<label class="tw-block tw-text-xs tw-font-medium tw-
|
|
2359
|
+
<label class="tw-block tw-text-xs tw-font-medium tw-mb-2">Start Time</label>
|
|
2259
2360
|
<cide-ele-input
|
|
2260
2361
|
type="time"
|
|
2261
2362
|
formControlName="quietHoursStart"
|
|
@@ -2263,7 +2364,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2263
2364
|
</cide-ele-input>
|
|
2264
2365
|
</div>
|
|
2265
2366
|
<div>
|
|
2266
|
-
<label class="tw-block tw-text-xs tw-font-medium tw-
|
|
2367
|
+
<label class="tw-block tw-text-xs tw-font-medium tw-mb-2">End Time</label>
|
|
2267
2368
|
<cide-ele-input
|
|
2268
2369
|
type="time"
|
|
2269
2370
|
formControlName="quietHoursEnd"
|
|
@@ -2283,15 +2384,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2283
2384
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2284
2385
|
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">snooze</cide-ele-icon>
|
|
2285
2386
|
<div>
|
|
2286
|
-
<label class="tw-text-sm tw-font-medium
|
|
2387
|
+
<label class="tw-text-sm tw-font-medium">Enable Snooze</label>
|
|
2287
2388
|
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Temporarily pause notifications</p>
|
|
2288
2389
|
</div>
|
|
2289
2390
|
</div>
|
|
2290
2391
|
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2291
2392
|
<input
|
|
2292
2393
|
type="checkbox"
|
|
2293
|
-
|
|
2294
|
-
(change)="settingsForm.get('snoozeEnabled')?.setValue($any($event.target).checked)"
|
|
2394
|
+
formControlName="snoozeEnabled"
|
|
2295
2395
|
class="tw-sr-only tw-peer">
|
|
2296
2396
|
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2297
2397
|
</label>
|
|
@@ -2299,7 +2399,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2299
2399
|
|
|
2300
2400
|
@if (settingsForm.get('snoozeEnabled')?.value) {
|
|
2301
2401
|
<div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
|
|
2302
|
-
<label class="tw-block tw-text-xs tw-font-medium tw-
|
|
2402
|
+
<label class="tw-block tw-text-xs tw-font-medium tw-mb-2">Snooze Duration (minutes)</label>
|
|
2303
2403
|
<cide-ele-input
|
|
2304
2404
|
type="number"
|
|
2305
2405
|
formControlName="snoozeDuration"
|
|
@@ -2320,15 +2420,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2320
2420
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
2321
2421
|
<cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">desktop_windows</cide-ele-icon>
|
|
2322
2422
|
<div>
|
|
2323
|
-
<label class="tw-text-sm tw-font-medium
|
|
2423
|
+
<label class="tw-text-sm tw-font-medium">Desktop Notifications</label>
|
|
2324
2424
|
<p class="tw-m-0 tw-text-xs tw-text-gray-500 dark:tw-text-gray-400">Show browser notifications</p>
|
|
2325
2425
|
</div>
|
|
2326
2426
|
</div>
|
|
2327
2427
|
<label class="tw-relative tw-inline-flex tw-items-center tw-cursor-pointer">
|
|
2328
2428
|
<input
|
|
2329
2429
|
type="checkbox"
|
|
2330
|
-
|
|
2331
|
-
(change)="settingsForm.get('desktopNotifications')?.setValue($any($event.target).checked)"
|
|
2430
|
+
formControlName="desktopNotifications"
|
|
2332
2431
|
class="tw-sr-only tw-peer">
|
|
2333
2432
|
<div class="tw-w-11 tw-h-6 tw-bg-gray-200 peer-focus:tw-outline-none peer-focus:tw-ring-4 peer-focus:tw-ring-blue-300 dark:peer-focus:tw-ring-blue-800 dark:peer-focus:tw-ring-offset-gray-800 tw-rounded-full peer dark:tw-bg-gray-700 peer-checked:after:tw-translate-x-full peer-checked:after:tw-border-white after:tw-content-[''] after:tw-absolute after:tw-top-[2px] after:tw-left-[2px] after:tw-bg-white after:tw-border-gray-300 after:tw-border after:tw-rounded-full after:tw-h-5 after:tw-w-5 after:tw-transition-all dark:tw-border-gray-600 peer-checked:tw-bg-blue-600"></div>
|
|
2334
2433
|
</label>
|
|
@@ -2358,7 +2457,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2358
2457
|
</div>
|
|
2359
2458
|
</form>
|
|
2360
2459
|
</div>
|
|
2361
|
-
|
|
2460
|
+
|
|
2461
|
+
`, styles: [":host{display:block}.volume-slider-container{position:relative;width:100%}.volume-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:#e5e7eb;outline:none;cursor:pointer;transition:background .3s ease}:host-context(.dark-mode) .volume-slider{background:#374151}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#2563eb;cursor:pointer;border:2px solid #ffffff;box-shadow:0 2px 4px #0003;transition:all .2s ease}.volume-slider::-webkit-slider-thumb:hover{background:#1d4ed8;transform:scale(1.1);box-shadow:0 3px 6px #0000004d}:host-context(.dark-mode) .volume-slider::-webkit-slider-thumb{background:#3b82f6;border-color:#1e293b}.volume-slider{background-size:var(--slider-value, 0%) 100%;background-repeat:no-repeat}\n"] }]
|
|
2362
2462
|
}] });
|
|
2363
2463
|
|
|
2364
2464
|
class CideLytHeaderWrapperComponent {
|
|
@@ -4786,18 +4886,45 @@ class CustomRouteReuseStrategy {
|
|
|
4786
4886
|
}
|
|
4787
4887
|
const handle = this.storedRoutes[pathKey];
|
|
4788
4888
|
// Verify the handle is still valid (not destroyed)
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
if (handleAny.destroyed === true || (handleAny.hostView && handleAny.hostView.destroyed)) {
|
|
4794
|
-
console.log(`⚠️ Stored route handle for ${pathKey} is already destroyed, removing from cache`);
|
|
4795
|
-
delete this.storedRoutes[pathKey];
|
|
4796
|
-
return null;
|
|
4797
|
-
}
|
|
4889
|
+
if (this.isHandleDestroyed(handle)) {
|
|
4890
|
+
console.warn(`⚠️ [retrieve] Stored route handle for ${pathKey} is DESTROYED. Removing from cache.`);
|
|
4891
|
+
delete this.storedRoutes[pathKey];
|
|
4892
|
+
return null;
|
|
4798
4893
|
}
|
|
4894
|
+
// console.log(`♻️ [retrieve] Reusing route: ${pathKey}`);
|
|
4799
4895
|
return handle;
|
|
4800
4896
|
}
|
|
4897
|
+
// Helper to check if a handle is destroyed
|
|
4898
|
+
isHandleDestroyed(handle) {
|
|
4899
|
+
if (!handle)
|
|
4900
|
+
return true;
|
|
4901
|
+
try {
|
|
4902
|
+
// Check standard ComponentRef
|
|
4903
|
+
if (handle.hostView && handle.hostView.destroyed)
|
|
4904
|
+
return true;
|
|
4905
|
+
if (handle.destroyed)
|
|
4906
|
+
return true;
|
|
4907
|
+
// Check wrapped ComponentRef (nested properties)
|
|
4908
|
+
const componentRef = handle.componentRef || handle.component ||
|
|
4909
|
+
handle.context || handle._componentRef;
|
|
4910
|
+
if (componentRef) {
|
|
4911
|
+
if (componentRef.hostView && componentRef.hostView.destroyed)
|
|
4912
|
+
return true;
|
|
4913
|
+
if (componentRef.destroyed)
|
|
4914
|
+
return true;
|
|
4915
|
+
}
|
|
4916
|
+
// Check ViewContainerRef
|
|
4917
|
+
if (typeof handle.length === 'number' && typeof handle.clear === 'function') {
|
|
4918
|
+
// Harder to check if specific views are destroyed, but container itself usually doesn't have 'destroyed' prop
|
|
4919
|
+
// We assume valid if it exists
|
|
4920
|
+
}
|
|
4921
|
+
}
|
|
4922
|
+
catch (e) {
|
|
4923
|
+
console.warn('Error checking handle destruction state', e);
|
|
4924
|
+
return true; // Assume destroyed on error to be safe
|
|
4925
|
+
}
|
|
4926
|
+
return false;
|
|
4927
|
+
}
|
|
4801
4928
|
// Determines if a route should be reused.
|
|
4802
4929
|
shouldReuseRoute(future, curr) {
|
|
4803
4930
|
return future.routeConfig === curr.routeConfig;
|
|
@@ -5485,8 +5612,8 @@ class CideLytSidedrawerWrapperComponent {
|
|
|
5485
5612
|
}
|
|
5486
5613
|
ngOnInit() {
|
|
5487
5614
|
// Initialize the component map (You'd likely populate this from a config or service)
|
|
5488
|
-
this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-
|
|
5489
|
-
this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-
|
|
5615
|
+
this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-v3FvA4dr.mjs').then(m => m.CideLytSidedrawerNotesComponent);
|
|
5616
|
+
this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-DMwnoVZe.mjs').then(m => m.CideLytDrawerThemeComponent);
|
|
5490
5617
|
}
|
|
5491
5618
|
async loadComponent(configFor) {
|
|
5492
5619
|
console.log('🔍 SIDEDRAWER - Loading component:', configFor, 'Current tab:', this.currentTabId);
|
|
@@ -7185,7 +7312,7 @@ const layoutControlPannelChildRoutes = [{
|
|
|
7185
7312
|
},
|
|
7186
7313
|
{
|
|
7187
7314
|
path: "home",
|
|
7188
|
-
loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-
|
|
7315
|
+
loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-BDrz_P5S.mjs').then(c => c.CideLytHomeWrapperComponent),
|
|
7189
7316
|
canActivate: [authGuard],
|
|
7190
7317
|
data: {
|
|
7191
7318
|
sypg_page_code: "cide_lyt_home" // Used by RequestService to fetch tab properties
|
|
@@ -7193,7 +7320,7 @@ const layoutControlPannelChildRoutes = [{
|
|
|
7193
7320
|
},
|
|
7194
7321
|
{
|
|
7195
7322
|
path: "dashboard-manager",
|
|
7196
|
-
loadComponent: () => import('./cloud-ide-layout-dashboard-manager.component-
|
|
7323
|
+
loadComponent: () => import('./cloud-ide-layout-dashboard-manager.component-BhdibeqP.mjs').then(c => c.DashboardManagerComponent),
|
|
7197
7324
|
canActivate: [authGuard],
|
|
7198
7325
|
data: {
|
|
7199
7326
|
sypg_page_code: "cide_lyt_dashboard_manager"
|
|
@@ -9017,4 +9144,4 @@ var floatingEntitySelection_component = /*#__PURE__*/Object.freeze({
|
|
|
9017
9144
|
*/
|
|
9018
9145
|
|
|
9019
9146
|
export { AppStateHelperService as A, CideLytSharedWrapperComponent as C, ENVIRONMENT_CONFIG as E, NotificationSettingsService as N, RightsService as R, CideLytSidebarService as a, CideLytSidedrawerService as b, CideLytThemeService as c, CloudIdeLayoutService as d, CloudIdeLayoutComponent as e, CideLytSharedService as f, ComponentContextService as g, layoutControlPannelChildRoutes as h, CustomRouteReuseStrategy as i, AppStateService as j, CideLytUserStatusService as k, layoutRoutes as l, CacheManagerService as m, CideLytFileManagerService as n, CideLytFloatingEntityRightsSharingComponent as o, processThemeVariable as p, CideLytFloatingEntityRightsSharingService as q, CideLytFloatingEntitySelectionComponent as r, setCSSVariable as s, themeFactory as t, CideLytFloatingEntitySelectionService as u };
|
|
9020
|
-
//# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-
|
|
9147
|
+
//# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-B0-zQGMo.mjs.map
|