@provoly/dashboard 1.4.42 → 1.4.44
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/dashboard/store/wms.service.mjs +2 -2
- package/esm2022/presentation/components/presentation.component.mjs +3 -3
- package/esm2022/presentation/i18n/en.translations.mjs +2 -1
- package/esm2022/presentation/i18n/fr.translations.mjs +3 -2
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +3 -3
- package/fesm2022/provoly-dashboard-presentation.mjs +7 -5
- 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-toolbox.mjs +2 -2
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +1 -1
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/package.json +1 -1
- package/presentation/i18n/en.translations.d.ts +1 -0
- package/presentation/i18n/fr.translations.d.ts +1 -0
- package/presentation/style/_o-pry-new-presentation.scss +5 -0
- package/presentation/style/_o-pry-presentation.scss +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provoly-dashboard-toolbox.mjs","sources":["../../../../projects/provoly/dashboard/toolbox/shared/toolbox-action/toolbox-action.component.ts","../../../../projects/provoly/dashboard/toolbox/components/clear-view/clear-view.component.ts","../../../../projects/provoly/dashboard/toolbox/components/clear-view/clear-view.component.html","../../../../projects/provoly/dashboard/toolbox/components/drag-widgets/drag-widgets.component.ts","../../../../projects/provoly/dashboard/toolbox/components/drag-widgets/drag-widgets.component.html","../../../../projects/provoly/dashboard/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.ts","../../../../projects/provoly/dashboard/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.html","../../../../projects/provoly/dashboard/toolbox/style/css.component.ts","../../../../projects/provoly/dashboard/toolbox/components/filter-settings/filter-settings.component.ts","../../../../projects/provoly/dashboard/toolbox/components/filter-settings/filter-settings.component.html","../../../../projects/provoly/dashboard/toolbox/components/launch-tab/launch-tab.component.ts","../../../../projects/provoly/dashboard/toolbox/components/launch-tab/launch-tab.component.html","../../../../projects/provoly/dashboard/toolbox/components/named-query/named-query.component.ts","../../../../projects/provoly/dashboard/toolbox/components/named-query/named-query.component.html","../../../../projects/provoly/dashboard/toolbox/shared/presentation-form/presentation-form.component.ts","../../../../projects/provoly/dashboard/toolbox/shared/presentation-form/presentation-form.component.html","../../../../projects/provoly/dashboard/toolbox/components/save-view/save-view.component.ts","../../../../projects/provoly/dashboard/toolbox/components/save-view/save-view.component.html","../../../../projects/provoly/dashboard/toolbox/components/select-grid-layout/select-grid-layout.component.ts","../../../../projects/provoly/dashboard/toolbox/components/select-grid-layout/select-grid-layout.component.html","../../../../projects/provoly/dashboard/toolbox/components/automate-refresh/automate-refresh.component.ts","../../../../projects/provoly/dashboard/toolbox/components/automate-refresh/automate-refresh.component.html","../../../../projects/provoly/dashboard/toolbox/components/refresh-datasets/refresh-datasets.component.ts","../../../../projects/provoly/dashboard/toolbox/components/refresh-datasets/refresh-datasets.component.html","../../../../projects/provoly/dashboard/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.ts","../../../../projects/provoly/dashboard/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.html","../../../../projects/provoly/dashboard/toolbox/components/share/share.component.ts","../../../../projects/provoly/dashboard/toolbox/components/share/share.component.html","../../../../projects/provoly/dashboard/toolbox/components/delete/delete.component.ts","../../../../projects/provoly/dashboard/toolbox/components/delete/delete.component.html","../../../../projects/provoly/dashboard/toolbox/components/dashboard-details/dashboard-details.component.ts","../../../../projects/provoly/dashboard/toolbox/components/dashboard-details/dashboard-details.component.html","../../../../projects/provoly/dashboard/toolbox/components/edit-mode-action/edit-mode-action.component.ts","../../../../projects/provoly/dashboard/toolbox/components/edit-mode-action/edit-mode-action.component.html","../../../../projects/provoly/dashboard/toolbox/components/edit-presentation/edit-presentation.component.ts","../../../../projects/provoly/dashboard/toolbox/components/edit-presentation/edit-presentation.component.html","../../../../projects/provoly/dashboard/toolbox/toolbox.model.ts","../../../../projects/provoly/dashboard/toolbox/shared/toolbox-action-instanciator/toolbox-action-instanciator.component.ts","../../../../projects/provoly/dashboard/toolbox/shared/toolbox-action-instanciator/toolbox-action-instanciator.component.html","../../../../projects/provoly/dashboard/toolbox/components/toolbox.component.ts","../../../../projects/provoly/dashboard/toolbox/components/toolbox.component.html","../../../../projects/provoly/dashboard/toolbox/toolbox.module.ts","../../../../projects/provoly/dashboard/toolbox/provoly-dashboard-toolbox.ts"],"sourcesContent":["import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n DashboardSelectors,\n ManifestDescription,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n SubscriptionnerDirective\n} from '@provoly/dashboard';\nimport { map, Observable, of, switchMap } from 'rxjs';\n\n@Component({\n selector: 'pry-toolbox-action',\n template: ''\n})\nexport class ToolboxActionComponent extends SubscriptionnerDirective {\n @Input() displayLabels = true;\n @Output() closeOptions = new EventEmitter<void>();\n currentManifest$: Observable<ManifestDescription | undefined>;\n currentManifest: ManifestDescription | undefined;\n canModify$: Observable<boolean>;\n\n constructor(\n protected store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) protected access: PryBaseAccess\n ) {\n super();\n this.currentManifest$ = this.store.select(DashboardSelectors.currentManifest);\n this.canModify$ = this.currentManifest$.pipe(\n switchMap((manifest) => {\n return manifest ? this.access?.canModifyPresentation(manifest) : of(false);\n })\n );\n this.subscriptions.add(\n this.currentManifest$.subscribe((manifest) => {\n this.currentManifest = manifest;\n })\n );\n }\n\n close(): void {\n this.closeOptions.emit();\n }\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n\n@Component({\n selector: 'pry-clear-view',\n templateUrl: './clear-view.component.html'\n})\nexport class ClearViewComponent extends ToolboxActionComponent {\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n clear() {\n this.store.dispatch(DashboardActions.clearManifest());\n this.close();\n }\n}\n","<button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"clear()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.clear' | i18n }}\n }\n</button>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n ConfigActions,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n ToolboxManifestService,\n ToolboxMenuService,\n WidgetDescriptionMenu\n} from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-drag-widgets',\n templateUrl: './drag-widgets.component.html'\n})\nexport class DragWidgetsComponent extends ToolboxActionComponent {\n mainOpened = false;\n\n readonly connectedPosition: ConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n };\n menu$: Observable<WidgetDescriptionMenu[]>;\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private toolboxManifestService: ToolboxManifestService,\n public toolboxMenuService: ToolboxMenuService\n ) {\n super(store, access);\n this.store.dispatch(ConfigActions.loadWidgets());\n this.menu$ = this.toolboxMenuService.menuStructure$;\n }\n\n dragStart($event: DragEvent, type: string) {\n this.toolboxManifestService.dataTransfer($event, type);\n\n setTimeout(() => {\n this.mainOpened = false;\n }, 100);\n }\n\n openMenu($event: Event) {\n this.mainOpened = true;\n $event.stopPropagation();\n }\n}\n","<div class=\"toolbox-draggable\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup=\"true\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n @if (displayLabels) {\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span>\n {{ '@pry.toolbox.drag' | i18n }}\n }\n </button>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Insérer un widget (par glisser/déposer)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n @for (menu of menu$ | async; track menu.label) {\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n @if (displayLabels) {\n {{ menu.label | i18n }}\n }\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n @for (sub of menu.sub; track sub.label) {\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n @if (displayLabels) {\n {{ sub.label | i18n }}\n }\n </button>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n </div>\n</ng-template>\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, DashboardSelectors, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-edit-mode-toggle',\n templateUrl: './edit-mode-toggle.component.html'\n})\nexport class EditModeToggleComponent extends ToolboxActionComponent {\n modeEdition$: Observable<boolean>;\n\n constructor(store: Store<any>, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n this.modeEdition$ = this.store.select(DashboardSelectors.dashboardEditionMode);\n }\n\n toggleEditionMode() {\n this.store.dispatch(DashboardActions.toggleEditionMode({}));\n }\n}\n","<pry-toggle\n [ngModel]=\"modeEdition$ | async\"\n (ngModelChange)=\"toggleEditionMode()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n dir=\"ltr\"\n>\n {{ ((modeEdition$ | async) ? '@pry.toolbox.editOff' : '@pry.toolbox.edit') | i18n }}\n</pry-toggle>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-toolbox-css',\n template: '',\n styleUrls: ['_o-select-grid-layout.scss', '_o-filter-settings.scss', '_o-toolbox.scss', '_o-automate-refresh.scss', '_o-dashboard-details.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PrySelectGridLayoutCssComponent {}\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, Inject, Injector, Input, Optional, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n Class,\n ClassSelectors,\n ConfigActions,\n DashboardActions,\n DashboardSelectors,\n DataSource,\n DataSourceSelectors,\n FieldSelectors,\n FieldType,\n Filter,\n FilterFactoryService,\n GlobalManifest,\n MonoClassSearchPayload,\n NamedQueryTypes,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n PryI18nService\n} from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { withLatestFrom } from 'rxjs';\nimport { v4 } from 'uuid';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\nexport enum FilterSteps {\n LIST = 'list',\n CREATION = 'creation',\n EDITION = 'edition'\n}\n\nexport interface Attribute {\n id: string;\n customId: string;\n technicalName: string;\n label: string;\n datasource: string;\n type: FieldType;\n}\n\n@Component({\n selector: 'pry-filter-settings',\n templateUrl: './filter-settings.component.html'\n})\nexport class PryFilterSettingsComponent extends ToolboxActionComponent {\n @Input() label = true;\n @ViewChild('settings', { read: TemplateRef }) templateSettings!: TemplateRef<any>;\n overlayRefSettings?: OverlayRef;\n settingsOpened: boolean = false;\n manifest$: Observable<GlobalManifest>;\n filters: Filter[] = [];\n types$: Observable<{ label: string; value: string }[]>;\n currentFilterComponentType$ = new BehaviorSubject('');\n currentStep: FilterSteps = FilterSteps.LIST;\n steps = FilterSteps;\n filter: Filter = {\n id: v4(),\n name: '',\n type: '',\n attributes: []\n };\n datasource$: Observable<any>;\n operators = [\n { label: '@pry.search.operator.equalsString', value: 'EQUALS' },\n { label: '@pry.search.operator.notEqualsString', value: 'NOT_EQUALS' },\n { label: '@pry.search.operator.contains', value: 'CONTAINS' },\n { label: '@pry.search.operator.containsCaseInsensitive', value: 'I_CONTAINS' },\n { label: '@pry.search.operator.startWith', value: 'START_WITH' },\n { label: '@pry.search.operator.endWith', value: 'END_WITH' },\n { label: '@pry.search.operator.greaterThanNumber', value: 'GREATER_THAN' },\n { label: '@pry.search.operator.lowerThanNumber', value: 'LOWER_THAN' },\n { label: '@pry.search.operator.innerBoundsDate', value: 'INSIDE' },\n { label: '@pry.search.operator.outerBoundsDate', value: 'OUTSIDE' }\n ];\n currentOperators$ = new BehaviorSubject(this.operators);\n classes: Class[] = [];\n attributes$: Observable<Attribute[]>;\n selectedAttribute$ = new BehaviorSubject<string[]>(this.filter.attributes.map((attr) => attr.id));\n @ViewChild('container', { read: ViewContainerRef }) container!: ViewContainerRef;\n attributes: Attribute[] = [];\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private filterFactoryService: FilterFactoryService,\n private injector: Injector,\n private i18nService: PryI18nService\n ) {\n super(store, access);\n this.manifest$ = store.select(DashboardSelectors.globalManifest);\n this.subscriptions.add(\n this.manifest$.subscribe((manifest) => {\n this.filters = manifest.filters ? [...manifest.filters] : [];\n })\n );\n\n this.datasource$ = combineLatest([\n this.store.select(DataSourceSelectors.getDataSources),\n store.select(DashboardSelectors.namedQueriesUses)\n ]).pipe(\n map(([dataSources, dataSourcesUsed]) =>\n Object.keys(dataSourcesUsed).map((id) => ({\n label: dataSources.find((dataSource) => dataSource.id === id)?.name,\n value: id\n }))\n )\n );\n\n this.types$ = this.filterFactoryService.types$.pipe(\n map((types) =>\n types.map((type) => ({\n label: '@pry.filters.types.' + type,\n value: type\n }))\n )\n );\n\n this.subscriptions.add(\n this.currentFilterComponentType$.subscribe(() => {\n this.currentOperators$.next(this.getOperators());\n })\n );\n\n this.attributes$ = combineLatest([\n store.select(DataSourceSelectors.getDataSources),\n store.select(DashboardSelectors.namedQueriesUses),\n store.select(ClassSelectors.classes),\n this.currentFilterComponentType$\n ]).pipe(\n withLatestFrom(store.select(FieldSelectors.fields)),\n map(([[dataSources, currentDataSources, classes, componentType], fields]) => {\n let dataSourcesInPres = dataSources.filter((dataSource) =>\n Object.keys(currentDataSources).includes(dataSource.id) ? dataSource : false\n );\n return dataSourcesInPres\n .map((dataSource) =>\n (this.getDatasourceClass(dataSource, classes)?.attributes ?? []).map((attr) => ({\n id: attr.id,\n customId: this.getCustomAttributeId(attr.id, dataSource.id),\n technicalName: attr.technicalName,\n label: `${attr.name} / ${dataSource.name}`,\n datasource: dataSource.id,\n type: attr.field.type ?? FieldType.STRING\n }))\n )\n .flat()\n .sort((attr1, attr2) => attr1.label.localeCompare(attr2.label))\n .filter((attr) => this.isValidAttributeForComponentType(componentType, attr));\n }),\n map(\n (attributes) =>\n [\n ...attributes,\n ...this.filter.attributes\n .map((attr) =>\n attributes.map((a) => a.id).includes(attr.id)\n ? undefined\n : {\n ...attr,\n label: `${this.i18nService.instant('@pry.toolbox.notInDsAttr')} - ${attr.label}`,\n classes: '-warn'\n }\n )\n .filter((attr) => !!attr)\n ] as Attribute[]\n )\n );\n\n this.subscriptions.add(this.attributes$.subscribe((attrs) => (this.attributes = attrs)));\n }\n\n getDatasourceClass(dataSource: DataSource, classes: Class[]): Class | undefined {\n let clazz: Class | undefined = undefined;\n if (dataSource.sourceType === 'dataset') {\n clazz = classes.find((clazz) => clazz.id === dataSource.oClass);\n } else if (\n dataSource.sourceType === 'namedQuery' &&\n dataSource.request &&\n dataSource.request.type === NamedQueryTypes.MONO_CLASS\n ) {\n clazz = classes.find((clazz) => clazz.id === (dataSource.request as MonoClassSearchPayload).oClass);\n }\n return clazz;\n }\n\n isValidAttributeForComponentType(componentType: string, attribute: Attribute): boolean {\n switch (componentType) {\n case 'date':\n return attribute.type === FieldType.INSTANT;\n case 'number':\n return [FieldType.INTEGER, FieldType.DECIMAL, FieldType.LONG].includes(attribute.type);\n case 'text':\n return [FieldType.STRING, FieldType.KEYWORD].includes(attribute.type);\n case 'autocomplete':\n return [FieldType.KEYWORD].includes(attribute.type);\n default:\n return true;\n }\n }\n\n drop(event: CdkDragDrop<Filter[]>) {\n moveItemInArray(this.filters, event.previousIndex, event.currentIndex);\n }\n\n toggleSettings() {\n this.settingsOpened = !this.settingsOpened;\n if (this.settingsOpened) {\n this.openSettings();\n } else {\n this.overlayRefSettings?.dispose();\n this.overlayRefSettings = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.store.dispatch(DashboardActions.setFilters({ filters: this.filters }));\n this.goBack();\n this.close();\n }\n }\n\n openSettings() {\n this.overlayRefSettings = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper', 'o-select-grid-layout-modal-wrapper'],\n backdropClass: 'backdrop--with-color'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefSettings.backdropClick().subscribe((_) => {\n this.goBack();\n this.toggleSettings();\n });\n this.overlayRefSettings.attach(new TemplatePortal(this.templateSettings, this.viewContainerRef));\n }\n\n updateFilterType($event: any) {\n this.filter.type = $event;\n switch ($event) {\n case 'list':\n case 'autocomplete':\n this.filter.operator = 'EQUALS';\n break;\n case 'text':\n this.filter.operator = 'I_CONTAINS';\n break;\n default:\n break;\n }\n if (this.filter.type !== '' && this.container) {\n let component = this.filterFactoryService.generateFilter(this.filter.type, this.injector, this.container);\n this.subscriptions.add(\n component.subscribe((componentRef) => {\n this.currentFilterComponentType$.next(componentRef.instance.type);\n })\n );\n }\n this.filter.limit = this.filter.type === 'autocomplete' ? this.filter.limit ?? 10 : undefined;\n }\n\n getFilterAttributes(filter: Filter, attrCount: number) {\n attrCount = attrCount <= filter.attributes.length ? attrCount : filter.attributes.length;\n return filter.attributes\n .map((attr) => attr.technicalName)\n .slice(0, attrCount)\n .join(', ');\n }\n\n goBack() {\n this.filter = {\n id: v4(),\n name: '',\n type: '',\n attributes: []\n };\n this.currentStep = FilterSteps.LIST;\n }\n\n goToEdition(filter: Filter) {\n this.filter = {\n ...filter,\n attributes: [\n ...filter.attributes.map((attr) => ({ ...attr, customId: this.getCustomAttributeId(attr.id, attr.datasource) }))\n ]\n };\n this.currentStep = FilterSteps.EDITION;\n }\n\n goToCreation() {\n this.currentFilterComponentType$.next('');\n this.currentStep = FilterSteps.CREATION;\n }\n\n submitFilter() {\n this.filter.attributes = this.filter.attributes.map((attr) =>\n typeof attr === 'string' ? this.attributes.find((attrObj) => attrObj.customId === attr)! : attr\n );\n this.store.dispatch(DashboardActions.updateFilters({ filter: this.filter }));\n this.goBack();\n }\n\n selectAttribute($event: Attribute[]) {\n this.filter.attributes = $event;\n this.selectedAttribute$.next($event.map((attr) => attr.id));\n }\n\n deleteFilter(id: string) {\n this.store.dispatch(DashboardActions.removeFilter({ id }));\n }\n\n getOperators(): { label: string; value: string }[] {\n return this.operators.filter((operator) => {\n switch (this.currentFilterComponentType$.value) {\n case 'date':\n return this.filter.hasDateRange\n ? ['INSIDE', 'OUTSIDE'].includes(operator.value)\n : ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);\n case 'list':\n case 'autocomplete':\n return ['EQUALS'].includes(operator.value);\n case 'number':\n return ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);\n case 'text':\n return ['I_CONTAINS', 'CONTAINS', 'EQUALS', 'NOT_EQUALS', 'START_WITH', 'END_WITH'].includes(operator.value);\n default:\n return operator;\n }\n });\n }\n\n getCustomAttributeId(attributeId: string, datasetId: string): string {\n return `${attributeId}@${datasetId}`;\n }\n\n protected readonly FilterSteps = FilterSteps;\n}\n","<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n @if (label) {\n {{ '@pry.filters.label' | i18n }}\n }\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n @if (currentStep === FilterSteps.LIST) {\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n }\n @if (currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION) {\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n }\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n @if (currentStep === FilterSteps.LIST) {\n <div class=\"o-filters__content\">\n @if ((attributes$ | async)?.length === 0) {\n <div class=\"a-table-wrapper\"></div>\n } @else {\n @if (filters.length > 0) {\n <table class=\"a-table\" role=\"presentation\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n @for (filter of filters; track filter.id) {\n <tr class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n }\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n }\n </div>\n }\n @if (currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION) {\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n @if ((currentFilterComponentType$ | async) === 'date') {\n <div class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n }\n @if ((currentFilterComponentType$ | async) === 'list') {\n <div class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n }\n @if ((currentFilterComponentType$ | async) === 'autocomplete') {\n <div class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n }\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [clearable]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n bindLabel=\"label\"\n bindValue=\"customId\"\n bindClasses=\"classes\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"\n (currentFilterComponentType$ | async) === 'list' ||\n (currentFilterComponentType$ | async) === 'autocomplete'\n \"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n }\n </div>\n</ng-template>\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-launch-tab',\n templateUrl: './launch-tab.component.html'\n})\nexport class LaunchTabComponent extends ToolboxActionComponent {\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n launchNewWindow() {\n this.store.dispatch(DashboardActions.createTab());\n this.close();\n }\n}\n","<button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"launchNewWindow()\">\n @if (displayLabels) {\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.launchIndication' | i18n }}</span>\n {{ '@pry.toolbox.launch' | i18n }}\n }\n <pry-icon iconSvg=\"launch\" [width]=\"20\" [height]=\"20\"></pry-icon>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardSelectors, DataSourceActions, MIME_TYPE_RESULTSET } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'pry-named-query',\n templateUrl: './named-query.component.html'\n})\nexport class NamedQueryComponent {\n @Input() label = true;\n displayCombo = false;\n namedQueries$: Observable<string[]>;\n\n constructor(private store: Store<any>) {\n this.store.dispatch(DataSourceActions.load({}));\n this.namedQueries$ = this.store.select(DashboardSelectors.availableNamedQueries);\n }\n\n toggle() {\n this.displayCombo = !this.displayCombo;\n }\n\n dragStart($event: DragEvent, rs: string) {\n if (!!$event && !!$event.dataTransfer && !$event.dataTransfer.types.includes(MIME_TYPE_RESULTSET)) {\n $event.dataTransfer.setData(MIME_TYPE_RESULTSET, rs);\n }\n }\n\n dragLeave($event: DragEvent) {\n this.toggle();\n }\n}\n","<div class=\"o-named-query\">\n <div class=\"combobox-container\" (dragleave)=\"dragLeave($event)\">\n <button type=\"button\" class=\"a-btn a-btn--action\" (click)=\"toggle()\">\n <pry-icon iconSvg=\"data_usage\"></pry-icon>\n @if (label) {\n {{ '@pry.toolbox.resultSet' | i18n }}\n }\n </button>\n\n @if (displayCombo) {\n <div class=\"combobox\" (mouseleave)=\"toggle()\">\n @for (rs of namedQueries$ | async; track rs) {\n <div draggable=\"true\" (dragstart)=\"dragStart($event, rs)\">\n {{ rs | translateId: { type: 'datasource', output: 'name' } | async }}\n </div>\n }\n </div>\n }\n </div>\n</div>\n","import { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\nimport {\n DEFAULT_DASHBOARD_ICON_URL,\n LibraryTypes,\n ManifestDescription,\n PryI18nService,\n SubscriptionnerDirective\n} from '@provoly/dashboard';\nimport { AfterViewInit, Component, ElementRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MetadataActions, MetadataSelectors } from '@provoly/dashboard/components/metadata-editor';\nimport { Store } from '@ngrx/store';\n\nexport interface PresentationForm {\n name: FormControl<string | undefined>;\n description: FormControl<string | undefined | null>;\n theme: FormControl<string | undefined | null>;\n additionalInformation: FormControl<string | undefined | null>;\n}\n\nexport interface PresentationFormValue {\n name: string;\n description?: string;\n theme?: string;\n additionalInformation?: string;\n image: string;\n}\n\n@Component({\n selector: 'pry-presentation-form',\n templateUrl: './presentation-form.component.html'\n})\nexport class PresentationFormComponent extends SubscriptionnerDirective implements OnInit, AfterViewInit {\n form = new FormGroup<PresentationForm>({\n name: new FormControl(undefined, {\n validators: [Validators.required, Validators.maxLength(50)],\n nonNullable: true\n }),\n description: new FormControl(undefined, [Validators.maxLength(200)]),\n theme: new FormControl(undefined),\n additionalInformation: new FormControl(undefined)\n });\n\n image: string = DEFAULT_DASHBOARD_ICON_URL;\n type: LibraryTypes = LibraryTypes.ILLUSTRATION;\n possibleThemes: string[] = [];\n\n @Input() mode: 'theme' | 'meta' = 'meta';\n @Input() themePrefix: string | null = null;\n @ViewChild('input') input!: ElementRef;\n\n selectedPresentation$ = new BehaviorSubject<ManifestDescription | undefined>(undefined);\n\n @Input() set selectedPresentation(presentation: ManifestDescription | undefined) {\n this.selectedPresentation$.next(presentation);\n }\n\n @Output() formValue = new BehaviorSubject<Partial<PresentationFormValue> | undefined>(undefined);\n @Output() isFormValid = new BehaviorSubject<boolean>(false);\n\n constructor(\n protected store: Store,\n private i18nService: PryI18nService\n ) {\n super();\n this.store.dispatch(MetadataActions.loadMetadata());\n\n this.subscriptions.add(\n this.store.select(MetadataSelectors.metadata).subscribe((metadata) => {\n this.possibleThemes = [...(metadata?.find((meta) => meta.name === '_theme')?.allowedValues ?? [])];\n this.possibleThemes.sort((themeA, themeB) =>\n this.i18nService\n .instant((this.themePrefix ?? '') + themeA)\n .localeCompare(this.i18nService.instant((this.themePrefix ?? '') + themeB))\n );\n })\n );\n\n this.subscriptions.add(\n this.form.valueChanges.subscribe(() => {\n this.isFormValid.next(this.form.valid);\n this.formValue.next(this.getFormValue());\n })\n );\n }\n\n ngOnInit(): void {\n this.image = this.selectedPresentation$.value?.image ?? DEFAULT_DASHBOARD_ICON_URL;\n this.subscriptions.add(\n this.selectedPresentation$.subscribe((presentation) => {\n const theme = presentation?.metadata?.find((metadata) => metadata.metadataDef.name === '_theme')?.value;\n if (!!theme) this.form.patchValue({ theme });\n })\n );\n setTimeout(() => {\n this.input?.nativeElement.focus();\n }, 10);\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n if (this.selectedPresentation$.value) this.form.patchValue(this.selectedPresentation$.value);\n });\n }\n\n get name(): AbstractControl<string | undefined> {\n return this.form.controls['name'];\n }\n\n get description(): AbstractControl<string | undefined | null> {\n return this.form.controls['description'];\n }\n\n get theme(): AbstractControl<string | undefined | null> {\n return this.form.controls['theme'];\n }\n\n get additionalInformation(): AbstractControl<string | undefined | null> {\n return this.form.controls['additionalInformation'];\n }\n\n getFormValue(): Partial<PresentationFormValue> {\n return {\n name: this.name.value,\n description: this.description.value === null ? undefined : this.description.value,\n theme: this.theme.value === null ? undefined : this.theme.value,\n additionalInformation: this.additionalInformation.value === null ? undefined : this.additionalInformation.value,\n image: this.image\n };\n }\n\n onImageChanged($event: string) {\n this.image = $event;\n this.formValue.next(this.getFormValue());\n }\n}\n","<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\">{{ '@pry.presentation.form.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{ '@pry.presentation.form.description' | i18n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n @if (mode === 'theme') {\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_theme\">{{ '@pry.presentation.form.theme' | i18n }}</label>\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n }\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"onImageChanged($event)\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.toolbox.about' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n</form>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n ConfigActions,\n DashboardActions,\n DashboardSelectors,\n ManifestDescription,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n ViewMode\n} from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { v4 } from 'uuid';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\nimport { PresentationFormValue } from '../../shared/presentation-form/presentation-form.component';\n\n@Component({\n selector: 'pry-save-view',\n templateUrl: './save-view.component.html'\n})\nexport class SaveViewComponent extends ToolboxActionComponent {\n @Input() mode: 'saveAs' | 'directSave' = 'saveAs';\n @ViewChild('saveAs') saveAs!: ElementRef<HTMLButtonElement>;\n @ViewChild('directiveSave') directiveSave!: ElementRef<HTMLButtonElement>;\n @ViewChild('firstFocusdirective') firstFocusdirective!: ElementRef<HTMLButtonElement>;\n @ViewChild('cross') cross!: ElementRef<HTMLButtonElement>;\n @ViewChild('confirm') confirm!: ElementRef<HTMLButtonElement>;\n @ViewChild('cancel') cancel!: ElementRef<HTMLButtonElement>;\n saveAsOpened: boolean = false;\n overlayRefSaveAs?: OverlayRef;\n @ViewChild('templateSaveAs', { read: TemplateRef }) templateSaveAs!: TemplateRef<any>;\n overlayRefDirectSaveType?: OverlayRef;\n @ViewChild('templateDirectSaveType', { read: TemplateRef }) templateDirectSaveType!: TemplateRef<any>;\n accessRightsByGroup: { [key: string]: string[] } = {};\n saveTypeOpened = false;\n isCurrentPresentationModified$: Observable<boolean>;\n nbPages: number = 0;\n initialNbPages: number = 0;\n hasInitial: boolean = false;\n ViewMode = ViewMode;\n formValue?: Partial<PresentationFormValue>;\n isFormValid: boolean = false;\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n super(store, access);\n\n this.subscriptions.add(\n this.store.select(DashboardSelectors.presentation).subscribe((presentation) => {\n this.currentManifest = presentation.current\n ? structuredClone(presentation.current)\n : ({ name: '', image: '', description: '' } as ManifestDescription);\n this.initialNbPages = presentation.initial?.windows.length ?? 0;\n this.hasInitial = !!presentation.initial;\n })\n );\n this.isCurrentPresentationModified$ = this.store.select(DashboardSelectors.isCurrentPresentationModified);\n this.subscriptions.add(\n this.store\n .select(DashboardSelectors.globalManifest)\n .subscribe((manifest) => (this.nbPages = manifest.windows.length))\n );\n }\n\n toggleSaveAs() {\n this.saveAsOpened = !this.saveAsOpened;\n if (this.saveAsOpened) {\n this.store.dispatch(DashboardActions.requestAllRoutes());\n this.openSaveAs();\n } else {\n this.overlayRefSaveAs?.dispose();\n this.overlayRefSaveAs = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.saveAs.nativeElement.focus();\n }\n }\n\n save() {\n this.store.dispatch(DashboardActions.requestAllRoutes());\n this.store.dispatch(DashboardActions.requestManifestsToEmit());\n // Give time for routes to be updated\n setTimeout(() => {\n let presentation = {\n ...this.currentManifest,\n name: this.currentManifest!.name,\n id: v4(),\n description: this.currentManifest!.description,\n image: this.currentManifest!.image,\n accessRightsByGroup: this.accessRightsByGroup,\n owner: this.currentManifest?.owner,\n metadata: undefined\n };\n if (this.mode == 'directSave') {\n if (this.currentManifest) {\n presentation.id = this.currentManifest.id;\n presentation.accessRightsByGroup = this.currentManifest.accessRightsByGroup;\n }\n } else {\n presentation = {\n ...presentation,\n ...this.formValue\n };\n }\n this.store.dispatch(DashboardActions.saveManifest(presentation));\n this.store.dispatch(\n DashboardActions.selectPresentation({\n presentation: presentation as ManifestDescription\n })\n );\n this.mode = 'directSave';\n }, 1000); // Wait for routes and all widget manifests to be updated\n this.overlayRefSaveAs?.dispose();\n this.closeModals();\n }\n\n closeModals() {\n if (this.saveTypeOpened) {\n this.toggleDirectSaveType();\n }\n if (this.saveAsOpened) {\n this.toggleSaveAs();\n }\n this.close();\n }\n\n changeAccessRights($event: { [key: string]: string[] }) {\n this.currentManifest!.accessRightsByGroup = $event;\n }\n\n openSaveAs() {\n this.overlayRefSaveAs = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.mode = 'saveAs';\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefSaveAs.backdropClick().subscribe((_) => this.toggleSaveAs());\n this.overlayRefSaveAs.attach(new TemplatePortal(this.templateSaveAs, this.viewContainerRef));\n }\n\n toggleDirectSaveType() {\n this.saveTypeOpened = !this.saveTypeOpened;\n if (this.saveTypeOpened) {\n this.store.dispatch(DashboardActions.requestAllRoutes());\n this.overlayRefDirectSaveType = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefDirectSaveType.backdropClick().subscribe((_) => this.toggleDirectSaveType());\n this.overlayRefDirectSaveType.attach(new TemplatePortal(this.templateDirectSaveType, this.viewContainerRef));\n setTimeout(() => {\n this.firstFocusdirective?.nativeElement.focus();\n }, 10);\n } else {\n this.overlayRefDirectSaveType?.dispose();\n this.overlayRefDirectSaveType = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.directiveSave?.nativeElement.focus();\n }\n }\n\n get mustOpenModal() {\n return this.hasInitial && this.nbPages !== this.initialNbPages;\n }\n\n directSave() {\n if (this.mustOpenModal) {\n this.toggleDirectSaveType();\n } else {\n this.save();\n }\n }\n\n restore() {\n this.store.dispatch(DashboardActions.restoreInitialManifest());\n this.closeModals();\n }\n\n focusCrossElement() {\n this.cross.nativeElement.focus();\n }\n\n focusValidation() {\n if (!this.currentManifest?.name) {\n this.cancel.nativeElement.focus();\n }\n this.confirm.nativeElement.focus();\n }\n\n rename() {\n this.toggleSaveAs();\n }\n\n disableNextStep() {\n if (!this.currentManifest?.name) {\n this.focusCrossElement();\n }\n }\n}\n","<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n @if (mode === 'directSave') {\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n @if (canModify$ | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n @if (displayLabels) {\n {{\n '@pry.toolbox.save' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n }\n </div>\n }\n @if (mode === 'saveAs') {\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n @if (displayLabels) {\n {{\n '@pry.toolbox.rename' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n </div>\n }\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\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 <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <pry-presentation-form\n [selectedPresentation]=\"currentManifest\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isFormValid\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\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>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, ElementRef, Inject, Optional, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n AutomaticGridLayoutDefinition,\n ConfigActions,\n DashboardActions,\n DashboardGridLayout,\n DashboardSelectors,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n WidgetPlacementUtils\n} from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-select-grid-layout',\n templateUrl: './select-grid-layout.component.html'\n})\nexport class SelectGridLayoutComponent extends ToolboxActionComponent {\n availableLayouts$: Observable<AutomaticGridLayoutDefinition[]>;\n chosenLayout: string = DashboardGridLayout.MANUAL;\n canDispatch = false;\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n @ViewChild('firstButton') firstButton!: ElementRef<HTMLButtonElement>;\n @ViewChild('openModal') openModal!: ElementRef<HTMLButtonElement>;\n modalOpened: boolean = false;\n overlayRef?: OverlayRef;\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n super(store, access);\n this.subscriptions.add(\n this.store.select(DashboardSelectors.gridLayout).subscribe((layout) => (this.chosenLayout = layout))\n );\n this.availableLayouts$ = this.store.select(DashboardSelectors.windowManifest).pipe(\n map((manifest) =>\n WidgetPlacementUtils.layouts.filter((layout) => {\n return layout.places.length === 0 || layout.places.length >= (manifest.widgets ?? []).length;\n })\n )\n );\n\n setTimeout(() => {\n this.canDispatch = true;\n }, 100);\n }\n\n changeLayout(layout: string) {\n this.chosenLayout = layout;\n }\n\n toggleGridChoiceModal() {\n this.modalOpened = !this.modalOpened;\n if (this.modalOpened) {\n this.openWithTemplate();\n } else {\n this.overlayRef?.dispose();\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.openModal.nativeElement.focus();\n }\n }\n\n openWithTemplate() {\n if (!this.overlayRef) {\n this.modalOpened = !this.modalOpened;\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper', 'o-select-grid-layout-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRef.backdropClick().subscribe((_) => this.toggleGridChoiceModal());\n this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n setTimeout(() => {\n this.firstButton.nativeElement.focus();\n }, 10);\n } else {\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.openModal.nativeElement.focus();\n this.modalOpened = !this.modalOpened;\n this.close();\n }\n }\n\n validate() {\n if (this.canDispatch) {\n this.store.dispatch(DashboardActions.setGridLayout({ layout: this.chosenLayout }));\n }\n this.toggleGridChoiceModal();\n }\n}\n","<pry-toolbox-css></pry-toolbox-css>\n<div [attr.aria-expanded]=\"modalOpened\" aria-controls=\"grid-layout\">\n <button type=\"button\" #openModal class=\"a-btn a-btn--secondary\" (click)=\"toggleGridChoiceModal()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.chooseGrid' | i18n }}\n }\n </button>\n</div>\n<ng-template #template>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_title\"\n id=\"grid-layout\"\n (keydown.escape)=\"toggleGridChoiceModal()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.chooseGrid' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleGridChoiceModal()\">\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=\"o-select-grid-layout-wrapper\">\n <ul class=\"o-select-grid-layout\">\n @for (layout of availableLayouts$ | async; track layout) {\n <li class=\"o-select-grid-layout__item\">\n <button\n type=\"button\"\n #firstButton\n class=\"a-btn\"\n [attr.aria-pressed]=\"chosenLayout === layout.type\"\n [class.selected]=\"chosenLayout === layout.type\"\n (click)=\"changeLayout(layout.type)\"\n >\n <div class=\"o-select-grid-layout__item__preview\">\n <pry-dashboard\n [staticDashboard]=\"{\n widgets: [],\n grid: { layout: layout.type, rows: layout.rows, columns: layout.columns, gap: 3 }\n }\"\n [breakpoint]=\"10\"\n [noBackground]=\"true\"\n [forceModeEdition]=\"false\"\n ></pry-dashboard>\n </div>\n <p class=\"a-p\">\n <strong>{{ layout.label ?? '' | i18n }}</strong>\n </p>\n <p class=\"a-p\">\n {{ layout.description ?? '' | i18n }}\n </p>\n </button>\n </li>\n }\n </ul>\n </div>\n <div class=\"m-btn-group -space-evenly\">\n <button (click)=\"toggleGridChoiceModal()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button (click)=\"validate()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, Inject, OnInit, Optional, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n ConfigActions,\n DashboardActions,\n DashboardSelectors,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n WidgetFactoryService\n} from '@provoly/dashboard';\nimport { combineLatest, map, Observable, take } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n\n@Component({\n selector: 'pry-automate-refresh',\n templateUrl: './automate-refresh.component.html'\n})\nexport class AutomateRefreshComponent extends ToolboxActionComponent implements OnInit {\n @ViewChild('datasourceList', { read: TemplateRef }) datasourceList!: TemplateRef<any>;\n @ViewChild('refreshRateList', { read: TemplateRef }) refreshRateList!: TemplateRef<any>;\n\n refreshRates = [0, 10, 30, 60];\n datasources$: Observable<string[]>;\n refreshRates$!: Observable<{ [p: string]: number }>;\n selectedDatasourceId: string = '';\n allRefreshRate$!: Observable<number>;\n\n private overlayRefDatasourceList?: OverlayRef;\n private overlayRefRefreshList?: OverlayRef;\n\n constructor(\n store: Store,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private widgetFactoryService: WidgetFactoryService,\n @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess\n ) {\n super(store, access);\n this.datasources$ = this.store\n .select(DashboardSelectors.globalManifest)\n .pipe(\n map((manifest) => [\n ...new Set(this.widgetFactoryService.getObjectsToAutoLoad(manifest).datasources.map((ds) => ds.datasetId))\n ])\n );\n }\n\n ngOnInit() {\n this.refreshRates$ = this.store.select(DashboardSelectors.refreshRates);\n\n this.allRefreshRate$ = combineLatest([this.datasources$, this.refreshRates$]).pipe(\n map(([datasources, refreshRates]) =>\n datasources.map((ds) => refreshRates[ds] ?? 0).reduce((p, c) => (p === c ? c : -1))\n )\n );\n }\n\n toggleDatasourceList() {\n if (!this.overlayRefDatasourceList) {\n this.overlayRefDatasourceList = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: false,\n panelClass: ['datasource-bg', 'refresh-rs']\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefDatasourceList.attach(new TemplatePortal(this.datasourceList, this.viewContainerRef));\n this.subscriptions.add(\n this.overlayRefDatasourceList.backdropClick().subscribe((_) => this.hide(this.overlayRefDatasourceList))\n );\n const refreshElement = document.querySelector('.datasource-bg') as HTMLDivElement;\n const refresh = document.querySelector('.automate-btn') as HTMLDivElement;\n if (!!refreshElement) {\n const rect = refresh.getBoundingClientRect();\n refreshElement.style.left = rect.left + rect.width + 10 + 'px';\n refreshElement.style.top = rect.top + 'px';\n }\n }\n }\n\n hide(overlayRef: OverlayRef | undefined) {\n if (overlayRef) {\n overlayRef.dispose();\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n }\n }\n\n toggleRefreshRateList(datasourceId: string, templateIndex: number) {\n if (this.overlayRefRefreshList) {\n this.hide(this.overlayRefRefreshList);\n }\n this.selectDatasource(datasourceId);\n this.overlayRefRefreshList = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: false,\n panelClass: ['refresh-bg', 'refresh-rs']\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefRefreshList.attach(new TemplatePortal(this.refreshRateList, this.viewContainerRef));\n this.subscriptions.add(\n this.overlayRefRefreshList.backdropClick().subscribe((_) => this.hide(this.overlayRefRefreshList))\n );\n const refreshElement = document.querySelector('.refresh-bg') as HTMLDivElement;\n const refresh = document.querySelector(`.ds-${templateIndex}`) as HTMLDivElement;\n if (!!refreshElement) {\n const rect = refresh.getBoundingClientRect();\n refreshElement.style.left = rect.left + rect.width + 5 + 'px';\n refreshElement.style.top = rect.top + 'px';\n }\n }\n\n selectDatasource(id: string) {\n this.selectedDatasourceId = id;\n }\n\n toggleRefreshRate(rate: number) {\n if (this.selectedDatasourceId !== 'all') {\n this.store.dispatch(DashboardActions.setRefreshRate({ rate, id: this.selectedDatasourceId }));\n } else {\n this.datasources$.pipe(take(1)).subscribe((datasourceIds) => {\n datasourceIds.forEach((id) => {\n this.store.dispatch(DashboardActions.setRefreshRate({ rate, id }));\n });\n });\n }\n setTimeout(() => {\n this.hide(this.overlayRefRefreshList);\n this.hide(this.overlayRefDatasourceList);\n this.close();\n }, 100);\n }\n}\n","<pry-toolbox-css></pry-toolbox-css>\n<button\n type=\"button\"\n class=\"a-btn a-btn--secondary automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n>\n @if (displayLabels) {\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n }\n</button>\n\n<ng-template #datasourceList>\n @if (datasources$ | async; as datasources) {\n <div>\n @if (datasources.length > 0) {\n <button\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n {{ '@pry.toolbox.all' | i18n }}\n </button>\n }\n @for (datasourceId of datasources; track datasourceId; let i = $index) {\n <button\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId: { type: 'datasource', output: 'name' } | async }}\n </button>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n @for (rate of refreshRates; track rate) {\n <button class=\"refresh-line a-btn a-btn--icon-text -size-sm\" (click)=\"toggleRefreshRate(rate)\">\n @if (\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId]) === rate\n ) {\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"check\"></pry-icon>\n }\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n }\n </div>\n</ng-template>\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Action, Store } from '@ngrx/store';\nimport {\n DashboardActions,\n DashboardSelectors,\n GlobalManifest,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n SearchActions,\n WidgetFactoryService\n} from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-refresh-datasets',\n templateUrl: './refresh-datasets.component.html'\n})\nexport class RefreshDatasetsComponent extends ToolboxActionComponent {\n manifest$: Observable<GlobalManifest>;\n manifest?: GlobalManifest;\n datasetCount = 0;\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private widgetFactoryService: WidgetFactoryService\n ) {\n super(store, access);\n this.manifest$ = this.store.select(DashboardSelectors.globalManifest);\n this.subscriptions.add(this.manifest$.subscribe((manifest) => (this.manifest = manifest)));\n this.subscriptions.add(\n this.manifest$.subscribe(\n (manifest) =>\n (this.datasetCount =\n [\n ...new Set(\n manifest?.windows\n .map((window) => (window.widgets ?? []).map((widget) => widget.datasource))\n .flat(3)\n .filter((dataset) => !!dataset)\n )\n ].length ?? 0)\n )\n );\n }\n\n refresh() {\n if (this.manifest) {\n const dsAgg = this.widgetFactoryService.getObjectsToAutoLoad(this.manifest);\n\n const actions = [\n ...dsAgg.datasources.map((ds) =>\n SearchActions.getDatasourceItems({\n id: ds.datasetId,\n excludeGeo: ds.excludeGeo,\n from: 'RefreshDatasetsComponent.refresh()'\n })\n ),\n ...dsAgg.aggregates.map((agg) => DashboardActions.triggerAggregate({ id: agg }))\n ] as Action[];\n\n actions.forEach((action) => this.store.dispatch(action));\n }\n this.close();\n }\n}\n","<button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"refresh()\" [disabled]=\"datasetCount < 1\">\n @if (displayLabels) {\n {{ '@pry.toolbox.refresh' | i18n }}\n }\n <pry-icon iconSvg=\"refresh_data\"></pry-icon>\n</button>\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess, ViewMode } from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-switch-to-edit',\n templateUrl: './switch-to-edit-content.component.html'\n})\nexport class SwitchToEditContentComponent extends ToolboxActionComponent {\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n trigger() {\n this.store.dispatch(DashboardActions.updateDisplayOptions({ mode: ViewMode.EDITION }));\n this.close();\n }\n}\n","@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.switchEditContent' | i18n }}\n }\n </button>\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n PRY_ACCESS_TOKEN,\n PryAccessRightsShareModalComponent,\n PryBaseAccess,\n PryDialogService\n} from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-share-pres',\n templateUrl: './share.component.html'\n})\nexport class ShareComponent extends ToolboxActionComponent {\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private dialog: PryDialogService\n ) {\n super(store, access);\n }\n\n trigger() {\n this.dialog.open(PryAccessRightsShareModalComponent, {\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop',\n data: { manifest: this.currentManifest }\n });\n }\n}\n","@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.share' | i18n }}\n }\n </button>\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\nimport { Store } from '@ngrx/store';\n\n@Component({\n selector: 'pry-delete-pres',\n templateUrl: './delete.component.html'\n})\nexport class DeleteComponent extends ToolboxActionComponent {\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n trigger() {\n this.store.dispatch(DashboardActions.confirmManifestDeletion({ id: this.currentManifest?.id! }));\n this.close();\n }\n}\n","@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.delete' | i18n }}\n }\n </button>\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-dashboard-details',\n templateUrl: './dashboard-details.component.html'\n})\nexport class DashboardDetailsComponent extends ToolboxActionComponent {\n isPanelOpen = false;\n panelPosition: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 5\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 5\n }\n ];\n\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n openPanel($event: Event) {\n this.isPanelOpen = true;\n $event.stopPropagation();\n }\n\n closePanel($event: Event | void) {\n this.isPanelOpen = false;\n if ($event) $event.stopPropagation();\n }\n}\n","<pry-toolbox-css></pry-toolbox-css>\n@if (currentManifest?.additionalInformation) {\n <button\n class=\"a-btn a-btn--ghost -pad-5\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"dashboard-details\"\n aria-controls=\"dashboard-details-panel\"\n aria-expanded=\"false\"\n (click)=\"openPanel($event)\"\n >\n <pry-icon iconSvg=\"dashboard-about\"></pry-icon>\n {{ '@pry.toolbox.about' | i18n }}\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"panelPosition\"\n (backdropClick)=\"isPanelOpen = false\"\n >\n <div class=\"o-modal\" id=\"dashboard-details-panel\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.toolbox.about' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closePanel($event)\">\n <pry-icon iconSvg=\"close\" [height]=\"20\" [width]=\"20\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"o-modal__content\" [innerHTML]=\"currentManifest?.additionalInformation | mdToHtml\"></div>\n </div>\n </ng-template>\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, DashboardSelectors, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-edit-mode-action',\n templateUrl: './edit-mode-action.component.html'\n})\nexport class EditModeActionComponent extends ToolboxActionComponent {\n modeEdition$: Observable<boolean>;\n\n constructor(store: Store<any>, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n this.modeEdition$ = this.store.select(DashboardSelectors.dashboardEditionMode);\n }\n\n toggleEditionMode() {\n this.store.dispatch(DashboardActions.toggleEditionMode({}));\n }\n}\n","@if (this.canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleEditionMode()\">\n @if (displayLabels) {\n {{ ((modeEdition$ | async) ? '@pry.toolbox.editOff' : '@pry.toolbox.edit') | i18n }}\n }\n </button>\n}\n","import { Component, Inject, Optional, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\nimport { Store } from '@ngrx/store';\nimport { ConfigActions, DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { PresentationFormValue } from '../../shared/presentation-form/presentation-form.component';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'pry-edit-details',\n templateUrl: './edit-presentation.component.html'\n})\nexport class EditPresentationComponent extends ToolboxActionComponent {\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n isModalOpen: boolean = false;\n overlayRef?: OverlayRef;\n formValue?: Partial<PresentationFormValue>;\n isFormValid: boolean = false;\n\n constructor(\n store: Store<any>,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n super(store, access);\n }\n\n openModal() {\n if (!this.overlayRef) {\n this.isModalOpen = !this.isModalOpen;\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRef.backdropClick().subscribe((_) => this.closeModal());\n this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n } else {\n this.closeModal();\n }\n }\n\n closeModal() {\n this.isModalOpen = false;\n this.overlayRef?.dispose();\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.close();\n }\n\n save() {\n this.store.dispatch(\n DashboardActions.saveManifest({\n id: this.currentManifest!.id,\n ...(this.formValue as Omit<PresentationFormValue, 'theme'>)\n })\n );\n }\n}\n","@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"openModal()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.editPresentation' | i18n }}\n }\n </button>\n}\n\n<ng-template #template>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_title\"\n id=\"grid-layout\"\n (keydown.escape)=\"closeModal()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.editPresentation' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeModal()\">\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 <pry-presentation-form\n [selectedPresentation]=\"(currentManifest$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group -space-evenly\">\n <button (click)=\"closeModal()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button (click)=\"save()\" [disabled]=\"!isFormValid\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n","import { Type } from '@angular/core';\nimport { PryAccessCheck } from '@provoly/dashboard';\nimport { AutomateRefreshComponent } from './components/automate-refresh/automate-refresh.component';\nimport { ClearViewComponent } from './components/clear-view/clear-view.component';\nimport { PryFilterSettingsComponent } from './components/filter-settings/filter-settings.component';\nimport { LaunchTabComponent } from './components/launch-tab/launch-tab.component';\nimport { RefreshDatasetsComponent } from './components/refresh-datasets/refresh-datasets.component';\nimport { SaveViewComponent } from './components/save-view/save-view.component';\nimport { SelectGridLayoutComponent } from './components/select-grid-layout/select-grid-layout.component';\nimport { ToolboxActionComponent } from './shared/toolbox-action/toolbox-action.component';\nimport { SwitchToEditContentComponent } from './components/switch-to-edit-content/switch-to-edit-content.component';\nimport { ShareComponent } from './components/share/share.component';\nimport { DeleteComponent } from './components/delete/delete.component';\nimport { DashboardDetailsComponent } from './components/dashboard-details/dashboard-details.component';\nimport { EditModeActionComponent } from './components/edit-mode-action/edit-mode-action.component';\nimport { EditPresentationComponent } from './components/edit-presentation/edit-presentation.component';\n\nexport interface ToolboxAction {\n name: string;\n component: Type<ToolboxActionComponent>;\n access: PryAccessCheck;\n visible: boolean;\n needsOwner: boolean;\n}\n\nexport const ACTIONS: ToolboxAction[] = [\n {\n name: 'dashboard_details',\n component: DashboardDetailsComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'details' },\n needsOwner: false\n },\n {\n name: 'edit_action',\n component: EditModeActionComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'edit' },\n needsOwner: true\n },\n {\n name: 'filter_settings',\n component: PryFilterSettingsComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'filter_settings' },\n needsOwner: false\n },\n {\n name: 'save_view',\n component: SaveViewComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'save' },\n needsOwner: false\n },\n {\n name: 'save_view_as',\n component: SaveViewComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'save' },\n needsOwner: false\n },\n {\n name: 'new_tab',\n component: LaunchTabComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'new_tab' },\n needsOwner: false\n },\n {\n name: 'clear_view',\n component: ClearViewComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'clear_view' },\n needsOwner: false\n },\n {\n name: 'default_size',\n component: SelectGridLayoutComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'default_size' },\n needsOwner: false\n },\n {\n name: 'refresh_datasets',\n component: RefreshDatasetsComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'refresh_datasets' },\n needsOwner: false\n },\n {\n name: 'automate_refresh',\n component: AutomateRefreshComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'automate_refresh' },\n needsOwner: false\n },\n {\n name: 'edit_presentation_content',\n component: SwitchToEditContentComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'edit_presentation_content' },\n needsOwner: true\n },\n {\n name: 'share',\n component: ShareComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'share' },\n needsOwner: true\n },\n {\n name: 'delete',\n component: DeleteComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'delete' },\n needsOwner: true\n },\n {\n name: 'edit_presentation',\n component: EditPresentationComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'edit_details' },\n needsOwner: true\n }\n];\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { SubscriptionnerDirective } from '@provoly/dashboard';\nimport { ToolboxAction } from '../../toolbox.model';\nimport { SaveViewComponent } from '../../components/save-view/save-view.component';\nimport { ToolboxActionComponent } from '../toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-toolbox-action-instanciator',\n templateUrl: './toolbox-action-instanciator.component.html'\n})\nexport class ToolboxActionInstanciatorComponent extends SubscriptionnerDirective implements AfterViewInit, OnDestroy {\n @Input() displayLabels: boolean = true;\n @Output() closeOptions = new EventEmitter<void>();\n _action!: ToolboxAction;\n @ViewChild('actionContainerRef', { read: ViewContainerRef }) actionContainerRef!: ViewContainerRef;\n\n constructor(private store: Store<any>, private _cd: ChangeDetectorRef) {\n super();\n }\n\n @Input() set action(action: ToolboxAction) {\n this._action = action;\n this.ngAfterViewInit();\n }\n\n ngAfterViewInit() {\n if (this.actionContainerRef) {\n this.actionContainerRef.clear();\n if (this._action.visible) {\n const componentRef = this.actionContainerRef.createComponent<ToolboxActionComponent>(this._action.component);\n this.subscriptions.add(componentRef.instance.closeOptions.subscribe((_) => this.closeOptions.emit()));\n componentRef.instance.displayLabels = this.displayLabels;\n componentRef.location.nativeElement.style.zIndex = 2;\n\n if (this._action.name === 'default_size') {\n componentRef.location.nativeElement.classList.add('is-screen-size-select');\n }\n\n if (this._action.name === 'save_view') {\n (componentRef.instance as SaveViewComponent).mode = 'directSave';\n }\n\n this._cd.detectChanges();\n }\n } else {\n setTimeout(() => this.ngAfterViewInit(), 100);\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.actionContainerRef?.clear();\n }\n}\n","<ng-template #actionContainerRef></ng-template>\n","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n DashboardGridLayout,\n DashboardSelectors,\n DisplayOptions,\n ManifestDescription,\n PRY_ACCESS_TOKEN,\n PryBaseAccess\n} from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable, of, switchMap } from 'rxjs';\nimport { ACTIONS, ToolboxAction } from '../toolbox.model';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { withLatestFrom } from 'rxjs';\n\n@Component({\n selector: 'pry-toolbox',\n templateUrl: './toolbox.component.html'\n})\nexport class ToolboxComponent implements OnInit {\n actions$ = new BehaviorSubject<ToolboxAction[]>(ACTIONS);\n _dropdownActions$ = new BehaviorSubject<{ name: string; order: number }[]>([]);\n @Input() displayLabels = true;\n @Input() dropdownPosition: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }\n ];\n isManualMode$: Observable<boolean>;\n canModify$: Observable<boolean>;\n allActions$!: Observable<ToolboxAction[]>;\n mainActions$!: Observable<ToolboxAction[]>;\n dropdownActions$!: Observable<ToolboxAction[]>;\n showDropdownButton$!: Observable<boolean>;\n isDropdownOpen = false;\n actionsAvailable$: Observable<DisplayOptions | undefined>;\n showEditToggle$: Observable<boolean>;\n private currentManifest$: Observable<ManifestDescription | undefined>;\n\n @Input() set actions(actions: ToolboxAction[]) {\n this.actions$.next(actions);\n }\n\n @Input() set dropdownActions(dropdownActions: { name: string; order: number }[]) {\n this._dropdownActions$.next(dropdownActions);\n }\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) private access: PryBaseAccess\n ) {\n this.currentManifest$ = store\n .select(DashboardSelectors.presentation)\n .pipe(map((presentation) => presentation?.current));\n this.isManualMode$ = combineLatest([\n store.select(DashboardSelectors.staticManifest),\n store.select(DashboardSelectors.gridLayout)\n ]).pipe(\n map(\n ([staticManifest, gridLayout]) =>\n (staticManifest.windows[0]?.grid?.layout !== undefined\n ? staticManifest.windows[0]?.grid?.layout\n : gridLayout) === DashboardGridLayout.MANUAL\n )\n );\n this.actionsAvailable$ = store.select(DashboardSelectors.displayOptions);\n this.showEditToggle$ = this.actionsAvailable$.pipe(map((actions) => !!actions?.edit_toggle));\n this.canModify$ = this.currentManifest$.pipe(\n switchMap((manifest) => {\n return manifest ? this.access?.canModifyPresentation(manifest) : of(false);\n })\n );\n }\n\n ngOnInit() {\n this.allActions$ = combineLatest([this.actions$, this.actionsAvailable$, this.canModify$]).pipe(\n withLatestFrom(this.currentManifest$),\n switchMap(([[actions, displayOptions, _canModify], currentManifest]) =>\n combineLatest(\n actions.map((action) => {\n // @ts-ignore\n const actionAvailable =\n this.isActionVisible(action, currentManifest) &&\n displayOptions?.toolbox[action.name as keyof typeof displayOptions.toolbox];\n const canModify = !action.needsOwner || _canModify;\n return this.access\n ? this.access.hasRole(null, action.access.module, action.access.page, action.access.action).pipe(\n map(\n (hasRole) =>\n ({\n ...action,\n visible: actionAvailable && (!this.access || hasRole) && canModify\n }) as ToolboxAction\n )\n )\n : of({\n ...action,\n visible: actionAvailable && canModify\n } as ToolboxAction);\n })\n )\n )\n );\n this.mainActions$ = combineLatest([this._dropdownActions$, this.allActions$]).pipe(\n map(([dropdownActions, actions]) =>\n actions.filter((action) => !dropdownActions.find((dropdownAction) => action.name === dropdownAction.name))\n )\n );\n this.dropdownActions$ = combineLatest([this._dropdownActions$, this.allActions$]).pipe(\n map(([dropdownActions, actions]) =>\n actions.filter((action) => !!dropdownActions.find((dropdownAction) => action.name === dropdownAction.name))\n )\n );\n\n this.showDropdownButton$ = this.dropdownActions$.pipe(\n map((actions) => actions.filter((action) => action.visible).length > 0)\n );\n }\n\n openDropdown($event: Event) {\n this.isDropdownOpen = true;\n $event.stopPropagation();\n }\n\n closeDropdown($event: Event | void) {\n this.isDropdownOpen = false;\n if ($event) $event.stopPropagation();\n }\n\n getOrder(actionName: string) {\n return this._dropdownActions$.getValue().find((action) => actionName === action.name)?.order;\n }\n\n isActionVisible(action: ToolboxAction, manifest: ManifestDescription | undefined): boolean {\n return manifest && action.name === 'dashboard_details' ? !!manifest.additionalInformation : action.visible;\n }\n}\n","<ul class=\"m-actions-list\" #input>\n @if (showEditToggle$ | async) {\n @if (isManualMode$ | async) {\n <li class=\"m-actions-list__item\">\n <pry-edit-mode-toggle\n *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'edit_dashboard' }\"\n [displayLabels]=\"displayLabels\"\n ></pry-edit-mode-toggle>\n </li>\n }\n }\n\n @if (showDropdownButton$ | async) {\n @if (((dropdownActions$ | async)?.length ?? 0) > 0) {\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--ghost -pad-5\"\n cdkOverlayOrigin\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n #trigger=\"cdkOverlayOrigin\"\n >\n <span [class.u-visually-hidden]=\"!displayLabels\">{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"10\" [height]=\"13\" [iconSvg]=\"isDropdownOpen ? 'chevron_top' : 'chevron_bottom'\"></pry-icon>\n </button>\n </li>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"dropdownPosition\"\n [cdkConnectedOverlayOffsetY]=\"5\"\n (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu -dropdown\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n @for (action of dropdownActions$ | async; track action.name) {\n @if (action.visible) {\n <li class=\"o-draggable-menu__list__item\" [style.order]=\"getOrder(action.name)\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n }\n }\n </ul>\n </div>\n </ng-template>\n }\n }\n\n @for (action of mainActions$ | async; track action.name) {\n @if (action.visible) {\n <li class=\"m-actions-list__item -{{ action.name }}\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n }\n }\n</ul>\n","import { CdkDrag, CdkDragHandle, CdkDropList } from '@angular/cdk/drag-drop';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport {\n PryCoreModule,\n PryDashboardModule,\n PryI18nModule,\n PryIconModule,\n PryOverlayModule,\n PrySelectModule,\n PryShareModule,\n PryToggleModule\n} from '@provoly/dashboard';\nimport { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';\nimport { PryStepperModule } from '@provoly/dashboard/components/stepper';\nimport { ClearViewComponent } from './components/clear-view/clear-view.component';\nimport { DragWidgetsComponent } from './components/drag-widgets/drag-widgets.component';\nimport { EditModeToggleComponent } from './components/edit-mode-toggle/edit-mode-toggle.component';\nimport { PryFilterSettingsComponent } from './components/filter-settings/filter-settings.component';\nimport { LaunchTabComponent } from './components/launch-tab/launch-tab.component';\nimport { NamedQueryComponent } from './components/named-query/named-query.component';\nimport { SaveViewComponent } from './components/save-view/save-view.component';\nimport { SelectGridLayoutComponent } from './components/select-grid-layout/select-grid-layout.component';\nimport { ToolboxComponent } from './components/toolbox.component';\nimport { PrySelectGridLayoutCssComponent } from './style/css.component';\nimport { RefreshDatasetsComponent } from './components/refresh-datasets/refresh-datasets.component';\nimport { AutomateRefreshComponent } from './components/automate-refresh/automate-refresh.component';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SwitchToEditContentComponent } from './components/switch-to-edit-content/switch-to-edit-content.component';\nimport { ShareComponent } from './components/share/share.component';\nimport { DeleteComponent } from './components/delete/delete.component';\nimport { DashboardDetailsComponent } from './components/dashboard-details/dashboard-details.component';\nimport { EditModeActionComponent } from './components/edit-mode-action/edit-mode-action.component';\nimport { PryTextEditorModule } from '@provoly/dashboard/components/text-editor';\nimport { EditPresentationComponent } from './components/edit-presentation/edit-presentation.component';\nimport { PresentationFormComponent } from './shared/presentation-form/presentation-form.component';\nimport { ToolboxActionInstanciatorComponent } from './shared/toolbox-action-instanciator/toolbox-action-instanciator.component';\nimport { ToolboxActionComponent } from './shared/toolbox-action/toolbox-action.component';\n\nconst components = [\n ToolboxActionComponent,\n ToolboxActionInstanciatorComponent,\n ClearViewComponent,\n DragWidgetsComponent,\n EditModeToggleComponent,\n LaunchTabComponent,\n NamedQueryComponent,\n SaveViewComponent,\n SelectGridLayoutComponent,\n ToolboxComponent,\n PrySelectGridLayoutCssComponent,\n PryFilterSettingsComponent,\n RefreshDatasetsComponent,\n AutomateRefreshComponent,\n SwitchToEditContentComponent,\n ShareComponent,\n DeleteComponent,\n DashboardDetailsComponent,\n EditModeActionComponent,\n EditPresentationComponent,\n PresentationFormComponent\n];\n\n@NgModule({\n declarations: [...components],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryOverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryIconModule,\n PryCheckboxModule,\n PryToggleModule,\n PryStepperModule,\n PryShareModule,\n PryI18nModule,\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n A11yModule,\n PryTextEditorModule,\n ReactiveFormsModule\n ],\n exports: [...components]\n})\nexport class PryToolboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i4","i5","i7.PrySelectGridLayoutCssComponent","i8","i6.PresentationFormComponent","i7","i5.PrySelectGridLayoutCssComponent","i6","i4.PrySelectGridLayoutCssComponent","i5.PresentationFormComponent","i4.ToolboxActionInstanciatorComponent","i5.EditModeToggleComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provoly-dashboard-toolbox.mjs","sources":["../../../../projects/provoly/dashboard/toolbox/shared/toolbox-action/toolbox-action.component.ts","../../../../projects/provoly/dashboard/toolbox/components/clear-view/clear-view.component.ts","../../../../projects/provoly/dashboard/toolbox/components/clear-view/clear-view.component.html","../../../../projects/provoly/dashboard/toolbox/components/drag-widgets/drag-widgets.component.ts","../../../../projects/provoly/dashboard/toolbox/components/drag-widgets/drag-widgets.component.html","../../../../projects/provoly/dashboard/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.ts","../../../../projects/provoly/dashboard/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.html","../../../../projects/provoly/dashboard/toolbox/style/css.component.ts","../../../../projects/provoly/dashboard/toolbox/components/filter-settings/filter-settings.component.ts","../../../../projects/provoly/dashboard/toolbox/components/filter-settings/filter-settings.component.html","../../../../projects/provoly/dashboard/toolbox/components/launch-tab/launch-tab.component.ts","../../../../projects/provoly/dashboard/toolbox/components/launch-tab/launch-tab.component.html","../../../../projects/provoly/dashboard/toolbox/components/named-query/named-query.component.ts","../../../../projects/provoly/dashboard/toolbox/components/named-query/named-query.component.html","../../../../projects/provoly/dashboard/toolbox/shared/presentation-form/presentation-form.component.ts","../../../../projects/provoly/dashboard/toolbox/shared/presentation-form/presentation-form.component.html","../../../../projects/provoly/dashboard/toolbox/components/save-view/save-view.component.ts","../../../../projects/provoly/dashboard/toolbox/components/save-view/save-view.component.html","../../../../projects/provoly/dashboard/toolbox/components/select-grid-layout/select-grid-layout.component.ts","../../../../projects/provoly/dashboard/toolbox/components/select-grid-layout/select-grid-layout.component.html","../../../../projects/provoly/dashboard/toolbox/components/automate-refresh/automate-refresh.component.ts","../../../../projects/provoly/dashboard/toolbox/components/automate-refresh/automate-refresh.component.html","../../../../projects/provoly/dashboard/toolbox/components/refresh-datasets/refresh-datasets.component.ts","../../../../projects/provoly/dashboard/toolbox/components/refresh-datasets/refresh-datasets.component.html","../../../../projects/provoly/dashboard/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.ts","../../../../projects/provoly/dashboard/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.html","../../../../projects/provoly/dashboard/toolbox/components/share/share.component.ts","../../../../projects/provoly/dashboard/toolbox/components/share/share.component.html","../../../../projects/provoly/dashboard/toolbox/components/delete/delete.component.ts","../../../../projects/provoly/dashboard/toolbox/components/delete/delete.component.html","../../../../projects/provoly/dashboard/toolbox/components/dashboard-details/dashboard-details.component.ts","../../../../projects/provoly/dashboard/toolbox/components/dashboard-details/dashboard-details.component.html","../../../../projects/provoly/dashboard/toolbox/components/edit-mode-action/edit-mode-action.component.ts","../../../../projects/provoly/dashboard/toolbox/components/edit-mode-action/edit-mode-action.component.html","../../../../projects/provoly/dashboard/toolbox/components/edit-presentation/edit-presentation.component.ts","../../../../projects/provoly/dashboard/toolbox/components/edit-presentation/edit-presentation.component.html","../../../../projects/provoly/dashboard/toolbox/toolbox.model.ts","../../../../projects/provoly/dashboard/toolbox/shared/toolbox-action-instanciator/toolbox-action-instanciator.component.ts","../../../../projects/provoly/dashboard/toolbox/shared/toolbox-action-instanciator/toolbox-action-instanciator.component.html","../../../../projects/provoly/dashboard/toolbox/components/toolbox.component.ts","../../../../projects/provoly/dashboard/toolbox/components/toolbox.component.html","../../../../projects/provoly/dashboard/toolbox/toolbox.module.ts","../../../../projects/provoly/dashboard/toolbox/provoly-dashboard-toolbox.ts"],"sourcesContent":["import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n DashboardSelectors,\n ManifestDescription,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n SubscriptionnerDirective\n} from '@provoly/dashboard';\nimport { map, Observable, of, switchMap } from 'rxjs';\n\n@Component({\n selector: 'pry-toolbox-action',\n template: ''\n})\nexport class ToolboxActionComponent extends SubscriptionnerDirective {\n @Input() displayLabels = true;\n @Output() closeOptions = new EventEmitter<void>();\n currentManifest$: Observable<ManifestDescription | undefined>;\n currentManifest: ManifestDescription | undefined;\n canModify$: Observable<boolean>;\n\n constructor(\n protected store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) protected access: PryBaseAccess\n ) {\n super();\n this.currentManifest$ = this.store.select(DashboardSelectors.currentManifest);\n this.canModify$ = this.currentManifest$.pipe(\n switchMap((manifest) => {\n return manifest ? this.access?.canModifyPresentation(manifest) : of(false);\n })\n );\n this.subscriptions.add(\n this.currentManifest$.subscribe((manifest) => {\n this.currentManifest = manifest;\n })\n );\n }\n\n close(): void {\n this.closeOptions.emit();\n }\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n\n@Component({\n selector: 'pry-clear-view',\n templateUrl: './clear-view.component.html'\n})\nexport class ClearViewComponent extends ToolboxActionComponent {\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n clear() {\n this.store.dispatch(DashboardActions.clearManifest());\n this.close();\n }\n}\n","<button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"clear()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.clear' | i18n }}\n }\n</button>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n ConfigActions,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n ToolboxManifestService,\n ToolboxMenuService,\n WidgetDescriptionMenu\n} from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-drag-widgets',\n templateUrl: './drag-widgets.component.html'\n})\nexport class DragWidgetsComponent extends ToolboxActionComponent {\n mainOpened = false;\n\n readonly connectedPosition: ConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n };\n menu$: Observable<WidgetDescriptionMenu[]>;\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private toolboxManifestService: ToolboxManifestService,\n public toolboxMenuService: ToolboxMenuService\n ) {\n super(store, access);\n this.store.dispatch(ConfigActions.loadWidgets());\n this.menu$ = this.toolboxMenuService.menuStructure$;\n }\n\n dragStart($event: DragEvent, type: string) {\n this.toolboxManifestService.dataTransfer($event, type);\n\n setTimeout(() => {\n this.mainOpened = false;\n }, 100);\n }\n\n openMenu($event: Event) {\n this.mainOpened = true;\n $event.stopPropagation();\n }\n}\n","<div class=\"toolbox-draggable\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup=\"true\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n @if (displayLabels) {\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span>\n {{ '@pry.toolbox.drag' | i18n }}\n }\n </button>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Insérer un widget (par glisser/déposer)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n @for (menu of menu$ | async; track menu.label) {\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n @if (displayLabels) {\n {{ menu.label | i18n }}\n }\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n @for (sub of menu.sub; track sub.label) {\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n @if (displayLabels) {\n {{ sub.label | i18n }}\n }\n </button>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n </div>\n</ng-template>\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, DashboardSelectors, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-edit-mode-toggle',\n templateUrl: './edit-mode-toggle.component.html'\n})\nexport class EditModeToggleComponent extends ToolboxActionComponent {\n modeEdition$: Observable<boolean>;\n\n constructor(store: Store<any>, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n this.modeEdition$ = this.store.select(DashboardSelectors.dashboardEditionMode);\n }\n\n toggleEditionMode() {\n this.store.dispatch(DashboardActions.toggleEditionMode({}));\n }\n}\n","<pry-toggle\n [ngModel]=\"modeEdition$ | async\"\n (ngModelChange)=\"toggleEditionMode()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n dir=\"ltr\"\n>\n {{ ((modeEdition$ | async) ? '@pry.toolbox.editOff' : '@pry.toolbox.edit') | i18n }}\n</pry-toggle>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-toolbox-css',\n template: '',\n styleUrls: ['_o-select-grid-layout.scss', '_o-filter-settings.scss', '_o-toolbox.scss', '_o-automate-refresh.scss', '_o-dashboard-details.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PrySelectGridLayoutCssComponent {}\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, Inject, Injector, Input, Optional, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n Class,\n ClassSelectors,\n ConfigActions,\n DashboardActions,\n DashboardSelectors,\n DataSource,\n DataSourceSelectors,\n FieldSelectors,\n FieldType,\n Filter,\n FilterFactoryService,\n GlobalManifest,\n MonoClassSearchPayload,\n NamedQueryTypes,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n PryI18nService\n} from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { withLatestFrom } from 'rxjs';\nimport { v4 } from 'uuid';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\nexport enum FilterSteps {\n LIST = 'list',\n CREATION = 'creation',\n EDITION = 'edition'\n}\n\nexport interface Attribute {\n id: string;\n customId: string;\n technicalName: string;\n label: string;\n datasource: string;\n type: FieldType;\n}\n\n@Component({\n selector: 'pry-filter-settings',\n templateUrl: './filter-settings.component.html'\n})\nexport class PryFilterSettingsComponent extends ToolboxActionComponent {\n @Input() label = true;\n @ViewChild('settings', { read: TemplateRef }) templateSettings!: TemplateRef<any>;\n overlayRefSettings?: OverlayRef;\n settingsOpened: boolean = false;\n manifest$: Observable<GlobalManifest>;\n filters: Filter[] = [];\n types$: Observable<{ label: string; value: string }[]>;\n currentFilterComponentType$ = new BehaviorSubject('');\n currentStep: FilterSteps = FilterSteps.LIST;\n steps = FilterSteps;\n filter: Filter = {\n id: v4(),\n name: '',\n type: '',\n attributes: []\n };\n datasource$: Observable<any>;\n operators = [\n { label: '@pry.search.operator.equalsString', value: 'EQUALS' },\n { label: '@pry.search.operator.notEqualsString', value: 'NOT_EQUALS' },\n { label: '@pry.search.operator.contains', value: 'CONTAINS' },\n { label: '@pry.search.operator.containsCaseInsensitive', value: 'I_CONTAINS' },\n { label: '@pry.search.operator.startWith', value: 'START_WITH' },\n { label: '@pry.search.operator.endWith', value: 'END_WITH' },\n { label: '@pry.search.operator.greaterThanNumber', value: 'GREATER_THAN' },\n { label: '@pry.search.operator.lowerThanNumber', value: 'LOWER_THAN' },\n { label: '@pry.search.operator.innerBoundsDate', value: 'INSIDE' },\n { label: '@pry.search.operator.outerBoundsDate', value: 'OUTSIDE' }\n ];\n currentOperators$ = new BehaviorSubject(this.operators);\n classes: Class[] = [];\n attributes$: Observable<Attribute[]>;\n selectedAttribute$ = new BehaviorSubject<string[]>(this.filter.attributes.map((attr) => attr.id));\n @ViewChild('container', { read: ViewContainerRef }) container!: ViewContainerRef;\n attributes: Attribute[] = [];\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private filterFactoryService: FilterFactoryService,\n private injector: Injector,\n private i18nService: PryI18nService\n ) {\n super(store, access);\n this.manifest$ = store.select(DashboardSelectors.globalManifest);\n this.subscriptions.add(\n this.manifest$.subscribe((manifest) => {\n this.filters = manifest.filters ? [...manifest.filters] : [];\n })\n );\n\n this.datasource$ = combineLatest([\n this.store.select(DataSourceSelectors.getDataSources),\n store.select(DashboardSelectors.namedQueriesUses)\n ]).pipe(\n map(([dataSources, dataSourcesUsed]) =>\n Object.keys(dataSourcesUsed).map((id) => ({\n label: dataSources.find((dataSource) => dataSource.id === id)?.name,\n value: id\n }))\n )\n );\n\n this.types$ = this.filterFactoryService.types$.pipe(\n map((types) =>\n types.map((type) => ({\n label: '@pry.filters.types.' + type,\n value: type\n }))\n )\n );\n\n this.subscriptions.add(\n this.currentFilterComponentType$.subscribe(() => {\n this.currentOperators$.next(this.getOperators());\n })\n );\n\n this.attributes$ = combineLatest([\n store.select(DataSourceSelectors.getDataSources),\n store.select(DashboardSelectors.namedQueriesUses),\n store.select(ClassSelectors.classes),\n this.currentFilterComponentType$\n ]).pipe(\n withLatestFrom(store.select(FieldSelectors.fields)),\n map(([[dataSources, currentDataSources, classes, componentType], fields]) => {\n let dataSourcesInPres = dataSources.filter((dataSource) =>\n Object.keys(currentDataSources).includes(dataSource.id) ? dataSource : false\n );\n return dataSourcesInPres\n .map((dataSource) =>\n (this.getDatasourceClass(dataSource, classes)?.attributes ?? []).map((attr) => ({\n id: attr.id,\n customId: this.getCustomAttributeId(attr.id, dataSource.id),\n technicalName: attr.technicalName,\n label: `${attr.name} / ${dataSource.name}`,\n datasource: dataSource.id,\n type: attr.field.type ?? FieldType.STRING\n }))\n )\n .flat()\n .sort((attr1, attr2) => attr1.label.localeCompare(attr2.label))\n .filter((attr) => this.isValidAttributeForComponentType(componentType, attr));\n }),\n map(\n (attributes) =>\n [\n ...attributes,\n ...this.filter.attributes\n .map((attr) =>\n attributes.map((a) => a.id).includes(attr.id)\n ? undefined\n : {\n ...attr,\n label: `${this.i18nService.instant('@pry.toolbox.notInDsAttr')} - ${attr.label}`,\n classes: '-warn'\n }\n )\n .filter((attr) => !!attr)\n ] as Attribute[]\n )\n );\n\n this.subscriptions.add(this.attributes$.subscribe((attrs) => (this.attributes = attrs)));\n }\n\n getDatasourceClass(dataSource: DataSource, classes: Class[]): Class | undefined {\n let clazz: Class | undefined = undefined;\n if (dataSource.sourceType === 'dataset') {\n clazz = classes.find((clazz) => clazz.id === dataSource.oClass);\n } else if (\n dataSource.sourceType === 'namedQuery' &&\n dataSource.request &&\n dataSource.request.type === NamedQueryTypes.MONO_CLASS\n ) {\n clazz = classes.find((clazz) => clazz.id === (dataSource.request as MonoClassSearchPayload).oClass);\n }\n return clazz;\n }\n\n isValidAttributeForComponentType(componentType: string, attribute: Attribute): boolean {\n switch (componentType) {\n case 'date':\n return attribute.type === FieldType.INSTANT;\n case 'number':\n return [FieldType.INTEGER, FieldType.DECIMAL, FieldType.LONG].includes(attribute.type);\n case 'text':\n return [FieldType.STRING, FieldType.KEYWORD].includes(attribute.type);\n case 'autocomplete':\n return [FieldType.KEYWORD].includes(attribute.type);\n default:\n return true;\n }\n }\n\n drop(event: CdkDragDrop<Filter[]>) {\n moveItemInArray(this.filters, event.previousIndex, event.currentIndex);\n }\n\n toggleSettings() {\n this.settingsOpened = !this.settingsOpened;\n if (this.settingsOpened) {\n this.openSettings();\n } else {\n this.overlayRefSettings?.dispose();\n this.overlayRefSettings = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.store.dispatch(DashboardActions.setFilters({ filters: this.filters }));\n this.goBack();\n this.close();\n }\n }\n\n openSettings() {\n this.overlayRefSettings = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper', 'o-select-grid-layout-modal-wrapper'],\n backdropClass: 'backdrop--with-color'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefSettings.backdropClick().subscribe((_) => {\n this.goBack();\n this.toggleSettings();\n });\n this.overlayRefSettings.attach(new TemplatePortal(this.templateSettings, this.viewContainerRef));\n }\n\n updateFilterType($event: any) {\n this.filter.type = $event;\n switch ($event) {\n case 'list':\n case 'autocomplete':\n this.filter.operator = 'EQUALS';\n break;\n case 'text':\n this.filter.operator = 'I_CONTAINS';\n break;\n default:\n break;\n }\n if (this.filter.type !== '' && this.container) {\n let component = this.filterFactoryService.generateFilter(this.filter.type, this.injector, this.container);\n this.subscriptions.add(\n component.subscribe((componentRef) => {\n this.currentFilterComponentType$.next(componentRef.instance.type);\n })\n );\n }\n this.filter.limit = this.filter.type === 'autocomplete' ? this.filter.limit ?? 10 : undefined;\n }\n\n getFilterAttributes(filter: Filter, attrCount: number) {\n attrCount = attrCount <= filter.attributes.length ? attrCount : filter.attributes.length;\n return filter.attributes\n .map((attr) => attr.technicalName)\n .slice(0, attrCount)\n .join(', ');\n }\n\n goBack() {\n this.filter = {\n id: v4(),\n name: '',\n type: '',\n attributes: []\n };\n this.currentStep = FilterSteps.LIST;\n }\n\n goToEdition(filter: Filter) {\n this.filter = {\n ...filter,\n attributes: [\n ...filter.attributes.map((attr) => ({ ...attr, customId: this.getCustomAttributeId(attr.id, attr.datasource) }))\n ]\n };\n this.currentStep = FilterSteps.EDITION;\n }\n\n goToCreation() {\n this.currentFilterComponentType$.next('');\n this.currentStep = FilterSteps.CREATION;\n }\n\n submitFilter() {\n this.filter.attributes = this.filter.attributes.map((attr) =>\n typeof attr === 'string' ? this.attributes.find((attrObj) => attrObj.customId === attr)! : attr\n );\n this.store.dispatch(DashboardActions.updateFilters({ filter: this.filter }));\n this.goBack();\n }\n\n selectAttribute($event: Attribute[]) {\n this.filter.attributes = $event;\n this.selectedAttribute$.next($event.map((attr) => attr.id));\n }\n\n deleteFilter(id: string) {\n this.store.dispatch(DashboardActions.removeFilter({ id }));\n }\n\n getOperators(): { label: string; value: string }[] {\n return this.operators.filter((operator) => {\n switch (this.currentFilterComponentType$.value) {\n case 'date':\n return this.filter.hasDateRange\n ? ['INSIDE', 'OUTSIDE'].includes(operator.value)\n : ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);\n case 'list':\n case 'autocomplete':\n return ['EQUALS'].includes(operator.value);\n case 'number':\n return ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);\n case 'text':\n return ['I_CONTAINS', 'CONTAINS', 'EQUALS', 'NOT_EQUALS', 'START_WITH', 'END_WITH'].includes(operator.value);\n default:\n return operator;\n }\n });\n }\n\n getCustomAttributeId(attributeId: string, datasetId: string): string {\n return `${attributeId}@${datasetId}`;\n }\n\n protected readonly FilterSteps = FilterSteps;\n}\n","<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n @if (label) {\n {{ '@pry.filters.label' | i18n }}\n }\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n @if (currentStep === FilterSteps.LIST) {\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n }\n @if (currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION) {\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n }\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n @if (currentStep === FilterSteps.LIST) {\n <div class=\"o-filters__content\">\n @if ((attributes$ | async)?.length === 0) {\n <div class=\"a-table-wrapper\"></div>\n } @else {\n @if (filters.length > 0) {\n <table class=\"a-table\" role=\"presentation\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n @for (filter of filters; track filter.id) {\n <tr class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n }\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n }\n </div>\n }\n @if (currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION) {\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n @if ((currentFilterComponentType$ | async) === 'date') {\n <div class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n }\n @if ((currentFilterComponentType$ | async) === 'list') {\n <div class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n }\n @if ((currentFilterComponentType$ | async) === 'autocomplete') {\n <div class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n }\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [clearable]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n bindLabel=\"label\"\n bindValue=\"customId\"\n bindClasses=\"classes\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"\n (currentFilterComponentType$ | async) === 'list' ||\n (currentFilterComponentType$ | async) === 'autocomplete'\n \"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n }\n </div>\n</ng-template>\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-launch-tab',\n templateUrl: './launch-tab.component.html'\n})\nexport class LaunchTabComponent extends ToolboxActionComponent {\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n launchNewWindow() {\n this.store.dispatch(DashboardActions.createTab());\n this.close();\n }\n}\n","<button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"launchNewWindow()\">\n @if (displayLabels) {\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.launchIndication' | i18n }}</span>\n {{ '@pry.toolbox.launch' | i18n }}\n }\n <pry-icon iconSvg=\"launch\" [width]=\"20\" [height]=\"20\"></pry-icon>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardSelectors, DataSourceActions, MIME_TYPE_RESULTSET } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'pry-named-query',\n templateUrl: './named-query.component.html'\n})\nexport class NamedQueryComponent {\n @Input() label = true;\n displayCombo = false;\n namedQueries$: Observable<string[]>;\n\n constructor(private store: Store<any>) {\n this.store.dispatch(DataSourceActions.load({}));\n this.namedQueries$ = this.store.select(DashboardSelectors.availableNamedQueries);\n }\n\n toggle() {\n this.displayCombo = !this.displayCombo;\n }\n\n dragStart($event: DragEvent, rs: string) {\n if (!!$event && !!$event.dataTransfer && !$event.dataTransfer.types.includes(MIME_TYPE_RESULTSET)) {\n $event.dataTransfer.setData(MIME_TYPE_RESULTSET, rs);\n }\n }\n\n dragLeave($event: DragEvent) {\n this.toggle();\n }\n}\n","<div class=\"o-named-query\">\n <div class=\"combobox-container\" (dragleave)=\"dragLeave($event)\">\n <button type=\"button\" class=\"a-btn a-btn--action\" (click)=\"toggle()\">\n <pry-icon iconSvg=\"data_usage\"></pry-icon>\n @if (label) {\n {{ '@pry.toolbox.resultSet' | i18n }}\n }\n </button>\n\n @if (displayCombo) {\n <div class=\"combobox\" (mouseleave)=\"toggle()\">\n @for (rs of namedQueries$ | async; track rs) {\n <div draggable=\"true\" (dragstart)=\"dragStart($event, rs)\">\n {{ rs | translateId: { type: 'datasource', output: 'name' } | async }}\n </div>\n }\n </div>\n }\n </div>\n</div>\n","import { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\nimport {\n DEFAULT_DASHBOARD_ICON_URL,\n LibraryTypes,\n ManifestDescription,\n PryI18nService,\n SubscriptionnerDirective\n} from '@provoly/dashboard';\nimport { AfterViewInit, Component, ElementRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MetadataActions, MetadataSelectors } from '@provoly/dashboard/components/metadata-editor';\nimport { Store } from '@ngrx/store';\n\nexport interface PresentationForm {\n name: FormControl<string | undefined>;\n description: FormControl<string | undefined | null>;\n theme: FormControl<string | undefined | null>;\n additionalInformation: FormControl<string | undefined | null>;\n}\n\nexport interface PresentationFormValue {\n name: string;\n description?: string;\n theme?: string;\n additionalInformation?: string;\n image: string;\n}\n\n@Component({\n selector: 'pry-presentation-form',\n templateUrl: './presentation-form.component.html'\n})\nexport class PresentationFormComponent extends SubscriptionnerDirective implements OnInit, AfterViewInit {\n form = new FormGroup<PresentationForm>({\n name: new FormControl(undefined, {\n validators: [Validators.required, Validators.maxLength(50)],\n nonNullable: true\n }),\n description: new FormControl(undefined, [Validators.maxLength(200)]),\n theme: new FormControl(undefined),\n additionalInformation: new FormControl(undefined)\n });\n\n image: string = DEFAULT_DASHBOARD_ICON_URL;\n type: LibraryTypes = LibraryTypes.ILLUSTRATION;\n possibleThemes: string[] = [];\n\n @Input() mode: 'theme' | 'meta' = 'meta';\n @Input() themePrefix: string | null = null;\n @ViewChild('input') input!: ElementRef;\n\n selectedPresentation$ = new BehaviorSubject<ManifestDescription | undefined>(undefined);\n\n @Input() set selectedPresentation(presentation: ManifestDescription | undefined) {\n this.selectedPresentation$.next(presentation);\n }\n\n @Output() formValue = new BehaviorSubject<Partial<PresentationFormValue> | undefined>(undefined);\n @Output() isFormValid = new BehaviorSubject<boolean>(false);\n\n constructor(\n protected store: Store,\n private i18nService: PryI18nService\n ) {\n super();\n this.store.dispatch(MetadataActions.loadMetadata());\n\n this.subscriptions.add(\n this.store.select(MetadataSelectors.metadata).subscribe((metadata) => {\n this.possibleThemes = [...(metadata?.find((meta) => meta.name === '_theme')?.allowedValues ?? [])];\n this.possibleThemes.sort((themeA, themeB) =>\n this.i18nService\n .instant((this.themePrefix ?? '') + themeA)\n .localeCompare(this.i18nService.instant((this.themePrefix ?? '') + themeB))\n );\n })\n );\n\n this.subscriptions.add(\n this.form.valueChanges.subscribe(() => {\n this.isFormValid.next(this.form.valid);\n this.formValue.next(this.getFormValue());\n })\n );\n }\n\n ngOnInit(): void {\n this.image = this.selectedPresentation$.value?.image ?? DEFAULT_DASHBOARD_ICON_URL;\n this.subscriptions.add(\n this.selectedPresentation$.subscribe((presentation) => {\n const theme = presentation?.metadata?.find((metadata) => metadata.metadataDef.name === '_theme')?.value;\n if (!!theme) this.form.patchValue({ theme });\n })\n );\n setTimeout(() => {\n this.input?.nativeElement.focus();\n }, 10);\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n if (this.selectedPresentation$.value) this.form.patchValue(this.selectedPresentation$.value);\n });\n }\n\n get name(): AbstractControl<string | undefined> {\n return this.form.controls['name'];\n }\n\n get description(): AbstractControl<string | undefined | null> {\n return this.form.controls['description'];\n }\n\n get theme(): AbstractControl<string | undefined | null> {\n return this.form.controls['theme'];\n }\n\n get additionalInformation(): AbstractControl<string | undefined | null> {\n return this.form.controls['additionalInformation'];\n }\n\n getFormValue(): Partial<PresentationFormValue> {\n return {\n name: this.name.value,\n description: this.description.value === null ? undefined : this.description.value,\n theme: this.theme.value === null ? undefined : this.theme.value,\n additionalInformation: this.additionalInformation.value === null ? undefined : this.additionalInformation.value,\n image: this.image\n };\n }\n\n onImageChanged($event: string) {\n this.image = $event;\n this.formValue.next(this.getFormValue());\n }\n}\n","<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\"\n >{{ '@pry.presentation.form.name.title' | i18n }}<span class=\"required\">*</span></label\n >\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name.placeholder' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{\n '@pry.presentation.form.description.title' | i18n\n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description.placeholder' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n @if (mode === 'theme') {\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_theme\"\n >{{ '@pry.presentation.form.theme' | i18n }}<span class=\"required\">*</span></label\n >\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n }\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"onImageChanged($event)\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.toolbox.about' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n</form>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n ConfigActions,\n DashboardActions,\n DashboardSelectors,\n ManifestDescription,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n ViewMode\n} from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { v4 } from 'uuid';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\nimport { PresentationFormValue } from '../../shared/presentation-form/presentation-form.component';\n\n@Component({\n selector: 'pry-save-view',\n templateUrl: './save-view.component.html'\n})\nexport class SaveViewComponent extends ToolboxActionComponent {\n @Input() mode: 'saveAs' | 'directSave' = 'saveAs';\n @ViewChild('saveAs') saveAs!: ElementRef<HTMLButtonElement>;\n @ViewChild('directiveSave') directiveSave!: ElementRef<HTMLButtonElement>;\n @ViewChild('firstFocusdirective') firstFocusdirective!: ElementRef<HTMLButtonElement>;\n @ViewChild('cross') cross!: ElementRef<HTMLButtonElement>;\n @ViewChild('confirm') confirm!: ElementRef<HTMLButtonElement>;\n @ViewChild('cancel') cancel!: ElementRef<HTMLButtonElement>;\n saveAsOpened: boolean = false;\n overlayRefSaveAs?: OverlayRef;\n @ViewChild('templateSaveAs', { read: TemplateRef }) templateSaveAs!: TemplateRef<any>;\n overlayRefDirectSaveType?: OverlayRef;\n @ViewChild('templateDirectSaveType', { read: TemplateRef }) templateDirectSaveType!: TemplateRef<any>;\n accessRightsByGroup: { [key: string]: string[] } = {};\n saveTypeOpened = false;\n isCurrentPresentationModified$: Observable<boolean>;\n nbPages: number = 0;\n initialNbPages: number = 0;\n hasInitial: boolean = false;\n ViewMode = ViewMode;\n formValue?: Partial<PresentationFormValue>;\n isFormValid: boolean = false;\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n super(store, access);\n\n this.subscriptions.add(\n this.store.select(DashboardSelectors.presentation).subscribe((presentation) => {\n this.currentManifest = presentation.current\n ? structuredClone(presentation.current)\n : ({ name: '', image: '', description: '' } as ManifestDescription);\n this.initialNbPages = presentation.initial?.windows.length ?? 0;\n this.hasInitial = !!presentation.initial;\n })\n );\n this.isCurrentPresentationModified$ = this.store.select(DashboardSelectors.isCurrentPresentationModified);\n this.subscriptions.add(\n this.store\n .select(DashboardSelectors.globalManifest)\n .subscribe((manifest) => (this.nbPages = manifest.windows.length))\n );\n }\n\n toggleSaveAs() {\n this.saveAsOpened = !this.saveAsOpened;\n if (this.saveAsOpened) {\n this.store.dispatch(DashboardActions.requestAllRoutes());\n this.openSaveAs();\n } else {\n this.overlayRefSaveAs?.dispose();\n this.overlayRefSaveAs = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.saveAs.nativeElement.focus();\n }\n }\n\n save() {\n this.store.dispatch(DashboardActions.requestAllRoutes());\n this.store.dispatch(DashboardActions.requestManifestsToEmit());\n // Give time for routes to be updated\n setTimeout(() => {\n let presentation = {\n ...this.currentManifest,\n name: this.currentManifest!.name,\n id: v4(),\n description: this.currentManifest!.description,\n image: this.currentManifest!.image,\n accessRightsByGroup: this.accessRightsByGroup,\n owner: this.currentManifest?.owner,\n metadata: undefined\n };\n if (this.mode == 'directSave') {\n if (this.currentManifest) {\n presentation.id = this.currentManifest.id;\n presentation.accessRightsByGroup = this.currentManifest.accessRightsByGroup;\n }\n } else {\n presentation = {\n ...presentation,\n ...this.formValue\n };\n }\n this.store.dispatch(DashboardActions.saveManifest(presentation));\n this.store.dispatch(\n DashboardActions.selectPresentation({\n presentation: presentation as ManifestDescription\n })\n );\n this.mode = 'directSave';\n }, 1000); // Wait for routes and all widget manifests to be updated\n this.overlayRefSaveAs?.dispose();\n this.closeModals();\n }\n\n closeModals() {\n if (this.saveTypeOpened) {\n this.toggleDirectSaveType();\n }\n if (this.saveAsOpened) {\n this.toggleSaveAs();\n }\n this.close();\n }\n\n changeAccessRights($event: { [key: string]: string[] }) {\n this.currentManifest!.accessRightsByGroup = $event;\n }\n\n openSaveAs() {\n this.overlayRefSaveAs = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.mode = 'saveAs';\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefSaveAs.backdropClick().subscribe((_) => this.toggleSaveAs());\n this.overlayRefSaveAs.attach(new TemplatePortal(this.templateSaveAs, this.viewContainerRef));\n }\n\n toggleDirectSaveType() {\n this.saveTypeOpened = !this.saveTypeOpened;\n if (this.saveTypeOpened) {\n this.store.dispatch(DashboardActions.requestAllRoutes());\n this.overlayRefDirectSaveType = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefDirectSaveType.backdropClick().subscribe((_) => this.toggleDirectSaveType());\n this.overlayRefDirectSaveType.attach(new TemplatePortal(this.templateDirectSaveType, this.viewContainerRef));\n setTimeout(() => {\n this.firstFocusdirective?.nativeElement.focus();\n }, 10);\n } else {\n this.overlayRefDirectSaveType?.dispose();\n this.overlayRefDirectSaveType = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.directiveSave?.nativeElement.focus();\n }\n }\n\n get mustOpenModal() {\n return this.hasInitial && this.nbPages !== this.initialNbPages;\n }\n\n directSave() {\n if (this.mustOpenModal) {\n this.toggleDirectSaveType();\n } else {\n this.save();\n }\n }\n\n restore() {\n this.store.dispatch(DashboardActions.restoreInitialManifest());\n this.closeModals();\n }\n\n focusCrossElement() {\n this.cross.nativeElement.focus();\n }\n\n focusValidation() {\n if (!this.currentManifest?.name) {\n this.cancel.nativeElement.focus();\n }\n this.confirm.nativeElement.focus();\n }\n\n rename() {\n this.toggleSaveAs();\n }\n\n disableNextStep() {\n if (!this.currentManifest?.name) {\n this.focusCrossElement();\n }\n }\n}\n","<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n @if (mode === 'directSave') {\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n @if (canModify$ | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n @if (displayLabels) {\n {{\n '@pry.toolbox.save' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n }\n </div>\n }\n @if (mode === 'saveAs') {\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n @if (displayLabels) {\n {{\n '@pry.toolbox.rename' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n </div>\n }\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\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 <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <pry-presentation-form\n [selectedPresentation]=\"currentManifest\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isFormValid\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\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>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, ElementRef, Inject, Optional, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n AutomaticGridLayoutDefinition,\n ConfigActions,\n DashboardActions,\n DashboardGridLayout,\n DashboardSelectors,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n WidgetPlacementUtils\n} from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-select-grid-layout',\n templateUrl: './select-grid-layout.component.html'\n})\nexport class SelectGridLayoutComponent extends ToolboxActionComponent {\n availableLayouts$: Observable<AutomaticGridLayoutDefinition[]>;\n chosenLayout: string = DashboardGridLayout.MANUAL;\n canDispatch = false;\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n @ViewChild('firstButton') firstButton!: ElementRef<HTMLButtonElement>;\n @ViewChild('openModal') openModal!: ElementRef<HTMLButtonElement>;\n modalOpened: boolean = false;\n overlayRef?: OverlayRef;\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n super(store, access);\n this.subscriptions.add(\n this.store.select(DashboardSelectors.gridLayout).subscribe((layout) => (this.chosenLayout = layout))\n );\n this.availableLayouts$ = this.store.select(DashboardSelectors.windowManifest).pipe(\n map((manifest) =>\n WidgetPlacementUtils.layouts.filter((layout) => {\n return layout.places.length === 0 || layout.places.length >= (manifest.widgets ?? []).length;\n })\n )\n );\n\n setTimeout(() => {\n this.canDispatch = true;\n }, 100);\n }\n\n changeLayout(layout: string) {\n this.chosenLayout = layout;\n }\n\n toggleGridChoiceModal() {\n this.modalOpened = !this.modalOpened;\n if (this.modalOpened) {\n this.openWithTemplate();\n } else {\n this.overlayRef?.dispose();\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.openModal.nativeElement.focus();\n }\n }\n\n openWithTemplate() {\n if (!this.overlayRef) {\n this.modalOpened = !this.modalOpened;\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper', 'o-select-grid-layout-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRef.backdropClick().subscribe((_) => this.toggleGridChoiceModal());\n this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n setTimeout(() => {\n this.firstButton.nativeElement.focus();\n }, 10);\n } else {\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.openModal.nativeElement.focus();\n this.modalOpened = !this.modalOpened;\n this.close();\n }\n }\n\n validate() {\n if (this.canDispatch) {\n this.store.dispatch(DashboardActions.setGridLayout({ layout: this.chosenLayout }));\n }\n this.toggleGridChoiceModal();\n }\n}\n","<pry-toolbox-css></pry-toolbox-css>\n<div [attr.aria-expanded]=\"modalOpened\" aria-controls=\"grid-layout\">\n <button type=\"button\" #openModal class=\"a-btn a-btn--secondary\" (click)=\"toggleGridChoiceModal()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.chooseGrid' | i18n }}\n }\n </button>\n</div>\n<ng-template #template>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_title\"\n id=\"grid-layout\"\n (keydown.escape)=\"toggleGridChoiceModal()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.chooseGrid' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleGridChoiceModal()\">\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=\"o-select-grid-layout-wrapper\">\n <ul class=\"o-select-grid-layout\">\n @for (layout of availableLayouts$ | async; track layout) {\n <li class=\"o-select-grid-layout__item\">\n <button\n type=\"button\"\n #firstButton\n class=\"a-btn\"\n [attr.aria-pressed]=\"chosenLayout === layout.type\"\n [class.selected]=\"chosenLayout === layout.type\"\n (click)=\"changeLayout(layout.type)\"\n >\n <div class=\"o-select-grid-layout__item__preview\">\n <pry-dashboard\n [staticDashboard]=\"{\n widgets: [],\n grid: { layout: layout.type, rows: layout.rows, columns: layout.columns, gap: 3 }\n }\"\n [breakpoint]=\"10\"\n [noBackground]=\"true\"\n [forceModeEdition]=\"false\"\n ></pry-dashboard>\n </div>\n <p class=\"a-p\">\n <strong>{{ layout.label ?? '' | i18n }}</strong>\n </p>\n <p class=\"a-p\">\n {{ layout.description ?? '' | i18n }}\n </p>\n </button>\n </li>\n }\n </ul>\n </div>\n <div class=\"m-btn-group -space-evenly\">\n <button (click)=\"toggleGridChoiceModal()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button (click)=\"validate()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, Inject, OnInit, Optional, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n ConfigActions,\n DashboardActions,\n DashboardSelectors,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n WidgetFactoryService\n} from '@provoly/dashboard';\nimport { combineLatest, map, Observable, take } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n\n@Component({\n selector: 'pry-automate-refresh',\n templateUrl: './automate-refresh.component.html'\n})\nexport class AutomateRefreshComponent extends ToolboxActionComponent implements OnInit {\n @ViewChild('datasourceList', { read: TemplateRef }) datasourceList!: TemplateRef<any>;\n @ViewChild('refreshRateList', { read: TemplateRef }) refreshRateList!: TemplateRef<any>;\n\n refreshRates = [0, 10, 30, 60];\n datasources$: Observable<string[]>;\n refreshRates$!: Observable<{ [p: string]: number }>;\n selectedDatasourceId: string = '';\n allRefreshRate$!: Observable<number>;\n\n private overlayRefDatasourceList?: OverlayRef;\n private overlayRefRefreshList?: OverlayRef;\n\n constructor(\n store: Store,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private widgetFactoryService: WidgetFactoryService,\n @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess\n ) {\n super(store, access);\n this.datasources$ = this.store\n .select(DashboardSelectors.globalManifest)\n .pipe(\n map((manifest) => [\n ...new Set(this.widgetFactoryService.getObjectsToAutoLoad(manifest).datasources.map((ds) => ds.datasetId))\n ])\n );\n }\n\n ngOnInit() {\n this.refreshRates$ = this.store.select(DashboardSelectors.refreshRates);\n\n this.allRefreshRate$ = combineLatest([this.datasources$, this.refreshRates$]).pipe(\n map(([datasources, refreshRates]) =>\n datasources.map((ds) => refreshRates[ds] ?? 0).reduce((p, c) => (p === c ? c : -1))\n )\n );\n }\n\n toggleDatasourceList() {\n if (!this.overlayRefDatasourceList) {\n this.overlayRefDatasourceList = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: false,\n panelClass: ['datasource-bg', 'refresh-rs']\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefDatasourceList.attach(new TemplatePortal(this.datasourceList, this.viewContainerRef));\n this.subscriptions.add(\n this.overlayRefDatasourceList.backdropClick().subscribe((_) => this.hide(this.overlayRefDatasourceList))\n );\n const refreshElement = document.querySelector('.datasource-bg') as HTMLDivElement;\n const refresh = document.querySelector('.automate-btn') as HTMLDivElement;\n if (!!refreshElement) {\n const rect = refresh.getBoundingClientRect();\n refreshElement.style.left = rect.left + rect.width + 10 + 'px';\n refreshElement.style.top = rect.top + 'px';\n }\n }\n }\n\n hide(overlayRef: OverlayRef | undefined) {\n if (overlayRef) {\n overlayRef.dispose();\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n }\n }\n\n toggleRefreshRateList(datasourceId: string, templateIndex: number) {\n if (this.overlayRefRefreshList) {\n this.hide(this.overlayRefRefreshList);\n }\n this.selectDatasource(datasourceId);\n this.overlayRefRefreshList = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: false,\n panelClass: ['refresh-bg', 'refresh-rs']\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRefRefreshList.attach(new TemplatePortal(this.refreshRateList, this.viewContainerRef));\n this.subscriptions.add(\n this.overlayRefRefreshList.backdropClick().subscribe((_) => this.hide(this.overlayRefRefreshList))\n );\n const refreshElement = document.querySelector('.refresh-bg') as HTMLDivElement;\n const refresh = document.querySelector(`.ds-${templateIndex}`) as HTMLDivElement;\n if (!!refreshElement) {\n const rect = refresh.getBoundingClientRect();\n refreshElement.style.left = rect.left + rect.width + 5 + 'px';\n refreshElement.style.top = rect.top + 'px';\n }\n }\n\n selectDatasource(id: string) {\n this.selectedDatasourceId = id;\n }\n\n toggleRefreshRate(rate: number) {\n if (this.selectedDatasourceId !== 'all') {\n this.store.dispatch(DashboardActions.setRefreshRate({ rate, id: this.selectedDatasourceId }));\n } else {\n this.datasources$.pipe(take(1)).subscribe((datasourceIds) => {\n datasourceIds.forEach((id) => {\n this.store.dispatch(DashboardActions.setRefreshRate({ rate, id }));\n });\n });\n }\n setTimeout(() => {\n this.hide(this.overlayRefRefreshList);\n this.hide(this.overlayRefDatasourceList);\n this.close();\n }, 100);\n }\n}\n","<pry-toolbox-css></pry-toolbox-css>\n<button\n type=\"button\"\n class=\"a-btn a-btn--secondary automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n>\n @if (displayLabels) {\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n }\n</button>\n\n<ng-template #datasourceList>\n @if (datasources$ | async; as datasources) {\n <div>\n @if (datasources.length > 0) {\n <button\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n {{ '@pry.toolbox.all' | i18n }}\n </button>\n }\n @for (datasourceId of datasources; track datasourceId; let i = $index) {\n <button\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId: { type: 'datasource', output: 'name' } | async }}\n </button>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n @for (rate of refreshRates; track rate) {\n <button class=\"refresh-line a-btn a-btn--icon-text -size-sm\" (click)=\"toggleRefreshRate(rate)\">\n @if (\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId]) === rate\n ) {\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"check\"></pry-icon>\n }\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n }\n </div>\n</ng-template>\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Action, Store } from '@ngrx/store';\nimport {\n DashboardActions,\n DashboardSelectors,\n GlobalManifest,\n PRY_ACCESS_TOKEN,\n PryBaseAccess,\n SearchActions,\n WidgetFactoryService\n} from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-refresh-datasets',\n templateUrl: './refresh-datasets.component.html'\n})\nexport class RefreshDatasetsComponent extends ToolboxActionComponent {\n manifest$: Observable<GlobalManifest>;\n manifest?: GlobalManifest;\n datasetCount = 0;\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private widgetFactoryService: WidgetFactoryService\n ) {\n super(store, access);\n this.manifest$ = this.store.select(DashboardSelectors.globalManifest);\n this.subscriptions.add(this.manifest$.subscribe((manifest) => (this.manifest = manifest)));\n this.subscriptions.add(\n this.manifest$.subscribe(\n (manifest) =>\n (this.datasetCount =\n [\n ...new Set(\n manifest?.windows\n .map((window) => (window.widgets ?? []).map((widget) => widget.datasource))\n .flat(3)\n .filter((dataset) => !!dataset)\n )\n ].length ?? 0)\n )\n );\n }\n\n refresh() {\n if (this.manifest) {\n const dsAgg = this.widgetFactoryService.getObjectsToAutoLoad(this.manifest);\n\n const actions = [\n ...dsAgg.datasources.map((ds) =>\n SearchActions.getDatasourceItems({\n id: ds.datasetId,\n excludeGeo: ds.excludeGeo,\n from: 'RefreshDatasetsComponent.refresh()'\n })\n ),\n ...dsAgg.aggregates.map((agg) => DashboardActions.triggerAggregate({ id: agg }))\n ] as Action[];\n\n actions.forEach((action) => this.store.dispatch(action));\n }\n this.close();\n }\n}\n","<button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"refresh()\" [disabled]=\"datasetCount < 1\">\n @if (displayLabels) {\n {{ '@pry.toolbox.refresh' | i18n }}\n }\n <pry-icon iconSvg=\"refresh_data\"></pry-icon>\n</button>\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess, ViewMode } from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-switch-to-edit',\n templateUrl: './switch-to-edit-content.component.html'\n})\nexport class SwitchToEditContentComponent extends ToolboxActionComponent {\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n trigger() {\n this.store.dispatch(DashboardActions.updateDisplayOptions({ mode: ViewMode.EDITION }));\n this.close();\n }\n}\n","@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.switchEditContent' | i18n }}\n }\n </button>\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n PRY_ACCESS_TOKEN,\n PryAccessRightsShareModalComponent,\n PryBaseAccess,\n PryDialogService\n} from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-share-pres',\n templateUrl: './share.component.html'\n})\nexport class ShareComponent extends ToolboxActionComponent {\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private dialog: PryDialogService\n ) {\n super(store, access);\n }\n\n trigger() {\n this.dialog.open(PryAccessRightsShareModalComponent, {\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop',\n data: { manifest: this.currentManifest }\n });\n }\n}\n","@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.share' | i18n }}\n }\n </button>\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\nimport { Store } from '@ngrx/store';\n\n@Component({\n selector: 'pry-delete-pres',\n templateUrl: './delete.component.html'\n})\nexport class DeleteComponent extends ToolboxActionComponent {\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n trigger() {\n this.store.dispatch(DashboardActions.confirmManifestDeletion({ id: this.currentManifest?.id! }));\n this.close();\n }\n}\n","@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.delete' | i18n }}\n }\n </button>\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-dashboard-details',\n templateUrl: './dashboard-details.component.html'\n})\nexport class DashboardDetailsComponent extends ToolboxActionComponent {\n isPanelOpen = false;\n panelPosition: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 5\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 5\n }\n ];\n\n constructor(store: Store, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n }\n\n openPanel($event: Event) {\n this.isPanelOpen = true;\n $event.stopPropagation();\n }\n\n closePanel($event: Event | void) {\n this.isPanelOpen = false;\n if ($event) $event.stopPropagation();\n }\n}\n","<pry-toolbox-css></pry-toolbox-css>\n@if (currentManifest?.additionalInformation) {\n <button\n class=\"a-btn a-btn--ghost -pad-5\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"dashboard-details\"\n aria-controls=\"dashboard-details-panel\"\n aria-expanded=\"false\"\n (click)=\"openPanel($event)\"\n >\n <pry-icon iconSvg=\"dashboard-about\"></pry-icon>\n {{ '@pry.toolbox.about' | i18n }}\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"panelPosition\"\n (backdropClick)=\"isPanelOpen = false\"\n >\n <div class=\"o-modal\" id=\"dashboard-details-panel\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.toolbox.about' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closePanel($event)\">\n <pry-icon iconSvg=\"close\" [height]=\"20\" [width]=\"20\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"o-modal__content\" [innerHTML]=\"currentManifest?.additionalInformation | mdToHtml\"></div>\n </div>\n </ng-template>\n}\n","import { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, DashboardSelectors, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-edit-mode-action',\n templateUrl: './edit-mode-action.component.html'\n})\nexport class EditModeActionComponent extends ToolboxActionComponent {\n modeEdition$: Observable<boolean>;\n\n constructor(store: Store<any>, @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess) {\n super(store, access);\n this.modeEdition$ = this.store.select(DashboardSelectors.dashboardEditionMode);\n }\n\n toggleEditionMode() {\n this.store.dispatch(DashboardActions.toggleEditionMode({}));\n }\n}\n","@if (this.canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleEditionMode()\">\n @if (displayLabels) {\n {{ ((modeEdition$ | async) ? '@pry.toolbox.editOff' : '@pry.toolbox.edit') | i18n }}\n }\n </button>\n}\n","import { Component, Inject, Optional, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-action.component';\nimport { Store } from '@ngrx/store';\nimport { ConfigActions, DashboardActions, PRY_ACCESS_TOKEN, PryBaseAccess } from '@provoly/dashboard';\nimport { PresentationFormValue } from '../../shared/presentation-form/presentation-form.component';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'pry-edit-details',\n templateUrl: './edit-presentation.component.html'\n})\nexport class EditPresentationComponent extends ToolboxActionComponent {\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n isModalOpen: boolean = false;\n overlayRef?: OverlayRef;\n formValue?: Partial<PresentationFormValue>;\n isFormValid: boolean = false;\n\n constructor(\n store: Store<any>,\n @Optional() @Inject(PRY_ACCESS_TOKEN) access: PryBaseAccess,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n super(store, access);\n }\n\n openModal() {\n if (!this.overlayRef) {\n this.isModalOpen = !this.isModalOpen;\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRef.backdropClick().subscribe((_) => this.closeModal());\n this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n } else {\n this.closeModal();\n }\n }\n\n closeModal() {\n this.isModalOpen = false;\n this.overlayRef?.dispose();\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.close();\n }\n\n save() {\n this.store.dispatch(\n DashboardActions.saveManifest({\n id: this.currentManifest!.id,\n ...(this.formValue as Omit<PresentationFormValue, 'theme'>)\n })\n );\n }\n}\n","@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"openModal()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.editPresentation' | i18n }}\n }\n </button>\n}\n\n<ng-template #template>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_title\"\n id=\"grid-layout\"\n (keydown.escape)=\"closeModal()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.editPresentation' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeModal()\">\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 <pry-presentation-form\n [selectedPresentation]=\"(currentManifest$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group -space-evenly\">\n <button (click)=\"closeModal()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button (click)=\"save()\" [disabled]=\"!isFormValid\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n","import { Type } from '@angular/core';\nimport { PryAccessCheck } from '@provoly/dashboard';\nimport { AutomateRefreshComponent } from './components/automate-refresh/automate-refresh.component';\nimport { ClearViewComponent } from './components/clear-view/clear-view.component';\nimport { PryFilterSettingsComponent } from './components/filter-settings/filter-settings.component';\nimport { LaunchTabComponent } from './components/launch-tab/launch-tab.component';\nimport { RefreshDatasetsComponent } from './components/refresh-datasets/refresh-datasets.component';\nimport { SaveViewComponent } from './components/save-view/save-view.component';\nimport { SelectGridLayoutComponent } from './components/select-grid-layout/select-grid-layout.component';\nimport { ToolboxActionComponent } from './shared/toolbox-action/toolbox-action.component';\nimport { SwitchToEditContentComponent } from './components/switch-to-edit-content/switch-to-edit-content.component';\nimport { ShareComponent } from './components/share/share.component';\nimport { DeleteComponent } from './components/delete/delete.component';\nimport { DashboardDetailsComponent } from './components/dashboard-details/dashboard-details.component';\nimport { EditModeActionComponent } from './components/edit-mode-action/edit-mode-action.component';\nimport { EditPresentationComponent } from './components/edit-presentation/edit-presentation.component';\n\nexport interface ToolboxAction {\n name: string;\n component: Type<ToolboxActionComponent>;\n access: PryAccessCheck;\n visible: boolean;\n needsOwner: boolean;\n}\n\nexport const ACTIONS: ToolboxAction[] = [\n {\n name: 'dashboard_details',\n component: DashboardDetailsComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'details' },\n needsOwner: false\n },\n {\n name: 'edit_action',\n component: EditModeActionComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'edit' },\n needsOwner: true\n },\n {\n name: 'filter_settings',\n component: PryFilterSettingsComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'filter_settings' },\n needsOwner: false\n },\n {\n name: 'save_view',\n component: SaveViewComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'save' },\n needsOwner: false\n },\n {\n name: 'save_view_as',\n component: SaveViewComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'save' },\n needsOwner: false\n },\n {\n name: 'new_tab',\n component: LaunchTabComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'new_tab' },\n needsOwner: false\n },\n {\n name: 'clear_view',\n component: ClearViewComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'clear_view' },\n needsOwner: false\n },\n {\n name: 'default_size',\n component: SelectGridLayoutComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'default_size' },\n needsOwner: false\n },\n {\n name: 'refresh_datasets',\n component: RefreshDatasetsComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'refresh_datasets' },\n needsOwner: false\n },\n {\n name: 'automate_refresh',\n component: AutomateRefreshComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'automate_refresh' },\n needsOwner: false\n },\n {\n name: 'edit_presentation_content',\n component: SwitchToEditContentComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'edit_presentation_content' },\n needsOwner: true\n },\n {\n name: 'share',\n component: ShareComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'share' },\n needsOwner: true\n },\n {\n name: 'delete',\n component: DeleteComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'delete' },\n needsOwner: true\n },\n {\n name: 'edit_presentation',\n component: EditPresentationComponent,\n visible: true,\n access: { module: 'dashboard', page: 'toolbox', action: 'edit_details' },\n needsOwner: true\n }\n];\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { SubscriptionnerDirective } from '@provoly/dashboard';\nimport { ToolboxAction } from '../../toolbox.model';\nimport { SaveViewComponent } from '../../components/save-view/save-view.component';\nimport { ToolboxActionComponent } from '../toolbox-action/toolbox-action.component';\n\n@Component({\n selector: 'pry-toolbox-action-instanciator',\n templateUrl: './toolbox-action-instanciator.component.html'\n})\nexport class ToolboxActionInstanciatorComponent extends SubscriptionnerDirective implements AfterViewInit, OnDestroy {\n @Input() displayLabels: boolean = true;\n @Output() closeOptions = new EventEmitter<void>();\n _action!: ToolboxAction;\n @ViewChild('actionContainerRef', { read: ViewContainerRef }) actionContainerRef!: ViewContainerRef;\n\n constructor(private store: Store<any>, private _cd: ChangeDetectorRef) {\n super();\n }\n\n @Input() set action(action: ToolboxAction) {\n this._action = action;\n this.ngAfterViewInit();\n }\n\n ngAfterViewInit() {\n if (this.actionContainerRef) {\n this.actionContainerRef.clear();\n if (this._action.visible) {\n const componentRef = this.actionContainerRef.createComponent<ToolboxActionComponent>(this._action.component);\n this.subscriptions.add(componentRef.instance.closeOptions.subscribe((_) => this.closeOptions.emit()));\n componentRef.instance.displayLabels = this.displayLabels;\n componentRef.location.nativeElement.style.zIndex = 2;\n\n if (this._action.name === 'default_size') {\n componentRef.location.nativeElement.classList.add('is-screen-size-select');\n }\n\n if (this._action.name === 'save_view') {\n (componentRef.instance as SaveViewComponent).mode = 'directSave';\n }\n\n this._cd.detectChanges();\n }\n } else {\n setTimeout(() => this.ngAfterViewInit(), 100);\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.actionContainerRef?.clear();\n }\n}\n","<ng-template #actionContainerRef></ng-template>\n","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n DashboardGridLayout,\n DashboardSelectors,\n DisplayOptions,\n ManifestDescription,\n PRY_ACCESS_TOKEN,\n PryBaseAccess\n} from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable, of, switchMap } from 'rxjs';\nimport { ACTIONS, ToolboxAction } from '../toolbox.model';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { withLatestFrom } from 'rxjs';\n\n@Component({\n selector: 'pry-toolbox',\n templateUrl: './toolbox.component.html'\n})\nexport class ToolboxComponent implements OnInit {\n actions$ = new BehaviorSubject<ToolboxAction[]>(ACTIONS);\n _dropdownActions$ = new BehaviorSubject<{ name: string; order: number }[]>([]);\n @Input() displayLabels = true;\n @Input() dropdownPosition: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }\n ];\n isManualMode$: Observable<boolean>;\n canModify$: Observable<boolean>;\n allActions$!: Observable<ToolboxAction[]>;\n mainActions$!: Observable<ToolboxAction[]>;\n dropdownActions$!: Observable<ToolboxAction[]>;\n showDropdownButton$!: Observable<boolean>;\n isDropdownOpen = false;\n actionsAvailable$: Observable<DisplayOptions | undefined>;\n showEditToggle$: Observable<boolean>;\n private currentManifest$: Observable<ManifestDescription | undefined>;\n\n @Input() set actions(actions: ToolboxAction[]) {\n this.actions$.next(actions);\n }\n\n @Input() set dropdownActions(dropdownActions: { name: string; order: number }[]) {\n this._dropdownActions$.next(dropdownActions);\n }\n\n constructor(\n store: Store,\n @Optional() @Inject(PRY_ACCESS_TOKEN) private access: PryBaseAccess\n ) {\n this.currentManifest$ = store\n .select(DashboardSelectors.presentation)\n .pipe(map((presentation) => presentation?.current));\n this.isManualMode$ = combineLatest([\n store.select(DashboardSelectors.staticManifest),\n store.select(DashboardSelectors.gridLayout)\n ]).pipe(\n map(\n ([staticManifest, gridLayout]) =>\n (staticManifest.windows[0]?.grid?.layout !== undefined\n ? staticManifest.windows[0]?.grid?.layout\n : gridLayout) === DashboardGridLayout.MANUAL\n )\n );\n this.actionsAvailable$ = store.select(DashboardSelectors.displayOptions);\n this.showEditToggle$ = this.actionsAvailable$.pipe(map((actions) => !!actions?.edit_toggle));\n this.canModify$ = this.currentManifest$.pipe(\n switchMap((manifest) => {\n return manifest ? this.access?.canModifyPresentation(manifest) : of(false);\n })\n );\n }\n\n ngOnInit() {\n this.allActions$ = combineLatest([this.actions$, this.actionsAvailable$, this.canModify$]).pipe(\n withLatestFrom(this.currentManifest$),\n switchMap(([[actions, displayOptions, _canModify], currentManifest]) =>\n combineLatest(\n actions.map((action) => {\n // @ts-ignore\n const actionAvailable =\n this.isActionVisible(action, currentManifest) &&\n displayOptions?.toolbox[action.name as keyof typeof displayOptions.toolbox];\n const canModify = !action.needsOwner || _canModify;\n return this.access\n ? this.access.hasRole(null, action.access.module, action.access.page, action.access.action).pipe(\n map(\n (hasRole) =>\n ({\n ...action,\n visible: actionAvailable && (!this.access || hasRole) && canModify\n }) as ToolboxAction\n )\n )\n : of({\n ...action,\n visible: actionAvailable && canModify\n } as ToolboxAction);\n })\n )\n )\n );\n this.mainActions$ = combineLatest([this._dropdownActions$, this.allActions$]).pipe(\n map(([dropdownActions, actions]) =>\n actions.filter((action) => !dropdownActions.find((dropdownAction) => action.name === dropdownAction.name))\n )\n );\n this.dropdownActions$ = combineLatest([this._dropdownActions$, this.allActions$]).pipe(\n map(([dropdownActions, actions]) =>\n actions.filter((action) => !!dropdownActions.find((dropdownAction) => action.name === dropdownAction.name))\n )\n );\n\n this.showDropdownButton$ = this.dropdownActions$.pipe(\n map((actions) => actions.filter((action) => action.visible).length > 0)\n );\n }\n\n openDropdown($event: Event) {\n this.isDropdownOpen = true;\n $event.stopPropagation();\n }\n\n closeDropdown($event: Event | void) {\n this.isDropdownOpen = false;\n if ($event) $event.stopPropagation();\n }\n\n getOrder(actionName: string) {\n return this._dropdownActions$.getValue().find((action) => actionName === action.name)?.order;\n }\n\n isActionVisible(action: ToolboxAction, manifest: ManifestDescription | undefined): boolean {\n return manifest && action.name === 'dashboard_details' ? !!manifest.additionalInformation : action.visible;\n }\n}\n","<ul class=\"m-actions-list\" #input>\n @if (showEditToggle$ | async) {\n @if (isManualMode$ | async) {\n <li class=\"m-actions-list__item\">\n <pry-edit-mode-toggle\n *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'edit_dashboard' }\"\n [displayLabels]=\"displayLabels\"\n ></pry-edit-mode-toggle>\n </li>\n }\n }\n\n @if (showDropdownButton$ | async) {\n @if (((dropdownActions$ | async)?.length ?? 0) > 0) {\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--ghost -pad-5\"\n cdkOverlayOrigin\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n #trigger=\"cdkOverlayOrigin\"\n >\n <span [class.u-visually-hidden]=\"!displayLabels\">{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"10\" [height]=\"13\" [iconSvg]=\"isDropdownOpen ? 'chevron_top' : 'chevron_bottom'\"></pry-icon>\n </button>\n </li>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"dropdownPosition\"\n [cdkConnectedOverlayOffsetY]=\"5\"\n (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu -dropdown\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n @for (action of dropdownActions$ | async; track action.name) {\n @if (action.visible) {\n <li class=\"o-draggable-menu__list__item\" [style.order]=\"getOrder(action.name)\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n }\n }\n </ul>\n </div>\n </ng-template>\n }\n }\n\n @for (action of mainActions$ | async; track action.name) {\n @if (action.visible) {\n <li class=\"m-actions-list__item -{{ action.name }}\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n }\n }\n</ul>\n","import { CdkDrag, CdkDragHandle, CdkDropList } from '@angular/cdk/drag-drop';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport {\n PryCoreModule,\n PryDashboardModule,\n PryI18nModule,\n PryIconModule,\n PryOverlayModule,\n PrySelectModule,\n PryShareModule,\n PryToggleModule\n} from '@provoly/dashboard';\nimport { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';\nimport { PryStepperModule } from '@provoly/dashboard/components/stepper';\nimport { ClearViewComponent } from './components/clear-view/clear-view.component';\nimport { DragWidgetsComponent } from './components/drag-widgets/drag-widgets.component';\nimport { EditModeToggleComponent } from './components/edit-mode-toggle/edit-mode-toggle.component';\nimport { PryFilterSettingsComponent } from './components/filter-settings/filter-settings.component';\nimport { LaunchTabComponent } from './components/launch-tab/launch-tab.component';\nimport { NamedQueryComponent } from './components/named-query/named-query.component';\nimport { SaveViewComponent } from './components/save-view/save-view.component';\nimport { SelectGridLayoutComponent } from './components/select-grid-layout/select-grid-layout.component';\nimport { ToolboxComponent } from './components/toolbox.component';\nimport { PrySelectGridLayoutCssComponent } from './style/css.component';\nimport { RefreshDatasetsComponent } from './components/refresh-datasets/refresh-datasets.component';\nimport { AutomateRefreshComponent } from './components/automate-refresh/automate-refresh.component';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SwitchToEditContentComponent } from './components/switch-to-edit-content/switch-to-edit-content.component';\nimport { ShareComponent } from './components/share/share.component';\nimport { DeleteComponent } from './components/delete/delete.component';\nimport { DashboardDetailsComponent } from './components/dashboard-details/dashboard-details.component';\nimport { EditModeActionComponent } from './components/edit-mode-action/edit-mode-action.component';\nimport { PryTextEditorModule } from '@provoly/dashboard/components/text-editor';\nimport { EditPresentationComponent } from './components/edit-presentation/edit-presentation.component';\nimport { PresentationFormComponent } from './shared/presentation-form/presentation-form.component';\nimport { ToolboxActionInstanciatorComponent } from './shared/toolbox-action-instanciator/toolbox-action-instanciator.component';\nimport { ToolboxActionComponent } from './shared/toolbox-action/toolbox-action.component';\n\nconst components = [\n ToolboxActionComponent,\n ToolboxActionInstanciatorComponent,\n ClearViewComponent,\n DragWidgetsComponent,\n EditModeToggleComponent,\n LaunchTabComponent,\n NamedQueryComponent,\n SaveViewComponent,\n SelectGridLayoutComponent,\n ToolboxComponent,\n PrySelectGridLayoutCssComponent,\n PryFilterSettingsComponent,\n RefreshDatasetsComponent,\n AutomateRefreshComponent,\n SwitchToEditContentComponent,\n ShareComponent,\n DeleteComponent,\n DashboardDetailsComponent,\n EditModeActionComponent,\n EditPresentationComponent,\n PresentationFormComponent\n];\n\n@NgModule({\n declarations: [...components],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryOverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryIconModule,\n PryCheckboxModule,\n PryToggleModule,\n PryStepperModule,\n PryShareModule,\n PryI18nModule,\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n A11yModule,\n PryTextEditorModule,\n ReactiveFormsModule\n ],\n exports: [...components]\n})\nexport class PryToolboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i4","i5","i7.PrySelectGridLayoutCssComponent","i8","i6.PresentationFormComponent","i7","i5.PrySelectGridLayoutCssComponent","i6","i4.PrySelectGridLayoutCssComponent","i5.PresentationFormComponent","i4.ToolboxActionInstanciatorComponent","i5.EditModeToggleComponent"],"mappings":"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"}
|