@provoly/dashboard 0.18.2 → 0.18.4
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/assets/svgs/clear_filter.svg +12 -0
- package/assets/svgs/refresh_data.svg +15 -0
- package/assets/svgs/refresh_filter.svg +13 -0
- package/assets/svgs/trash.svg +1 -0
- package/components/color-picker/color-picker.component.d.ts +58 -0
- package/components/color-picker/color-picker.module.d.ts +9 -0
- package/components/color-picker/index.d.ts +5 -0
- package/components/color-picker/public-api.d.ts +2 -0
- package/components/scheme-picker/index.d.ts +5 -0
- package/components/scheme-picker/public-api.d.ts +3 -0
- package/components/scheme-picker/scheme-picker.component.d.ts +34 -0
- package/components/scheme-picker/scheme-picker.module.d.ts +11 -0
- package/components/scheme-picker/scheme.service.d.ts +12 -0
- package/dataset/components/dataset-card/dataset-card.component.d.ts +11 -3
- package/dataset/i18n/en.translations.d.ts +1 -0
- package/dataset/i18n/fr.translations.d.ts +1 -0
- package/dataset/style/_o-pry-dataset-card.scss +16 -1
- package/dataset/style/_o-pry-dataset.scss +18 -3
- package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +7 -5
- package/esm2022/components/color-picker/color-picker.component.mjs +314 -0
- package/esm2022/components/color-picker/color-picker.module.mjs +20 -0
- package/esm2022/components/color-picker/provoly-dashboard-components-color-picker.mjs +5 -0
- package/esm2022/components/color-picker/public-api.mjs +3 -0
- package/esm2022/components/scheme-picker/provoly-dashboard-components-scheme-picker.mjs +5 -0
- package/esm2022/components/scheme-picker/public-api.mjs +4 -0
- package/esm2022/components/scheme-picker/scheme-picker.component.mjs +104 -0
- package/esm2022/components/scheme-picker/scheme-picker.module.mjs +22 -0
- package/esm2022/components/scheme-picker/scheme.service.mjs +47 -0
- package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +26 -9
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
- package/esm2022/dataset/components/dataset.component.mjs +3 -3
- package/esm2022/dataset/i18n/en.translations.mjs +2 -1
- package/esm2022/dataset/i18n/fr.translations.mjs +2 -1
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/lib/core/i18n/en.translations.mjs +6 -2
- package/esm2022/lib/core/i18n/fr.translations.mjs +6 -2
- package/esm2022/lib/core/model/widget-aggregated-chart-manifest.interface.mjs +1 -1
- package/esm2022/lib/core/model/widget-chart-manifest.interface.mjs +2 -1
- package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +4 -1
- package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
- package/esm2022/lib/core/store/search/search.actions.mjs +3 -2
- package/esm2022/lib/core/store/search/search.reducer.mjs +6 -1
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +16 -11
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +3 -3
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/components/restitution/restitution.component.mjs +11 -20
- package/esm2022/restitution/model/restitution.model.mjs +1 -1
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +134 -26
- package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +19 -2
- package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +19 -2
- package/esm2022/widgets/widget-aggregated-chart/widget-aggregated-chart.module.mjs +16 -5
- package/esm2022/widgets/widget-chart/i18n/en.translations.mjs +3 -2
- package/esm2022/widgets/widget-chart/i18n/fr.translations.mjs +3 -2
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-admin.mjs +6 -4
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-color-picker.mjs +337 -0
- package/fesm2022/provoly-dashboard-components-color-picker.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +171 -0
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-dataset.mjs +29 -14
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +4 -4
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +10 -19
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +183 -30
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +4 -2
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +37 -13
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/i18n/en.translations.d.ts +4 -0
- package/lib/core/i18n/fr.translations.d.ts +4 -0
- package/lib/core/model/widget-aggregated-chart-manifest.interface.d.ts +7 -0
- package/lib/core/model/widget-chart-manifest.interface.d.ts +1 -0
- package/lib/core/store/data-source/data-source.model.d.ts +0 -2
- package/lib/core/store/search/search.actions.d.ts +7 -0
- package/lib/dashboard/components/dashboard.component.d.ts +2 -0
- package/package.json +19 -7
- package/presentation/style/_o-pry-new-presentation.scss +2 -1
- package/restitution/components/restitution/restitution.component.d.ts +0 -2
- package/restitution/model/restitution.model.d.ts +1 -1
- package/styles/components/_a-color-picker.scss +62 -0
- package/styles/components/_a-page-loader.scss +14 -0
- package/styles/components/_m-color-scheme.scss +20 -0
- package/styles/main.scss +3 -0
- package/styles-theme/components-theme/_o-pry-admin-classes-customize.theme.scss +4 -0
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +17 -5
- package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +17 -0
- package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +17 -0
- package/widgets/widget-aggregated-chart/widget-aggregated-chart.module.d.ts +3 -1
- package/widgets/widget-chart/i18n/en.translations.d.ts +1 -0
- package/widgets/widget-chart/i18n/fr.translations.d.ts +1 -0
|
@@ -234,7 +234,11 @@ const enTranslations$1 = {
|
|
|
234
234
|
},
|
|
235
235
|
modalTitle: 'Do you want to confirm?',
|
|
236
236
|
itemId: 'Id',
|
|
237
|
-
class: 'Class'
|
|
237
|
+
class: 'Class',
|
|
238
|
+
colorScheme: 'Color scheme',
|
|
239
|
+
custom: 'Custom n°{{id}}',
|
|
240
|
+
addColor: 'Add color',
|
|
241
|
+
removeColor: 'Remove color'
|
|
238
242
|
},
|
|
239
243
|
view: {
|
|
240
244
|
name: 'Tab n°{{rank}}'
|
|
@@ -578,7 +582,11 @@ const frTranslations$1 = {
|
|
|
578
582
|
},
|
|
579
583
|
modalTitle: 'Voulez-vous confirmer ?',
|
|
580
584
|
itemId: 'Id',
|
|
581
|
-
class: 'Classe'
|
|
585
|
+
class: 'Classe',
|
|
586
|
+
colorScheme: 'Schéma de couleur',
|
|
587
|
+
custom: 'Personalisé n°{{id}}',
|
|
588
|
+
addColor: 'Ajouter une couleur',
|
|
589
|
+
removeColor: 'Supprimer une couleur'
|
|
582
590
|
},
|
|
583
591
|
view: {
|
|
584
592
|
name: 'Page n°{{rank}}'
|
|
@@ -1412,6 +1420,7 @@ var VegaType;
|
|
|
1412
1420
|
})(VegaType || (VegaType = {}));
|
|
1413
1421
|
var VegaColorType;
|
|
1414
1422
|
(function (VegaColorType) {
|
|
1423
|
+
VegaColorType["PROVOLY"] = "Provoly";
|
|
1415
1424
|
VegaColorType["ACCENT"] = "accent";
|
|
1416
1425
|
VegaColorType["SET2"] = "set2";
|
|
1417
1426
|
VegaColorType["DARK2"] = "dark2";
|
|
@@ -2163,6 +2172,7 @@ const enTranslations = {
|
|
|
2163
2172
|
api: 'API',
|
|
2164
2173
|
returnToList: 'Back to catalog',
|
|
2165
2174
|
refresh: 'Refresh',
|
|
2175
|
+
since_day: 'Last update :',
|
|
2166
2176
|
version: {
|
|
2167
2177
|
title: 'Title',
|
|
2168
2178
|
INDEXING: 'Loading',
|
|
@@ -2231,6 +2241,7 @@ const frTranslations = {
|
|
|
2231
2241
|
api: 'API',
|
|
2232
2242
|
returnToList: 'Retour au catalogue',
|
|
2233
2243
|
refresh: 'Actualiser',
|
|
2244
|
+
since_day: 'Dernière mise à jour :',
|
|
2234
2245
|
version: {
|
|
2235
2246
|
title: 'Intitulé',
|
|
2236
2247
|
INDEXING: 'En chargement',
|
|
@@ -3913,7 +3924,8 @@ const SearchActions = {
|
|
|
3913
3924
|
getDatasourceItems: createAction('[Search] (bus) search named', props()),
|
|
3914
3925
|
// result Search
|
|
3915
3926
|
searchSuccess: createAction('[Search Api] (bus) Search Success', props()),
|
|
3916
|
-
searchFailure: createAction('[Search Api] (bus) Search Failure', props())
|
|
3927
|
+
searchFailure: createAction('[Search Api] (bus) Search Failure', props()),
|
|
3928
|
+
setSearchLoading: createAction('[Search Api] (bus) set Search loading datasource status', props())
|
|
3917
3929
|
};
|
|
3918
3930
|
|
|
3919
3931
|
class SearchService {
|
|
@@ -4781,6 +4793,11 @@ const searchReducer = createReducer(initialSearchState, on(SearchActions.search,
|
|
|
4781
4793
|
})), on(SearchActions.searchFailure, (state, action) => ({
|
|
4782
4794
|
...state,
|
|
4783
4795
|
searchLoading: [...state.searchLoading.filter((id) => id !== (action.id ?? DEFAULT_NAMED_QUERY_ID))]
|
|
4796
|
+
})), on(SearchActions.setSearchLoading, (state, action) => ({
|
|
4797
|
+
...state,
|
|
4798
|
+
searchLoading: action.start
|
|
4799
|
+
? [...new Set([...state.searchLoading, ...action.datasources])]
|
|
4800
|
+
: [...state.searchLoading.filter((id) => !action.datasources.includes(id))]
|
|
4784
4801
|
})));
|
|
4785
4802
|
|
|
4786
4803
|
class AccordionComponent {
|
|
@@ -5213,6 +5230,9 @@ class PryBackendAggregationService extends PryAggregationService {
|
|
|
5213
5230
|
if (options.groupBy) {
|
|
5214
5231
|
params = params.set('groupBy', options.groupBy.attribute);
|
|
5215
5232
|
}
|
|
5233
|
+
if (options.graph.sort) {
|
|
5234
|
+
params = params.set('sort', `${options.graph.sort.direction},${options.graph.sort.attribute === options.abscissa.attribute ? 'KEY' : 'VALUE'}`);
|
|
5235
|
+
}
|
|
5216
5236
|
params = this.searchService.getItemsFilter(targetDatasource, params);
|
|
5217
5237
|
const key = `${this.dataUrl}_${params.toString()}`;
|
|
5218
5238
|
if (!this.cache[key] || this.cache[key].time + 1000 < new Date().getTime()) {
|
|
@@ -7887,6 +7907,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
7887
7907
|
this.staticDashboard$ = new BehaviorSubject(null);
|
|
7888
7908
|
this.stacked$ = new BehaviorSubject(false);
|
|
7889
7909
|
this.indexForRemoval = -1;
|
|
7910
|
+
this.params = {};
|
|
7890
7911
|
this.CloseOnDragOut = true;
|
|
7891
7912
|
this.canCalculateView = false;
|
|
7892
7913
|
this.dashboardParams = {
|
|
@@ -7915,6 +7936,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
7915
7936
|
this.DashboardGridLayout = DashboardGridLayout;
|
|
7916
7937
|
this.layout = DashboardGridLayout.MANUAL;
|
|
7917
7938
|
this.loading$ = this.store.select(DashboardSelectors.loading);
|
|
7939
|
+
this.dataFetching$ = this.store.select(SearchSelectors.searchLoading);
|
|
7918
7940
|
this.modeEdition$ = this.store.select(DashboardSelectors.dashboardEditionMode);
|
|
7919
7941
|
this.subscriptions.add(this.modeEdition$.subscribe((mode) => {
|
|
7920
7942
|
this.modeEdition = mode;
|
|
@@ -8025,7 +8047,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8025
8047
|
const rows = !this.displayIsStacked
|
|
8026
8048
|
? (!!this.manifest && !!this.manifest.grid && this.manifest.grid.rows) || DEFAULT_ROWS_NUMBER
|
|
8027
8049
|
: this.manifest?.widgets.reduce((p, c) => p + c.layout.height, 0) ?? 1;
|
|
8028
|
-
|
|
8050
|
+
this.params = {
|
|
8029
8051
|
gridWidth,
|
|
8030
8052
|
// Calculate height to parennt the parent's
|
|
8031
8053
|
gridHeight: element.getBoundingClientRect().height,
|
|
@@ -8038,17 +8060,19 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8038
8060
|
offsetTop: this.gridRef.nativeElement.offsetTop,
|
|
8039
8061
|
mobileMode
|
|
8040
8062
|
};
|
|
8041
|
-
params.gridGap =
|
|
8042
|
-
params.rows * params.cellHeight < params.gridHeight
|
|
8063
|
+
this.params.gridGap =
|
|
8064
|
+
this.params.rows * this.params.cellHeight < this.params.gridHeight
|
|
8043
8065
|
? !!this.manifest && !!this.manifest.grid
|
|
8044
8066
|
? this.manifest.grid.gap || DEFAULT_GAP_PX
|
|
8045
8067
|
: DEFAULT_GAP_PX
|
|
8046
8068
|
: 0;
|
|
8047
|
-
params.cellHeight =
|
|
8048
|
-
|
|
8049
|
-
this.
|
|
8050
|
-
|
|
8051
|
-
this.
|
|
8069
|
+
this.params.cellHeight =
|
|
8070
|
+
(this.params.gridHeight - (this.params.rows - 1) * this.params.gridGap) / this.params.rows;
|
|
8071
|
+
this.params.cellWidth =
|
|
8072
|
+
(this.params.gridWidth - (this.params.columns - 1) * this.params.gridGap) / this.params.columns;
|
|
8073
|
+
this.store.dispatch(DashboardActions.updateDashboardParams({ params: this.params }));
|
|
8074
|
+
this.rows.next(this.params.rows);
|
|
8075
|
+
this.rowHeight.next(this.params.cellHeight);
|
|
8052
8076
|
}
|
|
8053
8077
|
}
|
|
8054
8078
|
get displayIsStacked() {
|
|
@@ -8379,11 +8403,11 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8379
8403
|
return index + '-' + widgetManifest.type + '-' + JSON.stringify(widgetManifest.layout);
|
|
8380
8404
|
}
|
|
8381
8405
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8382
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }, { propertyName: "instanciators", predicate: WidgetInstanciatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n </ng-container>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: ContextMenuComponent, selector: "pry-context-menu" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8406
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }, { propertyName: "instanciators", predicate: WidgetInstanciatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n </ng-container>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"(dataFetching$ | async)?.length ?? 1 > 0 ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: ContextMenuComponent, selector: "pry-context-menu" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8383
8407
|
}
|
|
8384
8408
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
8385
8409
|
type: Component,
|
|
8386
|
-
args: [{ selector: 'pry-dashboard', template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n </ng-container>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
8410
|
+
args: [{ selector: 'pry-dashboard', template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n </ng-container>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"(dataFetching$ | async)?.length ?? 1 > 0 ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
8387
8411
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateModal: [{
|
|
8388
8412
|
type: ViewChild,
|
|
8389
8413
|
args: ['templateModal', { read: TemplateRef }]
|