@rxap/layout 18.3.4-dev.0 → 19.0.0-dev.1
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/CHANGELOG.md +4 -0
- package/fesm2022/rxap-layout.mjs +93 -93
- package/fesm2022/rxap-layout.mjs.map +1 -1
- package/package.json +36 -38
- package/theme.css +1 -1
- package/esm2022/index.mjs +0 -63
- package/esm2022/lib/base-layout/base-layout.component.mjs +0 -16
- package/esm2022/lib/default-header/apps-button/apps-button.component.mjs +0 -40
- package/esm2022/lib/default-header/default-header.component.mjs +0 -39
- package/esm2022/lib/default-header/default-header.service.mjs +0 -65
- package/esm2022/lib/default-header/settings-button/settings-button.component.mjs +0 -78
- package/esm2022/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +0 -24
- package/esm2022/lib/default-header/user-profile-icon/user-profile-icon.component.mjs +0 -35
- package/esm2022/lib/external-apps.service.mjs +0 -99
- package/esm2022/lib/footer/footer.component.mjs +0 -21
- package/esm2022/lib/footer/footer.directive.mjs +0 -30
- package/esm2022/lib/footer.service.mjs +0 -58
- package/esm2022/lib/header/header.component.mjs +0 -24
- package/esm2022/lib/header/header.directive.mjs +0 -30
- package/esm2022/lib/header.service.mjs +0 -60
- package/esm2022/lib/layout/layout.component.mjs +0 -50
- package/esm2022/lib/layout.service.mjs +0 -93
- package/esm2022/lib/logo.service.mjs +0 -23
- package/esm2022/lib/minimal-layout/minimal-layout.component.mjs +0 -16
- package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +0 -139
- package/esm2022/lib/navigation/navigation-item.mjs +0 -10
- package/esm2022/lib/navigation/navigation.component.mjs +0 -57
- package/esm2022/lib/navigation-progress-bar/navigation-progress-bar.component.mjs +0 -23
- package/esm2022/lib/navigation.service.mjs +0 -141
- package/esm2022/lib/provide.mjs +0 -105
- package/esm2022/lib/release-info/release-info.component.mjs +0 -28
- package/esm2022/lib/sidenav/sidenav-footer.directive.mjs +0 -20
- package/esm2022/lib/sidenav/sidenav-header.directive.mjs +0 -20
- package/esm2022/lib/sidenav/sidenav.component.mjs +0 -60
- package/esm2022/lib/tokens.mjs +0 -23
- package/esm2022/lib/types.mjs +0 -2
- package/esm2022/rxap-layout.mjs +0 -5
package/package.json
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "19.0.0-dev.1",
|
|
3
3
|
"name": "@rxap/layout",
|
|
4
4
|
"license": "GPL-3.0-or-later",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@nx/devkit": "
|
|
7
|
-
"@rxap/ts-morph": "^1.5.2-dev.
|
|
8
|
-
"@rxap/workspace-ts-morph": "^19.1.8-dev.
|
|
9
|
-
"@rxap/workspace-utilities": "^19.5.1-dev.
|
|
6
|
+
"@nx/devkit": "20.2.1",
|
|
7
|
+
"@rxap/ts-morph": "^1.5.2-dev.1",
|
|
8
|
+
"@rxap/workspace-ts-morph": "^19.1.8-dev.1",
|
|
9
|
+
"@rxap/workspace-utilities": "^19.5.1-dev.1",
|
|
10
10
|
"tslib": "2.6.2"
|
|
11
11
|
},
|
|
12
12
|
"peerDependencies": {
|
|
13
|
-
"@angular/animations": "
|
|
14
|
-
"@angular/cdk": "
|
|
15
|
-
"@angular/common": "
|
|
16
|
-
"@angular/core": "
|
|
17
|
-
"@angular/material": "
|
|
18
|
-
"@angular/router": "
|
|
19
|
-
"@rxap/browser-utilities": "^1.1.
|
|
20
|
-
"@rxap/config": "^
|
|
21
|
-
"@rxap/data-source": "^
|
|
22
|
-
"@rxap/environment": "^
|
|
23
|
-
"@rxap/material-directives": "^
|
|
24
|
-
"@rxap/ngx-pub-sub": "^
|
|
25
|
-
"@rxap/ngx-theme": "^
|
|
26
|
-
"@rxap/pattern": "^1.1.
|
|
27
|
-
"@rxap/utilities": "^16.4.0",
|
|
28
|
-
"rxjs": "
|
|
13
|
+
"@angular/animations": "19.0.3",
|
|
14
|
+
"@angular/cdk": "19.0.2",
|
|
15
|
+
"@angular/common": "19.0.3",
|
|
16
|
+
"@angular/core": "19.0.3",
|
|
17
|
+
"@angular/material": "19.0.2",
|
|
18
|
+
"@angular/router": "19.0.3",
|
|
19
|
+
"@rxap/browser-utilities": "^1.1.9-dev.0",
|
|
20
|
+
"@rxap/config": "^19.0.0-dev.0",
|
|
21
|
+
"@rxap/data-source": "^19.0.0-dev.0",
|
|
22
|
+
"@rxap/environment": "^19.0.0-dev.0",
|
|
23
|
+
"@rxap/material-directives": "^19.0.0-dev.0",
|
|
24
|
+
"@rxap/ngx-pub-sub": "^19.0.0-dev.0",
|
|
25
|
+
"@rxap/ngx-theme": "^19.0.0-dev.0",
|
|
26
|
+
"@rxap/pattern": "^1.1.10-dev.0",
|
|
27
|
+
"@rxap/utilities": "^16.4.1-dev.0",
|
|
28
|
+
"rxjs": "7.8.1"
|
|
29
29
|
},
|
|
30
30
|
"author": {
|
|
31
31
|
"name": "Merzough Münker",
|
|
@@ -85,59 +85,59 @@
|
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"package": "@rxap/browser-utilities",
|
|
88
|
-
"version": "1.1.
|
|
88
|
+
"version": "1.1.9-dev.0"
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
"package": "@rxap/config",
|
|
92
|
-
"version": "18.2.
|
|
92
|
+
"version": "18.2.3-dev.0"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"package": "@rxap/data-source",
|
|
96
|
-
"version": "18.1.
|
|
96
|
+
"version": "18.1.6-dev.0"
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"package": "@rxap/data-structure-tree",
|
|
100
|
-
"version": "1.1.
|
|
100
|
+
"version": "1.1.11-dev.0"
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"package": "@rxap/definition",
|
|
104
|
-
"version": "18.0.
|
|
104
|
+
"version": "18.0.8-dev.0"
|
|
105
105
|
},
|
|
106
106
|
{
|
|
107
107
|
"package": "@rxap/environment",
|
|
108
|
-
"version": "18.0.
|
|
108
|
+
"version": "18.0.8-dev.0"
|
|
109
109
|
},
|
|
110
110
|
{
|
|
111
111
|
"package": "@rxap/material-directives",
|
|
112
|
-
"version": "18.1.
|
|
112
|
+
"version": "18.1.3-dev.0"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"package": "@rxap/ngx-memory",
|
|
116
|
-
"version": "18.0.
|
|
116
|
+
"version": "18.0.8-dev.0"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"package": "@rxap/ngx-pub-sub",
|
|
120
|
-
"version": "18.1.
|
|
120
|
+
"version": "18.1.3-dev.0"
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
"package": "@rxap/ngx-theme",
|
|
124
|
-
"version": "18.1.
|
|
124
|
+
"version": "18.1.3-dev.0"
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
"package": "@rxap/pattern",
|
|
128
|
-
"version": "1.1.
|
|
128
|
+
"version": "1.1.10-dev.0"
|
|
129
129
|
},
|
|
130
130
|
{
|
|
131
131
|
"package": "@rxap/reflect-metadata",
|
|
132
|
-
"version": "1.0.
|
|
132
|
+
"version": "1.0.12-dev.0"
|
|
133
133
|
},
|
|
134
134
|
{
|
|
135
135
|
"package": "@rxap/rxjs",
|
|
136
|
-
"version": "1.1.
|
|
136
|
+
"version": "1.1.11-dev.0"
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"package": "@rxap/utilities",
|
|
140
|
-
"version": "16.4.0"
|
|
140
|
+
"version": "16.4.1-dev.0"
|
|
141
141
|
}
|
|
142
142
|
]
|
|
143
143
|
},
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
"directory": "packages/angular/layout"
|
|
152
152
|
},
|
|
153
153
|
"sideEffects": false,
|
|
154
|
-
"gitHead": "
|
|
154
|
+
"gitHead": "87d776dc933f5f1b640f7a7c9ecc4d264187c090",
|
|
155
155
|
"module": "fesm2022/rxap-layout.mjs",
|
|
156
156
|
"typings": "index.d.ts",
|
|
157
157
|
"exports": {
|
|
@@ -160,8 +160,6 @@
|
|
|
160
160
|
},
|
|
161
161
|
".": {
|
|
162
162
|
"types": "./index.d.ts",
|
|
163
|
-
"esm2022": "./esm2022/rxap-layout.mjs",
|
|
164
|
-
"esm": "./esm2022/rxap-layout.mjs",
|
|
165
163
|
"default": "./fesm2022/rxap-layout.mjs"
|
|
166
164
|
},
|
|
167
165
|
"./theme": "./theme.css"
|
package/theme.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-0{bottom:0}.top-0{top:0}.z-10{z-index:10}.mx-16{margin-right:4rem}.ml-16,.mx-16{margin-left:4rem}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.w-8{width:2rem}.w-full{width:100%}.\!max-w-none{max-width:none!important}.grow{flex-grow:1}.grow-0{flex-grow:0}.table-auto{table-layout:auto}.border-separate{border-collapse:separate}.border-spacing-2{--tw-border-spacing-x:0.5rem;--tw-border-spacing-y:0.5rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-stretch{justify-items:stretch}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-5{row-gap:1.25rem}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-l-4{border-left-width:4px}.border-accent-600{border-color:var(--accent-600)}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.px-16{padding-left:4rem;padding-right:4rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem}.pb-2,.py-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-5{padding-right:1.25rem}.text-\[32px\]{font-size:32px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.capitalize{text-transform:capitalize}.text-accent-400{color:var(--accent-400)}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-
|
|
1
|
+
.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-0{bottom:0}.top-0{top:0}.z-10{z-index:10}.mx-16{margin-right:4rem}.ml-16,.mx-16{margin-left:4rem}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.w-8{width:2rem}.w-full{width:100%}.\!max-w-none{max-width:none!important}.grow{flex-grow:1}.grow-0{flex-grow:0}.table-auto{table-layout:auto}.border-separate{border-collapse:separate}.border-spacing-2{--tw-border-spacing-x:0.5rem;--tw-border-spacing-y:0.5rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-stretch{justify-items:stretch}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-5{row-gap:1.25rem}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-l-4{border-left-width:4px}.border-accent-600{border-color:var(--accent-600)}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-cover{background-size:cover}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.px-16{padding-left:4rem;padding-right:4rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem}.pb-2,.py-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-5{padding-right:1.25rem}.text-\[32px\]{font-size:32px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.capitalize{text-transform:capitalize}.text-accent-400{color:var(--accent-400)}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:border-slate-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.dark\:border-slate-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.dark\:bg-slate-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
|
package/esm2022/index.mjs
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
// region sidenav
|
|
2
|
-
export * from './lib/sidenav/sidenav-footer.directive';
|
|
3
|
-
export * from './lib/sidenav/sidenav-header.directive';
|
|
4
|
-
export * from './lib/sidenav/sidenav.component';
|
|
5
|
-
// endregion
|
|
6
|
-
// region release-info
|
|
7
|
-
export * from './lib/release-info/release-info.component';
|
|
8
|
-
// endregion
|
|
9
|
-
// region navigation navigation-item
|
|
10
|
-
export * from './lib/navigation/navigation-item/navigation-item.component';
|
|
11
|
-
// endregion
|
|
12
|
-
// region navigation-progress-bar
|
|
13
|
-
export * from './lib/navigation-progress-bar/navigation-progress-bar.component';
|
|
14
|
-
// endregion
|
|
15
|
-
// region navigation
|
|
16
|
-
export * from './lib/navigation/navigation-item';
|
|
17
|
-
export * from './lib/navigation/navigation.component';
|
|
18
|
-
// endregion
|
|
19
|
-
// region minimal-layout
|
|
20
|
-
export * from './lib/minimal-layout/minimal-layout.component';
|
|
21
|
-
// endregion
|
|
22
|
-
// region layout
|
|
23
|
-
export * from './lib/layout/layout.component';
|
|
24
|
-
// endregion
|
|
25
|
-
// region header
|
|
26
|
-
export * from './lib/header/header.component';
|
|
27
|
-
export * from './lib/header/header.directive';
|
|
28
|
-
// endregion
|
|
29
|
-
// region footer
|
|
30
|
-
export * from './lib/footer/footer.component';
|
|
31
|
-
export * from './lib/footer/footer.directive';
|
|
32
|
-
// endregion
|
|
33
|
-
// region default-header user-profile-icon
|
|
34
|
-
export * from './lib/default-header/user-profile-icon/user-profile-icon.component';
|
|
35
|
-
// endregion
|
|
36
|
-
// region default-header sidenav-toggle-button
|
|
37
|
-
export * from './lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component';
|
|
38
|
-
// endregion
|
|
39
|
-
// region default-header settings-button
|
|
40
|
-
export * from './lib/default-header/settings-button/settings-button.component';
|
|
41
|
-
// endregion
|
|
42
|
-
// region default-header apps-button
|
|
43
|
-
export * from './lib/default-header/apps-button/apps-button.component';
|
|
44
|
-
// endregion
|
|
45
|
-
// region default-header
|
|
46
|
-
export * from './lib/default-header/default-header.component';
|
|
47
|
-
export * from './lib/default-header/default-header.service';
|
|
48
|
-
// endregion
|
|
49
|
-
// region base-layout
|
|
50
|
-
export * from './lib/base-layout/base-layout.component';
|
|
51
|
-
// endregion
|
|
52
|
-
// region
|
|
53
|
-
export * from './lib/external-apps.service';
|
|
54
|
-
export * from './lib/footer.service';
|
|
55
|
-
export * from './lib/header.service';
|
|
56
|
-
export * from './lib/layout.service';
|
|
57
|
-
export * from './lib/logo.service';
|
|
58
|
-
export * from './lib/navigation.service';
|
|
59
|
-
export * from './lib/provide';
|
|
60
|
-
export * from './lib/tokens';
|
|
61
|
-
export * from './lib/types';
|
|
62
|
-
// endregion
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELFlBQVk7QUFFWixzQkFBc0I7QUFDdEIsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxZQUFZO0FBRVosb0NBQW9DO0FBQ3BDLGNBQWMsNERBQTRELENBQUM7QUFDM0UsWUFBWTtBQUVaLGlDQUFpQztBQUNqQyxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLFlBQVk7QUFFWixvQkFBb0I7QUFDcEIsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELFlBQVk7QUFFWix3QkFBd0I7QUFDeEIsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxZQUFZO0FBRVosZ0JBQWdCO0FBQ2hCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsWUFBWTtBQUVaLGdCQUFnQjtBQUNoQixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsWUFBWTtBQUVaLGdCQUFnQjtBQUNoQixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsWUFBWTtBQUVaLDBDQUEwQztBQUMxQyxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLFlBQVk7QUFFWiw4Q0FBOEM7QUFDOUMsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixZQUFZO0FBRVosd0NBQXdDO0FBQ3hDLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsWUFBWTtBQUVaLG9DQUFvQztBQUNwQyxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLFlBQVk7QUFFWix3QkFBd0I7QUFDeEIsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELFlBQVk7QUFFWixxQkFBcUI7QUFDckIsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxZQUFZO0FBRVosVUFBVTtBQUNWLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWdpb24gc2lkZW5hdlxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2lkZW5hdi9zaWRlbmF2LWZvb3Rlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2lkZW5hdi9zaWRlbmF2LWhlYWRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudCc7XG4vLyBlbmRyZWdpb25cblxuLy8gcmVnaW9uIHJlbGVhc2UtaW5mb1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVsZWFzZS1pbmZvL3JlbGVhc2UtaW5mby5jb21wb25lbnQnO1xuLy8gZW5kcmVnaW9uXG5cbi8vIHJlZ2lvbiBuYXZpZ2F0aW9uIG5hdmlnYXRpb24taXRlbVxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG4vLyBlbmRyZWdpb25cblxuLy8gcmVnaW9uIG5hdmlnYXRpb24tcHJvZ3Jlc3MtYmFyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xuLy8gZW5kcmVnaW9uXG5cbi8vIHJlZ2lvbiBuYXZpZ2F0aW9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24taXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50Jztcbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gbWluaW1hbC1sYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vbGliL21pbmltYWwtbGF5b3V0L21pbmltYWwtbGF5b3V0LmNvbXBvbmVudCc7XG4vLyBlbmRyZWdpb25cblxuLy8gcmVnaW9uIGxheW91dFxuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuLy8gZW5kcmVnaW9uXG5cbi8vIHJlZ2lvbiBoZWFkZXJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9oZWFkZXIuZGlyZWN0aXZlJztcbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gZm9vdGVyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb290ZXIvZm9vdGVyLmRpcmVjdGl2ZSc7XG4vLyBlbmRyZWdpb25cblxuLy8gcmVnaW9uIGRlZmF1bHQtaGVhZGVyIHVzZXItcHJvZmlsZS1pY29uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZWZhdWx0LWhlYWRlci91c2VyLXByb2ZpbGUtaWNvbi91c2VyLXByb2ZpbGUtaWNvbi5jb21wb25lbnQnO1xuLy8gZW5kcmVnaW9uXG5cbi8vIHJlZ2lvbiBkZWZhdWx0LWhlYWRlciBzaWRlbmF2LXRvZ2dsZS1idXR0b25cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RlZmF1bHQtaGVhZGVyL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi9zaWRlbmF2LXRvZ2dsZS1idXR0b24uY29tcG9uZW50Jztcbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gZGVmYXVsdC1oZWFkZXIgc2V0dGluZ3MtYnV0dG9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZWZhdWx0LWhlYWRlci9zZXR0aW5ncy1idXR0b24vc2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudCc7XG4vLyBlbmRyZWdpb25cblxuLy8gcmVnaW9uIGRlZmF1bHQtaGVhZGVyIGFwcHMtYnV0dG9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZWZhdWx0LWhlYWRlci9hcHBzLWJ1dHRvbi9hcHBzLWJ1dHRvbi5jb21wb25lbnQnO1xuLy8gZW5kcmVnaW9uXG5cbi8vIHJlZ2lvbiBkZWZhdWx0LWhlYWRlclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVmYXVsdC1oZWFkZXIvZGVmYXVsdC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RlZmF1bHQtaGVhZGVyL2RlZmF1bHQtaGVhZGVyLnNlcnZpY2UnO1xuLy8gZW5kcmVnaW9uXG5cbi8vIHJlZ2lvbiBiYXNlLWxheW91dFxuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1sYXlvdXQvYmFzZS1sYXlvdXQuY29tcG9uZW50Jztcbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gXG5leHBvcnQgKiBmcm9tICcuL2xpYi9leHRlcm5hbC1hcHBzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9vdGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9nby5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25hdmlnYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm92aWRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcyc7XG4vLyBlbmRyZWdpb25cbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
-
import { FooterComponent } from '../footer/footer.component';
|
|
3
|
-
import { HeaderComponent } from '../header/header.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class BaseLayoutComponent {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: BaseLayoutComponent, isStandalone: true, selector: "rxap-base-layout", ngImport: i0, template: "<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<ng-content></ng-content>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n", styles: [""], dependencies: [{ kind: "component", type: HeaderComponent, selector: "rxap-header", inputs: ["color"] }, { kind: "component", type: FooterComponent, selector: "rxap-footer" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseLayoutComponent, decorators: [{
|
|
10
|
-
type: Component,
|
|
11
|
-
args: [{ selector: 'rxap-base-layout', standalone: true, imports: [
|
|
12
|
-
HeaderComponent,
|
|
13
|
-
FooterComponent,
|
|
14
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<ng-content></ng-content>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n" }]
|
|
15
|
-
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9iYXNlLWxheW91dC9iYXNlLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2Jhc2UtbGF5b3V0L2Jhc2UtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBYTdELE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDRFQ2xCaEMsOEpBR0EsMEREUUksZUFBZSwyRUFDZixlQUFlOzsyRkFNTixtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtYmFzZS1sYXlvdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIEZvb3RlckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2UtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Jhc2UtbGF5b3V0LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VMYXlvdXRDb21wb25lbnQge31cbiIsIjxyeGFwLWhlYWRlciBjbGFzcz1cInotMTAgdy1mdWxsIGZpeGVkIHRvcC0wXCI+PC9yeGFwLWhlYWRlcj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxyeGFwLWZvb3RlciBjbGFzcz1cInotMTAgdy1mdWxsIGZpeGVkIGJvdHRvbS0wXCI+PC9yeGFwLWZvb3Rlcj5cbiJdfQ==
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { NgOptimizedImage } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, computed, inject, signal, } from '@angular/core';
|
|
3
|
-
import { MatAnchor, MatButton, MatIconButton, } from '@angular/material/button';
|
|
4
|
-
import { MatIcon } from '@angular/material/icon';
|
|
5
|
-
import { RouterLink } from '@angular/router';
|
|
6
|
-
import { IconDirective } from '@rxap/material-directives/icon';
|
|
7
|
-
import { ExternalAppsService } from '../../external-apps.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class AppsButtonComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
/**
|
|
12
|
-
* The signal that indicates if the app list is open
|
|
13
|
-
*/
|
|
14
|
-
this.isOpen = signal(false);
|
|
15
|
-
this.externalAppsService = inject(ExternalAppsService);
|
|
16
|
-
this.appList = computed(() => this.externalAppsService.activeAppList());
|
|
17
|
-
this.hasApps = computed(() => this.appList().length > 0);
|
|
18
|
-
}
|
|
19
|
-
toggle() {
|
|
20
|
-
this.isOpen.update(isOpen => !isOpen);
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() {
|
|
23
|
-
this.externalAppsService.getAppList();
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppsButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AppsButtonComponent, isStandalone: true, selector: "rxap-apps-button", ngImport: i0, template: "@if (hasApps()) {\n <div class=\"flex flex-row items-center gap-8\">\n\n @if (isOpen()) {\n <div class=\"flex flex-row items-center gap-6 h-10\">\n\n @for (app of appList(); track app.label) {\n @if (app.href) {\n <a [href]=\"app.href\" [target]=\"app.target ?? '_self'\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else if (app.routerLink) {\n <a mat-stroked-button [routerLink]=\"app.routerLink\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else {\n <button mat-stroked-button [disabled]=\"true\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </button>\n }\n }\n\n </div>\n }\n\n <button (click)=\"toggle()\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n </div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: IconDirective, selector: "mat-icon[rxapIcon]", inputs: ["rxapIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppsButtonComponent, decorators: [{
|
|
29
|
-
type: Component,
|
|
30
|
-
args: [{ selector: 'rxap-apps-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
31
|
-
NgOptimizedImage,
|
|
32
|
-
MatButton,
|
|
33
|
-
RouterLink,
|
|
34
|
-
MatAnchor,
|
|
35
|
-
MatIconButton,
|
|
36
|
-
MatIcon,
|
|
37
|
-
IconDirective,
|
|
38
|
-
], template: "@if (hasApps()) {\n <div class=\"flex flex-row items-center gap-8\">\n\n @if (isOpen()) {\n <div class=\"flex flex-row items-center gap-6 h-10\">\n\n @for (app of appList(); track app.label) {\n @if (app.href) {\n <a [href]=\"app.href\" [target]=\"app.target ?? '_self'\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else if (app.routerLink) {\n <a mat-stroked-button [routerLink]=\"app.routerLink\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else {\n <button mat-stroked-button [disabled]=\"true\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </button>\n }\n }\n\n </div>\n }\n\n <button (click)=\"toggle()\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n </div>\n}\n" }]
|
|
39
|
-
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9kZWZhdWx0LWhlYWRlci9hcHBzLWJ1dHRvbi9hcHBzLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2RlZmF1bHQtaGVhZGVyL2FwcHMtYnV0dG9uL2FwcHMtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBRU4sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULGFBQWEsR0FDZCxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQWtCbEUsTUFBTSxPQUFPLG1CQUFtQjtJQWhCaEM7UUFpQkU7O1dBRUc7UUFDYSxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRCLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDbkUsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBVXJFO0lBUlEsTUFBTTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzhHQWhCVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw0RUNuQ2hDLDArREF1REEsMEREN0JJLGdCQUFnQixnUEFDaEIsU0FBUyxpTEFDVCxVQUFVLG9PQUNWLFNBQVMsaUtBQ1QsYUFBYSw2RkFDYixPQUFPLDJJQUNQLGFBQWE7OzJGQUdKLG1CQUFtQjtrQkFoQi9CLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGFBQWE7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIE9uSW5pdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdEFuY2hvcixcbiAgTWF0QnV0dG9uLFxuICBNYXRJY29uQnV0dG9uLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJY29uRGlyZWN0aXZlIH0gZnJvbSAnQHJ4YXAvbWF0ZXJpYWwtZGlyZWN0aXZlcy9pY29uJztcbmltcG9ydCB7IEV4dGVybmFsQXBwc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9leHRlcm5hbC1hcHBzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLWFwcHMtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcHMtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2FwcHMtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgTWF0QnV0dG9uLFxuICAgIFJvdXRlckxpbmssXG4gICAgTWF0QW5jaG9yLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgTWF0SWNvbixcbiAgICBJY29uRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBzQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzaWduYWwgdGhhdCBpbmRpY2F0ZXMgaWYgdGhlIGFwcCBsaXN0IGlzIG9wZW5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZXh0ZXJuYWxBcHBzU2VydmljZSA9IGluamVjdChFeHRlcm5hbEFwcHNTZXJ2aWNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGFwcExpc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmV4dGVybmFsQXBwc1NlcnZpY2UuYWN0aXZlQXBwTGlzdCgpKTtcbiAgcHVibGljIHJlYWRvbmx5IGhhc0FwcHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmFwcExpc3QoKS5sZW5ndGggPiAwKTtcblxuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNPcGVuLnVwZGF0ZShpc09wZW4gPT4gIWlzT3Blbik7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5leHRlcm5hbEFwcHNTZXJ2aWNlLmdldEFwcExpc3QoKTtcbiAgfVxuXG59XG4iLCJAaWYgKGhhc0FwcHMoKSkge1xuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLThcIj5cblxuICAgIEBpZiAoaXNPcGVuKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtNiBoLTEwXCI+XG5cbiAgICAgICAgQGZvciAoYXBwIG9mIGFwcExpc3QoKTsgdHJhY2sgYXBwLmxhYmVsKSB7XG4gICAgICAgICAgQGlmIChhcHAuaHJlZikge1xuICAgICAgICAgICAgPGEgW2hyZWZdPVwiYXBwLmhyZWZcIiBbdGFyZ2V0XT1cImFwcC50YXJnZXQgPz8gJ19zZWxmJ1wiIG1hdC1zdHJva2VkLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICAgIEBpZiAoYXBwLmljb24pIHtcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbcnhhcEljb25dPVwiYXBwLmljb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGFwcC5pbWFnZSkge1xuICAgICAgICAgICAgICAgICAgPGltZyBbYWx0XT1cImFwcC5sYWJlbFwiIFtuZ1NyY109XCJhcHAuaW1hZ2VcIiBoZWlnaHQ9XCI0MFwiIHdpZHRoPVwiNDBcIj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBncm93LTBcIj57eyBhcHAubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICB9IEBlbHNlIGlmIChhcHAucm91dGVyTGluaykge1xuICAgICAgICAgICAgPGEgbWF0LXN0cm9rZWQtYnV0dG9uIFtyb3V0ZXJMaW5rXT1cImFwcC5yb3V0ZXJMaW5rXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGFwcC5pY29uKSB7XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gW3J4YXBJY29uXT1cImFwcC5pY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChhcHAuaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICAgIDxpbWcgW2FsdF09XCJhcHAubGFiZWxcIiBbbmdTcmNdPVwiYXBwLmltYWdlXCIgaGVpZ2h0PVwiNDBcIiB3aWR0aD1cIjQwXCI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgZ3Jvdy0wXCI+e3sgYXBwLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgQGlmIChhcHAuaWNvbikge1xuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtyeGFwSWNvbl09XCJhcHAuaWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoYXBwLmltYWdlKSB7XG4gICAgICAgICAgICAgICAgICA8aW1nIFthbHRdPVwiYXBwLmxhYmVsXCIgW25nU3JjXT1cImFwcC5pbWFnZVwiIGhlaWdodD1cIjQwXCIgd2lkdGg9XCI0MFwiPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsIGdyb3ctMFwiPnt7IGFwcC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZSgpXCIgbWF0LWljb24tYnV0dG9uPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJhcHBzXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { CdkPortalOutlet } from '@angular/cdk/portal';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, computed, inject, } from '@angular/core';
|
|
3
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { MatToolbarRow } from '@angular/material/toolbar';
|
|
5
|
-
import { LayoutService } from '../layout.service';
|
|
6
|
-
import { RXAP_USER_PROFILE_DATA_SOURCE } from '../tokens';
|
|
7
|
-
import { AppsButtonComponent } from './apps-button/apps-button.component';
|
|
8
|
-
import { DefaultHeaderService } from './default-header.service';
|
|
9
|
-
import { SettingsButtonComponent } from './settings-button/settings-button.component';
|
|
10
|
-
import { SidenavToggleButtonComponent } from './sidenav-toggle-button/sidenav-toggle-button.component';
|
|
11
|
-
import { UserProfileIconComponent } from './user-profile-icon/user-profile-icon.component';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
export class DefaultHeaderComponent {
|
|
14
|
-
constructor() {
|
|
15
|
-
this.layoutComponentService = inject(LayoutService);
|
|
16
|
-
this.collapsable = computed(() => this.layoutComponentService.collapsable());
|
|
17
|
-
this.opened = computed(() => this.layoutComponentService.opened());
|
|
18
|
-
this.profile = toSignal(inject(RXAP_USER_PROFILE_DATA_SOURCE).connect('user-profile'), { initialValue: null });
|
|
19
|
-
this.defaultHeaderService = inject(DefaultHeaderService);
|
|
20
|
-
this.portals = computed(() => this.defaultHeaderService.portals());
|
|
21
|
-
this.hasPortals = computed(() => this.portals().length > 0);
|
|
22
|
-
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DefaultHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: DefaultHeaderComponent, isStandalone: true, selector: "rxap-default-header", host: { classAttribute: "grow" }, ngImport: i0, template: "<div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n @if (!collapsable()) {\n <rxap-sidenav-toggle-button></rxap-sidenav-toggle-button>\n }\n <div class=\"grow flex flex-row gap-x-4 items-center\">\n @for (portal of portals(); track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n <ng-content></ng-content>\n </div>\n <rxap-apps-button class=\"grow-0\"></rxap-apps-button>\n <rxap-settings-button class=\"grow-0\"></rxap-settings-button>\n @if (this.profile(); as profile) {\n <rxap-user-profile-icon [profile]=\"profile\" class=\"grow-0\"></rxap-user-profile-icon>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AppsButtonComponent, selector: "rxap-apps-button" }, { kind: "component", type: SettingsButtonComponent, selector: "rxap-settings-button" }, { kind: "component", type: SidenavToggleButtonComponent, selector: "rxap-sidenav-toggle-button" }, { kind: "component", type: UserProfileIconComponent, selector: "rxap-user-profile-icon", inputs: ["profile"] }, { kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DefaultHeaderComponent, decorators: [{
|
|
27
|
-
type: Component,
|
|
28
|
-
args: [{ selector: 'rxap-default-header', standalone: true, imports: [
|
|
29
|
-
AppsButtonComponent,
|
|
30
|
-
SettingsButtonComponent,
|
|
31
|
-
SidenavToggleButtonComponent,
|
|
32
|
-
UserProfileIconComponent,
|
|
33
|
-
MatToolbarRow,
|
|
34
|
-
CdkPortalOutlet,
|
|
35
|
-
], host: {
|
|
36
|
-
'class': 'grow',
|
|
37
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n @if (!collapsable()) {\n <rxap-sidenav-toggle-button></rxap-sidenav-toggle-button>\n }\n <div class=\"grow flex flex-row gap-x-4 items-center\">\n @for (portal of portals(); track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n <ng-content></ng-content>\n </div>\n <rxap-apps-button class=\"grow-0\"></rxap-apps-button>\n <rxap-settings-button class=\"grow-0\"></rxap-settings-button>\n @if (this.profile(); as profile) {\n <rxap-user-profile-icon [profile]=\"profile\" class=\"grow-0\"></rxap-user-profile-icon>\n }\n</div>\n" }]
|
|
38
|
-
}] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9kZWZhdWx0LWhlYWRlci9kZWZhdWx0LWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2RlZmF1bHQtaGVhZGVyL2RlZmF1bHQtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFvQjNGLE1BQU0sT0FBTyxzQkFBc0I7SUFsQm5DO1FBb0JtQiwyQkFBc0IsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFaEQsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5RCxZQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpHLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXJELFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDOUQsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBRXhFOzhHQWJZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlIQ3BDbkMsbXBCQWdCQSwwRERNSSxtQkFBbUIsNkRBQ25CLHVCQUF1QixpRUFDdkIsNEJBQTRCLHVFQUM1Qix3QkFBd0Isd0ZBRXhCLGVBQWU7OzJGQVNOLHNCQUFzQjtrQkFsQmxDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1Qix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsZUFBZTtxQkFDaEIsUUFDSzt3QkFDSixPQUFPLEVBQUUsTUFBTTtxQkFDaEIsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBNYXRUb29sYmFyUm93IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBIZWFkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uL2xheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IFJYQVBfVVNFUl9QUk9GSUxFX0RBVEFfU09VUkNFIH0gZnJvbSAnLi4vdG9rZW5zJztcbmltcG9ydCB7IEFwcHNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2FwcHMtYnV0dG9uL2FwcHMtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWZhdWx0SGVhZGVyU2VydmljZSB9IGZyb20gJy4vZGVmYXVsdC1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZXR0aW5nc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZ3MtYnV0dG9uL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2lkZW5hdlRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vc2lkZW5hdi10b2dnbGUtYnV0dG9uL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGVJY29uQ29tcG9uZW50IH0gZnJvbSAnLi91c2VyLXByb2ZpbGUtaWNvbi91c2VyLXByb2ZpbGUtaWNvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLWRlZmF1bHQtaGVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFwcHNCdXR0b25Db21wb25lbnQsXG4gICAgU2V0dGluZ3NCdXR0b25Db21wb25lbnQsXG4gICAgU2lkZW5hdlRvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBVc2VyUHJvZmlsZUljb25Db21wb25lbnQsXG4gICAgTWF0VG9vbGJhclJvdyxcbiAgICBDZGtQb3J0YWxPdXRsZXQsXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZ3JvdycsXG4gIH0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kZWZhdWx0LWhlYWRlci5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0SGVhZGVyQ29tcG9uZW50IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxheW91dENvbXBvbmVudFNlcnZpY2UgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbGxhcHNhYmxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sYXlvdXRDb21wb25lbnRTZXJ2aWNlLmNvbGxhcHNhYmxlKCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlbmVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sYXlvdXRDb21wb25lbnRTZXJ2aWNlLm9wZW5lZCgpKTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2ZpbGUgPSB0b1NpZ25hbChpbmplY3QoUlhBUF9VU0VSX1BST0ZJTEVfREFUQV9TT1VSQ0UpLmNvbm5lY3QoJ3VzZXItcHJvZmlsZScpLCB7IGluaXRpYWxWYWx1ZTogbnVsbCB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRIZWFkZXJTZXJ2aWNlID0gaW5qZWN0KERlZmF1bHRIZWFkZXJTZXJ2aWNlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcG9ydGFscyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGVmYXVsdEhlYWRlclNlcnZpY2UucG9ydGFscygpKTtcbiAgcHVibGljIHJlYWRvbmx5IGhhc1BvcnRhbHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBvcnRhbHMoKS5sZW5ndGggPiAwKTtcblxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtcm93IGdhcC14LTQganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICBAaWYgKCFjb2xsYXBzYWJsZSgpKSB7XG4gICAgPHJ4YXAtc2lkZW5hdi10b2dnbGUtYnV0dG9uPjwvcnhhcC1zaWRlbmF2LXRvZ2dsZS1idXR0b24+XG4gIH1cbiAgPGRpdiBjbGFzcz1cImdyb3cgZmxleCBmbGV4LXJvdyBnYXAteC00IGl0ZW1zLWNlbnRlclwiPlxuICAgIEBmb3IgKHBvcnRhbCBvZiBwb3J0YWxzKCk7IHRyYWNrIHBvcnRhbCkge1xuICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPHJ4YXAtYXBwcy1idXR0b24gY2xhc3M9XCJncm93LTBcIj48L3J4YXAtYXBwcy1idXR0b24+XG4gIDxyeGFwLXNldHRpbmdzLWJ1dHRvbiBjbGFzcz1cImdyb3ctMFwiPjwvcnhhcC1zZXR0aW5ncy1idXR0b24+XG4gIEBpZiAodGhpcy5wcm9maWxlKCk7IGFzIHByb2ZpbGUpIHtcbiAgICA8cnhhcC11c2VyLXByb2ZpbGUtaWNvbiBbcHJvZmlsZV09XCJwcm9maWxlXCIgY2xhc3M9XCJncm93LTBcIj48L3J4YXAtdXNlci1wcm9maWxlLWljb24+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { ComponentPortal, } from '@angular/cdk/portal';
|
|
2
|
-
import { computed, inject, Injectable, isDevMode, signal, } from '@angular/core';
|
|
3
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { from } from 'rxjs';
|
|
5
|
-
import { RXAP_DEFAULT_HEADER_ITEM_COMPONENT } from '../tokens';
|
|
6
|
-
import { coerceArray, IsFunction, } from '@rxap/utilities';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class DefaultHeaderService {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.components = toSignal(from(Promise.all(coerceArray(inject(RXAP_DEFAULT_HEADER_ITEM_COMPONENT, { optional: true }))
|
|
11
|
-
.map(item => IsFunction(item) ? item() : item))), { initialValue: [] });
|
|
12
|
-
this.injectedPortals = computed(() => this.components().map(component => new ComponentPortal(component)));
|
|
13
|
-
this.methodPortals = signal([]);
|
|
14
|
-
/**
|
|
15
|
-
* Represents an array of `Portal` objects with unknown type.
|
|
16
|
-
*
|
|
17
|
-
* @typedef {Array<Portal<unknown>>} SignalPortals
|
|
18
|
-
*/
|
|
19
|
-
this.portals = computed(() => [...this.injectedPortals(), ...this.methodPortals()]);
|
|
20
|
-
/**
|
|
21
|
-
* Computes the count of portals.
|
|
22
|
-
*
|
|
23
|
-
* @returns {number} The count of portals.
|
|
24
|
-
*/
|
|
25
|
-
this.portalCount = computed(() => this.portals().length);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Adds a portal to the list of portals.
|
|
29
|
-
*
|
|
30
|
-
* @param {Portal<unknown>} portal - The portal to be added.
|
|
31
|
-
*
|
|
32
|
-
* @return {void}
|
|
33
|
-
*/
|
|
34
|
-
pushPortal(portal) {
|
|
35
|
-
if (!this.methodPortals().includes(portal)) {
|
|
36
|
-
this.methodPortals.update(portals => [...portals, portal]);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
if (isDevMode()) {
|
|
40
|
-
console.warn('Can not add the same portal multiple times');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Removes a portal from the list of portals.
|
|
46
|
-
*
|
|
47
|
-
* @param {Portal<unknown>} portal - The portal to be removed.
|
|
48
|
-
* @return {void}
|
|
49
|
-
*/
|
|
50
|
-
removePortal(portal) {
|
|
51
|
-
const index = this.methodPortals().indexOf(portal);
|
|
52
|
-
if (index !== -1) {
|
|
53
|
-
this.methodPortals.update(portals => {
|
|
54
|
-
portals.splice(index, 1);
|
|
55
|
-
return portals.slice();
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DefaultHeaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
60
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DefaultHeaderService }); }
|
|
61
|
-
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DefaultHeaderService, decorators: [{
|
|
63
|
-
type: Injectable
|
|
64
|
-
}] });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1oZWFkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvZGVmYXVsdC1oZWFkZXIvZGVmYXVsdC1oZWFkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxHQUVoQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsV0FBVyxFQUNYLFVBQVUsR0FDWCxNQUFNLGlCQUFpQixDQUFDOztBQUd6QixNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBR21CLGVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ2hJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXpELG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckcsa0JBQWEsR0FBRyxNQUFNLENBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBRS9EOzs7O1dBSUc7UUFDYSxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUUsQ0FBQyxDQUFDO1FBR2pHOzs7O1dBSUc7UUFDYSxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7S0FvQ3JFO0lBakNDOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBQyxNQUF1QjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLENBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDN0QsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxZQUFZLENBQUMsTUFBdUI7UUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDekIsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0F2RFUsb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRQb3J0YWwsXG4gIFBvcnRhbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBpc0Rldk1vZGUsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJYQVBfREVGQVVMVF9IRUFERVJfSVRFTV9DT01QT05FTlQgfSBmcm9tICcuLi90b2tlbnMnO1xuaW1wb3J0IHtcbiAgY29lcmNlQXJyYXksXG4gIElzRnVuY3Rpb24sXG59IGZyb20gJ0ByeGFwL3V0aWxpdGllcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZWZhdWx0SGVhZGVyU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRzID0gdG9TaWduYWwoZnJvbShQcm9taXNlLmFsbChjb2VyY2VBcnJheShpbmplY3QoUlhBUF9ERUZBVUxUX0hFQURFUl9JVEVNX0NPTVBPTkVOVCwgeyBvcHRpb25hbDogdHJ1ZSB9KSlcbiAgICAubWFwKGl0ZW0gPT4gSXNGdW5jdGlvbihpdGVtKSA/IGl0ZW0oKSA6IGl0ZW0pKSksIHsgaW5pdGlhbFZhbHVlOiBbXSB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdGVkUG9ydGFscyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29tcG9uZW50cygpLm1hcChjb21wb25lbnQgPT4gbmV3IENvbXBvbmVudFBvcnRhbChjb21wb25lbnQpKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWV0aG9kUG9ydGFscyA9IHNpZ25hbDxQb3J0YWw8dW5rbm93bj5bXT4oW10pO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGFuIGFycmF5IG9mIGBQb3J0YWxgIG9iamVjdHMgd2l0aCB1bmtub3duIHR5cGUuXG4gICAqXG4gICAqIEB0eXBlZGVmIHtBcnJheTxQb3J0YWw8dW5rbm93bj4+fSBTaWduYWxQb3J0YWxzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcG9ydGFscyA9IGNvbXB1dGVkKCgpID0+IFsgLi4udGhpcy5pbmplY3RlZFBvcnRhbHMoKSwgLi4udGhpcy5tZXRob2RQb3J0YWxzKCkgXSk7XG5cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIGNvdW50IG9mIHBvcnRhbHMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBjb3VudCBvZiBwb3J0YWxzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBvcnRhbENvdW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wb3J0YWxzKCkubGVuZ3RoKTtcblxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcG9ydGFsIHRvIHRoZSBsaXN0IG9mIHBvcnRhbHMuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9ydGFsPHVua25vd24+fSBwb3J0YWwgLSBUaGUgcG9ydGFsIHRvIGJlIGFkZGVkLlxuICAgKlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgcHVibGljIHB1c2hQb3J0YWwocG9ydGFsOiBQb3J0YWw8dW5rbm93bj4pIHtcbiAgICBpZiAoIXRoaXMubWV0aG9kUG9ydGFscygpLmluY2x1ZGVzKHBvcnRhbCkpIHtcbiAgICAgIHRoaXMubWV0aG9kUG9ydGFscy51cGRhdGUocG9ydGFscyA9PiBbIC4uLnBvcnRhbHMsIHBvcnRhbCBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQ2FuIG5vdCBhZGQgdGhlIHNhbWUgcG9ydGFsIG11bHRpcGxlIHRpbWVzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBwb3J0YWwgZnJvbSB0aGUgbGlzdCBvZiBwb3J0YWxzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BvcnRhbDx1bmtub3duPn0gcG9ydGFsIC0gVGhlIHBvcnRhbCB0byBiZSByZW1vdmVkLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgcHVibGljIHJlbW92ZVBvcnRhbChwb3J0YWw6IFBvcnRhbDx1bmtub3duPikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tZXRob2RQb3J0YWxzKCkuaW5kZXhPZihwb3J0YWwpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMubWV0aG9kUG9ydGFscy51cGRhdGUocG9ydGFscyA9PiB7XG4gICAgICAgIHBvcnRhbHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgcmV0dXJuIHBvcnRhbHMuc2xpY2UoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { CdkPortalOutlet, ComponentPortal, } from '@angular/cdk/portal';
|
|
2
|
-
import { NgIf } from '@angular/common';
|
|
3
|
-
import { Component, inject, Injector, isDevMode, runInInjectionContext, signal, } from '@angular/core';
|
|
4
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
5
|
-
import { MatIconButton } from '@angular/material/button';
|
|
6
|
-
import { MatIcon } from '@angular/material/icon';
|
|
7
|
-
import { MatMenu, MatMenuItem, MatMenuTrigger, } from '@angular/material/menu';
|
|
8
|
-
import { IconDirective } from '@rxap/material-directives/icon';
|
|
9
|
-
import { ThemeService, } from '@rxap/ngx-theme';
|
|
10
|
-
import { coerceArray, IsFunction, } from '@rxap/utilities';
|
|
11
|
-
import { from } from 'rxjs';
|
|
12
|
-
import { map } from 'rxjs/operators';
|
|
13
|
-
import { RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, } from '../../tokens';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
export class SettingsButtonComponent {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.isDevMode = isDevMode();
|
|
18
|
-
this.theme = inject(ThemeService);
|
|
19
|
-
this.injector = inject(Injector);
|
|
20
|
-
this.customItemComponents = toSignal(from(Promise.all(coerceArray(inject(RXAP_SETTINGS_MENU_ITEM_COMPONENT, { optional: true }))
|
|
21
|
-
.map(item => IsFunction(item) ? item() : item))).pipe(map(items => items.map(item => new ComponentPortal(item, null, this.injector)))), { initialValue: [] });
|
|
22
|
-
this.customItems = signal(coerceArray(inject(RXAP_SETTINGS_MENU_ITEM, { optional: true })));
|
|
23
|
-
this.savePreviewDensityValue = false;
|
|
24
|
-
this.currentDensityValue = null;
|
|
25
|
-
this.savePreviewTypographyValue = false;
|
|
26
|
-
this.currentTypographyValue = null;
|
|
27
|
-
this.availableTypographies = this.theme.getAvailableTypographies();
|
|
28
|
-
this.savePreviewThemeValue = false;
|
|
29
|
-
this.availableThemes = this.theme.getAvailableThemes();
|
|
30
|
-
this.currentThemeValue = null;
|
|
31
|
-
}
|
|
32
|
-
previewDensity(density) {
|
|
33
|
-
this.theme.applyDensity(density);
|
|
34
|
-
}
|
|
35
|
-
restoreDensity() {
|
|
36
|
-
this.theme.applyDensity(this.theme.density());
|
|
37
|
-
}
|
|
38
|
-
setDensity(density) {
|
|
39
|
-
this.theme.setDensity(density);
|
|
40
|
-
}
|
|
41
|
-
previewTypography(typography) {
|
|
42
|
-
this.theme.applyTypography(typography);
|
|
43
|
-
}
|
|
44
|
-
restoreTypography() {
|
|
45
|
-
this.theme.applyTypography(this.theme.typography());
|
|
46
|
-
}
|
|
47
|
-
setTypography(typography) {
|
|
48
|
-
this.theme.setTypography(typography);
|
|
49
|
-
}
|
|
50
|
-
previewTheme(theme) {
|
|
51
|
-
this.theme.applyTheme(theme);
|
|
52
|
-
}
|
|
53
|
-
restoreTheme() {
|
|
54
|
-
this.theme.applyTheme(this.theme.themeName());
|
|
55
|
-
}
|
|
56
|
-
setTheme(theme) {
|
|
57
|
-
this.theme.setTheme(theme);
|
|
58
|
-
}
|
|
59
|
-
clickItem(item) {
|
|
60
|
-
runInInjectionContext(this.injector, () => item.action());
|
|
61
|
-
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SettingsButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: SettingsButtonComponent, isStandalone: true, selector: "rxap-settings-button", ngImport: i0, template: "<button [matMenuTriggerFor]=\"menu\" mat-icon-button>\n <mat-icon svgIcon=\"cog\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button (click)=\"theme.toggleDarkTheme()\" mat-menu-item>\n @if (theme.darkMode()) {\n <mat-icon svgIcon=\"brightness-2\"></mat-icon>\n } @else {\n <mat-icon svgIcon=\"brightness-5\"></mat-icon>\n }\n <span i18n>Mode</span>\n </button>\n <button [matMenuTriggerFor]=\"themeMenu\" mat-menu-item>\n <mat-icon svgIcon=\"compare\"></mat-icon>\n <span i18n>Theme</span>\n </button>\n @for (item of customItems(); track item.label) {\n <button (click)=\"clickItem(item)\" mat-menu-item>\n <mat-icon *ngIf=\"item.icon as icon\" [rxapIcon]=\"icon\"></mat-icon>\n <span>{{ item.label }}</span>\n </button>\n }\n @for (item of customItemComponents(); track item) {\n <ng-template [cdkPortalOutlet]=\"item\"></ng-template>\n }\n</mat-menu>\n\n<mat-menu #themeMenu=\"matMenu\" xPosition=\"before\">\n <button [matMenuTriggerFor]=\"themeDensityMenu\" mat-menu-item>\n <mat-icon svgIcon=\"move-resize\"></mat-icon>\n <span i18n>Density</span>\n </button>\n @if (availableTypographies?.length) {\n <button [matMenuTriggerFor]=\"themeFontMenu\" mat-menu-item>\n <mat-icon svgIcon=\"format-font\"></mat-icon>\n <span i18n>Font</span>\n </button>\n }\n @if (availableThemes?.length) {\n <button [matMenuTriggerFor]=\"themePresetMenu\" mat-menu-item>\n <mat-icon svgIcon=\"shape-outline\"></mat-icon>\n <span i18n>Preset</span>\n </button>\n }\n</mat-menu>\n\n<mat-menu #themeDensityMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"setDensity(0)\" (mouseenter)=\"previewDensity(0)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-l\"></mat-icon>\n <span i18n>Normal</span>\n </button>\n <button (click)=\"setDensity(-1)\" (mouseenter)=\"previewDensity(-1)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-m\"></mat-icon>\n <span i18n>Dense</span>\n </button>\n <button (click)=\"setDensity(-2)\" (mouseenter)=\"previewDensity(-2)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-s\"></mat-icon>\n <span i18n>Very Dense</span>\n </button>\n <button (click)=\"setDensity(-3)\" (mouseenter)=\"previewDensity(-3)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-xs\"></mat-icon>\n <span i18n>Extreme Dense</span>\n </button>\n</mat-menu>\n<mat-menu #themeFontMenu=\"matMenu\" xPosition=\"before\">\n @for (typographyName of availableTypographies ?? []; track typographyName) {\n <button (click)=\"setTypography(typographyName)\"\n (mouseenter)=\"previewTypography(typographyName)\"\n (mouseleave)=\"restoreTypography()\"\n mat-menu-item>\n {{ typographyName }}\n </button>\n }\n</mat-menu>\n\n<mat-menu #themePresetMenu=\"matMenu\" xPosition=\"before\">\n @for (themeName of availableThemes ?? []; track themeName) {\n <button (click)=\"setTheme(themeName)\"\n (mouseenter)=\"previewTheme(themeName)\"\n (mouseleave)=\"restoreTheme()\"\n mat-menu-item>\n {{ themeName }}\n </button>\n }\n</mat-menu>\n", styles: [""], dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: IconDirective, selector: "mat-icon[rxapIcon]", inputs: ["rxapIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
64
|
-
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SettingsButtonComponent, decorators: [{
|
|
66
|
-
type: Component,
|
|
67
|
-
args: [{ selector: 'rxap-settings-button', standalone: true, imports: [
|
|
68
|
-
MatIconButton,
|
|
69
|
-
MatIcon,
|
|
70
|
-
MatMenu,
|
|
71
|
-
MatMenuTrigger,
|
|
72
|
-
MatMenuItem,
|
|
73
|
-
CdkPortalOutlet,
|
|
74
|
-
IconDirective,
|
|
75
|
-
NgIf,
|
|
76
|
-
], template: "<button [matMenuTriggerFor]=\"menu\" mat-icon-button>\n <mat-icon svgIcon=\"cog\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button (click)=\"theme.toggleDarkTheme()\" mat-menu-item>\n @if (theme.darkMode()) {\n <mat-icon svgIcon=\"brightness-2\"></mat-icon>\n } @else {\n <mat-icon svgIcon=\"brightness-5\"></mat-icon>\n }\n <span i18n>Mode</span>\n </button>\n <button [matMenuTriggerFor]=\"themeMenu\" mat-menu-item>\n <mat-icon svgIcon=\"compare\"></mat-icon>\n <span i18n>Theme</span>\n </button>\n @for (item of customItems(); track item.label) {\n <button (click)=\"clickItem(item)\" mat-menu-item>\n <mat-icon *ngIf=\"item.icon as icon\" [rxapIcon]=\"icon\"></mat-icon>\n <span>{{ item.label }}</span>\n </button>\n }\n @for (item of customItemComponents(); track item) {\n <ng-template [cdkPortalOutlet]=\"item\"></ng-template>\n }\n</mat-menu>\n\n<mat-menu #themeMenu=\"matMenu\" xPosition=\"before\">\n <button [matMenuTriggerFor]=\"themeDensityMenu\" mat-menu-item>\n <mat-icon svgIcon=\"move-resize\"></mat-icon>\n <span i18n>Density</span>\n </button>\n @if (availableTypographies?.length) {\n <button [matMenuTriggerFor]=\"themeFontMenu\" mat-menu-item>\n <mat-icon svgIcon=\"format-font\"></mat-icon>\n <span i18n>Font</span>\n </button>\n }\n @if (availableThemes?.length) {\n <button [matMenuTriggerFor]=\"themePresetMenu\" mat-menu-item>\n <mat-icon svgIcon=\"shape-outline\"></mat-icon>\n <span i18n>Preset</span>\n </button>\n }\n</mat-menu>\n\n<mat-menu #themeDensityMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"setDensity(0)\" (mouseenter)=\"previewDensity(0)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-l\"></mat-icon>\n <span i18n>Normal</span>\n </button>\n <button (click)=\"setDensity(-1)\" (mouseenter)=\"previewDensity(-1)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-m\"></mat-icon>\n <span i18n>Dense</span>\n </button>\n <button (click)=\"setDensity(-2)\" (mouseenter)=\"previewDensity(-2)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-s\"></mat-icon>\n <span i18n>Very Dense</span>\n </button>\n <button (click)=\"setDensity(-3)\" (mouseenter)=\"previewDensity(-3)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-xs\"></mat-icon>\n <span i18n>Extreme Dense</span>\n </button>\n</mat-menu>\n<mat-menu #themeFontMenu=\"matMenu\" xPosition=\"before\">\n @for (typographyName of availableTypographies ?? []; track typographyName) {\n <button (click)=\"setTypography(typographyName)\"\n (mouseenter)=\"previewTypography(typographyName)\"\n (mouseleave)=\"restoreTypography()\"\n mat-menu-item>\n {{ typographyName }}\n </button>\n }\n</mat-menu>\n\n<mat-menu #themePresetMenu=\"matMenu\" xPosition=\"before\">\n @for (themeName of availableThemes ?? []; track themeName) {\n <button (click)=\"setTheme(themeName)\"\n (mouseenter)=\"previewTheme(themeName)\"\n (mouseleave)=\"restoreTheme()\"\n mat-menu-item>\n {{ themeName }}\n </button>\n }\n</mat-menu>\n" }]
|
|
77
|
-
}] });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvZGVmYXVsdC1oZWFkZXIvc2V0dGluZ3MtYnV0dG9uL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2RlZmF1bHQtaGVhZGVyL3NldHRpbmdzLWJ1dHRvbi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QscUJBQXFCLEVBRXJCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLFdBQVcsRUFDWCxjQUFjLEdBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUNMLFlBQVksR0FDYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsVUFBVSxHQUVYLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQ0FBaUMsR0FDbEMsTUFBTSxjQUFjLENBQUM7O0FBbUJ0QixNQUFNLE9BQU8sdUJBQXVCO0lBaEJwQztRQWtCUyxjQUFTLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFFZixVQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0MseUJBQW9CLEdBQXVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDbEYsV0FBVyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhILGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0UsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLHdCQUFtQixHQUF3QixJQUFJLENBQUM7UUFFaEQsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLDJCQUFzQixHQUFrQixJQUFJLENBQUM7UUFFckMsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3RFLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUV0QixvQkFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxRCxzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO0tBeUNqRDtJQXZDQyxjQUFjLENBQUMsT0FBcUI7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFxQjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBa0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFzQjtRQUM5QixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBaEVVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGdGQ3ZEcEMsc3NHQXNGQSwwRER6Q0ksYUFBYSw2RkFDYixPQUFPLDJJQUNQLE9BQU8sMlFBQ1AsY0FBYyxxU0FDZCxXQUFXLHNJQUNYLGVBQWUsaUpBQ2YsYUFBYSxxRkFDYixJQUFJOzsyRkFHSyx1QkFBdUI7a0JBaEJuQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBR1A7d0JBQ1AsYUFBYTt3QkFDYixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixJQUFJO3FCQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2RrUG9ydGFsT3V0bGV0LFxuICBDb21wb25lbnRQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGlzRGV2TW9kZSxcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxuICBTaWduYWwsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtcbiAgTWF0TWVudSxcbiAgTWF0TWVudUl0ZW0sXG4gIE1hdE1lbnVUcmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IEljb25EaXJlY3RpdmUgfSBmcm9tICdAcnhhcC9tYXRlcmlhbC1kaXJlY3RpdmVzL2ljb24nO1xuaW1wb3J0IHtcbiAgVGhlbWVTZXJ2aWNlLFxufSBmcm9tICdAcnhhcC9uZ3gtdGhlbWUnO1xuaW1wb3J0IHtcbiAgY29lcmNlQXJyYXksXG4gIElzRnVuY3Rpb24sXG4gIFRoZW1lRGVuc2l0eSxcbn0gZnJvbSAnQHJ4YXAvdXRpbGl0aWVzJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIFJYQVBfU0VUVElOR1NfTUVOVV9JVEVNLFxuICBSWEFQX1NFVFRJTkdTX01FTlVfSVRFTV9DT01QT05FTlQsXG59IGZyb20gJy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBTZXR0aW5nc01lbnVJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLXNldHRpbmdzLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vc2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyBdLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0SWNvbkJ1dHRvbixcbiAgICBNYXRJY29uLFxuICAgIE1hdE1lbnUsXG4gICAgTWF0TWVudVRyaWdnZXIsXG4gICAgTWF0TWVudUl0ZW0sXG4gICAgQ2RrUG9ydGFsT3V0bGV0LFxuICAgIEljb25EaXJlY3RpdmUsXG4gICAgTmdJZixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NCdXR0b25Db21wb25lbnQge1xuXG4gIHB1YmxpYyBpc0Rldk1vZGUgPSBpc0Rldk1vZGUoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWUgPSBpbmplY3QoVGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgY3VzdG9tSXRlbUNvbXBvbmVudHM6IFNpZ25hbDxDb21wb25lbnRQb3J0YWw8dW5rbm93bj5bXT4gPSB0b1NpZ25hbChmcm9tKFByb21pc2UuYWxsKFxuICAgIGNvZXJjZUFycmF5KGluamVjdChSWEFQX1NFVFRJTkdTX01FTlVfSVRFTV9DT01QT05FTlQsIHsgb3B0aW9uYWw6IHRydWUgfSkpXG4gICAgICAubWFwKGl0ZW0gPT4gSXNGdW5jdGlvbihpdGVtKSA/IGl0ZW0oKSA6IGl0ZW0pLFxuICApKS5waXBlKG1hcChpdGVtcyA9PiBpdGVtcy5tYXAoaXRlbSA9PiBuZXcgQ29tcG9uZW50UG9ydGFsKGl0ZW0sIG51bGwsIHRoaXMuaW5qZWN0b3IpKSkpLCB7IGluaXRpYWxWYWx1ZTogW10gfSk7XG5cbiAgY3VzdG9tSXRlbXMgPSBzaWduYWwoY29lcmNlQXJyYXkoaW5qZWN0KFJYQVBfU0VUVElOR1NfTUVOVV9JVEVNLCB7IG9wdGlvbmFsOiB0cnVlIH0pKSk7XG5cbiAgcHJpdmF0ZSBzYXZlUHJldmlld0RlbnNpdHlWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIGN1cnJlbnREZW5zaXR5VmFsdWU6IFRoZW1lRGVuc2l0eSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc2F2ZVByZXZpZXdUeXBvZ3JhcGh5VmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjdXJyZW50VHlwb2dyYXBoeVZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgcmVhZG9ubHkgYXZhaWxhYmxlVHlwb2dyYXBoaWVzID0gdGhpcy50aGVtZS5nZXRBdmFpbGFibGVUeXBvZ3JhcGhpZXMoKTtcbiAgcHJpdmF0ZSBzYXZlUHJldmlld1RoZW1lVmFsdWUgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYXZhaWxhYmxlVGhlbWVzID0gdGhpcy50aGVtZS5nZXRBdmFpbGFibGVUaGVtZXMoKTtcbiAgcHJpdmF0ZSBjdXJyZW50VGhlbWVWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJldmlld0RlbnNpdHkoZGVuc2l0eTogVGhlbWVEZW5zaXR5KSB7XG4gICAgdGhpcy50aGVtZS5hcHBseURlbnNpdHkoZGVuc2l0eSk7XG4gIH1cblxuICByZXN0b3JlRGVuc2l0eSgpIHtcbiAgICB0aGlzLnRoZW1lLmFwcGx5RGVuc2l0eSh0aGlzLnRoZW1lLmRlbnNpdHkoKSk7XG4gIH1cblxuICBzZXREZW5zaXR5KGRlbnNpdHk6IFRoZW1lRGVuc2l0eSkge1xuICAgIHRoaXMudGhlbWUuc2V0RGVuc2l0eShkZW5zaXR5KTtcbiAgfVxuXG4gIHByZXZpZXdUeXBvZ3JhcGh5KHR5cG9ncmFwaHk6IHN0cmluZykge1xuICAgIHRoaXMudGhlbWUuYXBwbHlUeXBvZ3JhcGh5KHR5cG9ncmFwaHkpO1xuICB9XG5cbiAgcmVzdG9yZVR5cG9ncmFwaHkoKSB7XG4gICAgdGhpcy50aGVtZS5hcHBseVR5cG9ncmFwaHkodGhpcy50aGVtZS50eXBvZ3JhcGh5KCkpO1xuICB9XG5cbiAgc2V0VHlwb2dyYXBoeSh0eXBvZ3JhcGh5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRoZW1lLnNldFR5cG9ncmFwaHkodHlwb2dyYXBoeSk7XG4gIH1cblxuICBwcmV2aWV3VGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIHRoaXMudGhlbWUuYXBwbHlUaGVtZSh0aGVtZSk7XG4gIH1cblxuICByZXN0b3JlVGhlbWUoKSB7XG4gICAgdGhpcy50aGVtZS5hcHBseVRoZW1lKHRoaXMudGhlbWUudGhlbWVOYW1lKCkpO1xuICB9XG5cbiAgc2V0VGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIHRoaXMudGhlbWUuc2V0VGhlbWUodGhlbWUpO1xuICB9XG5cbiAgY2xpY2tJdGVtKGl0ZW06IFNldHRpbmdzTWVudUl0ZW0pIHtcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gaXRlbS5hY3Rpb24oKSk7XG4gIH1cbn1cbiIsIjxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBtYXQtaWNvbi1idXR0b24+XG4gIDxtYXQtaWNvbiBzdmdJY29uPVwiY29nXCI+PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIDxidXR0b24gKGNsaWNrKT1cInRoZW1lLnRvZ2dsZURhcmtUaGVtZSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICBAaWYgKHRoZW1lLmRhcmtNb2RlKCkpIHtcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiYnJpZ2h0bmVzcy0yXCI+PC9tYXQtaWNvbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiYnJpZ2h0bmVzcy01XCI+PC9tYXQtaWNvbj5cbiAgICB9XG4gICAgPHNwYW4gaTE4bj5Nb2RlPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGhlbWVNZW51XCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNvbXBhcmVcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+VGhlbWU8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICBAZm9yIChpdGVtIG9mIGN1c3RvbUl0ZW1zKCk7IHRyYWNrIGl0ZW0ubGFiZWwpIHtcbiAgICA8YnV0dG9uIChjbGljayk9XCJjbGlja0l0ZW0oaXRlbSlcIiBtYXQtbWVudS1pdGVtPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uIGFzIGljb25cIiBbcnhhcEljb25dPVwiaWNvblwiPjwvbWF0LWljb24+XG4gICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICB9XG4gIEBmb3IgKGl0ZW0gb2YgY3VzdG9tSXRlbUNvbXBvbmVudHMoKTsgdHJhY2sgaXRlbSkge1xuICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIml0ZW1cIj48L25nLXRlbXBsYXRlPlxuICB9XG48L21hdC1tZW51PlxuXG48bWF0LW1lbnUgI3RoZW1lTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGhlbWVEZW5zaXR5TWVudVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJtb3ZlLXJlc2l6ZVwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5EZW5zaXR5PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgQGlmIChhdmFpbGFibGVUeXBvZ3JhcGhpZXM/Lmxlbmd0aCkge1xuICAgIDxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRoZW1lRm9udE1lbnVcIiBtYXQtbWVudS1pdGVtPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJmb3JtYXQtZm9udFwiPjwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPkZvbnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIH1cbiAgQGlmIChhdmFpbGFibGVUaGVtZXM/Lmxlbmd0aCkge1xuICAgIDxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRoZW1lUHJlc2V0TWVudVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNoYXBlLW91dGxpbmVcIj48L21hdC1pY29uPlxuICAgICAgPHNwYW4gaTE4bj5QcmVzZXQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIH1cbjwvbWF0LW1lbnU+XG5cbjxtYXQtbWVudSAjdGhlbWVEZW5zaXR5TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2V0RGVuc2l0eSgwKVwiIChtb3VzZWVudGVyKT1cInByZXZpZXdEZW5zaXR5KDApXCIgKG1vdXNlbGVhdmUpPVwicmVzdG9yZURlbnNpdHkoKVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJzaXplLWxcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+Tm9ybWFsPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2V0RGVuc2l0eSgtMSlcIiAobW91c2VlbnRlcik9XCJwcmV2aWV3RGVuc2l0eSgtMSlcIiAobW91c2VsZWF2ZSk9XCJyZXN0b3JlRGVuc2l0eSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNpemUtbVwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5EZW5zZTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cInNldERlbnNpdHkoLTIpXCIgKG1vdXNlZW50ZXIpPVwicHJldmlld0RlbnNpdHkoLTIpXCIgKG1vdXNlbGVhdmUpPVwicmVzdG9yZURlbnNpdHkoKVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJzaXplLXNcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+VmVyeSBEZW5zZTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cInNldERlbnNpdHkoLTMpXCIgKG1vdXNlZW50ZXIpPVwicHJldmlld0RlbnNpdHkoLTMpXCIgKG1vdXNlbGVhdmUpPVwicmVzdG9yZURlbnNpdHkoKVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJzaXplLXhzXCI+PC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPkV4dHJlbWUgRGVuc2U8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9tYXQtbWVudT5cbjxtYXQtbWVudSAjdGhlbWVGb250TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgQGZvciAodHlwb2dyYXBoeU5hbWUgb2YgYXZhaWxhYmxlVHlwb2dyYXBoaWVzID8/IFtdOyB0cmFjayB0eXBvZ3JhcGh5TmFtZSkge1xuICAgIDxidXR0b24gKGNsaWNrKT1cInNldFR5cG9ncmFwaHkodHlwb2dyYXBoeU5hbWUpXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInByZXZpZXdUeXBvZ3JhcGh5KHR5cG9ncmFwaHlOYW1lKVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyZXN0b3JlVHlwb2dyYXBoeSgpXCJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW0+XG4gICAgICB7eyB0eXBvZ3JhcGh5TmFtZSB9fVxuICAgIDwvYnV0dG9uPlxuICB9XG48L21hdC1tZW51PlxuXG48bWF0LW1lbnUgI3RoZW1lUHJlc2V0TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgQGZvciAodGhlbWVOYW1lIG9mIGF2YWlsYWJsZVRoZW1lcyA/PyBbXTsgdHJhY2sgdGhlbWVOYW1lKSB7XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwic2V0VGhlbWUodGhlbWVOYW1lKVwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJwcmV2aWV3VGhlbWUodGhlbWVOYW1lKVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyZXN0b3JlVGhlbWUoKVwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuICAgICAge3sgdGhlbWVOYW1lIH19XG4gICAgPC9idXR0b24+XG4gIH1cbjwvbWF0LW1lbnU+XG4iXX0=
|