@acorex/platform 18.0.13 → 18.0.14
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/esm2022/layout/builder/lib/builder/widget-catalog.mjs +3 -2
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +2 -1
- package/esm2022/layout/designer/lib/board/board.component.mjs +1 -1
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +5 -4
- package/esm2022/layout/designer/lib/designer.service.mjs +6 -4
- package/esm2022/layout/designer/lib/header-menu/header-menu.component.mjs +1 -1
- package/esm2022/layout/designer/lib/helpers/add-widget-button/add-widget-button.component.mjs +3 -3
- package/esm2022/layout/designer/lib/helpers/grid-drawer/grid-drawer.component.mjs +3 -3
- package/esm2022/layout/designer/lib/preview/preview.component.mjs +20 -0
- package/esm2022/layout/designer/lib/widget-designer-renderer.component.mjs +14 -6
- package/esm2022/layout/designer/lib/widget-picker/widget-picker.component.mjs +3 -3
- package/esm2022/widgets/lib/properties/editors.props.mjs +2 -1
- package/esm2022/widgets/lib/properties/layout.props.mjs +106 -1
- package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.mjs +4 -4
- package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget.config.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.mjs +4 -4
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +38 -44
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget.config.mjs +3 -3
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.mjs +97 -0
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.mjs +18 -0
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.mjs +34 -0
- package/esm2022/widgets/lib/widgets/layout/grid-item/index.mjs +5 -0
- package/esm2022/widgets/lib/widgets.module.mjs +4 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +3 -1
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer-preview.component-xkvSLydm.mjs +23 -0
- package/fesm2022/acorex-platform-layout-designer-preview.component-xkvSLydm.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-designer-widget-picker.component-CaMaBGON.mjs → acorex-platform-layout-designer-widget-picker.component-DXgcm-fP.mjs} +3 -3
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DXgcm-fP.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-designer.mjs +28 -17
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +317 -58
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/builder/lib/builder/widget.types.d.ts +7 -5
- package/layout/designer/lib/designer.service.d.ts +1 -1
- package/layout/designer/lib/preview/preview.component.d.ts +8 -0
- package/layout/designer/lib/widget-designer-renderer.component.d.ts +1 -0
- package/package.json +14 -13
- package/widgets/lib/properties/layout.props.d.ts +5 -0
- package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +1 -5
- package/widgets/lib/widgets/layout/grid/grid-widget.config.d.ts +1 -1
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.d.ts +15 -0
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-print.component.d.ts +6 -0
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +6 -0
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/layout/grid-item/index.d.ts +4 -0
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-CaMaBGON.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AXPMetaData, AXPOptionsData, AXPPartialNested, AXPValidationRules } from '@acorex/platform/core';
|
|
2
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { InjectionToken, Signal } from '@angular/core';
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { AXPLayoutElement } from './builder.service';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -73,7 +73,8 @@ export interface AXPWidgetTypesMap {
|
|
|
73
73
|
document: 'document-layout';
|
|
74
74
|
lookup: 'lookup-editor';
|
|
75
75
|
formField: 'form-field';
|
|
76
|
-
grid: 'grid';
|
|
76
|
+
grid: 'grid-layout';
|
|
77
|
+
gridItem: 'grid-item-layout';
|
|
77
78
|
qrcode: 'qrcode';
|
|
78
79
|
}
|
|
79
80
|
export interface AXPWidgetNodeToken {
|
|
@@ -129,12 +130,12 @@ export declare abstract class AXPWidgetComponent<T = any | null | void> extends
|
|
|
129
130
|
protected readonly name: string | undefined;
|
|
130
131
|
protected readonly defaultValue: any;
|
|
131
132
|
protected readonly _children: import("@angular/core").WritableSignal<AXPWidgetNode[]>;
|
|
132
|
-
protected children:
|
|
133
|
+
protected children: Signal<AXPWidgetNode[]>;
|
|
133
134
|
protected readonly config: AXPWidgetConfig;
|
|
134
135
|
protected _options: import("@angular/core").WritableSignal<any>;
|
|
135
|
-
protected options:
|
|
136
|
+
protected options: Signal<any>;
|
|
136
137
|
private readonly contextService;
|
|
137
|
-
protected readonly rawValue:
|
|
138
|
+
protected readonly rawValue: Signal<T>;
|
|
138
139
|
readonly onReady: Subject<void>;
|
|
139
140
|
private isRendered;
|
|
140
141
|
private _id;
|
|
@@ -158,6 +159,7 @@ export declare abstract class AXPWidgetComponent<T = any | null | void> extends
|
|
|
158
159
|
}
|
|
159
160
|
export declare abstract class AXPContainerWidgetComponent<T> extends AXPWidgetComponent<T> {
|
|
160
161
|
readonly node: AXPWidgetNode;
|
|
162
|
+
outerClass: Signal<any>;
|
|
161
163
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPContainerWidgetComponent<any>, never>;
|
|
162
164
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXPContainerWidgetComponent<any>>;
|
|
163
165
|
}
|
|
@@ -76,7 +76,7 @@ export declare class AXPDesignerService {
|
|
|
76
76
|
focus(command: AXPDesignerFocusCommand): void;
|
|
77
77
|
refresh(command: AXPDesignerRefreshCommand): void;
|
|
78
78
|
private findBreadcrumbs;
|
|
79
|
-
showPicker(currentNode: AXPWidgetNode): Promise<
|
|
79
|
+
showPicker(currentNode: AXPWidgetNode): Promise<AXPWidgetNode[]>;
|
|
80
80
|
private createDoc;
|
|
81
81
|
private createPage;
|
|
82
82
|
addNewPage(): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPLayoutDesignerPreviewComponent implements OnInit {
|
|
4
|
+
constructor();
|
|
5
|
+
ngOnInit(): void;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPLayoutDesignerPreviewComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPLayoutDesignerPreviewComponent, "axp-layout-preview", never, {}, {}, never, never, true, never>;
|
|
8
|
+
}
|
|
@@ -32,6 +32,7 @@ export declare class AXPWidgetDesignerRendererComponent {
|
|
|
32
32
|
private removeOverlay;
|
|
33
33
|
preprocessAndInitialOptions(obj: any, pathPrefix?: string): void;
|
|
34
34
|
private applyOptions;
|
|
35
|
+
private get __class();
|
|
35
36
|
onKeydownHandler(event: KeyboardEvent): Promise<void>;
|
|
36
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPWidgetDesignerRendererComponent, never>;
|
|
37
38
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXPWidgetDesignerRendererComponent, "axp-widget-designer-renderer", never, { "parentNode": { "alias": "parentNode"; "required": false; "isSignal": true; }; "index": { "alias": "index"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "node": { "alias": "node"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/platform",
|
|
3
|
-
"version": "18.0.
|
|
3
|
+
"version": "18.0.14",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=18.0.0",
|
|
6
6
|
"@angular/core": ">=18.0.0",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"jwt-decode": "^4.0.0",
|
|
12
12
|
"leaflet": "^1.9.4",
|
|
13
13
|
"leaflet-draw": "^1.0.4",
|
|
14
|
+
"leaflet.locatecontrol": "^0.81.1",
|
|
14
15
|
"lodash-es": "^4.17.21",
|
|
15
16
|
"@types/lodash-es": "^4.17.8",
|
|
16
17
|
"memoizee": "^0.4.15",
|
|
@@ -44,18 +45,6 @@
|
|
|
44
45
|
"esm": "./esm2022/auth/acorex-platform-auth.mjs",
|
|
45
46
|
"default": "./fesm2022/acorex-platform-auth.mjs"
|
|
46
47
|
},
|
|
47
|
-
"./common": {
|
|
48
|
-
"types": "./common/index.d.ts",
|
|
49
|
-
"esm2022": "./esm2022/common/acorex-platform-common.mjs",
|
|
50
|
-
"esm": "./esm2022/common/acorex-platform-common.mjs",
|
|
51
|
-
"default": "./fesm2022/acorex-platform-common.mjs"
|
|
52
|
-
},
|
|
53
|
-
"./core": {
|
|
54
|
-
"types": "./core/index.d.ts",
|
|
55
|
-
"esm2022": "./esm2022/core/acorex-platform-core.mjs",
|
|
56
|
-
"esm": "./esm2022/core/acorex-platform-core.mjs",
|
|
57
|
-
"default": "./fesm2022/acorex-platform-core.mjs"
|
|
58
|
-
},
|
|
59
48
|
"./layouts": {
|
|
60
49
|
"types": "./layouts/index.d.ts",
|
|
61
50
|
"esm2022": "./esm2022/layouts/acorex-platform-layouts.mjs",
|
|
@@ -74,6 +63,18 @@
|
|
|
74
63
|
"esm": "./esm2022/native/acorex-platform-native.mjs",
|
|
75
64
|
"default": "./fesm2022/acorex-platform-native.mjs"
|
|
76
65
|
},
|
|
66
|
+
"./common": {
|
|
67
|
+
"types": "./common/index.d.ts",
|
|
68
|
+
"esm2022": "./esm2022/common/acorex-platform-common.mjs",
|
|
69
|
+
"esm": "./esm2022/common/acorex-platform-common.mjs",
|
|
70
|
+
"default": "./fesm2022/acorex-platform-common.mjs"
|
|
71
|
+
},
|
|
72
|
+
"./core": {
|
|
73
|
+
"types": "./core/index.d.ts",
|
|
74
|
+
"esm2022": "./esm2022/core/acorex-platform-core.mjs",
|
|
75
|
+
"esm": "./esm2022/core/acorex-platform-core.mjs",
|
|
76
|
+
"default": "./fesm2022/acorex-platform-core.mjs"
|
|
77
|
+
},
|
|
77
78
|
"./widgets": {
|
|
78
79
|
"types": "./widgets/index.d.ts",
|
|
79
80
|
"esm2022": "./esm2022/widgets/acorex-platform-widgets.mjs",
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { AXPWidgetProperty } from '@acorex/platform/layout/builder';
|
|
2
2
|
export declare const AXP_LAYOUT_GAP_PROPERTY: AXPWidgetProperty;
|
|
3
|
+
export declare const AXP_LAYOUT_COL_SPAN_PROPERTY: AXPWidgetProperty;
|
|
4
|
+
export declare const AXP_LAYOUT_COL_START_PROPERTY: AXPWidgetProperty;
|
|
5
|
+
export declare const AXP_LAYOUT_COL_END_PROPERTY: AXPWidgetProperty;
|
|
3
6
|
export declare const AXP_LAYOUT_COLUMNS_PROPERTY: AXPWidgetProperty;
|
|
4
7
|
export declare const AXP_LAYOUT_ROWS_PROPERTY: AXPWidgetProperty;
|
|
8
|
+
export declare const AXP_FLEX_JUSTIFY_PROPERTY: AXPWidgetProperty;
|
|
9
|
+
export declare const AXP_FLEX_ALIGN_PROPERTY: AXPWidgetProperty;
|
|
@@ -2,19 +2,15 @@ import { AXPContainerWidgetComponent } from '@acorex/platform/layout/builder';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class AXPGridWidgetDesignerComponent extends AXPContainerWidgetComponent<void> {
|
|
4
4
|
private designerService;
|
|
5
|
-
private element;
|
|
6
5
|
protected cols: import("@angular/core").Signal<number>;
|
|
7
6
|
protected rows: import("@angular/core").Signal<number>;
|
|
8
7
|
protected gap: import("@angular/core").Signal<number>;
|
|
9
8
|
protected cells: import("@angular/core").Signal<number[]>;
|
|
10
|
-
protected settled: import("@angular/core").
|
|
11
|
-
private placeholder;
|
|
12
|
-
private e;
|
|
9
|
+
protected settled: import("@angular/core").Signal<boolean>;
|
|
13
10
|
protected handleDrawerSelect(e: {
|
|
14
11
|
rows: number;
|
|
15
12
|
cols: number;
|
|
16
13
|
}): void;
|
|
17
|
-
private get __class();
|
|
18
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPGridWidgetDesignerComponent, never>;
|
|
19
15
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXPGridWidgetDesignerComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
20
16
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AXPContainerWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPGridItemWidgetDesignerComponent extends AXPContainerWidgetComponent<void> {
|
|
4
|
+
private designerService;
|
|
5
|
+
protected colSpan: import("@angular/core").Signal<number>;
|
|
6
|
+
protected colStart: import("@angular/core").Signal<number>;
|
|
7
|
+
protected colEnd: import("@angular/core").Signal<number>;
|
|
8
|
+
protected flexAlign: import("@angular/core").Signal<string>;
|
|
9
|
+
protected flexJustify: import("@angular/core").Signal<string>;
|
|
10
|
+
protected handleSlotClick(): Promise<void>;
|
|
11
|
+
private get __class();
|
|
12
|
+
outerClass: import("@angular/core").Signal<any>;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPGridItemWidgetDesignerComponent, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPGridItemWidgetDesignerComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPGridItemWidgetPrintComponent extends AXPWidgetComponent<any> {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPGridItemWidgetPrintComponent, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPGridItemWidgetPrintComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPGridItemWidgetViewComponent extends AXPWidgetComponent<any> {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPGridItemWidgetViewComponent, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPGridItemWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
6
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-designer-widget-picker.component-CaMaBGON.mjs","sources":["../../../../libs/platform/layout/designer/src/lib/widget-picker/widget-picker.component.ts","../../../../libs/platform/layout/designer/src/lib/widget-picker/widget-picker.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule, AXTabStripChangedEvent } from '@acorex/components/tabs';\nimport { AXPStickyDirective } from '@acorex/platform/common';\nimport { AXP_WIDGETS_GROUPS, AXPWidgetConfig, AXPWidgetGroup } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, model, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { orderBy } from 'lodash-es';\n\n\nexport interface AXPDisplayWidgetConfig extends AXPWidgetConfig {\n pinned: boolean;\n}\n\n\n@Component({\n standalone: true,\n imports: [CommonModule, AXCommonModule, FormsModule, AXButtonModule, AXDecoratorModule, AXTabsModule, AXSearchBoxModule, AXPStickyDirective],\n templateUrl: './widget-picker.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./widget-picker.component.scss'],\n})\nexport class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {\n\n\n protected searchTerm = model('');\n\n // Signals\n private widgets: AXPWidgetConfig[] = [];\n private displayWidgets = signal<AXPDisplayWidgetConfig[]>([]);\n\n // Signal to track selected widgets\n protected selectedWidgets = signal<AXPDisplayWidgetConfig[]>([]);\n\n // Computed for filtered and ordered widget list\n private orderedList = computed(() => {\n const search = this.searchTerm().toLowerCase();\n const selectedTabName = this.selectedTab().name;\n\n return orderBy(\n this.displayWidgets().filter(w => {\n const matchesTab = selectedTabName === 'all' || w.group.name === selectedTabName;\n const matchesSearch = !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);\n return matchesTab && matchesSearch;\n }),\n ['pinned', 'title'], ['desc', 'asc']\n );\n });\n\n // Pinned and regular lists\n protected pinnedList = computed(() => this.orderedList().filter(c => c.pinned));\n protected regularList = computed(() => this.orderedList().filter(c => !c.pinned));\n\n // Tabs for the widget groups\n protected tabs: AXPWidgetGroup[] = orderBy([{ name: 'all', title: 'All', order: 0 }, ...AXP_WIDGETS_GROUPS], c => c.order);\n protected currentTabIndex = signal(0);\n protected selectedTab = computed(() => this.tabs[this.currentTabIndex()]);\n\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n this.displayWidgets.set(this.widgets.map(c => ({ ...c, pinned: false })))\n }\n\n protected handleTabChange(event: AXTabStripChangedEvent): void {\n const indx = event.index;\n if (this.currentTabIndex() != indx) {\n this.currentTabIndex.set(indx);\n }\n }\n\n protected handleClick(event: MouseEvent, widget: AXPDisplayWidgetConfig) {\n //this.close({ widgets: [widget] });\n if (event.ctrlKey) {\n const currentSelection = this.selectedWidgets();\n const isAlreadySelected = currentSelection.some(w => w === widget);\n\n if (isAlreadySelected) {\n // Deselect widget if already selected\n this.selectedWidgets.set(currentSelection.filter(w => w !== widget));\n } else {\n // Add widget to selection\n this.selectedWidgets.set([...currentSelection, widget]);\n }\n } else {\n // If CTRL is not pressed, select only the clicked widget\n //this.selectedWidgets.set([widget]);\n this.close({ widgets: [widget] });\n }\n }\n\n protected handlePinClick(e: MouseEvent, widget: AXPDisplayWidgetConfig) {\n e.stopPropagation();\n widget.pinned = !widget.pinned;\n this.displayWidgets.set([...this.displayWidgets()]);\n }\n\n // Check if a widget is selected\n protected isWidgetSelected(widget: AXPDisplayWidgetConfig): boolean {\n return this.selectedWidgets().includes(widget);\n }\n\n protected handleConfirmSelection(): void {\n this.close({ widgets: this.selectedWidgets() });\n }\n\n}\n","<div class=\"ax-flex ax-flex-col lg:ax-h-[75vh]\">\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for(w of tabs;track $index)\n {\n <ax-tab-item [text]=\"w.title\" [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all \" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-shadow-xl'\" [stickyParent]=\"content\" [stickyOffset]=\"10\">\n <ax-search-box look=\"fill\" placeholder=\"e.g. Button, Text, ...\" [(ngModel)]=\"searchTerm\" [delayTime]=\"300\"\n [axAutoFocus]=\"true\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <ng-template #itemTpl let-w>\n <div (click)=\"handleClick($event,w)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-100 ax-cursor-pointer\"\n [class.ax-bg-primary-100]=\"isWidgetSelected(w)\">\n <div\n class=\"ax-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border ax-border-neutral-200 ax-text-neutral-500 ax-bg-neutral-100 group-hover:ax-text-primary-500\">\n <i [ngClass]=\"w.icon\" class=\"ax-text-lg group-hover:ax-text-primary-500\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-semibold ax-text-sm\">{{w.title}}</div>\n <div (click)=\"handlePinClick($event,w)\">\n @if (w.pinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-text-neutral-400 ax-rotate-45\"></i>\n }\n @else {\n <i\n class=\"fa-light fa-thumbtack ax-text-sm ax-text-neutral-400 ax-rotate-45 ax-invisible group-hover:ax-visible\"></i>\n }\n </div>\n </div>\n <span class=\"ax-text-xs ax-text-neutral-400 ax-truncate\">\n {{w.description}}\n </span>\n </div>\n </div>\n </ng-template>\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of pinnedList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n @if(pinnedList().length)\n {\n <hr class=\"ax-my-4 ax-border-dashed\">\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of regularList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n </div>\n </div>\n</div>\n@if(selectedWidgets().length)\n{\n<ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" color=\"primary\" text=\"{{ selectedWidgets().length }} Selected\"\n (onClick)=\"handleConfirmSelection()\"></ax-button>\n </ax-suffix>\n</ax-footer>\n}"],"names":["i5","i6"],"mappings":"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"}
|