@provoly/dashboard 0.21.3 → 0.21.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/esm2022/lib/core/auth/geoAuth.service.mjs +29 -5
- package/esm2022/lib/core/components/select/select.component.mjs +13 -3
- package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +14 -6
- package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +8 -3
- package/esm2022/lib/core/i18n/en.translations.mjs +9 -2
- package/esm2022/lib/core/i18n/fr.translations.mjs +9 -3
- package/esm2022/lib/core/model/display-options.interface.mjs +24 -7
- package/esm2022/lib/core/store/item/item.effects.mjs +2 -2
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +12 -5
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +8 -2
- package/esm2022/presentation/components/presentation.component.mjs +9 -3
- package/esm2022/presentation/i18n/en.translations.mjs +2 -1
- package/esm2022/presentation/i18n/fr.translations.mjs +3 -2
- package/esm2022/toolbox/components/delete/delete.component.mjs +29 -0
- package/esm2022/toolbox/components/share/share.component.mjs +69 -0
- package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +26 -0
- package/esm2022/toolbox/components/toolbox.component.mjs +3 -3
- package/esm2022/toolbox/public-api.mjs +4 -1
- package/esm2022/toolbox/toolbox.model.mjs +22 -2
- package/esm2022/toolbox/toolbox.module.mjs +16 -4
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +27 -13
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -8
- package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +6 -5
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-presentation.mjs +11 -3
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +131 -7
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +37 -23
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +116 -29
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/auth/geoAuth.service.d.ts +5 -1
- package/lib/core/components/select/select.component.d.ts +2 -0
- package/lib/core/components/share/group-share/group-share.component.d.ts +2 -2
- package/lib/core/components/snackbar/snackbar.service.d.ts +2 -1
- package/lib/core/i18n/en.translations.d.ts +7 -0
- package/lib/core/i18n/fr.translations.d.ts +7 -1
- package/lib/core/model/display-options.interface.d.ts +3 -0
- package/lib/dashboard/store/dashboard.effects.d.ts +1 -1
- package/package.json +19 -19
- package/presentation/components/presentation.component.d.ts +1 -0
- package/presentation/i18n/en.translations.d.ts +1 -0
- package/presentation/i18n/fr.translations.d.ts +1 -0
- package/styles/components/_o-draggable-menu.scss +8 -0
- package/toolbox/components/delete/delete.component.d.ts +19 -0
- package/toolbox/components/share/share.component.d.ts +25 -0
- package/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.d.ts +15 -0
- package/toolbox/public-api.d.ts +3 -0
- package/toolbox/toolbox.module.d.ts +12 -9
- package/widgets/widget-map/component/widget-map-layer.service.d.ts +4 -3
- package/widgets/widget-map/component/widget-map.component.d.ts +3 -5
|
@@ -126,7 +126,7 @@ class WidgetVegaComponent extends DataWidgetComponent {
|
|
|
126
126
|
this.optionsCopy.baseSpec = JSON.parse($event.currentTarget.value);
|
|
127
127
|
}
|
|
128
128
|
catch (e) {
|
|
129
|
-
const message = this.snackService.
|
|
129
|
+
const message = this.snackService.notMitigatedOpen({
|
|
130
130
|
type: 'error',
|
|
131
131
|
message: this.translateService.instant('@pry.widget.vega.notParseableSpec'),
|
|
132
132
|
action: this.translateService.instant('@pry.widget.vega.specReinit')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provoly-dashboard-widgets-widget-vega.mjs","sources":["../../../../projects/provoly/dashboard/widgets/widget-vega/style/css.component.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/component/widget-vega.component.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/component/widget-vega.component.html","../../../../projects/provoly/dashboard/widgets/widget-vega/i18n/en.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/widget-vega.module.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/provoly-dashboard-widgets-widget-vega.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-widget-vega-css',\n template: '',\n styleUrls: ['./_o-widget-vega.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryWidgetVegaCssComponent {}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Inject, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n AttributeSimpleValue,\n DataWidgetComponent,\n Item,\n PryI18nService,\n PrySnackbarService,\n ResultSet,\n ValueType,\n VegaWidgetOptions,\n WIDGET_HEADER_HEIGHT\n} from '@provoly/dashboard';\nimport { combineLatest, filter, Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { View } from 'vega';\nimport embed, { VisualizationSpec } from 'vega-embed';\n\n@Component({\n selector: 'pry-widget-vega',\n templateUrl: './widget-vega.component.html'\n})\nexport class WidgetVegaComponent extends DataWidgetComponent implements AfterViewInit {\n @ViewChild('vega') vega!: ElementRef;\n view?: View;\n vegaSpec$: Observable<VisualizationSpec>;\n trigger$ = new Subject<void>();\n options$: Observable<any>;\n optionsCopy: VegaWidgetOptions = { baseSpec: {}, placeData: [] };\n formattedBaseSpec: string = '{}';\n initialFormattedBaseSpec: string = '{}';\n\n constructor(\n store: Store<any>,\n private translateService: PryI18nService,\n el: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n private snackService: PrySnackbarService\n ) {\n super(store, el);\n\n this.options$ = this.manifest$.pipe(map((manifest) => (manifest.options ?? {}) as any));\n this.subscriptions.add(\n this.options$.subscribe((options) => {\n this.optionsCopy = JSON.parse(JSON.stringify(options));\n this.formattedBaseSpec = JSON.stringify(this.optionsCopy.baseSpec, undefined, 4);\n this.initialFormattedBaseSpec = JSON.stringify(this.optionsCopy.baseSpec, undefined, 4);\n })\n );\n\n this.vegaSpec$ = combineLatest([this.options$, this.resultSet$, this.widgetSize$, this.displayHeader$]).pipe(\n filter(([options, rs, size, header]) => !!rs),\n map(([options, rs, size, header]) => {\n const data = WidgetVegaComponent.getValues(rs);\n\n const vegaSpec = WidgetVegaComponent.placeData(options, JSON.parse(JSON.stringify(options.baseSpec)), data);\n\n vegaSpec.width = size.width - 15;\n vegaSpec.height = size.height - 40 - (header ? WIDGET_HEADER_HEIGHT : 0);\n vegaSpec.autosize = { type: 'fit', contains: 'padding' };\n vegaSpec.padding = 15;\n\n console.log(JSON.stringify(vegaSpec, undefined, 4));\n\n return vegaSpec;\n })\n );\n }\n\n static getValues(data: ResultSet) {\n return Object.keys(data.items)\n .map((clazz) => data.items[clazz].map((item) => WidgetVegaComponent.transformProvolyModelToClassic(item)))\n .flat();\n }\n\n static transformProvolyModelToClassic(values: Item) {\n const result = {} as { [key: string]: ValueType };\n Object.keys(values.attributes).forEach((key) => {\n result[key] = (values.attributes[key] as AttributeSimpleValue).value;\n });\n\n return result;\n }\n\n static placeData(options: VegaWidgetOptions, baseSpec: any, data: { [key: string]: ValueType }[]) {\n const clone = JSON.parse(JSON.stringify(baseSpec));\n let ref = clone;\n (options.placeData ?? []).forEach((prop, idx, arr) => {\n if (ref) {\n if (idx < arr.length - 1) {\n ref = ref[prop];\n } else {\n ref[prop] = data;\n }\n }\n });\n return clone;\n }\n\n ngAfterViewInit() {\n this.subscriptions.add(\n combineLatest([this.vegaSpec$, this.trigger$, this.widgetSize$]).subscribe(([spec, _, size]) => {\n if (this.vega) {\n this.view?.finalize();\n\n // @ts-ignore\n if (this.document.debugFNTP !== undefined) {\n console.log(JSON.stringify(spec, undefined, 4));\n }\n\n embed(this.vega.nativeElement, JSON.parse(JSON.stringify(spec)), {\n actions: false,\n renderer: 'canvas',\n formatLocale: {\n decimal: this.translateService.instant('@pry.format.decimal'),\n thousands: this.translateService.instant('@pry.format.thousands'),\n grouping: this.translateService.instant('@pry.format.grouping'),\n currency: this.translateService.instant('@pry.format.currency'),\n percent: '\\u202f%'\n }\n }).then((result) => (this.view = result.view));\n } else {\n setTimeout(() => this.trigger$.next(), 100);\n }\n })\n );\n this.trigger$.next();\n }\n\n override toImage(): Promise<string> {\n return new Promise((resolve, reject) => {\n resolve(this.vega.nativeElement.querySelectorAll('canvas')[0].toDataURL('image/png'));\n });\n }\n\n emitManifest() {\n this.manifestModified.emit({\n widgetIndex: this.widgetIndex,\n manifest: { ...this.manifest, options: this.optionsCopy }\n });\n }\n\n changePlaceData($event: Event) {\n // @ts-ignore\n const expr = $event.currentTarget.value;\n this.optionsCopy.placeData = expr\n .split('.')\n .map((val: string) => (parseInt(val) + '' === `${val}` ? parseInt(val) : val));\n }\n\n changeSpec($event: Event) {\n try {\n // @ts-ignore\n this.optionsCopy.baseSpec = JSON.parse($event.currentTarget.value);\n } catch (e) {\n const message = this.snackService.open({\n type: 'error',\n message: this.translateService.instant('@pry.widget.vega.notParseableSpec'),\n action: this.translateService.instant('@pry.widget.vega.specReinit')\n });\n message?.subscribe(() => {\n this.optionsCopy.baseSpec = this.initialFormattedBaseSpec;\n });\n }\n }\n}\n","<pry-widget-vega-css></pry-widget-vega-css>\n<div class=\"o-widget o-widget--chart\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"placeData_src\">{{ '@pry.widget.vega.placeData' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"placeData_src\"\n type=\"text\"\n [value]=\"(optionsCopy.placeData ?? []).join('.')\"\n (input)=\"changePlaceData($event)\"\n />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"spec_src\">{{ '@pry.widget.vega.spec' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area\"\n id=\"spec_src\"\n [value]=\"formattedBaseSpec\"\n (input)=\"changeSpec($event)\"\n ></textarea>\n </div>\n </div>\n </pry-settings>\n </pry-widget-header>\n <div class=\"o-widget--chart--chart\" #vega></div>\n</div>\n","export const enTranslations = {\n '@pry': {\n widget: {\n vega: {\n placeData: 'Expression leading to data in Vega config',\n spec: 'Vega configuration',\n notParseableSpec: 'Configuration is not a valid JSON',\n specReinit: 'Reinitialize'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n widget: {\n vega: {\n placeData: 'Expression menant à la place des données dans la configuration Vega',\n spec: 'Configuration Vega',\n notParseableSpec: \"La configuration n'est pas un JSON valide\",\n specReinit: 'Réinitialiser'\n }\n }\n }\n};\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n BaseWidgetComponent,\n BaseWidgetModule,\n PryCoreModule,\n PryDashboardModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule,\n PrySelectModule,\n PryToggleModule\n} from '@provoly/dashboard';\nimport { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';\nimport { WidgetMapModule } from '@provoly/dashboard/widgets/widget-map';\nimport { WidgetVegaComponent } from './component/widget-vega.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryWidgetVegaCssComponent } from './style/css.component';\n\n@NgModule({\n declarations: [WidgetVegaComponent, PryWidgetVegaCssComponent],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryIconModule,\n PryCheckboxModule,\n PryToggleModule,\n WidgetMapModule,\n PryI18nModule\n ],\n exports: [WidgetVegaComponent]\n})\nexport class WidgetVegaModule extends BaseWidgetModule {\n constructor(private pryTranslateService: PryI18nService) {\n super();\n this.pryTranslateService.addLangObject('fr', 'widget-vega', frTranslations);\n this.pryTranslateService.addLangObject('en', 'widget-vega', enTranslations);\n }\n\n override getComponent() {\n return WidgetVegaComponent as Type<BaseWidgetComponent>;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4.PryWidgetVegaCssComponent","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provoly-dashboard-widgets-widget-vega.mjs","sources":["../../../../projects/provoly/dashboard/widgets/widget-vega/style/css.component.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/component/widget-vega.component.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/component/widget-vega.component.html","../../../../projects/provoly/dashboard/widgets/widget-vega/i18n/en.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/widget-vega.module.ts","../../../../projects/provoly/dashboard/widgets/widget-vega/provoly-dashboard-widgets-widget-vega.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-widget-vega-css',\n template: '',\n styleUrls: ['./_o-widget-vega.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryWidgetVegaCssComponent {}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Inject, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n AttributeSimpleValue,\n DataWidgetComponent,\n Item,\n PryI18nService,\n PrySnackbarService,\n ResultSet,\n ValueType,\n VegaWidgetOptions,\n WIDGET_HEADER_HEIGHT\n} from '@provoly/dashboard';\nimport { combineLatest, filter, Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { View } from 'vega';\nimport embed, { VisualizationSpec } from 'vega-embed';\n\n@Component({\n selector: 'pry-widget-vega',\n templateUrl: './widget-vega.component.html'\n})\nexport class WidgetVegaComponent extends DataWidgetComponent implements AfterViewInit {\n @ViewChild('vega') vega!: ElementRef;\n view?: View;\n vegaSpec$: Observable<VisualizationSpec>;\n trigger$ = new Subject<void>();\n options$: Observable<any>;\n optionsCopy: VegaWidgetOptions = { baseSpec: {}, placeData: [] };\n formattedBaseSpec: string = '{}';\n initialFormattedBaseSpec: string = '{}';\n\n constructor(\n store: Store<any>,\n private translateService: PryI18nService,\n el: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n private snackService: PrySnackbarService\n ) {\n super(store, el);\n\n this.options$ = this.manifest$.pipe(map((manifest) => (manifest.options ?? {}) as any));\n this.subscriptions.add(\n this.options$.subscribe((options) => {\n this.optionsCopy = JSON.parse(JSON.stringify(options));\n this.formattedBaseSpec = JSON.stringify(this.optionsCopy.baseSpec, undefined, 4);\n this.initialFormattedBaseSpec = JSON.stringify(this.optionsCopy.baseSpec, undefined, 4);\n })\n );\n\n this.vegaSpec$ = combineLatest([this.options$, this.resultSet$, this.widgetSize$, this.displayHeader$]).pipe(\n filter(([options, rs, size, header]) => !!rs),\n map(([options, rs, size, header]) => {\n const data = WidgetVegaComponent.getValues(rs);\n\n const vegaSpec = WidgetVegaComponent.placeData(options, JSON.parse(JSON.stringify(options.baseSpec)), data);\n\n vegaSpec.width = size.width - 15;\n vegaSpec.height = size.height - 40 - (header ? WIDGET_HEADER_HEIGHT : 0);\n vegaSpec.autosize = { type: 'fit', contains: 'padding' };\n vegaSpec.padding = 15;\n\n console.log(JSON.stringify(vegaSpec, undefined, 4));\n\n return vegaSpec;\n })\n );\n }\n\n static getValues(data: ResultSet) {\n return Object.keys(data.items)\n .map((clazz) => data.items[clazz].map((item) => WidgetVegaComponent.transformProvolyModelToClassic(item)))\n .flat();\n }\n\n static transformProvolyModelToClassic(values: Item) {\n const result = {} as { [key: string]: ValueType };\n Object.keys(values.attributes).forEach((key) => {\n result[key] = (values.attributes[key] as AttributeSimpleValue).value;\n });\n\n return result;\n }\n\n static placeData(options: VegaWidgetOptions, baseSpec: any, data: { [key: string]: ValueType }[]) {\n const clone = JSON.parse(JSON.stringify(baseSpec));\n let ref = clone;\n (options.placeData ?? []).forEach((prop, idx, arr) => {\n if (ref) {\n if (idx < arr.length - 1) {\n ref = ref[prop];\n } else {\n ref[prop] = data;\n }\n }\n });\n return clone;\n }\n\n ngAfterViewInit() {\n this.subscriptions.add(\n combineLatest([this.vegaSpec$, this.trigger$, this.widgetSize$]).subscribe(([spec, _, size]) => {\n if (this.vega) {\n this.view?.finalize();\n\n // @ts-ignore\n if (this.document.debugFNTP !== undefined) {\n console.log(JSON.stringify(spec, undefined, 4));\n }\n\n embed(this.vega.nativeElement, JSON.parse(JSON.stringify(spec)), {\n actions: false,\n renderer: 'canvas',\n formatLocale: {\n decimal: this.translateService.instant('@pry.format.decimal'),\n thousands: this.translateService.instant('@pry.format.thousands'),\n grouping: this.translateService.instant('@pry.format.grouping'),\n currency: this.translateService.instant('@pry.format.currency'),\n percent: '\\u202f%'\n }\n }).then((result) => (this.view = result.view));\n } else {\n setTimeout(() => this.trigger$.next(), 100);\n }\n })\n );\n this.trigger$.next();\n }\n\n override toImage(): Promise<string> {\n return new Promise((resolve, reject) => {\n resolve(this.vega.nativeElement.querySelectorAll('canvas')[0].toDataURL('image/png'));\n });\n }\n\n emitManifest() {\n this.manifestModified.emit({\n widgetIndex: this.widgetIndex,\n manifest: { ...this.manifest, options: this.optionsCopy }\n });\n }\n\n changePlaceData($event: Event) {\n // @ts-ignore\n const expr = $event.currentTarget.value;\n this.optionsCopy.placeData = expr\n .split('.')\n .map((val: string) => (parseInt(val) + '' === `${val}` ? parseInt(val) : val));\n }\n\n changeSpec($event: Event) {\n try {\n // @ts-ignore\n this.optionsCopy.baseSpec = JSON.parse($event.currentTarget.value);\n } catch (e) {\n const message = this.snackService.notMitigatedOpen({\n type: 'error',\n message: this.translateService.instant('@pry.widget.vega.notParseableSpec'),\n action: this.translateService.instant('@pry.widget.vega.specReinit')\n });\n message?.subscribe(() => {\n this.optionsCopy.baseSpec = this.initialFormattedBaseSpec;\n });\n }\n }\n}\n","<pry-widget-vega-css></pry-widget-vega-css>\n<div class=\"o-widget o-widget--chart\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"placeData_src\">{{ '@pry.widget.vega.placeData' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"placeData_src\"\n type=\"text\"\n [value]=\"(optionsCopy.placeData ?? []).join('.')\"\n (input)=\"changePlaceData($event)\"\n />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"spec_src\">{{ '@pry.widget.vega.spec' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area\"\n id=\"spec_src\"\n [value]=\"formattedBaseSpec\"\n (input)=\"changeSpec($event)\"\n ></textarea>\n </div>\n </div>\n </pry-settings>\n </pry-widget-header>\n <div class=\"o-widget--chart--chart\" #vega></div>\n</div>\n","export const enTranslations = {\n '@pry': {\n widget: {\n vega: {\n placeData: 'Expression leading to data in Vega config',\n spec: 'Vega configuration',\n notParseableSpec: 'Configuration is not a valid JSON',\n specReinit: 'Reinitialize'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n widget: {\n vega: {\n placeData: 'Expression menant à la place des données dans la configuration Vega',\n spec: 'Configuration Vega',\n notParseableSpec: \"La configuration n'est pas un JSON valide\",\n specReinit: 'Réinitialiser'\n }\n }\n }\n};\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n BaseWidgetComponent,\n BaseWidgetModule,\n PryCoreModule,\n PryDashboardModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule,\n PrySelectModule,\n PryToggleModule\n} from '@provoly/dashboard';\nimport { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';\nimport { WidgetMapModule } from '@provoly/dashboard/widgets/widget-map';\nimport { WidgetVegaComponent } from './component/widget-vega.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryWidgetVegaCssComponent } from './style/css.component';\n\n@NgModule({\n declarations: [WidgetVegaComponent, PryWidgetVegaCssComponent],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryIconModule,\n PryCheckboxModule,\n PryToggleModule,\n WidgetMapModule,\n PryI18nModule\n ],\n exports: [WidgetVegaComponent]\n})\nexport class WidgetVegaModule extends BaseWidgetModule {\n constructor(private pryTranslateService: PryI18nService) {\n super();\n this.pryTranslateService.addLangObject('fr', 'widget-vega', frTranslations);\n this.pryTranslateService.addLangObject('en', 'widget-vega', enTranslations);\n }\n\n override getComponent() {\n return WidgetVegaComponent as Type<BaseWidgetComponent>;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4.PryWidgetVegaCssComponent","i1"],"mappings":"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"}
|
|
@@ -337,7 +337,11 @@ const enTranslations$1 = {
|
|
|
337
337
|
'1/3h_detailled': 'Display of 3 renders maximum, on a screen split in 3 horizontal zones, the render addtion is made in an empty zone, the placement is system guided.',
|
|
338
338
|
'1/4': '1/4 screen',
|
|
339
339
|
'1/4_detailled': 'Display of 4 renders maximum, on a split screen in 4 zones, the render addtion is made in an empty zone, the placement is system guided.'
|
|
340
|
-
}
|
|
340
|
+
},
|
|
341
|
+
switchEdit: 'Edit',
|
|
342
|
+
switchEditContent: 'Edit composition',
|
|
343
|
+
share: 'Share',
|
|
344
|
+
delete: 'Delete'
|
|
341
345
|
},
|
|
342
346
|
manifest: {
|
|
343
347
|
name: 'Name',
|
|
@@ -553,6 +557,9 @@ const enTranslations$1 = {
|
|
|
553
557
|
number: 'Number',
|
|
554
558
|
autocomplete: 'Autocomplete'
|
|
555
559
|
}
|
|
560
|
+
},
|
|
561
|
+
geoAuth: {
|
|
562
|
+
failure: 'Geoserver error'
|
|
556
563
|
}
|
|
557
564
|
}
|
|
558
565
|
};
|
|
@@ -678,7 +685,6 @@ const frTranslations$1 = {
|
|
|
678
685
|
rename: 'Enregistrer sous',
|
|
679
686
|
restore: 'Restaurer les pages',
|
|
680
687
|
save: 'Enregistrer',
|
|
681
|
-
share: 'Partager',
|
|
682
688
|
drag: 'Restitution...',
|
|
683
689
|
dragIndication: 'Insérer un',
|
|
684
690
|
barchart: 'Barres',
|
|
@@ -717,7 +723,11 @@ const frTranslations$1 = {
|
|
|
717
723
|
'1/3h_detailled': "Affichage de 3 restitutions maximum sur l’écran découpé en trois zones horizontales, l'ajout de restitution se fait dans les zones vides. Le placement est guidé par le système.",
|
|
718
724
|
'1/4': '1/4 écran',
|
|
719
725
|
'1/4_detailled': "Affichage de 4 restitutions maximum sur l’écran découpé en quatre zones , l'ajout de restitution se fait dans les zones vides. Le placement est guidé par le système."
|
|
720
|
-
}
|
|
726
|
+
},
|
|
727
|
+
switchEdit: 'Modifier',
|
|
728
|
+
switchEditContent: 'Modifier la composition',
|
|
729
|
+
share: 'Partager',
|
|
730
|
+
delete: 'Supprimer'
|
|
721
731
|
},
|
|
722
732
|
manifest: {
|
|
723
733
|
name: 'Nom',
|
|
@@ -933,6 +943,9 @@ const frTranslations$1 = {
|
|
|
933
943
|
number: 'Numérique',
|
|
934
944
|
autocomplete: 'Liste avec suggestion'
|
|
935
945
|
}
|
|
946
|
+
},
|
|
947
|
+
geoAuth: {
|
|
948
|
+
failure: 'Erreur geoserver'
|
|
936
949
|
}
|
|
937
950
|
}
|
|
938
951
|
};
|
|
@@ -1777,7 +1790,9 @@ class PrySnackbarService {
|
|
|
1777
1790
|
pryMessage.action = !!pryMessage.action ? this.translate.instant(pryMessage.action) : undefined;
|
|
1778
1791
|
this.messageEvents$.next(pryMessage);
|
|
1779
1792
|
}, false);
|
|
1780
|
-
this.messageEvents
|
|
1793
|
+
this.messageEvents$
|
|
1794
|
+
.pipe(distinctUntilChanged((p, v) => equal(p, v)))
|
|
1795
|
+
.subscribe((message) => this.notMitigatedOpen(message));
|
|
1781
1796
|
}
|
|
1782
1797
|
setRootViewContainerRef(viewContainerRef) {
|
|
1783
1798
|
this.rootViewContainer = viewContainerRef;
|
|
@@ -1785,7 +1800,7 @@ class PrySnackbarService {
|
|
|
1785
1800
|
dispatchOpenEvent(message) {
|
|
1786
1801
|
document.dispatchEvent(new CustomEvent(PRY_CUSTOMEVENT_TYPE, { detail: message }));
|
|
1787
1802
|
}
|
|
1788
|
-
|
|
1803
|
+
notMitigatedOpen(message) {
|
|
1789
1804
|
this.overlayRef = this.overlay.create(new OverlayConfig({
|
|
1790
1805
|
hasBackdrop: false
|
|
1791
1806
|
}));
|
|
@@ -1807,6 +1822,9 @@ class PrySnackbarService {
|
|
|
1807
1822
|
}, message.timeout ?? DEFAULT_MSG_TIMEOUT);
|
|
1808
1823
|
return component.instance.actionClicked;
|
|
1809
1824
|
}
|
|
1825
|
+
open(message) {
|
|
1826
|
+
this.messageEvents$.next(message);
|
|
1827
|
+
}
|
|
1810
1828
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, deps: [{ token: i2$1.Overlay }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1811
1829
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, providedIn: 'root' }); }
|
|
1812
1830
|
}
|
|
@@ -3967,7 +3985,10 @@ const BASE_DISPLAY_OPTIONS = {
|
|
|
3967
3985
|
clear_view: false,
|
|
3968
3986
|
default_size: false,
|
|
3969
3987
|
refresh_datasets: false,
|
|
3970
|
-
automate_refresh: false
|
|
3988
|
+
automate_refresh: false,
|
|
3989
|
+
edit_presentation_content: false,
|
|
3990
|
+
share: false,
|
|
3991
|
+
delete: false
|
|
3971
3992
|
},
|
|
3972
3993
|
edit_toggle: false,
|
|
3973
3994
|
widgetContextMenu: {
|
|
@@ -3986,7 +4007,14 @@ function getDisplayOptions(mode) {
|
|
|
3986
4007
|
return {
|
|
3987
4008
|
...BASE_DISPLAY_OPTIONS,
|
|
3988
4009
|
useFilters: true,
|
|
3989
|
-
toolbox: {
|
|
4010
|
+
toolbox: {
|
|
4011
|
+
...BASE_DISPLAY_OPTIONS.toolbox,
|
|
4012
|
+
save_view_as: true,
|
|
4013
|
+
refresh_datasets: true,
|
|
4014
|
+
edit_presentation_content: true,
|
|
4015
|
+
share: true,
|
|
4016
|
+
delete: true
|
|
4017
|
+
},
|
|
3990
4018
|
widgetContextMenu: false
|
|
3991
4019
|
};
|
|
3992
4020
|
case ViewMode.SEARCH:
|
|
@@ -4004,10 +4032,17 @@ function getDisplayOptions(mode) {
|
|
|
4004
4032
|
catalog: true,
|
|
4005
4033
|
useFilters: true,
|
|
4006
4034
|
toolbox: {
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4035
|
+
save_view: true,
|
|
4036
|
+
save_view_as: true,
|
|
4037
|
+
filter_settings: true,
|
|
4038
|
+
new_tab: true,
|
|
4039
|
+
clear_view: true,
|
|
4040
|
+
default_size: true,
|
|
4041
|
+
refresh_datasets: true,
|
|
4042
|
+
automate_refresh: true,
|
|
4043
|
+
edit_presentation_content: false,
|
|
4044
|
+
share: true,
|
|
4045
|
+
delete: false
|
|
4011
4046
|
},
|
|
4012
4047
|
edit_toggle: true,
|
|
4013
4048
|
widgetContextMenu: true
|
|
@@ -4759,7 +4794,7 @@ class ItemEffects {
|
|
|
4759
4794
|
])
|
|
4760
4795
|
.reduce((a, b) => [...a, ...b], [])), catchError((error) => [ItemActions.createFailure({ error })])))));
|
|
4761
4796
|
this.createSuccessWarning$ = createEffect(() => this.actions$.pipe(ofType(ItemActions.createSuccess), tap((action) => {
|
|
4762
|
-
const actionClicked$ = this.snackBar.
|
|
4797
|
+
const actionClicked$ = this.snackBar.notMitigatedOpen({
|
|
4763
4798
|
type: 'success',
|
|
4764
4799
|
message: this.translateService.instant('@pry.context.createObject.created'),
|
|
4765
4800
|
action: this.translateService.instant('@pry.context.createObject.details'),
|
|
@@ -5030,22 +5065,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5030
5065
|
class PryGeoAuthService {
|
|
5031
5066
|
}
|
|
5032
5067
|
const PRY_GEOAUTH_TOKEN = new InjectionToken('PRY_GEOAUTH_TOKEN');
|
|
5068
|
+
const CONTENT_TYPE = 'Content-Type';
|
|
5069
|
+
const ERROR_CONTENT_REGEXP = new RegExp('<ServiceException [\\S\\s]*>([\\S\\s]*)<\\/ServiceException>', 'gm');
|
|
5033
5070
|
class PryDefaultGeoAuthService extends PryGeoAuthService {
|
|
5034
|
-
constructor(httpClient) {
|
|
5071
|
+
constructor(httpClient, snack, i18nService) {
|
|
5035
5072
|
super();
|
|
5036
5073
|
this.httpClient = httpClient;
|
|
5074
|
+
this.snack = snack;
|
|
5075
|
+
this.i18nService = i18nService;
|
|
5037
5076
|
}
|
|
5038
5077
|
customLoader(tile, src) {
|
|
5039
5078
|
this.httpClient.get(src, { observe: 'response', params: {}, responseType: 'blob' }).subscribe((blob) => {
|
|
5040
|
-
|
|
5079
|
+
if (blob.headers.has(CONTENT_TYPE) && (blob.headers.get(CONTENT_TYPE) ?? '').indexOf('text/xml') >= 0) {
|
|
5080
|
+
blob.body.text().then((text) => {
|
|
5081
|
+
const match = text.match(ERROR_CONTENT_REGEXP);
|
|
5082
|
+
const reason = match[0].replace(/\r/g, '').replace(/\n/g, '').replace(/\s\s/g, ' ');
|
|
5083
|
+
if (!!reason) {
|
|
5084
|
+
console.error(`Geoserver error: ${reason}`);
|
|
5085
|
+
this.snack.open({
|
|
5086
|
+
type: 'error',
|
|
5087
|
+
message: this.i18nService.instant('@pry.geoAuth.failure', { reason })
|
|
5088
|
+
});
|
|
5089
|
+
}
|
|
5090
|
+
else {
|
|
5091
|
+
console.warn(`Strange geoserver return ${text}`);
|
|
5092
|
+
}
|
|
5093
|
+
});
|
|
5094
|
+
}
|
|
5095
|
+
else {
|
|
5096
|
+
tile.getImage().src = URL.createObjectURL(blob.body);
|
|
5097
|
+
}
|
|
5041
5098
|
});
|
|
5042
5099
|
}
|
|
5043
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$1.HttpClient }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5044
5101
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService }); }
|
|
5045
5102
|
}
|
|
5046
5103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, decorators: [{
|
|
5047
5104
|
type: Injectable
|
|
5048
|
-
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
|
|
5105
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
5049
5106
|
|
|
5050
5107
|
class EllipsisDirective {
|
|
5051
5108
|
constructor(elementRef, renderer) {
|
|
@@ -6874,10 +6931,20 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6874
6931
|
else {
|
|
6875
6932
|
this.overlayRef?.dispose();
|
|
6876
6933
|
this.overlayRef = undefined;
|
|
6934
|
+
this.focused = false;
|
|
6877
6935
|
}
|
|
6878
6936
|
}
|
|
6879
6937
|
}
|
|
6880
6938
|
}
|
|
6939
|
+
handleClick() {
|
|
6940
|
+
if (!this.focused) {
|
|
6941
|
+
this.onInputFocus();
|
|
6942
|
+
}
|
|
6943
|
+
}
|
|
6944
|
+
onInputFocus(force) {
|
|
6945
|
+
this.toggle(force);
|
|
6946
|
+
this.focused = true;
|
|
6947
|
+
}
|
|
6881
6948
|
getOverlayConfig() {
|
|
6882
6949
|
const positionStrategy = this.overlay
|
|
6883
6950
|
.position()
|
|
@@ -6916,7 +6983,7 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6916
6983
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
6917
6984
|
multi: true
|
|
6918
6985
|
}
|
|
6919
|
-
], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"
|
|
6986
|
+
], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n (focus)=\"onInputFocus(true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
6920
6987
|
}
|
|
6921
6988
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, decorators: [{
|
|
6922
6989
|
type: Component,
|
|
@@ -6926,7 +6993,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
6926
6993
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
6927
6994
|
multi: true
|
|
6928
6995
|
}
|
|
6929
|
-
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"
|
|
6996
|
+
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n (focus)=\"onInputFocus(true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
|
|
6930
6997
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { items: [{
|
|
6931
6998
|
type: Input
|
|
6932
6999
|
}], clearable: [{
|
|
@@ -7190,13 +7257,14 @@ class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
|
7190
7257
|
super();
|
|
7191
7258
|
this.store = store;
|
|
7192
7259
|
this._cd = _cd;
|
|
7193
|
-
this._onChange = (
|
|
7260
|
+
this._onChange = (groups) => groups;
|
|
7194
7261
|
this._onTouched = () => { };
|
|
7195
7262
|
this._disabled = false;
|
|
7263
|
+
// for tracking input
|
|
7264
|
+
this.assignedGroupNames$ = new BehaviorSubject([]);
|
|
7196
7265
|
this.radioValue = PryVisibilityType.PRIVATE;
|
|
7197
7266
|
this.PryVisibilityType = PryVisibilityType;
|
|
7198
7267
|
this.visibilityTypes = [];
|
|
7199
|
-
this.assignedGroupNames$ = new BehaviorSubject([]);
|
|
7200
7268
|
this.store.dispatch(ConfigActions.loadAccessGroups());
|
|
7201
7269
|
this.groups$ = this.store
|
|
7202
7270
|
.select(ConfigSelectors.accessGroups)
|
|
@@ -7210,8 +7278,14 @@ class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
|
7210
7278
|
}));
|
|
7211
7279
|
}
|
|
7212
7280
|
writeValue(value) {
|
|
7213
|
-
|
|
7214
|
-
this.
|
|
7281
|
+
value = value ?? [];
|
|
7282
|
+
if (!equal(this.assignedGroupNames$.getValue(), value)) {
|
|
7283
|
+
this._onChange(value);
|
|
7284
|
+
this.assignedGroupNames$.next(value);
|
|
7285
|
+
this.updateRadioValue(value);
|
|
7286
|
+
this._onTouched();
|
|
7287
|
+
this._cd.markForCheck();
|
|
7288
|
+
}
|
|
7215
7289
|
}
|
|
7216
7290
|
registerOnChange(fn) {
|
|
7217
7291
|
this._onChange = fn;
|
|
@@ -7252,7 +7326,7 @@ class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
|
7252
7326
|
}
|
|
7253
7327
|
changeGroups(groups) {
|
|
7254
7328
|
if (groups) {
|
|
7255
|
-
this._onChange(
|
|
7329
|
+
this._onChange(groups.map((group) => (typeof group === 'string' ? group : group.name)));
|
|
7256
7330
|
this._onTouched();
|
|
7257
7331
|
this._cd.markForCheck();
|
|
7258
7332
|
}
|
|
@@ -8671,11 +8745,11 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8671
8745
|
return index + '-' + widgetManifest.type + '-' + JSON.stringify(widgetManifest.layout);
|
|
8672
8746
|
}
|
|
8673
8747
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8674
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 [style.padding]=\"'0 ' + 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
|
|
8748
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 [style.padding]=\"'0 ' + 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\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div *ngIf=\"data.globalLoading; else notLoading\" 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-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\n ? '@pry.widget.target.none_manual'\n : '@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]=\"data.fetchLoading && !data.globalLoading ? '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 </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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8675
8749
|
}
|
|
8676
8750
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
8677
8751
|
type: Component,
|
|
8678
|
-
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 [style.padding]=\"'0 ' + 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
|
|
8752
|
+
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 [style.padding]=\"'0 ' + 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\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div *ngIf=\"data.globalLoading; else notLoading\" 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-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\n ? '@pry.widget.target.none_manual'\n : '@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]=\"data.fetchLoading && !data.globalLoading ? '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 </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" }]
|
|
8679
8753
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateModal: [{
|
|
8680
8754
|
type: ViewChild,
|
|
8681
8755
|
args: ['templateModal', { read: TemplateRef }]
|
|
@@ -10596,7 +10670,6 @@ class DashboardEffects {
|
|
|
10596
10670
|
this.fetchStaticManifest$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.fetchStaticManifest), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.selectedItemIds)), filter$1(([action, rank]) => rank === 0), mergeMap$1(([action, rank]) => this.manifestService
|
|
10597
10671
|
.get(action.id)
|
|
10598
10672
|
.pipe(map$1((staticManifest) => DashboardActions.updateStaticManifest({ staticManifest }))))));
|
|
10599
|
-
this.fetchStaticManifestLoading$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.fetchStaticManifest), delay$1(5000), map$1((action) => DashboardActions.endLoading())));
|
|
10600
10673
|
this.loadAndActivateManifest$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.loadAndActivateManifest, DashboardActions.loadManifest), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.selectedItemIds)), filter$1(([action, rank]) => rank === 0), mergeMap$1(([action, rank, selectedIds]) => this.manifestService.get(action.id).pipe(mergeMap$1((manifest) => {
|
|
10601
10674
|
return action.type === DashboardActions.loadAndActivateManifest.type
|
|
10602
10675
|
? [
|
|
@@ -10618,6 +10691,7 @@ class DashboardEffects {
|
|
|
10618
10691
|
this.router.navigateByUrl(manifest.route);
|
|
10619
10692
|
}
|
|
10620
10693
|
})), { dispatch: false });
|
|
10694
|
+
this.endLoadingAfterFollowingManifestRoute$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.followManifestRoute), map$1((action) => DashboardActions.endLoading())));
|
|
10621
10695
|
this.requestManifestRoute$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.requestAllRoutes), map$1(() => DashboardActions.updateRouteManifest({ route: this.router.url }))));
|
|
10622
10696
|
this.assertResultSets$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.assertResultSets, DashboardActions.dispatchFilters, DashboardActions.clearAllFilterValues), withLatestFrom(this.store.select(DashboardSelectors.globalManifest), this.store.select(DashboardSelectors.resultSets), this.store.select(DashboardSelectors.resultSetsParams), this.store.select(DashboardSelectors.quickOrder)), mergeMap$1(([action, manifest, resultSets, resultSetsParams, quickOrder]) => {
|
|
10623
10697
|
// @ts-ignore
|
|
@@ -10635,7 +10709,14 @@ class DashboardEffects {
|
|
|
10635
10709
|
.reduce((p, c) => [...p, ...c], [])
|
|
10636
10710
|
.map((widManifest) => this.widgetFactoryService.datasourcesToAutoLoad(widManifest))
|
|
10637
10711
|
.flat()
|
|
10638
|
-
.reduce((p, c) => ({
|
|
10712
|
+
.reduce((p, c) => ({
|
|
10713
|
+
...p,
|
|
10714
|
+
[c.datasetId]: {
|
|
10715
|
+
...p[c.datasetId],
|
|
10716
|
+
...c,
|
|
10717
|
+
excludeGeo: p[c.datasetId]?.excludeGeo === false ? p[c.datasetId].excludeGeo : c.excludeGeo
|
|
10718
|
+
}
|
|
10719
|
+
}), {}))
|
|
10639
10720
|
.filter((resultSet) => !!resultSet.datasetId &&
|
|
10640
10721
|
resultSet.datasetId !== '' &&
|
|
10641
10722
|
(!resultSets[resultSet.datasetId] ||
|
|
@@ -10692,7 +10773,7 @@ class DashboardEffects {
|
|
|
10692
10773
|
}),
|
|
10693
10774
|
type: 'error'
|
|
10694
10775
|
});
|
|
10695
|
-
return throwError(error);
|
|
10776
|
+
return throwError(() => error);
|
|
10696
10777
|
}))), mergeMap$1((manifest) => [
|
|
10697
10778
|
DashboardActions.fetchManifestsList(),
|
|
10698
10779
|
DashboardActions.setInitialPresentation({ initial: manifest })
|
|
@@ -11544,7 +11625,13 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
11544
11625
|
[action.url]: action.capability
|
|
11545
11626
|
}
|
|
11546
11627
|
};
|
|
11547
|
-
}))
|
|
11628
|
+
}), on(DashboardActions.loadPresentation, (state) => ({
|
|
11629
|
+
...state,
|
|
11630
|
+
manifests: {
|
|
11631
|
+
...state.manifests,
|
|
11632
|
+
loading: true
|
|
11633
|
+
}
|
|
11634
|
+
})));
|
|
11548
11635
|
function dashboardReducer(state, action) {
|
|
11549
11636
|
return internalReducer(state, action);
|
|
11550
11637
|
}
|