codexly-ui 0.0.17 → 0.0.18
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/codexly-ui.mjs +39 -36
- package/fesm2022/codexly-ui.mjs.map +1 -1
- package/index.d.ts +7 -8
- package/package.json +1 -1
package/fesm2022/codexly-ui.mjs
CHANGED
|
@@ -10885,12 +10885,13 @@ class ClxAppLayoutComponent {
|
|
|
10885
10885
|
_document = inject(DOCUMENT);
|
|
10886
10886
|
activeColor = input('indigo', ...(ngDevMode ? [{ debugName: "activeColor" }] : []));
|
|
10887
10887
|
_sidebarOpen = signal(false, ...(ngDevMode ? [{ debugName: "_sidebarOpen" }] : []));
|
|
10888
|
-
|
|
10888
|
+
collapsed = signal(false, ...(ngDevMode ? [{ debugName: "collapsed" }] : []));
|
|
10889
10889
|
_isMobile = signal(true, ...(ngDevMode ? [{ debugName: "_isMobile" }] : []));
|
|
10890
|
+
collapsedChange = output();
|
|
10890
10891
|
_showBackdrop = computed(() => this._sidebarOpen() && this._isMobile(), ...(ngDevMode ? [{ debugName: "_showBackdrop" }] : []));
|
|
10891
10892
|
_sidebarCls = computed(() => {
|
|
10892
|
-
const
|
|
10893
|
-
const width =
|
|
10893
|
+
const col = this.collapsed() && !this._isMobile();
|
|
10894
|
+
const width = col ? 'w-16' : 'w-72';
|
|
10894
10895
|
return [
|
|
10895
10896
|
`fixed inset-y-0 left-0 z-30 ${width} flex flex-col`,
|
|
10896
10897
|
'bg-slate-900 overflow-y-auto shrink-0',
|
|
@@ -10917,7 +10918,8 @@ class ClxAppLayoutComponent {
|
|
|
10917
10918
|
}
|
|
10918
10919
|
else {
|
|
10919
10920
|
this._sidebarOpen.set(false);
|
|
10920
|
-
this.
|
|
10921
|
+
this.collapsed.set(false);
|
|
10922
|
+
this.collapsedChange.emit(false);
|
|
10921
10923
|
}
|
|
10922
10924
|
});
|
|
10923
10925
|
};
|
|
@@ -10926,12 +10928,16 @@ class ClxAppLayoutComponent {
|
|
|
10926
10928
|
ngOnDestroy() {
|
|
10927
10929
|
this._mql?.removeEventListener('change', this._mqlListener);
|
|
10928
10930
|
}
|
|
10929
|
-
_toggleCollapsed() {
|
|
10931
|
+
_toggleCollapsed() {
|
|
10932
|
+
const next = !this.collapsed();
|
|
10933
|
+
this.collapsed.set(next);
|
|
10934
|
+
this.collapsedChange.emit(next);
|
|
10935
|
+
}
|
|
10930
10936
|
toggleSidebar() { this._sidebarOpen.update(v => !v); }
|
|
10931
10937
|
openSidebar() { this._sidebarOpen.set(true); }
|
|
10932
10938
|
closeSidebar() { this._sidebarOpen.set(false); }
|
|
10933
10939
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: ClxAppLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10934
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: ClxAppLayoutComponent, isStandalone: true, selector: "clx-app-layout", inputs: { activeColor: { classPropertyName: "activeColor", publicName: "activeColor", isSignal: true, isRequired: false, transformFunction: null } },
|
|
10940
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: ClxAppLayoutComponent, isStandalone: true, selector: "clx-app-layout", inputs: { activeColor: { classPropertyName: "activeColor", publicName: "activeColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsedChange: "collapsedChange" }, host: { classAttribute: "flex h-screen overflow-hidden" }, ngImport: i0, template: `
|
|
10935
10941
|
<!-- Mobile backdrop -->
|
|
10936
10942
|
@if (_showBackdrop()) {
|
|
10937
10943
|
<div
|
|
@@ -10955,7 +10961,7 @@ class ClxAppLayoutComponent {
|
|
|
10955
10961
|
type="button"
|
|
10956
10962
|
class="hidden lg:flex items-center justify-center w-8 h-8 rounded-md text-slate-500 hover:text-slate-700 hover:bg-slate-100 transition-colors shrink-0"
|
|
10957
10963
|
(click)="_toggleCollapsed()">
|
|
10958
|
-
<span clx-icon [name]="
|
|
10964
|
+
<span clx-icon [name]="collapsed() ? 'menu_open' : 'menu'" size="sm"></span>
|
|
10959
10965
|
</button>
|
|
10960
10966
|
<!-- Toggle button mobile -->
|
|
10961
10967
|
<button
|
|
@@ -10981,7 +10987,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
|
|
|
10981
10987
|
selector: 'clx-app-layout',
|
|
10982
10988
|
standalone: true,
|
|
10983
10989
|
imports: [ClxIconComponent],
|
|
10984
|
-
providers: [{ provide: ClxAppLayoutComponent, useExisting: ClxAppLayoutComponent }],
|
|
10985
10990
|
template: `
|
|
10986
10991
|
<!-- Mobile backdrop -->
|
|
10987
10992
|
@if (_showBackdrop()) {
|
|
@@ -11006,7 +11011,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
|
|
|
11006
11011
|
type="button"
|
|
11007
11012
|
class="hidden lg:flex items-center justify-center w-8 h-8 rounded-md text-slate-500 hover:text-slate-700 hover:bg-slate-100 transition-colors shrink-0"
|
|
11008
11013
|
(click)="_toggleCollapsed()">
|
|
11009
|
-
<span clx-icon [name]="
|
|
11014
|
+
<span clx-icon [name]="collapsed() ? 'menu_open' : 'menu'" size="sm"></span>
|
|
11010
11015
|
</button>
|
|
11011
11016
|
<!-- Toggle button mobile -->
|
|
11012
11017
|
<button
|
|
@@ -11029,7 +11034,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
|
|
|
11029
11034
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
11030
11035
|
host: { class: 'flex h-screen overflow-hidden' },
|
|
11031
11036
|
}]
|
|
11032
|
-
}], propDecorators: { activeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeColor", required: false }] }] } });
|
|
11037
|
+
}], propDecorators: { activeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeColor", required: false }] }], collapsedChange: [{ type: i0.Output, args: ["collapsedChange"] }] } });
|
|
11033
11038
|
|
|
11034
11039
|
const CLX_MENU_COLOR = new InjectionToken('CLX_MENU_COLOR');
|
|
11035
11040
|
// ── Item geometry ──────────────────────────────────────────────────────────────
|
|
@@ -11048,13 +11053,12 @@ class ClxMenuItemComponent {
|
|
|
11048
11053
|
route = input('', ...(ngDevMode ? [{ debugName: "route" }] : []));
|
|
11049
11054
|
color = input('indigo', ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
11050
11055
|
nested = input(false, ...(ngDevMode ? [{ debugName: "nested" }] : []));
|
|
11056
|
+
collapsed = input(false, ...(ngDevMode ? [{ debugName: "collapsed" }] : []));
|
|
11051
11057
|
_menuColorFn = inject(CLX_MENU_COLOR, { optional: true });
|
|
11052
|
-
_layout = inject(ClxAppLayoutComponent, { optional: true });
|
|
11053
11058
|
_hasParent = !!this._menuColorFn;
|
|
11054
|
-
_collapsed = computed(() => this._layout?._collapsed() ?? false, ...(ngDevMode ? [{ debugName: "_collapsed" }] : []));
|
|
11055
11059
|
_resolvedColor = computed(() => this._menuColorFn?.() ?? this.color(), ...(ngDevMode ? [{ debugName: "_resolvedColor" }] : []));
|
|
11056
11060
|
_geom = computed(() => {
|
|
11057
|
-
if (this.
|
|
11061
|
+
if (this.collapsed())
|
|
11058
11062
|
return 'px-0 justify-center';
|
|
11059
11063
|
return this.nested() ? NAV_ITEM_L2 : NAV_ITEM_L1;
|
|
11060
11064
|
}, ...(ngDevMode ? [{ debugName: "_geom" }] : []));
|
|
@@ -11065,25 +11069,25 @@ class ClxMenuItemComponent {
|
|
|
11065
11069
|
}, ...(ngDevMode ? [{ debugName: "_idleCls" }] : []));
|
|
11066
11070
|
_activeCls = computed(() => {
|
|
11067
11071
|
const t = resolveColor(this._resolvedColor());
|
|
11068
|
-
if (this.
|
|
11072
|
+
if (this.collapsed()) {
|
|
11069
11073
|
return `${NAV_ITEM_BASE} ${this._geom()} ${t.textSubtle} font-semibold`;
|
|
11070
11074
|
}
|
|
11071
11075
|
return `${NAV_ITEM_BASE} ${this._geom()} ${t.textSubtle} font-semibold border-l-2 ${t.borderLight} !pl-[22px] ${t.hoverBgMuted}`;
|
|
11072
11076
|
}, ...(ngDevMode ? [{ debugName: "_activeCls" }] : []));
|
|
11073
11077
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: ClxMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11074
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: ClxMenuItemComponent, isStandalone: true, selector: "clx-menu-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, route: { classPropertyName: "route", publicName: "route", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, nested: { classPropertyName: "nested", publicName: "nested", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "block" }, ngImport: i0, template: `
|
|
11078
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: ClxMenuItemComponent, isStandalone: true, selector: "clx-menu-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, route: { classPropertyName: "route", publicName: "route", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, nested: { classPropertyName: "nested", publicName: "nested", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "block" }, ngImport: i0, template: `
|
|
11075
11079
|
<a
|
|
11076
11080
|
[routerLink]="route() || null"
|
|
11077
11081
|
routerLinkActive
|
|
11078
11082
|
#rla="routerLinkActive"
|
|
11079
11083
|
[routerLinkActiveOptions]="{ exact: false }"
|
|
11080
11084
|
[class]="rla.isActive ? _activeCls() : _idleCls()"
|
|
11081
|
-
[title]="
|
|
11085
|
+
[title]="collapsed() ? label() : ''"
|
|
11082
11086
|
(click)="route() ? null : $event.preventDefault()">
|
|
11083
11087
|
@if (icon()) {
|
|
11084
11088
|
<span clx-icon [name]="icon()" size="sm" [class]="rla.isActive || !_hasParent ? _iconCls() : 'text-slate-500'"></span>
|
|
11085
11089
|
}
|
|
11086
|
-
@if (!
|
|
11090
|
+
@if (!collapsed()) {
|
|
11087
11091
|
<span class="flex-1 truncate">{{ label() }}</span>
|
|
11088
11092
|
}
|
|
11089
11093
|
</a>
|
|
@@ -11102,12 +11106,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
|
|
|
11102
11106
|
#rla="routerLinkActive"
|
|
11103
11107
|
[routerLinkActiveOptions]="{ exact: false }"
|
|
11104
11108
|
[class]="rla.isActive ? _activeCls() : _idleCls()"
|
|
11105
|
-
[title]="
|
|
11109
|
+
[title]="collapsed() ? label() : ''"
|
|
11106
11110
|
(click)="route() ? null : $event.preventDefault()">
|
|
11107
11111
|
@if (icon()) {
|
|
11108
11112
|
<span clx-icon [name]="icon()" size="sm" [class]="rla.isActive || !_hasParent ? _iconCls() : 'text-slate-500'"></span>
|
|
11109
11113
|
}
|
|
11110
|
-
@if (!
|
|
11114
|
+
@if (!collapsed()) {
|
|
11111
11115
|
<span class="flex-1 truncate">{{ label() }}</span>
|
|
11112
11116
|
}
|
|
11113
11117
|
</a>
|
|
@@ -11116,15 +11120,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
|
|
|
11116
11120
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
11117
11121
|
host: { class: 'block' },
|
|
11118
11122
|
}]
|
|
11119
|
-
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], route: [{ type: i0.Input, args: [{ isSignal: true, alias: "route", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], nested: [{ type: i0.Input, args: [{ isSignal: true, alias: "nested", required: false }] }] } });
|
|
11123
|
+
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], route: [{ type: i0.Input, args: [{ isSignal: true, alias: "route", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], nested: [{ type: i0.Input, args: [{ isSignal: true, alias: "nested", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }] } });
|
|
11120
11124
|
|
|
11121
11125
|
class ClxMenuComponent {
|
|
11122
11126
|
label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
11123
11127
|
icon = input('', ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
11124
11128
|
color = input('indigo', ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
11129
|
+
collapsed = input(false, ...(ngDevMode ? [{ debugName: "collapsed" }] : []));
|
|
11125
11130
|
_isExpanded = signal(false, ...(ngDevMode ? [{ debugName: "_isExpanded" }] : []));
|
|
11126
|
-
_layout = inject(ClxAppLayoutComponent, { optional: true });
|
|
11127
|
-
_collapsed = computed(() => this._layout?._collapsed() ?? false, ...(ngDevMode ? [{ debugName: "_collapsed" }] : []));
|
|
11128
11131
|
_childItems;
|
|
11129
11132
|
_childRoutes = [];
|
|
11130
11133
|
_router = inject(Router);
|
|
@@ -11140,11 +11143,11 @@ class ClxMenuComponent {
|
|
|
11140
11143
|
}
|
|
11141
11144
|
_iconCls = computed(() => resolveColor(this.color()).textSubtle, ...(ngDevMode ? [{ debugName: "_iconCls" }] : []));
|
|
11142
11145
|
_buttonCls = computed(() => {
|
|
11143
|
-
const geom = this.
|
|
11146
|
+
const geom = this.collapsed() ? 'px-0 justify-center' : NAV_ITEM_L1;
|
|
11144
11147
|
const base = `${NAV_ITEM_BASE} ${geom}`;
|
|
11145
11148
|
const t = resolveColor(this.color());
|
|
11146
11149
|
if (this._isChildActive()) {
|
|
11147
|
-
if (this.
|
|
11150
|
+
if (this.collapsed())
|
|
11148
11151
|
return `${base} ${t.textSubtle} font-semibold`;
|
|
11149
11152
|
return `${base} ${t.textSubtle} font-semibold border-l-2 ${t.borderLight} !pl-[22px]`;
|
|
11150
11153
|
}
|
|
@@ -11168,18 +11171,18 @@ class ClxMenuComponent {
|
|
|
11168
11171
|
this._isExpanded.update(v => !v);
|
|
11169
11172
|
}
|
|
11170
11173
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: ClxMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11171
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: ClxMenuComponent, isStandalone: true, selector: "clx-menu", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "block" }, providers: [
|
|
11174
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: ClxMenuComponent, isStandalone: true, selector: "clx-menu", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "block" }, providers: [
|
|
11172
11175
|
{ provide: CLX_MENU_COLOR, useFactory: (self) => () => self.color(), deps: [ClxMenuComponent] },
|
|
11173
|
-
], queries: [{ propertyName: "_childItems", predicate: ClxMenuItemComponent }], ngImport: i0, template: `
|
|
11176
|
+
], queries: [{ propertyName: "_childItems", predicate: ClxMenuItemComponent, descendants: true }], ngImport: i0, template: `
|
|
11174
11177
|
<button
|
|
11175
11178
|
type="button"
|
|
11176
11179
|
[class]="_buttonCls()"
|
|
11177
|
-
[title]="
|
|
11178
|
-
(click)="!
|
|
11180
|
+
[title]="collapsed() ? label() : ''"
|
|
11181
|
+
(click)="!collapsed() && _toggle()">
|
|
11179
11182
|
@if (icon()) {
|
|
11180
11183
|
<span clx-icon [name]="icon()" size="sm" [class]="_iconCls()"></span>
|
|
11181
11184
|
}
|
|
11182
|
-
@if (!
|
|
11185
|
+
@if (!collapsed()) {
|
|
11183
11186
|
<span class="flex-1 text-left truncate">{{ label() }}</span>
|
|
11184
11187
|
<span
|
|
11185
11188
|
clx-icon
|
|
@@ -11191,7 +11194,7 @@ class ClxMenuComponent {
|
|
|
11191
11194
|
}
|
|
11192
11195
|
</button>
|
|
11193
11196
|
|
|
11194
|
-
@if (!
|
|
11197
|
+
@if (!collapsed()) {
|
|
11195
11198
|
<div
|
|
11196
11199
|
[class]="NAV_CHILDREN_WRAPPER"
|
|
11197
11200
|
[style.grid-template-rows]="_isExpanded() ? '1fr' : '0fr'">
|
|
@@ -11217,12 +11220,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
|
|
|
11217
11220
|
<button
|
|
11218
11221
|
type="button"
|
|
11219
11222
|
[class]="_buttonCls()"
|
|
11220
|
-
[title]="
|
|
11221
|
-
(click)="!
|
|
11223
|
+
[title]="collapsed() ? label() : ''"
|
|
11224
|
+
(click)="!collapsed() && _toggle()">
|
|
11222
11225
|
@if (icon()) {
|
|
11223
11226
|
<span clx-icon [name]="icon()" size="sm" [class]="_iconCls()"></span>
|
|
11224
11227
|
}
|
|
11225
|
-
@if (!
|
|
11228
|
+
@if (!collapsed()) {
|
|
11226
11229
|
<span class="flex-1 text-left truncate">{{ label() }}</span>
|
|
11227
11230
|
<span
|
|
11228
11231
|
clx-icon
|
|
@@ -11234,7 +11237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
|
|
|
11234
11237
|
}
|
|
11235
11238
|
</button>
|
|
11236
11239
|
|
|
11237
|
-
@if (!
|
|
11240
|
+
@if (!collapsed()) {
|
|
11238
11241
|
<div
|
|
11239
11242
|
[class]="NAV_CHILDREN_WRAPPER"
|
|
11240
11243
|
[style.grid-template-rows]="_isExpanded() ? '1fr' : '0fr'">
|
|
@@ -11250,9 +11253,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
|
|
|
11250
11253
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
11251
11254
|
host: { class: 'block' },
|
|
11252
11255
|
}]
|
|
11253
|
-
}], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], _childItems: [{
|
|
11256
|
+
}], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }], _childItems: [{
|
|
11254
11257
|
type: ContentChildren,
|
|
11255
|
-
args: [ClxMenuItemComponent, { descendants:
|
|
11258
|
+
args: [ClxMenuItemComponent, { descendants: true }]
|
|
11256
11259
|
}] } });
|
|
11257
11260
|
|
|
11258
11261
|
class ClxNavGroupComponent {
|