@provoly/dashboard 0.13.1 → 0.13.3
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/admin/admin.module.d.ts +12 -11
- package/admin/components/association/association.component.d.ts +9 -0
- package/admin/i18n/en.translations.d.ts +10 -0
- package/admin/i18n/fr.translations.d.ts +10 -0
- package/dataset/components/dataset-detail/dataset-detail.component.d.ts +1 -0
- package/dataset/i18n/en.translations.d.ts +28 -1
- package/dataset/i18n/fr.translations.d.ts +28 -2
- package/dataset/style/_o-pry-dataset-detail.scss +55 -21
- package/dataset/style/_o-pry-dataset.scss +9 -1
- package/esm2022/admin/admin.module.mjs +6 -3
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +4 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +4 -3
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +5 -4
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +4 -3
- package/esm2022/admin/components/association/association.component.mjs +18 -0
- package/esm2022/admin/i18n/en.translations.mjs +11 -1
- package/esm2022/admin/i18n/fr.translations.mjs +11 -1
- package/esm2022/admin/store/admin.service.mjs +5 -5
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +10 -5
- package/esm2022/dataset/components/dataset.component.mjs +6 -4
- package/esm2022/dataset/i18n/en.translations.mjs +30 -3
- package/esm2022/dataset/i18n/fr.translations.mjs +30 -4
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +16 -6
- package/esm2022/lib/core/i18n/en.translations.mjs +2 -1
- package/esm2022/lib/core/i18n/fr.translations.mjs +2 -1
- package/esm2022/lib/core/model/dataset.interface.mjs +1 -1
- package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
- package/esm2022/lib/core/store/field/field.interface.mjs +3 -1
- package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +4 -1
- package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +19 -4
- package/esm2022/presentation/components/presentation.component.mjs +3 -3
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +3 -3
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +3 -3
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +7 -5
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +6 -5
- package/esm2022/widgets/widget-map/i18n/en.translations.mjs +2 -2
- package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +2 -2
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +3 -3
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -3
- package/fesm2022/provoly-dashboard-admin.mjs +51 -15
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +74 -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 +2 -2
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +6 -4
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +7 -6
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +96 -13
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/modal-status/modal-status.component.d.ts +11 -2
- package/lib/core/i18n/en.translations.d.ts +1 -0
- package/lib/core/i18n/fr.translations.d.ts +1 -0
- package/lib/core/model/dataset.interface.d.ts +3 -2
- package/lib/core/store/data-source/data-source.model.d.ts +1 -0
- package/lib/core/store/field/field.interface.d.ts +3 -1
- package/lib/dashboard/components/widgets/base-widget.component.d.ts +1 -0
- package/lib/dashboard/components/widgets/settings/settings.component.d.ts +10 -3
- package/package.json +5 -1
- package/presentation/style/_o-pry-presentation.scss +1 -2
- package/schematics/migration.json +10 -0
- package/schematics/ng-add/index.spec.js +24 -1
- package/schematics/ng-add/index.spec.js.map +1 -1
- package/schematics/ng-update/utils/complete.function.d.ts +2 -0
- package/schematics/ng-update/utils/complete.function.js +10 -0
- package/schematics/ng-update/utils/complete.function.js.map +1 -0
- package/schematics/ng-update/version-0-13/index.d.ts +2 -0
- package/schematics/ng-update/version-0-13/index.js +30 -0
- package/schematics/ng-update/version-0-13/index.js.map +1 -0
- package/schematics/ng-update/version-0-13/index.spec.d.ts +1 -0
- package/schematics/ng-update/version-0-13/index.spec.js +167 -0
- package/schematics/ng-update/version-0-13/index.spec.js.map +1 -0
- package/styles/components/_o-panel.scss +46 -0
- package/styles-theme/components-theme/_o-pry-dataset.theme.scss +6 -6
- package/styles-theme/main-theme.scss +1 -0
- package/widgets/widget-iframe/component/widget-iframe.component.d.ts +2 -0
- package/widgets/widget-map/component/widget-map.component.d.ts +1 -1
|
@@ -192,6 +192,7 @@ const enTranslations$1 = {
|
|
|
192
192
|
updatedInView: 'Restitution has been updated on tab n°{{index}}',
|
|
193
193
|
settings: {
|
|
194
194
|
title: 'Settings',
|
|
195
|
+
changeTitle: 'Widget title',
|
|
195
196
|
validateUpdating: 'Validate-Updating'
|
|
196
197
|
},
|
|
197
198
|
defineCatalog: 'Define catalog entry',
|
|
@@ -520,6 +521,7 @@ const frTranslations$1 = {
|
|
|
520
521
|
updatedInView: 'La restitution a été mise à jour sur la page n°{{index}}',
|
|
521
522
|
settings: {
|
|
522
523
|
title: 'Paramétrage',
|
|
524
|
+
changeTitle: 'Titre du widget',
|
|
523
525
|
validateUpdating: 'Valider la modification'
|
|
524
526
|
},
|
|
525
527
|
defineCatalog: 'Définissez votre entrée de catalogue',
|
|
@@ -2114,12 +2116,39 @@ const enTranslations = {
|
|
|
2114
2116
|
ACTIVE: 'Invalidate',
|
|
2115
2117
|
INACTIVE: 'Validate',
|
|
2116
2118
|
ERROR: 'Consult errors',
|
|
2119
|
+
WARNING: 'Consult warnings',
|
|
2117
2120
|
LOADING: '',
|
|
2118
2121
|
INDEXING: ''
|
|
2119
2122
|
},
|
|
2120
2123
|
error: {
|
|
2121
|
-
|
|
2122
|
-
|
|
2124
|
+
type: 'Type',
|
|
2125
|
+
elements: 'Elements',
|
|
2126
|
+
message: 'Message',
|
|
2127
|
+
close: 'Fermer',
|
|
2128
|
+
modalTitle: {
|
|
2129
|
+
ERROR: 'List of errors',
|
|
2130
|
+
WARNING: 'List of warnings'
|
|
2131
|
+
},
|
|
2132
|
+
level: {
|
|
2133
|
+
ERROR: 'Error',
|
|
2134
|
+
WARNING: 'Warning'
|
|
2135
|
+
},
|
|
2136
|
+
code: {
|
|
2137
|
+
UNRECOGNIZED: 'Unrecognized attribute {{name}}',
|
|
2138
|
+
FORMAT: 'Wrong format for attribute {{name}}',
|
|
2139
|
+
ELASTIC_SEARCH: 'Insertion error for element {{recordId}}',
|
|
2140
|
+
NO_VALUES: 'No value for {{recordId}} line',
|
|
2141
|
+
FORMAT_FILE_ERROR: 'Unsupported file format'
|
|
2142
|
+
}
|
|
2143
|
+
},
|
|
2144
|
+
tooltip: {
|
|
2145
|
+
error: 'Errors occurred when integrating the data into the solution. The data is not accessible',
|
|
2146
|
+
active: 'The data retrieved by default in the application corresponds to the data integrated in this version.',
|
|
2147
|
+
inactive: 'The data for this version is available but not uploaded by default. It is possible to display them by explicitly requesting this version.',
|
|
2148
|
+
loading: 'The data is currently being integrated into the solution',
|
|
2149
|
+
invalid: 'The data in this version is present in the solution but is not relevant. It is not available are not available for display',
|
|
2150
|
+
inValidateButton: 'Allows you to make the version\'s data unavailable if it is considered irrelevant from a business point of view. If the invalidated version is the active version, then the data retrieved by default will be that of the most recent previous "Available" version, which will thus change to "Active" status.',
|
|
2151
|
+
validateButton: 'Allows the version\'s data to be made available if it is considered relevant from a business point of view after having been invalidated. If the validated version is the most recent, it will become the active version and its data will be the default.'
|
|
2123
2152
|
}
|
|
2124
2153
|
}
|
|
2125
2154
|
}
|
|
@@ -2152,15 +2181,41 @@ const frTranslations = {
|
|
|
2152
2181
|
ACTIVE: 'Invalider',
|
|
2153
2182
|
INACTIVE: 'Valider',
|
|
2154
2183
|
ERROR: 'Consulter erreurs',
|
|
2184
|
+
WARNING: 'Consulter warnings',
|
|
2155
2185
|
LOADING: '',
|
|
2156
2186
|
INDEXING: ''
|
|
2157
2187
|
},
|
|
2158
2188
|
error: {
|
|
2159
|
-
|
|
2160
|
-
|
|
2189
|
+
ERROR: 'Erreur',
|
|
2190
|
+
WARNING: 'Warning',
|
|
2191
|
+
type: 'Type',
|
|
2161
2192
|
elements: 'Elements',
|
|
2162
2193
|
message: 'Message',
|
|
2163
|
-
close: 'Fermer'
|
|
2194
|
+
close: 'Fermer',
|
|
2195
|
+
modalTitle: {
|
|
2196
|
+
ERROR: 'Liste des erreurs',
|
|
2197
|
+
WARNING: 'Liste des warnings'
|
|
2198
|
+
},
|
|
2199
|
+
level: {
|
|
2200
|
+
ERROR: 'Erreur',
|
|
2201
|
+
WARNING: 'Warning'
|
|
2202
|
+
},
|
|
2203
|
+
code: {
|
|
2204
|
+
UNRECOGNIZED: 'Attribut {{name}} non reconnu',
|
|
2205
|
+
FORMAT: "Format d'attribut {{name}} incorrect",
|
|
2206
|
+
ELASTIC_SEARCH: "Erreur d'insertion pour l'élément {{recordId}}",
|
|
2207
|
+
NO_VALUES: 'Pas de valeur pour la ligne {{recordId}}',
|
|
2208
|
+
FORMAT_FILE_ERROR: "Le format du fichier transmis n'est pas géré"
|
|
2209
|
+
}
|
|
2210
|
+
},
|
|
2211
|
+
tooltip: {
|
|
2212
|
+
error: 'Des erreurs sont apparues lors de l\'intégration des données dans la solution. Les données ne sont pas accessibles',
|
|
2213
|
+
active: 'Les données remontées par défaut dans l\'application correspondent à celles intégrées dans cette version',
|
|
2214
|
+
inactive: 'Les données de cette version sont disponibles mais non remontées par défaut. Il est possible de les afficher en demandant explicitement cette version.',
|
|
2215
|
+
loading: "Les données sont en cours d'intégration dans la solution",
|
|
2216
|
+
invalid: 'Les données de cette version sont présentes dans la solution mais sont non pertinentes. Elles ne sont pas disponibles pour l\'affichage',
|
|
2217
|
+
inValidateButton: 'Permet de rendre indisponible les données de la version dans le cas où elles sont considérées comme non pertinente d\'un point de vue métier. Si la version invalidée est la version active, alors les données récupérées par défaut seront celle de la version "Disponible" précédente la plus récente qui passera ainsi au statut "Active"',
|
|
2218
|
+
validateButton: "Permet de rendre disponible les données de la version dans le cas où elles sont considérées comme pertinente d'un point de vue métier après avoir été invalider. Si la version validée est la plus récente, elle deviendra ainsi la version active et ses données seront celles remontées par défaut"
|
|
2164
2219
|
}
|
|
2165
2220
|
}
|
|
2166
2221
|
}
|
|
@@ -2434,9 +2489,10 @@ class PryModalStatusComponent {
|
|
|
2434
2489
|
this.store.dispatch(DataSourceActions.dataset.previews.getById({ id: version.id }));
|
|
2435
2490
|
this.datasetPreviews$ = this.store
|
|
2436
2491
|
.select(DataSourceSelectors.datasetPreviews)
|
|
2437
|
-
.pipe(map((previews) => previews
|
|
2438
|
-
|
|
2439
|
-
.
|
|
2492
|
+
.pipe(map((previews) => previews.map((preview) => preview.messages.map((message) => ({ ...message, count: preview.count }))).flat()));
|
|
2493
|
+
this.messageCount$ = this.datasetPreviews$.pipe(map((previews) => {
|
|
2494
|
+
return previews.map((preview) => preview.count).reduce((p, c) => p + c, 0);
|
|
2495
|
+
}));
|
|
2440
2496
|
}
|
|
2441
2497
|
}
|
|
2442
2498
|
constructor(store) {
|
|
@@ -2446,12 +2502,21 @@ class PryModalStatusComponent {
|
|
|
2446
2502
|
goBack() {
|
|
2447
2503
|
this.gotoConsult.emit(this.version);
|
|
2448
2504
|
}
|
|
2505
|
+
getModalTitle() {
|
|
2506
|
+
if (this._version?.state !== 'ERROR' && this._version?.hasWarnings) {
|
|
2507
|
+
return 'WARNING';
|
|
2508
|
+
}
|
|
2509
|
+
return 'ERROR';
|
|
2510
|
+
}
|
|
2511
|
+
getErrorCodeParam(code, name, recordId) {
|
|
2512
|
+
return code === 'UNRECOGNIZED' || code === 'CAST' ? { name } : { recordId };
|
|
2513
|
+
}
|
|
2449
2514
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryModalStatusComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2450
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\"
|
|
2515
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.dataset.error.modalTitle.' + getModalTitle() | i18n }} ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\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 <table class=\"a-table\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n : getErrorCodeParam(preview.extractMessageCode, preview.name, preview.recordId)\n }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.SlicePipe, name: "slice" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2451
2516
|
}
|
|
2452
2517
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryModalStatusComponent, decorators: [{
|
|
2453
2518
|
type: Component,
|
|
2454
|
-
args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\"
|
|
2519
|
+
args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.dataset.error.modalTitle.' + getModalTitle() | i18n }} ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\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 <table class=\"a-table\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n : getErrorCodeParam(preview.extractMessageCode, preview.name, preview.recordId)\n }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
|
|
2455
2520
|
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { gotoConsult: [{
|
|
2456
2521
|
type: Output
|
|
2457
2522
|
}], version: [{
|
|
@@ -4351,6 +4416,8 @@ var FieldType;
|
|
|
4351
4416
|
FieldType["POLYGON"] = "Polygon";
|
|
4352
4417
|
FieldType["MULTIPOLYGON"] = "MultiPolygon";
|
|
4353
4418
|
FieldType["GEOMETRYCOLLECTION"] = "GeometryCollection";
|
|
4419
|
+
FieldType["OCLASS"] = "mod\u00E8le de donn\u00E9es";
|
|
4420
|
+
FieldType["DATASET"] = "test";
|
|
4354
4421
|
})(FieldType || (FieldType = {}));
|
|
4355
4422
|
|
|
4356
4423
|
const hiddenFieldText = '*********';
|
|
@@ -6723,6 +6790,9 @@ class BaseWidgetComponent extends SubscriptionnerDirective {
|
|
|
6723
6790
|
toImage() {
|
|
6724
6791
|
return Promise.reject('Not yet implemented');
|
|
6725
6792
|
}
|
|
6793
|
+
changeWidgetTitle($event) {
|
|
6794
|
+
this.manifest.title = $event;
|
|
6795
|
+
}
|
|
6726
6796
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: BaseWidgetComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6727
6797
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: BaseWidgetComponent, selector: "pry-base-widget", inputs: { open$: "open$", widgetIndex: "widgetIndex", staticManifest: "staticManifest" }, outputs: { manifestModified: "manifestModified" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
6728
6798
|
}
|
|
@@ -9262,7 +9332,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
9262
9332
|
type: Input
|
|
9263
9333
|
}] } });
|
|
9264
9334
|
|
|
9265
|
-
class SettingsComponent {
|
|
9335
|
+
class SettingsComponent extends SubscriptionnerDirective {
|
|
9266
9336
|
set widgetIndex(widgetIndex) {
|
|
9267
9337
|
this._widgetIndex$.next(widgetIndex);
|
|
9268
9338
|
}
|
|
@@ -9273,12 +9343,18 @@ class SettingsComponent {
|
|
|
9273
9343
|
});
|
|
9274
9344
|
}
|
|
9275
9345
|
constructor(store, overlay, viewContainerRef) {
|
|
9346
|
+
super();
|
|
9276
9347
|
this.store = store;
|
|
9277
9348
|
this.overlay = overlay;
|
|
9278
9349
|
this.viewContainerRef = viewContainerRef;
|
|
9279
9350
|
this._widgetIndex$ = new BehaviorSubject(0);
|
|
9280
9351
|
this.saveTriggered = new EventEmitter();
|
|
9281
9352
|
this.open = false;
|
|
9353
|
+
this.changeTitle = new EventEmitter();
|
|
9354
|
+
}
|
|
9355
|
+
ngOnInit() {
|
|
9356
|
+
this.manifest$ = this.store.select(DashboardSelectors.widgetManifest(this._widgetIndex$.value));
|
|
9357
|
+
this.subscriptions.add(this.manifest$.subscribe((manifest) => (this.manifest = manifest)));
|
|
9282
9358
|
}
|
|
9283
9359
|
toggle() {
|
|
9284
9360
|
this.open = !this.open;
|
|
@@ -9316,15 +9392,20 @@ class SettingsComponent {
|
|
|
9316
9392
|
focusValidation() {
|
|
9317
9393
|
this.validate.nativeElement.focus();
|
|
9318
9394
|
}
|
|
9395
|
+
emitTitle($event) {
|
|
9396
|
+
// @ts-ignore
|
|
9397
|
+
this.changeTitle.emit($event.currentTarget.value || undefined);
|
|
9398
|
+
}
|
|
9319
9399
|
ngOnDestroy() {
|
|
9320
9400
|
this.openSub?.unsubscribe();
|
|
9401
|
+
this.subscriptions.unsubscribe();
|
|
9321
9402
|
}
|
|
9322
9403
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9323
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SettingsComponent, selector: "pry-settings", inputs: { widgetIndex: "widgetIndex", isDisable: "isDisable", headerPresent: "headerPresent", open$: "open$", header: "header" }, outputs: { saveTriggered: "saveTriggered" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }], ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-text -settings\"\n [pryTooltip]=\"infoTooltipSearch\"\n aria-describedby=\"infoTooltipSearch_settings\"\n>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusCrossElement()\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"infoTooltipSearch_settings\">\n <span class=\"m-tooltip__text\"> {{ '@pry.widget.tooltip.openParameter' | i18n }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9404
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SettingsComponent, selector: "pry-settings", inputs: { widgetIndex: "widgetIndex", isDisable: "isDisable", headerPresent: "headerPresent", open$: "open$", header: "header" }, outputs: { saveTriggered: "saveTriggered", changeTitle: "changeTitle" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-text -settings\"\n [pryTooltip]=\"infoTooltipSearch\"\n aria-describedby=\"infoTooltipSearch_settings\"\n>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"widget_title\">{{ '@pry.widget.settings.changeTitle' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"widget_title\"\n type=\"text\"\n [value]=\"manifest?.title ?? ''\"\n (input)=\"emitTitle($event)\"\n />\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusCrossElement()\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"infoTooltipSearch_settings\">\n <span class=\"m-tooltip__text\"> {{ '@pry.widget.tooltip.openParameter' | i18n }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9324
9405
|
}
|
|
9325
9406
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
9326
9407
|
type: Component,
|
|
9327
|
-
args: [{ selector: 'pry-settings', template: "<button\n type=\"button\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-text -settings\"\n [pryTooltip]=\"infoTooltipSearch\"\n aria-describedby=\"infoTooltipSearch_settings\"\n>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusCrossElement()\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"infoTooltipSearch_settings\">\n <span class=\"m-tooltip__text\"> {{ '@pry.widget.tooltip.openParameter' | i18n }}</span>\n </div>\n</ng-template>\n" }]
|
|
9408
|
+
args: [{ selector: 'pry-settings', template: "<button\n type=\"button\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-text -settings\"\n [pryTooltip]=\"infoTooltipSearch\"\n aria-describedby=\"infoTooltipSearch_settings\"\n>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"widget_title\">{{ '@pry.widget.settings.changeTitle' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"widget_title\"\n type=\"text\"\n [value]=\"manifest?.title ?? ''\"\n (input)=\"emitTitle($event)\"\n />\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusCrossElement()\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"infoTooltipSearch_settings\">\n <span class=\"m-tooltip__text\"> {{ '@pry.widget.tooltip.openParameter' | i18n }}</span>\n </div>\n</ng-template>\n" }]
|
|
9328
9409
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { widgetIndex: [{
|
|
9329
9410
|
type: Input
|
|
9330
9411
|
}], isDisable: [{
|
|
@@ -9337,6 +9418,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
9337
9418
|
type: Input
|
|
9338
9419
|
}], saveTriggered: [{
|
|
9339
9420
|
type: Output
|
|
9421
|
+
}], changeTitle: [{
|
|
9422
|
+
type: Output
|
|
9340
9423
|
}], template: [{
|
|
9341
9424
|
type: ViewChild,
|
|
9342
9425
|
args: ['template', { read: TemplateRef }]
|