@provoly/dashboard 1.4.13 → 1.4.15
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/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +7 -7
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +7 -7
- package/esm2022/admin/components/admin-abac-rules/components/composed-condition/composed-condition.component.mjs +10 -10
- package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +6 -6
- package/esm2022/admin/components/admin-abac-rules/components/select-attribute/select-attribute.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +10 -10
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +10 -15
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +8 -8
- package/esm2022/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +6 -6
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +6 -6
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +5 -5
- package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +6 -6
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +7 -7
- package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +5 -5
- package/esm2022/admin/components/admin-environment/admin-environment-update/admin-environment-update.component.mjs +5 -5
- package/esm2022/admin/components/admin-environment/admin-environment.component.mjs +5 -5
- package/esm2022/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.mjs +5 -5
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +3 -3
- package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +5 -5
- package/esm2022/admin/components/admin-links/admin-links.component.mjs +5 -5
- package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +4 -5
- package/esm2022/admin/components/admin-metadata/shared/list-metadata/pry-list-metadata.component.mjs +5 -6
- package/esm2022/admin/components/admin-metadata-rules/admin-metadata-rules.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +4 -5
- package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates-form/admin-predicates-form.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates-update/admin-predicates-update.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +5 -5
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-modal/admin-relation-types-modal.component.mjs +4 -5
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +5 -5
- package/esm2022/admin/components/admin-relation-types/admin-relation-types.component.mjs +6 -6
- package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +6 -6
- package/esm2022/admin/components/admin-user/admin-user.component.mjs +5 -5
- package/esm2022/admin/components/association/association.component.mjs +4 -5
- package/esm2022/components/card/card.component.mjs +5 -6
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +6 -6
- package/esm2022/components/scheme-picker/scheme-picker.component.mjs +7 -7
- package/esm2022/components/stepper/stepper.component.mjs +3 -4
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +5 -5
- package/esm2022/dataset/components/dataset-version-form/dataset-version-form.component.mjs +6 -7
- package/esm2022/filters/date/date-filter.component.mjs +5 -6
- package/esm2022/filters/list/list-filter.component.mjs +6 -7
- package/esm2022/filters/number/number-filter.component.mjs +5 -6
- package/esm2022/filters/text/text-filter.component.mjs +5 -6
- package/esm2022/lib/core/components/about/about.component.mjs +3 -3
- package/esm2022/lib/core/components/accordion/accordion-item/accordion-item.component.mjs +7 -7
- package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +6 -6
- package/esm2022/lib/core/components/base-toolbox/base-toolbox.component.mjs +6 -6
- package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +6 -7
- package/esm2022/lib/core/components/date-picker/date-picker.component.mjs +4 -4
- package/esm2022/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.mjs +3 -4
- package/esm2022/lib/core/components/date-picker/time-picker/time-picker.component.mjs +6 -6
- package/esm2022/lib/core/components/edit-input/edit-input.component.mjs +7 -8
- package/esm2022/lib/core/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/core/components/modal/modal.component.mjs +5 -6
- package/esm2022/lib/core/components/nq-color-selector/nq-color-selector.component.mjs +5 -5
- package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +3 -3
- package/esm2022/lib/core/components/range/range.component.mjs +5 -6
- package/esm2022/lib/core/components/select/select.component.mjs +3 -3
- package/esm2022/lib/core/components/select-image/select-image.component.mjs +5 -5
- package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +6 -6
- package/esm2022/lib/core/components/snackbar/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/core/components/status-modal/status-modal.component.mjs +5 -5
- package/esm2022/lib/core/components/tabs/tab-group.component.mjs +3 -3
- package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -4
- package/esm2022/lib/core/model/result-set.interface.mjs +1 -1
- package/esm2022/lib/core/model/search-mono-class.model.mjs +1 -1
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +9 -9
- package/esm2022/lib/core/store/relation-types/relation-types.actions.mjs +2 -1
- package/esm2022/lib/core/store/relation-types/relation-types.effects.mjs +2 -1
- package/esm2022/lib/core/store/relation-types/relation-types.service.mjs +5 -1
- package/esm2022/lib/core/store/search/search.actions.mjs +1 -1
- package/esm2022/lib/core/store/search/search.effects.mjs +5 -3
- package/esm2022/lib/core/store/search/search.service.mjs +19 -13
- package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +3 -3
- package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +2 -2
- package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +8 -8
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +12 -12
- package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +5 -5
- package/esm2022/lib/dashboard/components/metadata/metadata.component.mjs +5 -6
- package/esm2022/lib/dashboard/components/vizualize-raw/vizualize-raw.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +6 -6
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +10 -10
- package/esm2022/lib/dashboard/components/widgets/widget-filler/widget-filler.component.mjs +2 -2
- package/esm2022/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.mjs +2 -2
- package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +7 -7
- package/esm2022/lib/dashboard/resultset-utils.mjs +7 -8
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -1
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +31 -23
- package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +3 -3
- package/esm2022/notification/components/notification/content/notification-content.component.mjs +3 -3
- package/esm2022/notification/components/notification/notification.component.mjs +5 -5
- package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +7 -7
- package/esm2022/pipeline/components/pipeline-editor/graph-serializer.utils.mjs +2 -2
- package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +5 -5
- package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +9 -9
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +6 -6
- package/esm2022/presentation/components/presentation.component.mjs +6 -6
- package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +5 -5
- package/esm2022/restitution/components/restitution/restitution.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +9 -9
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
- package/esm2022/search/components/choose-widget/choose-widget.component.mjs +5 -5
- package/esm2022/search/components/edit-named-query/edit-named-query.component.mjs +9 -9
- package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +3 -3
- package/esm2022/search/search-home/search-home.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-composed/search-composed.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +8 -8
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +6 -6
- package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +3 -3
- package/esm2022/search/search-mono-class/store/search-mono-class.service.mjs +4 -4
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +7 -7
- package/esm2022/search/search-multi-class/components/multi-class-field-selection/multi-class-field-selection.component.mjs +6 -6
- package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +7 -7
- package/esm2022/search/search-tools/search-tools.component.mjs +13 -13
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +5 -5
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +10 -10
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +8 -8
- package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +9 -6
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +3 -3
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +4 -4
- package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +2 -2
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +12 -12
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +13 -7
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +7 -7
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +7 -7
- package/esm2022/widgets/widget-iframe/messaging/iframe-messaging.service.mjs +2 -2
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +10 -10
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +2 -2
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +2 -2
- package/esm2022/widgets/widget-table/expand-value/expand-value.component.mjs +4 -5
- package/esm2022/widgets/widget-template/component/widget-template.component.mjs +7 -7
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +10 -10
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +9 -9
- package/fesm2022/provoly-dashboard-admin.mjs +171 -175
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-card.mjs +4 -5
- package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +4 -4
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +6 -6
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-stepper.mjs +2 -3
- package/fesm2022/provoly-dashboard-components-stepper.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +14 -14
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-date.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-number.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-text.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +4 -4
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline.mjs +21 -21
- package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +14 -14
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +6 -6
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +38 -38
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +29 -25
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +2 -2
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +3 -3
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +11 -5
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +5 -5
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +8 -8
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +9 -9
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +6 -6
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs +7 -7
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +11 -11
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +7 -7
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +245 -224
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/model/result-set.interface.d.ts +6 -0
- package/lib/core/model/search-mono-class.model.d.ts +9 -2
- package/lib/core/store/relation-types/relation-types.actions.d.ts +9 -0
- package/lib/core/store/relation-types/relation-types.effects.d.ts +5 -0
- package/lib/core/store/relation-types/relation-types.service.d.ts +1 -0
- package/lib/core/store/search/search.actions.d.ts +4 -0
- package/lib/core/store/search/search.effects.d.ts +1 -0
- package/lib/core/store/search/search.service.d.ts +2 -2
- package/lib/dashboard/store/dashboard.actions.d.ts +5 -0
- package/lib/dashboard/store/dashboard.effects.d.ts +2 -0
- package/package.json +37 -37
- package/search/search-fulltext/store/search-fulltext.effects.d.ts +1 -0
- package/search/search-mono-class/store/search-mono-class.effects.d.ts +1 -0
- package/search/search-mono-class/store/search-mono-class.service.d.ts +1 -1
- package/search/search-multi-class/store/search-multi-class.effects.d.ts +1 -0
- package/toolbox/shared/presentation-form/presentation-form.component.d.ts +1 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import * as i2 from '@angular/cdk/overlay';
|
|
1
|
+
import * as i2$1 from '@angular/cdk/overlay';
|
|
2
2
|
import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
3
|
-
import * as
|
|
3
|
+
import * as i3 from '@angular/common';
|
|
4
4
|
import { CommonModule, AsyncPipe, DOCUMENT } from '@angular/common';
|
|
5
|
-
import * as i1$
|
|
5
|
+
import * as i1$1 from '@angular/common/http';
|
|
6
6
|
import { HttpHeaders, HttpUrlEncodingCodec, HttpParams, HttpClientModule } from '@angular/common/http';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
8
|
import { InjectionToken, Injectable, Directive, Optional, Inject, Input, Component, Pipe, ChangeDetectionStrategy, HostBinding, NgModule, Injector, EventEmitter, Output, TemplateRef, ViewChild, SecurityContext, ContentChildren, forwardRef, HostListener, ViewContainerRef, ViewChildren, ViewEncapsulation, createNgModule } from '@angular/core';
|
|
9
|
-
import * as
|
|
9
|
+
import * as i2 from '@angular/router';
|
|
10
10
|
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
11
|
-
import * as i1$
|
|
11
|
+
import * as i1$2 from '@ngrx/effects';
|
|
12
12
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
13
13
|
import * as i1 from '@ngrx/store';
|
|
14
14
|
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, StoreModule } from '@ngrx/store';
|
|
15
|
-
import { of, Subscription, filter, combineLatest, debounceTime, BehaviorSubject, map, Subject, windowTime, switchMap, mergeMap, from as from$1, forkJoin, catchError as catchError$1, startWith, throwError, tap as tap$1, combineLatestWith, merge, distinctUntilChanged as distinctUntilChanged$1,
|
|
15
|
+
import { of, Subscription, filter, combineLatest, debounceTime, BehaviorSubject, map, Subject, windowTime, switchMap, mergeMap, from as from$1, forkJoin, catchError as catchError$1, startWith, throwError, take, withLatestFrom as withLatestFrom$1, tap as tap$1, combineLatestWith, merge, distinctUntilChanged as distinctUntilChanged$1, groupBy, EMPTY, share, ReplaySubject, delay, fromEvent, auditTime, interval } from 'rxjs';
|
|
16
16
|
import * as i3$1 from '@angular/platform-browser';
|
|
17
17
|
import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
18
18
|
import * as i3$2 from '@angular/cdk/a11y';
|
|
@@ -22,9 +22,9 @@ import { distinctUntilChanged, filter as filter$1, debounceTime as debounceTime$
|
|
|
22
22
|
import { animation, style, animate, trigger, transition, useAnimation } from '@angular/animations';
|
|
23
23
|
import { Style, Icon } from 'ol/style';
|
|
24
24
|
import { createEntityAdapter } from '@ngrx/entity';
|
|
25
|
-
import * as i1$
|
|
25
|
+
import * as i1$3 from '@angular/cdk/accordion';
|
|
26
26
|
import { CdkAccordionModule } from '@angular/cdk/accordion';
|
|
27
|
-
import * as
|
|
27
|
+
import * as i2$2 from '@angular/forms';
|
|
28
28
|
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
29
29
|
import * as i7 from '@provoly/dashboard/components/checkbox';
|
|
30
30
|
import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
|
|
@@ -163,13 +163,13 @@ class BaseLayoutComponent extends SubscriptionnerDirective {
|
|
|
163
163
|
highlightMenu(menu) {
|
|
164
164
|
console.error('Must override highLightMenu function');
|
|
165
165
|
}
|
|
166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseLayoutComponent, deps: [{ token: i1.Store }, { token:
|
|
166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseLayoutComponent, deps: [{ token: i1.Store }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
167
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: BaseLayoutComponent, selector: "pry-base-layout", usesInheritance: true, ngImport: i0, template: "<div>\n <ng-container #componentRef></ng-container>\n</div>\n" }); }
|
|
168
168
|
}
|
|
169
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseLayoutComponent, decorators: [{
|
|
170
170
|
type: Component,
|
|
171
171
|
args: [{ selector: 'pry-base-layout', template: "<div>\n <ng-container #componentRef></ng-container>\n</div>\n" }]
|
|
172
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type:
|
|
172
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }] });
|
|
173
173
|
|
|
174
174
|
function deepMerge(target, source) {
|
|
175
175
|
const isObject = (obj) => obj && typeof obj === 'object';
|
|
@@ -1253,11 +1253,11 @@ class BaseMenuComponent extends SubscriptionnerDirective {
|
|
|
1253
1253
|
console.error('Must override init function');
|
|
1254
1254
|
}
|
|
1255
1255
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseMenuComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1256
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1256
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: BaseMenuComponent, selector: "pry-base-menu", usesInheritance: true, ngImport: i0, template: "<nav class=\"m-nav-links\">\n @for (sub of subMenu$ | async; track sub) {\n <ul class=\"m-nav-links__list\">\n @for (menu of sub.subMenus; track menu) {\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n }\n </ul>\n }\n</nav>\n", dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
1257
1257
|
}
|
|
1258
1258
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseMenuComponent, decorators: [{
|
|
1259
1259
|
type: Component,
|
|
1260
|
-
args: [{ selector: 'pry-base-menu', template: "<nav class=\"m-nav-links\">\n
|
|
1260
|
+
args: [{ selector: 'pry-base-menu', template: "<nav class=\"m-nav-links\">\n @for (sub of subMenu$ | async; track sub) {\n <ul class=\"m-nav-links__list\">\n @for (menu of sub.subMenus; track menu) {\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n }\n </ul>\n }\n</nav>\n" }]
|
|
1261
1261
|
}], ctorParameters: () => [{ type: i1.Store }] });
|
|
1262
1262
|
|
|
1263
1263
|
const DEFAULT_ICON_URL = '/assets/svgs/default.svg';
|
|
@@ -1345,11 +1345,11 @@ class PryIconComponent {
|
|
|
1345
1345
|
this.baseStyle = this.sanitizer.bypassSecurityTrustStyle(safeStyle);
|
|
1346
1346
|
}
|
|
1347
1347
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryIconComponent, deps: [{ token: i3$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1348
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1348
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryIconComponent, selector: "pry-icon", inputs: { color: "color", iconSvg: "iconSvg", animation: "animation", iconImage: "iconImage", alt: "alt", width: "width", height: "height", classes: "classes" }, host: { properties: { "style": "this.baseStyle" } }, usesOnChanges: true, ngImport: i0, template: "@if (iconSvgUrl) {\n <span\n class=\"a-icon\"\n [ngClass]=\"color!\"\n [ngClass]=\"classes\"\n [ngStyle]=\"{\n 'width.px': width,\n 'height.px': height,\n 'mask-image': 'url(' + iconSvgUrl + ')',\n '-webkit-mask-image': 'url(' + iconSvgUrl + ')'\n }\"\n aria-hidden=\"true\"\n focusable=\"false\"\n ></span>\n}\n@if (iconImageUrl) {\n <img class=\"a-icon-img\" [src]=\"iconImageUrl\" [style.height.px]=\"height\" [style.width.px]=\"width\" [alt]=\"alt\" />\n}\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1349
1349
|
}
|
|
1350
1350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryIconComponent, decorators: [{
|
|
1351
1351
|
type: Component,
|
|
1352
|
-
args: [{ selector: 'pry-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
1352
|
+
args: [{ selector: 'pry-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (iconSvgUrl) {\n <span\n class=\"a-icon\"\n [ngClass]=\"color!\"\n [ngClass]=\"classes\"\n [ngStyle]=\"{\n 'width.px': width,\n 'height.px': height,\n 'mask-image': 'url(' + iconSvgUrl + ')',\n '-webkit-mask-image': 'url(' + iconSvgUrl + ')'\n }\"\n aria-hidden=\"true\"\n focusable=\"false\"\n ></span>\n}\n@if (iconImageUrl) {\n <img class=\"a-icon-img\" [src]=\"iconImageUrl\" [style.height.px]=\"height\" [style.width.px]=\"width\" [alt]=\"alt\" />\n}\n" }]
|
|
1353
1353
|
}], ctorParameters: () => [{ type: i3$1.DomSanitizer }], propDecorators: { baseStyle: [{
|
|
1354
1354
|
type: HostBinding,
|
|
1355
1355
|
args: ['style']
|
|
@@ -1415,11 +1415,11 @@ class BaseToolboxActionComponent {
|
|
|
1415
1415
|
this._cd.markForCheck();
|
|
1416
1416
|
}
|
|
1417
1417
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseToolboxActionComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1418
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1418
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: BaseToolboxActionComponent, selector: "pry-base-toolbox-action", inputs: { baseToolboxTranslation: "baseToolboxTranslation", action: "action", iconAction: "iconAction" }, ngImport: i0, template: "@if (action) {\n <ul>\n <li class=\"m-actions-list__item\">\n <button\n class=\"a-btn a-btn--secondary\"\n [class.is-active]=\"panelOpen\"\n (click)=\"select(action)\"\n [disabled]=\"action.disabled\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n @if (!iconAction) {\n @if (action.icon) {\n <pry-icon [iconSvg]=\"action.icon\" [height]=\"20\" [width]=\"20\"></pry-icon>\n }\n {{ baseToolboxTranslation + action.label | i18n }}\n @if (action.actions) {\n <pry-icon iconSvg=\"fleche_bas\"></pry-icon>\n }\n } @else {\n @if (action.icon) {\n <pry-icon\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n }\n }\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n @for (act of action.actions; track act) {\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n }\n </div>\n </div>\n </ng-template>\n}\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1419
1419
|
}
|
|
1420
1420
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseToolboxActionComponent, decorators: [{
|
|
1421
1421
|
type: Component,
|
|
1422
|
-
args: [{ selector: 'pry-base-toolbox-action', changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
1422
|
+
args: [{ selector: 'pry-base-toolbox-action', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (action) {\n <ul>\n <li class=\"m-actions-list__item\">\n <button\n class=\"a-btn a-btn--secondary\"\n [class.is-active]=\"panelOpen\"\n (click)=\"select(action)\"\n [disabled]=\"action.disabled\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n @if (!iconAction) {\n @if (action.icon) {\n <pry-icon [iconSvg]=\"action.icon\" [height]=\"20\" [width]=\"20\"></pry-icon>\n }\n {{ baseToolboxTranslation + action.label | i18n }}\n @if (action.actions) {\n <pry-icon iconSvg=\"fleche_bas\"></pry-icon>\n }\n } @else {\n @if (action.icon) {\n <pry-icon\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n }\n }\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n @for (act of action.actions; track act) {\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n }\n </div>\n </div>\n </ng-template>\n}\n" }]
|
|
1423
1423
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ChangeDetectorRef }], propDecorators: { baseToolboxTranslation: [{
|
|
1424
1424
|
type: Input
|
|
1425
1425
|
}], action: [{
|
|
@@ -1433,11 +1433,11 @@ class BaseToolboxComponent {
|
|
|
1433
1433
|
this.baseToolboxTranslation = '';
|
|
1434
1434
|
}
|
|
1435
1435
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseToolboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1436
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1436
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: BaseToolboxComponent, selector: "pry-base-toolbox", inputs: { baseToolboxTranslation: "baseToolboxTranslation", actions$: "actions$", subActions$: "subActions$" }, ngImport: i0, template: "<div class=\"o-base-layout__toolbox__actions\">\n <ul class=\"m-actions-list\">\n @for (action of actions$ | async; track action) {\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n >\n </pry-base-toolbox-action>\n }\n </ul>\n\n <ul class=\"m-actions-list\">\n @for (action of subActions$ | async; track action) {\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n [iconAction]=\"true\"\n >\n </pry-base-toolbox-action>\n }\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: BaseToolboxActionComponent, selector: "pry-base-toolbox-action", inputs: ["baseToolboxTranslation", "action", "iconAction"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
1437
1437
|
}
|
|
1438
1438
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseToolboxComponent, decorators: [{
|
|
1439
1439
|
type: Component,
|
|
1440
|
-
args: [{ selector: 'pry-base-toolbox', template: "<div class=\"o-base-layout__toolbox__actions\">\n <ul class=\"m-actions-list\">\n
|
|
1440
|
+
args: [{ selector: 'pry-base-toolbox', template: "<div class=\"o-base-layout__toolbox__actions\">\n <ul class=\"m-actions-list\">\n @for (action of actions$ | async; track action) {\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n >\n </pry-base-toolbox-action>\n }\n </ul>\n\n <ul class=\"m-actions-list\">\n @for (action of subActions$ | async; track action) {\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n [iconAction]=\"true\"\n >\n </pry-base-toolbox-action>\n }\n </ul>\n</div>\n" }]
|
|
1441
1441
|
}], propDecorators: { baseToolboxTranslation: [{
|
|
1442
1442
|
type: Input
|
|
1443
1443
|
}], actions$: [{
|
|
@@ -2011,13 +2011,13 @@ class PryDialogService {
|
|
|
2011
2011
|
});
|
|
2012
2012
|
return overlay;
|
|
2013
2013
|
}
|
|
2014
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDialogService, deps: [{ token: i0.Injector }, { token: i2.Overlay }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2014
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDialogService, deps: [{ token: i0.Injector }, { token: i2$1.Overlay }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2015
2015
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDialogService, providedIn: 'root' }); }
|
|
2016
2016
|
}
|
|
2017
2017
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDialogService, decorators: [{
|
|
2018
2018
|
type: Injectable,
|
|
2019
2019
|
args: [{ providedIn: 'root' }]
|
|
2020
|
-
}], ctorParameters: () => [{ type: i0.Injector }, { type: i2.Overlay }, { type: i1.Store }] });
|
|
2020
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i2$1.Overlay }, { type: i1.Store }] });
|
|
2021
2021
|
|
|
2022
2022
|
class PryStatusModalComponent {
|
|
2023
2023
|
constructor(store, dialogRef, data) {
|
|
@@ -2044,11 +2044,11 @@ class PryStatusModalComponent {
|
|
|
2044
2044
|
this.dialogRef.close();
|
|
2045
2045
|
}
|
|
2046
2046
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryStatusModalComponent, deps: [{ token: i1.Store }, { token: PryDialogRef }, { token: PRY_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2047
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2047
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryStatusModalComponent, selector: "pry-status-modal", outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper__backdrop\" (click)=\"close()\">\n <div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"close()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\" [attr.aria-describedby]=\"'@pry.a11y.modalStatusTableDescr' | i18n\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n @for (preview of datasetPreviews$ | async | slice : 0 : 5; track preview) {\n <tr>\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n\n : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.SlicePipe, name: "slice" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2048
2048
|
}
|
|
2049
2049
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryStatusModalComponent, decorators: [{
|
|
2050
2050
|
type: Component,
|
|
2051
|
-
args: [{ selector: 'pry-status-modal', template: "<div class=\"o-modal-wrapper__backdrop\" (click)=\"close()\">\n <div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n
|
|
2051
|
+
args: [{ selector: 'pry-status-modal', template: "<div class=\"o-modal-wrapper__backdrop\" (click)=\"close()\">\n <div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"close()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\" [attr.aria-describedby]=\"'@pry.a11y.modalStatusTableDescr' | i18n\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n @for (preview of datasetPreviews$ | async | slice : 0 : 5; track preview) {\n <tr>\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n\n : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n</div>\n" }]
|
|
2052
2052
|
}], ctorParameters: () => [{ type: i1.Store }, { type: PryDialogRef }, { type: undefined, decorators: [{
|
|
2053
2053
|
type: Inject,
|
|
2054
2054
|
args: [PRY_DIALOG_DATA]
|
|
@@ -2452,13 +2452,13 @@ class PryNqColorSelectorComponent {
|
|
|
2452
2452
|
}
|
|
2453
2453
|
this.toggleColorChoice();
|
|
2454
2454
|
}
|
|
2455
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryNqColorSelectorComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2456
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2455
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryNqColorSelectorComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2456
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryNqColorSelectorComponent, selector: "pry-nq-color-selector", inputs: { disabled: "disabled", datasource: "datasource" }, outputs: { colorChanged: "colorChanged" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<button (click)=\"toggleColorChoice($event)\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\" role=\"button\">\n <div\n aria-hidden=\"true\"\n [style.background-color]=\"dsColor ?? '#FFFFFF'\"\n [class]=\"disabled ? 'm-color-selector__point__disabled' : 'm-color-selector__point'\"\n ></div>\n @if (!disabled) {\n <span>{{ '@pry.search.namedQuery.color' | i18n }}</span>\n <pry-icon class=\"container__point__icon\" iconSvg=\"chevron_right\"></pry-icon>\n }\n</button>\n\n<ng-template #template>\n <div class=\"m-color-selector-overlay\">\n @for (color of possibleColors$ | async; track color) {\n <div\n [style.background-color]=\"color\"\n class=\"m-color-selector-overlay__point\"\n (click)=\"changeForColor(color)\"\n >\n @if (dsColor === color) {\n <pry-icon class=\"m-color-selector-overlay__point__check\" iconSvg=\"check\"></pry-icon>\n }\n </div>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2457
2457
|
}
|
|
2458
2458
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryNqColorSelectorComponent, decorators: [{
|
|
2459
2459
|
type: Component,
|
|
2460
|
-
args: [{ selector: 'pry-nq-color-selector', template: "<button (click)=\"toggleColorChoice($event)\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\" role=\"button\">\n <div\n aria-hidden=\"true\"\n [style.background-color]=\"dsColor ?? '#FFFFFF'\"\n [class]=\"disabled ? 'm-color-selector__point__disabled' : 'm-color-selector__point'\"\n ></div>\n
|
|
2461
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { disabled: [{
|
|
2460
|
+
args: [{ selector: 'pry-nq-color-selector', template: "<button (click)=\"toggleColorChoice($event)\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\" role=\"button\">\n <div\n aria-hidden=\"true\"\n [style.background-color]=\"dsColor ?? '#FFFFFF'\"\n [class]=\"disabled ? 'm-color-selector__point__disabled' : 'm-color-selector__point'\"\n ></div>\n @if (!disabled) {\n <span>{{ '@pry.search.namedQuery.color' | i18n }}</span>\n <pry-icon class=\"container__point__icon\" iconSvg=\"chevron_right\"></pry-icon>\n }\n</button>\n\n<ng-template #template>\n <div class=\"m-color-selector-overlay\">\n @for (color of possibleColors$ | async; track color) {\n <div\n [style.background-color]=\"color\"\n class=\"m-color-selector-overlay__point\"\n (click)=\"changeForColor(color)\"\n >\n @if (dsColor === color) {\n <pry-icon class=\"m-color-selector-overlay__point__check\" iconSvg=\"check\"></pry-icon>\n }\n </div>\n }\n </div>\n</ng-template>\n" }]
|
|
2461
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { disabled: [{
|
|
2462
2462
|
type: Input
|
|
2463
2463
|
}], datasource: [{
|
|
2464
2464
|
type: Input
|
|
@@ -2493,11 +2493,11 @@ class PryDialogConfirmComponent {
|
|
|
2493
2493
|
this.cross.nativeElement.focus();
|
|
2494
2494
|
}
|
|
2495
2495
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDialogConfirmComponent, deps: [{ token: PryDialogRef }, { token: PRY_DIALOG_DATA }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2496
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2496
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDialogConfirmComponent, selector: "pry-dialog-confirm", viewQueries: [{ propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "buttonAction", first: true, predicate: ["buttonAction"], descendants: true }], ngImport: i0, template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\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 @if (data?.message; as message) {\n <p class=\"a-p\">{{ message | i18n }}</p>\n }\n </div>\n <div class=\"m-btn-group\">\n @for (action of data.actions; track action) {\n <ng-container #buttonAction>\n <button\n (click)=\"onClick(action)\"\n class=\"a-btn\"\n type=\"button\"\n [class.a-btn--primary]=\"action.color === 'primary' || action.color === undefined\"\n [class.a-btn--secondary]=\"action.color === 'secondary'\"\n [ngClass]=\"{ 'a-btn--icon-text': action.icon }\"\n >\n @if (action.icon) {\n <pry-icon [iconSvg]=\"action.icon\"></pry-icon>\n }\n {{ action.label | i18n }}\n </button>\n </ng-container>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2497
2497
|
}
|
|
2498
2498
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDialogConfirmComponent, decorators: [{
|
|
2499
2499
|
type: Component,
|
|
2500
|
-
args: [{ selector: 'pry-dialog-confirm', template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\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
|
|
2500
|
+
args: [{ selector: 'pry-dialog-confirm', template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\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 @if (data?.message; as message) {\n <p class=\"a-p\">{{ message | i18n }}</p>\n }\n </div>\n <div class=\"m-btn-group\">\n @for (action of data.actions; track action) {\n <ng-container #buttonAction>\n <button\n (click)=\"onClick(action)\"\n class=\"a-btn\"\n type=\"button\"\n [class.a-btn--primary]=\"action.color === 'primary' || action.color === undefined\"\n [class.a-btn--secondary]=\"action.color === 'secondary'\"\n [ngClass]=\"{ 'a-btn--icon-text': action.icon }\"\n >\n @if (action.icon) {\n <pry-icon [iconSvg]=\"action.icon\"></pry-icon>\n }\n {{ action.label | i18n }}\n </button>\n </ng-container>\n }\n </div>\n </div>\n</div>\n" }]
|
|
2501
2501
|
}], ctorParameters: () => [{ type: PryDialogRef }, { type: undefined, decorators: [{
|
|
2502
2502
|
type: Inject,
|
|
2503
2503
|
args: [PRY_DIALOG_DATA]
|
|
@@ -2614,13 +2614,13 @@ class PryOverlayDirective {
|
|
|
2614
2614
|
break;
|
|
2615
2615
|
}
|
|
2616
2616
|
}
|
|
2617
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryOverlayDirective, deps: [{ token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2617
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryOverlayDirective, deps: [{ token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2618
2618
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: PryOverlayDirective, selector: "[pryOverlay]", inputs: { pryOverlay: "pryOverlay", styleReversed: "styleReversed", pryOverlaySticky: "pryOverlaySticky", pryOverlayNoPadding: "pryOverlayNoPadding", pryOverlayPosition: "pryOverlayPosition", overlayOpen: "overlayOpen", hasBackdrop: "hasBackdrop" }, outputs: { overlayOpenChange: "overlayOpenChange" }, ngImport: i0 }); }
|
|
2619
2619
|
}
|
|
2620
2620
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryOverlayDirective, decorators: [{
|
|
2621
2621
|
type: Directive,
|
|
2622
2622
|
args: [{ selector: '[pryOverlay]' }]
|
|
2623
|
-
}], ctorParameters: () => [{ type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }], propDecorators: { pryOverlay: [{
|
|
2623
|
+
}], ctorParameters: () => [{ type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }], propDecorators: { pryOverlay: [{
|
|
2624
2624
|
type: Input
|
|
2625
2625
|
}], styleReversed: [{
|
|
2626
2626
|
type: Input
|
|
@@ -2736,7 +2736,7 @@ class PrySnackbarComponent {
|
|
|
2736
2736
|
this.hiddenFromAction = true;
|
|
2737
2737
|
}
|
|
2738
2738
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySnackbarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2739
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2739
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PrySnackbarComponent, selector: "pry-snackbar", inputs: { data: "data", listIndex: "listIndex", actionClicked: "actionClicked" }, ngImport: i0, template: "@if (!hiddenFromAction) {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style.bottom.px]=\"listIndex * 60\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n}\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }], animations: [
|
|
2740
2740
|
trigger('panelState', [
|
|
2741
2741
|
transition('void => visible', [useAnimation(showAnimation)]),
|
|
2742
2742
|
transition('visible => void', [useAnimation(hideAnimation)])
|
|
@@ -2750,7 +2750,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
2750
2750
|
transition('void => visible', [useAnimation(showAnimation)]),
|
|
2751
2751
|
transition('visible => void', [useAnimation(hideAnimation)])
|
|
2752
2752
|
])
|
|
2753
|
-
], template: "<div\n
|
|
2753
|
+
], template: "@if (!hiddenFromAction) {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style.bottom.px]=\"listIndex * 60\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n}\n" }]
|
|
2754
2754
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { data: [{
|
|
2755
2755
|
type: Input
|
|
2756
2756
|
}], listIndex: [{
|
|
@@ -2810,7 +2810,7 @@ class PrySnackbarService {
|
|
|
2810
2810
|
open(message) {
|
|
2811
2811
|
this.messageEvents$.next(message);
|
|
2812
2812
|
}
|
|
2813
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySnackbarService, deps: [{ token: i2.Overlay }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2813
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySnackbarService, deps: [{ token: i2$1.Overlay }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2814
2814
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySnackbarService, providedIn: 'root' }); }
|
|
2815
2815
|
}
|
|
2816
2816
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySnackbarService, decorators: [{
|
|
@@ -2818,7 +2818,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
2818
2818
|
args: [{
|
|
2819
2819
|
providedIn: 'root'
|
|
2820
2820
|
}]
|
|
2821
|
-
}], ctorParameters: () => [{ type: i2.Overlay }, { type: PryI18nService }] });
|
|
2821
|
+
}], ctorParameters: () => [{ type: i2$1.Overlay }, { type: PryI18nService }] });
|
|
2822
2822
|
|
|
2823
2823
|
const INTERNALLY_STORED_IMAGE_PREFIX = 'internal:';
|
|
2824
2824
|
var LibraryTypes;
|
|
@@ -2873,7 +2873,7 @@ class ImageService {
|
|
|
2873
2873
|
});
|
|
2874
2874
|
}));
|
|
2875
2875
|
}
|
|
2876
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImageService, deps: [{ token: i1$
|
|
2876
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImageService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }, { token: i3$1.DomSanitizer }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2877
2877
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImageService, providedIn: 'root' }); }
|
|
2878
2878
|
}
|
|
2879
2879
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImageService, decorators: [{
|
|
@@ -2881,7 +2881,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
2881
2881
|
args: [{
|
|
2882
2882
|
providedIn: 'root'
|
|
2883
2883
|
}]
|
|
2884
|
-
}], ctorParameters: () => [{ type: i1$
|
|
2884
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: i3$1.DomSanitizer }, { type: PrySnackbarService }, { type: PryI18nService }] });
|
|
2885
2885
|
|
|
2886
2886
|
class RawService {
|
|
2887
2887
|
constructor(httpClient, store, domSanitizer) {
|
|
@@ -2915,7 +2915,7 @@ class RawService {
|
|
|
2915
2915
|
headers: new HttpHeaders({ 'File-Content-Type': mimeType })
|
|
2916
2916
|
})));
|
|
2917
2917
|
}
|
|
2918
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RawService, deps: [{ token: i1$
|
|
2918
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RawService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }, { token: i3$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2919
2919
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RawService, providedIn: 'root' }); }
|
|
2920
2920
|
}
|
|
2921
2921
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RawService, decorators: [{
|
|
@@ -2923,7 +2923,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
2923
2923
|
args: [{
|
|
2924
2924
|
providedIn: 'root'
|
|
2925
2925
|
}]
|
|
2926
|
-
}], ctorParameters: () => [{ type: i1$
|
|
2926
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: i3$1.DomSanitizer }] });
|
|
2927
2927
|
|
|
2928
2928
|
class PryUploadComponent {
|
|
2929
2929
|
constructor(store, rawService) {
|
|
@@ -3355,13 +3355,13 @@ class PrySelectImageComponent {
|
|
|
3355
3355
|
this.toggleImageChoice();
|
|
3356
3356
|
}
|
|
3357
3357
|
}
|
|
3358
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySelectImageComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3359
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3358
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySelectImageComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3359
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PrySelectImageComponent, selector: "pry-select-image", inputs: { iconUrl: "iconUrl", size: "size", mode: "mode" }, outputs: { toggled: "toggled", changed: "changed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<div class=\"select-image\">\n <div class=\"select-image__select\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" id=\"button-{{ id }}\" (click)=\"toggleImageChoice($event)\">\n <img alt=\"\" [height]=\"size\" [width]=\"size\" [src]=\"iconUrl | getSecuredImage | async\" />\n <span class=\"u-visually-hidden\">{{ '@pry.action.selectPicture' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"select-image__add\">\n <div class=\"m-file-upload\">\n <pry-upload (uploaded)=\"changeForImage($event)\" [mode]=\"mode\"></pry-upload>\n </div>\n </div>\n</div>\n\n<ng-template #template>\n @if (images$ | async; as images) {\n <ul class=\"overlay overlay--icons\">\n @if (!(loading$ | async)?.loading) {\n @for (image of images; track image) {\n <li class=\"overlay__point\">\n <button class=\"a-btn a-btn--icon-only\" type=\"button\" (click)=\"changeForImage(image.image)\">\n <img [alt]=\"image.image\" [height]=\"size\" [width]=\"size\" [src]=\"image.image | getSecuredImage | async\" />\n </button>\n </li>\n }\n }\n </ul>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: GetSecuredImagePipe, name: "getSecuredImage" }] }); }
|
|
3360
3360
|
}
|
|
3361
3361
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySelectImageComponent, decorators: [{
|
|
3362
3362
|
type: Component,
|
|
3363
|
-
args: [{ selector: 'pry-select-image', template: "<div class=\"select-image\">\n <div class=\"select-image__select\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" id=\"button-{{ id }}\" (click)=\"toggleImageChoice($event)\">\n <img alt=\"\" [height]=\"size\" [width]=\"size\" [src]=\"iconUrl | getSecuredImage | async\" />\n <span class=\"u-visually-hidden\">{{ '@pry.action.selectPicture' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"select-image__add\">\n <div class=\"m-file-upload\">\n <pry-upload (uploaded)=\"changeForImage($event)\" [mode]=\"mode\"></pry-upload>\n </div>\n </div>\n</div>\n\n<ng-template #template>\n
|
|
3364
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { template: [{
|
|
3363
|
+
args: [{ selector: 'pry-select-image', template: "<div class=\"select-image\">\n <div class=\"select-image__select\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" id=\"button-{{ id }}\" (click)=\"toggleImageChoice($event)\">\n <img alt=\"\" [height]=\"size\" [width]=\"size\" [src]=\"iconUrl | getSecuredImage | async\" />\n <span class=\"u-visually-hidden\">{{ '@pry.action.selectPicture' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"select-image__add\">\n <div class=\"m-file-upload\">\n <pry-upload (uploaded)=\"changeForImage($event)\" [mode]=\"mode\"></pry-upload>\n </div>\n </div>\n</div>\n\n<ng-template #template>\n @if (images$ | async; as images) {\n <ul class=\"overlay overlay--icons\">\n @if (!(loading$ | async)?.loading) {\n @for (image of images; track image) {\n <li class=\"overlay__point\">\n <button class=\"a-btn a-btn--icon-only\" type=\"button\" (click)=\"changeForImage(image.image)\">\n <img [alt]=\"image.image\" [height]=\"size\" [width]=\"size\" [src]=\"image.image | getSecuredImage | async\" />\n </button>\n </li>\n }\n }\n </ul>\n }\n</ng-template>\n" }]
|
|
3364
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { template: [{
|
|
3365
3365
|
type: ViewChild,
|
|
3366
3366
|
args: ['template', { read: TemplateRef }]
|
|
3367
3367
|
}], toggled: [{
|
|
@@ -3392,7 +3392,7 @@ class CategoryService {
|
|
|
3392
3392
|
.select(ConfigSelectors.refUrl)
|
|
3393
3393
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/model/categories`))));
|
|
3394
3394
|
}
|
|
3395
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CategoryService, deps: [{ token: i1$
|
|
3395
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CategoryService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3396
3396
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CategoryService, providedIn: 'root' }); }
|
|
3397
3397
|
}
|
|
3398
3398
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CategoryService, decorators: [{
|
|
@@ -3400,7 +3400,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
3400
3400
|
args: [{
|
|
3401
3401
|
providedIn: 'root'
|
|
3402
3402
|
}]
|
|
3403
|
-
}], ctorParameters: () => [{ type: i1$
|
|
3403
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }] });
|
|
3404
3404
|
|
|
3405
3405
|
class CategoryEffects {
|
|
3406
3406
|
constructor(actions$, categoryService) {
|
|
@@ -3408,12 +3408,12 @@ class CategoryEffects {
|
|
|
3408
3408
|
this.categoryService = categoryService;
|
|
3409
3409
|
this.loadCategories$ = createEffect(() => this.actions$.pipe(ofType(CategoryActions.load), debounceTime$1(200), mergeMap$1((action) => this.categoryService.getCategories().pipe(map$1((categories) => CategoryActions.loadSuccess({ categories })), catchError((error) => [CategoryActions.loadFailure({ error: error })])))));
|
|
3410
3410
|
}
|
|
3411
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CategoryEffects, deps: [{ token: i1$
|
|
3411
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CategoryEffects, deps: [{ token: i1$2.Actions }, { token: CategoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3412
3412
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CategoryEffects }); }
|
|
3413
3413
|
}
|
|
3414
3414
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CategoryEffects, decorators: [{
|
|
3415
3415
|
type: Injectable
|
|
3416
|
-
}], ctorParameters: () => [{ type: i1$
|
|
3416
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: CategoryService }] });
|
|
3417
3417
|
|
|
3418
3418
|
const categoriesFeatureKey = '@pry/model/categories';
|
|
3419
3419
|
function sortByName$1(a, b) {
|
|
@@ -3449,7 +3449,7 @@ class ClassService {
|
|
|
3449
3449
|
.select(ConfigSelectors.refUrl)
|
|
3450
3450
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/model/class/datasets/count`))));
|
|
3451
3451
|
}
|
|
3452
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClassService, deps: [{ token: i1$
|
|
3452
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClassService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3453
3453
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClassService, providedIn: 'root' }); }
|
|
3454
3454
|
}
|
|
3455
3455
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClassService, decorators: [{
|
|
@@ -3457,7 +3457,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
3457
3457
|
args: [{
|
|
3458
3458
|
providedIn: 'root'
|
|
3459
3459
|
}]
|
|
3460
|
-
}], ctorParameters: () => [{ type: i1$
|
|
3460
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }] });
|
|
3461
3461
|
|
|
3462
3462
|
class ClassEffects {
|
|
3463
3463
|
constructor(actions$, classService) {
|
|
@@ -3468,12 +3468,12 @@ class ClassEffects {
|
|
|
3468
3468
|
return ClassActions.loadDatasetCountSuccess({ datasetCounts: datasetCounts });
|
|
3469
3469
|
}), catchError((error) => [ClassActions.loadDatasetCountFailure({ error: error })])))));
|
|
3470
3470
|
}
|
|
3471
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClassEffects, deps: [{ token: i1$
|
|
3471
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClassEffects, deps: [{ token: i1$2.Actions }, { token: ClassService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3472
3472
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClassEffects }); }
|
|
3473
3473
|
}
|
|
3474
3474
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClassEffects, decorators: [{
|
|
3475
3475
|
type: Injectable
|
|
3476
|
-
}], ctorParameters: () => [{ type: i1$
|
|
3476
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: ClassService }] });
|
|
3477
3477
|
|
|
3478
3478
|
const SYMBOL_DOMAIN = 'symbol';
|
|
3479
3479
|
const TABLE_ATTR_DOMAIN = 'tableAttr';
|
|
@@ -3606,12 +3606,12 @@ class ConfigService {
|
|
|
3606
3606
|
.select(ConfigSelectors.refUrl)
|
|
3607
3607
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/groups`))));
|
|
3608
3608
|
}
|
|
3609
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConfigService, deps: [{ token: i1$
|
|
3609
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConfigService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3610
3610
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConfigService }); }
|
|
3611
3611
|
}
|
|
3612
3612
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConfigService, decorators: [{
|
|
3613
3613
|
type: Injectable
|
|
3614
|
-
}], ctorParameters: () => [{ type: i1$
|
|
3614
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }] });
|
|
3615
3615
|
|
|
3616
3616
|
class OpenMapTilesService {
|
|
3617
3617
|
constructor(httpClient, store) {
|
|
@@ -3633,7 +3633,7 @@ class OpenMapTilesService {
|
|
|
3633
3633
|
})) ?? []).sort((a, b) => a.label.localeCompare(b.label));
|
|
3634
3634
|
}));
|
|
3635
3635
|
}
|
|
3636
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OpenMapTilesService, deps: [{ token: i1$
|
|
3636
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OpenMapTilesService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3637
3637
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OpenMapTilesService, providedIn: 'root' }); }
|
|
3638
3638
|
}
|
|
3639
3639
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OpenMapTilesService, decorators: [{
|
|
@@ -3641,7 +3641,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
3641
3641
|
args: [{
|
|
3642
3642
|
providedIn: 'root'
|
|
3643
3643
|
}]
|
|
3644
|
-
}], ctorParameters: () => [{ type: i1$
|
|
3644
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }] });
|
|
3645
3645
|
|
|
3646
3646
|
class ConfigEffects {
|
|
3647
3647
|
constructor(actions$, openMapTilesService, store, configService, snackBar, translateService, pryDialog) {
|
|
@@ -3750,23 +3750,23 @@ class ConfigEffects {
|
|
|
3750
3750
|
return throwError(() => error);
|
|
3751
3751
|
})))));
|
|
3752
3752
|
}
|
|
3753
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConfigEffects, deps: [{ token: i1$
|
|
3753
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConfigEffects, deps: [{ token: i1$2.Actions }, { token: OpenMapTilesService }, { token: i1.Store }, { token: ConfigService }, { token: PrySnackbarService }, { token: PryI18nService }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3754
3754
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConfigEffects }); }
|
|
3755
3755
|
}
|
|
3756
3756
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConfigEffects, decorators: [{
|
|
3757
3757
|
type: Injectable
|
|
3758
|
-
}], ctorParameters: () => [{ type: i1$
|
|
3758
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: OpenMapTilesService }, { type: i1.Store }, { type: ConfigService }, { type: PrySnackbarService }, { type: PryI18nService }, { type: PryDialogService }] });
|
|
3759
3759
|
|
|
3760
3760
|
class ContextMenuEffects {
|
|
3761
3761
|
constructor(actions$) {
|
|
3762
3762
|
this.actions$ = actions$;
|
|
3763
3763
|
}
|
|
3764
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContextMenuEffects, deps: [{ token: i1$
|
|
3764
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContextMenuEffects, deps: [{ token: i1$2.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3765
3765
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContextMenuEffects }); }
|
|
3766
3766
|
}
|
|
3767
3767
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContextMenuEffects, decorators: [{
|
|
3768
3768
|
type: Injectable
|
|
3769
|
-
}], ctorParameters: () => [{ type: i1$
|
|
3769
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }] });
|
|
3770
3770
|
|
|
3771
3771
|
const ContextMenuActions = {
|
|
3772
3772
|
open: createAction('[ContextMenu] open', props()),
|
|
@@ -3851,6 +3851,7 @@ const DashboardActions = {
|
|
|
3851
3851
|
assertResultSets: createAction('[Dashboard] assert resultSet', props()),
|
|
3852
3852
|
updateResultSet: createAction('[Dashboard] (bus) received named resultSet (not-active-action)', props()),
|
|
3853
3853
|
addRelationsToResultSets: createAction('[Dashboard] (bus) add relations to resultSet', props()),
|
|
3854
|
+
removeRelationsFromResultSets: createAction('[Dashboard] (bus) remove relations from resultSet', props()),
|
|
3854
3855
|
addItemToResultSets: createAction('[Dashboard] (bus) add item to resultSet', props()),
|
|
3855
3856
|
startingMissingViews: createAction('[Dashboard] opening missing views for manifest'),
|
|
3856
3857
|
setAvailableNamedQueries: createAction('[Dashboard] (bus) set available rs names', props()),
|
|
@@ -4212,7 +4213,7 @@ class SearchService {
|
|
|
4212
4213
|
this.datasources = datasources;
|
|
4213
4214
|
});
|
|
4214
4215
|
}
|
|
4215
|
-
getItems(id, quickOrder, excludeGeo, searchAfter) {
|
|
4216
|
+
getItems(id, quickOrder, excludeGeo, searchAfter, linkedItems = []) {
|
|
4216
4217
|
const params = this.getItemsFilter(id, this.getOrder(quickOrder));
|
|
4217
4218
|
if (!id) {
|
|
4218
4219
|
console.warn('Not sending items request with no datasource attached.');
|
|
@@ -4223,9 +4224,10 @@ class SearchService {
|
|
|
4223
4224
|
return this.httpClient.post(encodeURI(`${url}/data-sources/id/${id}/items`), {
|
|
4224
4225
|
type: ds?.sourceType === 'namedQuery' ? ds.request.type : NamedQueryTypes.MONO_CLASS,
|
|
4225
4226
|
excludeGeo: excludeGeo ?? false,
|
|
4226
|
-
searchAfter: searchAfter ?? undefined
|
|
4227
|
+
searchAfter: searchAfter ?? undefined,
|
|
4228
|
+
linkedItems
|
|
4227
4229
|
}, { params });
|
|
4228
|
-
}), map((rs) => this.applyTransformations(
|
|
4230
|
+
}), map((rs) => this.applyTransformations(id, rs)));
|
|
4229
4231
|
}
|
|
4230
4232
|
getItemsSerializedParams(id, quickOrder = {}) {
|
|
4231
4233
|
return '|' + this.getItemsFilter(id, this.getOrder(quickOrder[id])).toString() + '|';
|
|
@@ -4277,19 +4279,24 @@ class SearchService {
|
|
|
4277
4279
|
* Launch a search request (and saves it as current search)
|
|
4278
4280
|
* @param condition
|
|
4279
4281
|
*/
|
|
4280
|
-
search(condition) {
|
|
4281
|
-
return
|
|
4282
|
-
this.store.select(ConfigSelectors.dataUrl),
|
|
4283
|
-
this.store.select(DashboardSelectors.quickOrder),
|
|
4284
|
-
this.store.select(ConfigSelectors.limits)
|
|
4285
|
-
]).pipe(mergeMap(([url, quickOrder, limits]) => {
|
|
4282
|
+
search(condition, id, withLinkedItems = []) {
|
|
4283
|
+
return this.store.select(ConfigSelectors.dataUrl).pipe(filter((url) => !!url), take(1), withLatestFrom$1(this.store.select(DashboardSelectors.quickOrder), this.store.select(ConfigSelectors.limits)), mergeMap(([url, quickOrder, limits]) => {
|
|
4286
4284
|
const params = {};
|
|
4287
4285
|
if (quickOrder[DEFAULT_NAMED_QUERY_ID]) {
|
|
4288
4286
|
params['order'] = `${quickOrder[DEFAULT_NAMED_QUERY_ID]?.attribute},${quickOrder[DEFAULT_NAMED_QUERY_ID]?.asc ?? ''}`;
|
|
4289
4287
|
}
|
|
4290
|
-
const
|
|
4288
|
+
const otherParams = {};
|
|
4289
|
+
if (withLinkedItems.length > 0) {
|
|
4290
|
+
if (withLinkedItems.includes('destination')) {
|
|
4291
|
+
otherParams['withDestinationItems'] = 'true';
|
|
4292
|
+
}
|
|
4293
|
+
if (withLinkedItems.includes('source')) {
|
|
4294
|
+
otherParams['withSourceItems'] = 'true';
|
|
4295
|
+
}
|
|
4296
|
+
}
|
|
4297
|
+
const _condition = { ...condition, limit: limits[DEFAULT_NAMED_QUERY_ID] ?? limits['default'], ...otherParams };
|
|
4291
4298
|
return this.httpClient.post(encodeURI(`${url}/items/search`), _condition, { params });
|
|
4292
|
-
}), map((rs) => this.applyTransformations(DEFAULT_NAMED_QUERY_ID, rs)));
|
|
4299
|
+
}), map((rs) => this.applyTransformations(id ?? DEFAULT_NAMED_QUERY_ID, rs)));
|
|
4293
4300
|
}
|
|
4294
4301
|
/**
|
|
4295
4302
|
* Allows to add a transformation function when getting results from backend
|
|
@@ -4315,7 +4322,7 @@ class SearchService {
|
|
|
4315
4322
|
limit
|
|
4316
4323
|
})));
|
|
4317
4324
|
}
|
|
4318
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchService, deps: [{ token: i1$
|
|
4325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4319
4326
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchService, providedIn: 'root' }); }
|
|
4320
4327
|
}
|
|
4321
4328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchService, decorators: [{
|
|
@@ -4323,7 +4330,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4323
4330
|
args: [{
|
|
4324
4331
|
providedIn: 'root'
|
|
4325
4332
|
}]
|
|
4326
|
-
}], ctorParameters: () => [{ type: i1$
|
|
4333
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }] });
|
|
4327
4334
|
|
|
4328
4335
|
class DataSourceService {
|
|
4329
4336
|
constructor(store, httpClient, translateService) {
|
|
@@ -4439,7 +4446,7 @@ class DataSourceService {
|
|
|
4439
4446
|
.select(ConfigSelectors.refUrl)
|
|
4440
4447
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/datasets/categories`))));
|
|
4441
4448
|
}
|
|
4442
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DataSourceService, deps: [{ token: i1.Store }, { token: i1$
|
|
4449
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DataSourceService, deps: [{ token: i1.Store }, { token: i1$1.HttpClient }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4443
4450
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DataSourceService, providedIn: 'root' }); }
|
|
4444
4451
|
}
|
|
4445
4452
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DataSourceService, decorators: [{
|
|
@@ -4447,7 +4454,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4447
4454
|
args: [{
|
|
4448
4455
|
providedIn: 'root'
|
|
4449
4456
|
}]
|
|
4450
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i1$
|
|
4457
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i1$1.HttpClient }, { type: PryI18nService }] });
|
|
4451
4458
|
|
|
4452
4459
|
class DataSourceEffects {
|
|
4453
4460
|
constructor(actions$, searchService, dataSourceService, snackBar, translate, store, pryDialog) {
|
|
@@ -4503,22 +4510,22 @@ class DataSourceEffects {
|
|
|
4503
4510
|
this.updateWidgetAfterSave$ = createEffect(() => this.actions$.pipe(
|
|
4504
4511
|
// Using strings to prevent having core module depending on search module
|
|
4505
4512
|
ofType('[SearchMonoClass] save', '[SearchMultiClass] launch save', '[Search Fulltext] save'), withLatestFrom(this.store.select(DataSourceSelectors.editFromWidget), this.store.select(DataSourceSelectors.currentEdit), this.store.select(DashboardSelectors.windowManifest)), filter(([action, fromWidget, currentEdit, windowManifest]) => fromWidget !== undefined), map(([action, fromWidget, currentEdit, windowManifest]) => {
|
|
4506
|
-
const widgetManifestCopy =
|
|
4513
|
+
const widgetManifestCopy = structuredClone(windowManifest.widgets[fromWidget?.widgetIndex ?? 0]);
|
|
4507
4514
|
// Replacing updated query id by new query id
|
|
4508
|
-
const
|
|
4509
|
-
? widgetManifestCopy.
|
|
4510
|
-
: [widgetManifestCopy.
|
|
4515
|
+
const arrayOfdatasource = Array.isArray(widgetManifestCopy.datasource)
|
|
4516
|
+
? widgetManifestCopy.datasource
|
|
4517
|
+
: [widgetManifestCopy.datasource].filter((d) => d);
|
|
4511
4518
|
// @ts-ignore : we don't want to make core depending on search
|
|
4512
4519
|
const newQueryId = action.id;
|
|
4513
|
-
const previousNqIndex =
|
|
4520
|
+
const previousNqIndex = arrayOfdatasource.indexOf(fromWidget?.editedQuery ?? '');
|
|
4514
4521
|
if (previousNqIndex >= 0) {
|
|
4515
|
-
|
|
4522
|
+
arrayOfdatasource[previousNqIndex] = newQueryId;
|
|
4516
4523
|
}
|
|
4517
4524
|
else {
|
|
4518
4525
|
// Editing a request that's not in the widget. Adding it
|
|
4519
|
-
|
|
4526
|
+
arrayOfdatasource.push(newQueryId);
|
|
4520
4527
|
}
|
|
4521
|
-
widgetManifestCopy.
|
|
4528
|
+
widgetManifestCopy.datasource = arrayOfdatasource;
|
|
4522
4529
|
return DashboardActions.updateWidgetManifest({
|
|
4523
4530
|
index: fromWidget?.widgetIndex ?? 0,
|
|
4524
4531
|
manifest: widgetManifestCopy
|
|
@@ -4567,12 +4574,12 @@ class DataSourceEffects {
|
|
|
4567
4574
|
.getCategories()
|
|
4568
4575
|
.pipe(map((categories) => DataSourceActions.dataset.getCategoriesSuccess({ categories }))))));
|
|
4569
4576
|
}
|
|
4570
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DataSourceEffects, deps: [{ token: i1$
|
|
4577
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DataSourceEffects, deps: [{ token: i1$2.Actions }, { token: SearchService }, { token: DataSourceService }, { token: PrySnackbarService }, { token: PryI18nService }, { token: i1.Store }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4571
4578
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DataSourceEffects }); }
|
|
4572
4579
|
}
|
|
4573
4580
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DataSourceEffects, decorators: [{
|
|
4574
4581
|
type: Injectable
|
|
4575
|
-
}], ctorParameters: () => [{ type: i1$
|
|
4582
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: SearchService }, { type: DataSourceService }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1.Store }, { type: PryDialogService }] });
|
|
4576
4583
|
|
|
4577
4584
|
const FieldActions = {
|
|
4578
4585
|
load: createAction('[Field] Load Fields'),
|
|
@@ -4605,7 +4612,7 @@ class FieldService {
|
|
|
4605
4612
|
.select(ConfigSelectors.refUrl)
|
|
4606
4613
|
.pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/model/fields/${id}`))));
|
|
4607
4614
|
}
|
|
4608
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldService, deps: [{ token: i1$
|
|
4615
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4609
4616
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldService, providedIn: 'root' }); }
|
|
4610
4617
|
}
|
|
4611
4618
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldService, decorators: [{
|
|
@@ -4613,7 +4620,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4613
4620
|
args: [{
|
|
4614
4621
|
providedIn: 'root'
|
|
4615
4622
|
}]
|
|
4616
|
-
}], ctorParameters: () => [{ type: i1$
|
|
4623
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }] });
|
|
4617
4624
|
|
|
4618
4625
|
class FieldEffects {
|
|
4619
4626
|
constructor(actions$, fieldService) {
|
|
@@ -4621,12 +4628,12 @@ class FieldEffects {
|
|
|
4621
4628
|
this.fieldService = fieldService;
|
|
4622
4629
|
this.loadFields$ = createEffect(() => this.actions$.pipe(ofType(FieldActions.load), debounceTime$1(200), mergeMap$1((action) => this.fieldService.getFields().pipe(map$1((fields) => FieldActions.loadSuccess({ fields })), catchError((error) => [FieldActions.loadFailure({ error: error })])))));
|
|
4623
4630
|
}
|
|
4624
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldEffects, deps: [{ token: i1$
|
|
4631
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldEffects, deps: [{ token: i1$2.Actions }, { token: FieldService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4625
4632
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldEffects }); }
|
|
4626
4633
|
}
|
|
4627
4634
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldEffects, decorators: [{
|
|
4628
4635
|
type: Injectable
|
|
4629
|
-
}], ctorParameters: () => [{ type: i1$
|
|
4636
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: FieldService }] });
|
|
4630
4637
|
|
|
4631
4638
|
const fieldsFeatureKey = '@pry/model/fields';
|
|
4632
4639
|
function sortByName(a, b) {
|
|
@@ -4651,12 +4658,12 @@ class ImageEffects {
|
|
|
4651
4658
|
this.loadImages$ = createEffect(() => this.actions$.pipe(ofType(ImageActions.load), debounceTime$1(50), mergeMap$1(() => this.imageService.getImages().pipe(map$1((images) => ImageActions.loadSuccess({ images })), catchError((error) => [ImageActions.loadFailure({ error })])))));
|
|
4652
4659
|
this.addImages$ = createEffect(() => this.actions$.pipe(ofType(ImageActions.add), mergeMap$1((action) => this.imageService.upload(action.file, action.mediaType, action.imageType).pipe(mergeMap$1((name) => [ImageActions.load(), ImageActions.added({ name })]), catchError((error) => [ImageActions.loadFailure({ error })])))));
|
|
4653
4660
|
}
|
|
4654
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImageEffects, deps: [{ token: i1$
|
|
4661
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImageEffects, deps: [{ token: i1$2.Actions }, { token: ImageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4655
4662
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImageEffects }); }
|
|
4656
4663
|
}
|
|
4657
4664
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImageEffects, decorators: [{
|
|
4658
4665
|
type: Injectable
|
|
4659
|
-
}], ctorParameters: () => [{ type: i1$
|
|
4666
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: ImageService }] });
|
|
4660
4667
|
|
|
4661
4668
|
const feature$4 = createFeatureSelector(contextMenuFeatureKey);
|
|
4662
4669
|
const opened = createSelector(feature$4, (state) => state?.opened);
|
|
@@ -4853,7 +4860,7 @@ class ItemService {
|
|
|
4853
4860
|
.select(ConfigSelectors.dataUrl)
|
|
4854
4861
|
.pipe(mergeMap((url) => this.httpClient.post(`${url}/items`, [toSendItem])));
|
|
4855
4862
|
}
|
|
4856
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ItemService, deps: [{ token: i1.Store }, { token: i1$
|
|
4863
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ItemService, deps: [{ token: i1.Store }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4857
4864
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ItemService, providedIn: 'root' }); }
|
|
4858
4865
|
}
|
|
4859
4866
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ItemService, decorators: [{
|
|
@@ -4861,7 +4868,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4861
4868
|
args: [{
|
|
4862
4869
|
providedIn: 'root'
|
|
4863
4870
|
}]
|
|
4864
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i1$
|
|
4871
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i1$1.HttpClient }] });
|
|
4865
4872
|
|
|
4866
4873
|
class ItemEffects {
|
|
4867
4874
|
constructor(actions$, service, store, snackBar, translateService) {
|
|
@@ -4888,12 +4895,12 @@ class ItemEffects {
|
|
|
4888
4895
|
});
|
|
4889
4896
|
})), { dispatch: false });
|
|
4890
4897
|
}
|
|
4891
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ItemEffects, deps: [{ token: i1$
|
|
4898
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ItemEffects, deps: [{ token: i1$2.Actions }, { token: ItemService }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4892
4899
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ItemEffects }); }
|
|
4893
4900
|
}
|
|
4894
4901
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ItemEffects, decorators: [{
|
|
4895
4902
|
type: Injectable
|
|
4896
|
-
}], ctorParameters: () => [{ type: i1$
|
|
4903
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: ItemService }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }] });
|
|
4897
4904
|
|
|
4898
4905
|
const RelationTypesActions = {
|
|
4899
4906
|
load: createAction('[Relation Types] Load Relation Types'),
|
|
@@ -4908,6 +4915,7 @@ const RelationTypesActions = {
|
|
|
4908
4915
|
deleteRelationTypeSuccess: createAction('[Relation Types Api] Delete Relation Types Success'),
|
|
4909
4916
|
deleteRelationTypeFailure: createAction('[Relation Types Api] Delete Relation Types Failure', props()),
|
|
4910
4917
|
createRelation: createAction('[Relation Types Api] Create Relation', props()),
|
|
4918
|
+
deleteRelation: createAction('[Relation Types Api] Delete Relation', props()),
|
|
4911
4919
|
createRelationSuccess: createAction('[Relation Types Api] Create Relation success'),
|
|
4912
4920
|
createRelationFailure: createAction('[Relation Types Api] Create Relation failure', props()),
|
|
4913
4921
|
openModal: createAction('[Relation Types] Open modal'),
|
|
@@ -4946,7 +4954,11 @@ class RelationTypesService {
|
|
|
4946
4954
|
}
|
|
4947
4955
|
return this.store.select(ConfigSelectors.dataUrl).pipe(mergeMap((url) => this.httpClient.post(`${url}/relations`, relations)), map(() => relations));
|
|
4948
4956
|
}
|
|
4949
|
-
|
|
4957
|
+
deleteRelation(source, destination, relationType) {
|
|
4958
|
+
const relation = { source, destination, relationType };
|
|
4959
|
+
return this.store.select(ConfigSelectors.dataUrl).pipe(mergeMap((url) => this.httpClient.delete(`${url}/relations`, { body: relation })), map(() => relation));
|
|
4960
|
+
}
|
|
4961
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RelationTypesService, deps: [{ token: i1.Store }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4950
4962
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RelationTypesService, providedIn: 'root' }); }
|
|
4951
4963
|
}
|
|
4952
4964
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RelationTypesService, decorators: [{
|
|
@@ -4954,7 +4966,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4954
4966
|
args: [{
|
|
4955
4967
|
providedIn: 'root'
|
|
4956
4968
|
}]
|
|
4957
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i1$
|
|
4969
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i1$1.HttpClient }] });
|
|
4958
4970
|
|
|
4959
4971
|
class RelationTypesEffects {
|
|
4960
4972
|
constructor(actions$, service, router, pryDialog) {
|
|
@@ -4985,13 +4997,14 @@ class RelationTypesEffects {
|
|
|
4985
4997
|
RelationTypesActions.createRelationSuccess(),
|
|
4986
4998
|
DashboardActions.addRelationsToResultSets({ relations })
|
|
4987
4999
|
]), catchError((error) => [RelationTypesActions.createRelationFailure({ error })])))));
|
|
5000
|
+
this.deleteRelation$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.deleteRelation), mergeMap$1((action) => this.service.deleteRelation(action.from, action.to, action.typeId).pipe(map$1((relation) => DashboardActions.removeRelationsFromResultSets({ relation })), catchError((error) => [RelationTypesActions.createRelationFailure({ error })])))));
|
|
4988
5001
|
}
|
|
4989
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RelationTypesEffects, deps: [{ token: i1$
|
|
5002
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RelationTypesEffects, deps: [{ token: i1$2.Actions }, { token: RelationTypesService }, { token: i2.Router }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4990
5003
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RelationTypesEffects }); }
|
|
4991
5004
|
}
|
|
4992
5005
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RelationTypesEffects, decorators: [{
|
|
4993
5006
|
type: Injectable
|
|
4994
|
-
}], ctorParameters: () => [{ type: i1$
|
|
5007
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: RelationTypesService }, { type: i2.Router }, { type: PryDialogService }] });
|
|
4995
5008
|
|
|
4996
5009
|
const relationTypesFeatureKey = '@pry/relation-types';
|
|
4997
5010
|
const initialRelationTypeState = {
|
|
@@ -5104,7 +5117,7 @@ class WidgetFillerComponent extends BaseWidgetComponent {
|
|
|
5104
5117
|
// @ts-ignore
|
|
5105
5118
|
if (startLayout && targetLayout && this.manifest.options?.windowManifest && this.index !== '-') {
|
|
5106
5119
|
// @ts-ignore
|
|
5107
|
-
const newWindowManifest =
|
|
5120
|
+
const newWindowManifest = structuredClone(this.manifest.options?.windowManifest);
|
|
5108
5121
|
const targetWidgetIndex = newWindowManifest.widgets.findIndex((w) => w.layout.x === targetLayout.x &&
|
|
5109
5122
|
w.layout.y === targetLayout.y &&
|
|
5110
5123
|
w.layout.width === targetLayout.width &&
|
|
@@ -5264,7 +5277,7 @@ class SearchEffects {
|
|
|
5264
5277
|
this.store = store;
|
|
5265
5278
|
this.widgetFactoryService = widgetFactoryService;
|
|
5266
5279
|
this.searchNamed$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.getDatasourceItems), withLatestFrom$1(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.quickOrder), this.store.select(DashboardSelectors.resultSets)), filter(([_, rank]) => rank === 0), filter(([props, rank]) => props.id !== DEFAULT_NAMED_QUERY_ID && props.id !== EXPLORE_NAMED_QUERY_ID), groupBy(([props, rank, quickOrder, rs]) => props.id), mergeMap((group$) => group$.pipe(debounceTime(100), switchMap(([props, rank, quickOrder, rs]) => this.searchService
|
|
5267
|
-
.getItems(props.id, quickOrder[props.id], props.excludeGeo, props.next ? rs[props.id].searchAfter : undefined)
|
|
5280
|
+
.getItems(props.id, quickOrder[props.id], props.excludeGeo, props.next ? rs[props.id].searchAfter : undefined, props.linkedItems)
|
|
5268
5281
|
.pipe(map((resultSet) => SearchActions.searchSuccess({
|
|
5269
5282
|
resultSet,
|
|
5270
5283
|
id: props.id,
|
|
@@ -5288,7 +5301,9 @@ class SearchEffects {
|
|
|
5288
5301
|
return EMPTY;
|
|
5289
5302
|
}
|
|
5290
5303
|
})));
|
|
5291
|
-
this.search$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.search), mergeMap((props) => this.searchService.search(props.payload
|
|
5304
|
+
this.search$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.search), mergeMap((props) => this.searchService.search(props.payload, props.id, props.linkedItems).pipe(map((resultSet) => {
|
|
5305
|
+
return SearchActions.searchSuccess({ resultSet, id: props.id });
|
|
5306
|
+
}), catchError$1((error) => [SearchActions.searchFailure({ error, id: props.id })])))));
|
|
5292
5307
|
this.searchSuccess$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.searchSuccess), map((action) => DashboardActions.updateResultSet({
|
|
5293
5308
|
id: action.id ?? DEFAULT_NAMED_QUERY_ID,
|
|
5294
5309
|
resultSet: action.resultSet,
|
|
@@ -5299,12 +5314,12 @@ class SearchEffects {
|
|
|
5299
5314
|
.autocomplete(action.attributes, '', action.limit)
|
|
5300
5315
|
.pipe(map((values) => SearchActions.setPossibleFilterValues({ filterId: action.filterId, values }))))));
|
|
5301
5316
|
}
|
|
5302
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchEffects, deps: [{ token: i1$
|
|
5317
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchEffects, deps: [{ token: i1$2.Actions }, { token: SearchService }, { token: i1.Store }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5303
5318
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchEffects }); }
|
|
5304
5319
|
}
|
|
5305
5320
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchEffects, decorators: [{
|
|
5306
5321
|
type: Injectable
|
|
5307
|
-
}], ctorParameters: () => [{ type: i1$
|
|
5322
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: SearchService }, { type: i1.Store }, { type: WidgetFactoryService }] });
|
|
5308
5323
|
|
|
5309
5324
|
const searchFeatureKey = '@pry/search';
|
|
5310
5325
|
const initialSearchState = {
|
|
@@ -5343,7 +5358,7 @@ const searchReducer = createReducer(initialSearchState, on(SearchActions.search,
|
|
|
5343
5358
|
class AccordionComponent {
|
|
5344
5359
|
constructor() { }
|
|
5345
5360
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5346
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: AccordionComponent, selector: "pry-accordion", ngImport: i0, template: "<cdk-accordion class=\"o-accordion\">\n <ng-content></ng-content>\n</cdk-accordion>\n", dependencies: [{ kind: "directive", type: i1$
|
|
5361
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: AccordionComponent, selector: "pry-accordion", ngImport: i0, template: "<cdk-accordion class=\"o-accordion\">\n <ng-content></ng-content>\n</cdk-accordion>\n", dependencies: [{ kind: "directive", type: i1$3.CdkAccordion, selector: "cdk-accordion, [cdkAccordion]", inputs: ["multi"], exportAs: ["cdkAccordion"] }] }); }
|
|
5347
5362
|
}
|
|
5348
5363
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
5349
5364
|
type: Component,
|
|
@@ -5362,11 +5377,11 @@ class AccordionItemComponent {
|
|
|
5362
5377
|
this.search.emit({ ...this.search$.getValue(), [item]: $event });
|
|
5363
5378
|
}
|
|
5364
5379
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5365
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
5380
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: AccordionItemComponent, selector: "pry-accordion-item", inputs: { item: "item", borderColor: "borderColor", index: "index", translationStringBase: "translationStringBase", length: "length", showSearchBar: "showSearchBar", search$: "search$" }, outputs: { search: "search" }, ngImport: i0, template: "<cdk-accordion-item\n #accordionItem=\"cdkAccordionItem\"\n [id]=\"'button_' + item\"\n role=\"tab\"\n [attr.aria-controls]=\"'panel_' + item\"\n [attr.aria-selected]=\"accordionItem.expanded\"\n [attr.aria-expanded]=\"accordionItem.expanded\"\n >\n <div class=\"o-accordion__title\" [class.is-active]=\"accordionItem.expanded\" [style.--border-color]=\"borderColor\">\n <button type=\"button\" class=\"o-accordion__title__btn\" (click)=\"accordionItem.toggle()\">\n <span>\n {{ translationStringBase + item | i18n }}\n @if (length) {\n ({{ length }})\n }\n </span>\n <pry-icon\n [width]=\"15\"\n [height]=\"15\"\n [iconSvg]=\"accordionItem.expanded ? 'chevron_top_rounded' : 'chevron_bottom_rounded'\"\n ></pry-icon>\n </button>\n </div>\n @if (accordionItem.expanded) {\n <div\n class=\"o-accordion__panel\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'button_' + item\"\n [id]=\"'panel_' + item\"\n [attr.aria-hidden]=\"!accordionItem.expanded\"\n [style.--border-color]=\"borderColor\"\n >\n @if (showSearchBar) {\n <div class=\"o-accordion__panel__head\">\n <input\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.toolbox.catalog.filter.name' | i18n\"\n [ngModel]=\"(search$ | async)[item]\"\n (ngModelChange)=\"onSearch(item, $event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n }\n <ng-content></ng-content>\n </div>\n }\n</cdk-accordion-item>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i1$3.CdkAccordionItem, selector: "cdk-accordion-item, [cdkAccordionItem]", inputs: ["expanded", "disabled"], outputs: ["closed", "opened", "destroyed", "expandedChange"], exportAs: ["cdkAccordionItem"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
5366
5381
|
}
|
|
5367
5382
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AccordionItemComponent, decorators: [{
|
|
5368
5383
|
type: Component,
|
|
5369
|
-
args: [{ selector: 'pry-accordion-item', template: "<cdk-accordion-item\n #accordionItem=\"cdkAccordionItem\"\n [id]=\"'button_' + item\"\n role=\"tab\"\n [attr.aria-controls]=\"'panel_' + item\"\n [attr.aria-selected]=\"accordionItem.expanded\"\n [attr.aria-expanded]=\"accordionItem.expanded\"\n>\n <div class=\"o-accordion__title\" [class.is-active]=\"accordionItem.expanded\" [style.--border-color]=\"borderColor\">\n <button type=\"button\" class=\"o-accordion__title__btn\" (click)=\"accordionItem.toggle()\">\n <span>\n {{ translationStringBase + item | i18n }}\n
|
|
5384
|
+
args: [{ selector: 'pry-accordion-item', template: "<cdk-accordion-item\n #accordionItem=\"cdkAccordionItem\"\n [id]=\"'button_' + item\"\n role=\"tab\"\n [attr.aria-controls]=\"'panel_' + item\"\n [attr.aria-selected]=\"accordionItem.expanded\"\n [attr.aria-expanded]=\"accordionItem.expanded\"\n >\n <div class=\"o-accordion__title\" [class.is-active]=\"accordionItem.expanded\" [style.--border-color]=\"borderColor\">\n <button type=\"button\" class=\"o-accordion__title__btn\" (click)=\"accordionItem.toggle()\">\n <span>\n {{ translationStringBase + item | i18n }}\n @if (length) {\n ({{ length }})\n }\n </span>\n <pry-icon\n [width]=\"15\"\n [height]=\"15\"\n [iconSvg]=\"accordionItem.expanded ? 'chevron_top_rounded' : 'chevron_bottom_rounded'\"\n ></pry-icon>\n </button>\n </div>\n @if (accordionItem.expanded) {\n <div\n class=\"o-accordion__panel\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'button_' + item\"\n [id]=\"'panel_' + item\"\n [attr.aria-hidden]=\"!accordionItem.expanded\"\n [style.--border-color]=\"borderColor\"\n >\n @if (showSearchBar) {\n <div class=\"o-accordion__panel__head\">\n <input\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.toolbox.catalog.filter.name' | i18n\"\n [ngModel]=\"(search$ | async)[item]\"\n (ngModelChange)=\"onSearch(item, $event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n }\n <ng-content></ng-content>\n </div>\n }\n</cdk-accordion-item>\n" }]
|
|
5370
5385
|
}], ctorParameters: () => [], propDecorators: { item: [{
|
|
5371
5386
|
type: Input
|
|
5372
5387
|
}], borderColor: [{
|
|
@@ -5427,11 +5442,11 @@ class TabGroupComponent {
|
|
|
5427
5442
|
this.clickedTabIdx.emit(index);
|
|
5428
5443
|
}
|
|
5429
5444
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TabGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5430
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
5445
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: TabGroupComponent, selector: "pry-tab-group", inputs: { translationStringBase: "translationStringBase" }, outputs: { clickedTabIdx: "clickedTabIdx" }, queries: [{ propertyName: "tabs", predicate: TabComponent }], ngImport: i0, template: "<div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-label]=\"'tab-panel-' + instanceId\">\n @for (tab of tabs; track tab; let index = $index) {\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + instanceId + '-' + index\"\n [attr.aria-selected]=\"index === currentTabIndex\"\n [attr.tabindex]=\"index === currentTabIndex ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + instanceId + '-' + index\"\n (click)=\"switch(tab, index)\"\n >\n {{ translationStringBase + tab.name | i18n }}\n </button>\n }\n </div>\n <div\n class=\"o-tabs__panel\"\n [id]=\"'tabpanel-' + instanceId + '-' + currentTabIndex\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + instanceId + '-' + currentTabIndex\"\n >\n <div class=\"o-tabs__panel__content\">\n <ng-template [ngTemplateOutlet]=\"currentTab.templateRef\"></ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
5431
5446
|
}
|
|
5432
5447
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TabGroupComponent, decorators: [{
|
|
5433
5448
|
type: Component,
|
|
5434
|
-
args: [{ selector: 'pry-tab-group', template: "<div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-label]=\"'tab-panel-' + instanceId\">\n
|
|
5449
|
+
args: [{ selector: 'pry-tab-group', template: "<div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-label]=\"'tab-panel-' + instanceId\">\n @for (tab of tabs; track tab; let index = $index) {\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + instanceId + '-' + index\"\n [attr.aria-selected]=\"index === currentTabIndex\"\n [attr.tabindex]=\"index === currentTabIndex ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + instanceId + '-' + index\"\n (click)=\"switch(tab, index)\"\n >\n {{ translationStringBase + tab.name | i18n }}\n </button>\n }\n </div>\n <div\n class=\"o-tabs__panel\"\n [id]=\"'tabpanel-' + instanceId + '-' + currentTabIndex\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + instanceId + '-' + currentTabIndex\"\n >\n <div class=\"o-tabs__panel__content\">\n <ng-template [ngTemplateOutlet]=\"currentTab.templateRef\"></ng-template>\n </div>\n </div>\n</div>\n" }]
|
|
5435
5450
|
}], ctorParameters: () => [], propDecorators: { translationStringBase: [{
|
|
5436
5451
|
type: Input
|
|
5437
5452
|
}], tabs: [{
|
|
@@ -5476,12 +5491,12 @@ class PryDefaultGeoAuthService extends PryGeoAuthService {
|
|
|
5476
5491
|
}
|
|
5477
5492
|
});
|
|
5478
5493
|
}
|
|
5479
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$
|
|
5494
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$1.HttpClient }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5480
5495
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDefaultGeoAuthService }); }
|
|
5481
5496
|
}
|
|
5482
5497
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDefaultGeoAuthService, decorators: [{
|
|
5483
5498
|
type: Injectable
|
|
5484
|
-
}], ctorParameters: () => [{ type: i1$
|
|
5499
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: PrySnackbarService }, { type: PryI18nService }] });
|
|
5485
5500
|
|
|
5486
5501
|
class EllipsisDirective {
|
|
5487
5502
|
constructor(elementRef, renderer) {
|
|
@@ -5693,7 +5708,7 @@ class PryCoreModule {
|
|
|
5693
5708
|
TabComponent,
|
|
5694
5709
|
EllipsisDirective, BaseToolboxActionComponent], imports: [CommonModule,
|
|
5695
5710
|
RouterModule,
|
|
5696
|
-
HttpClientModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$
|
|
5711
|
+
HttpClientModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, PryIconModule,
|
|
5697
5712
|
OverlayModule,
|
|
5698
5713
|
PryOverlayModule,
|
|
5699
5714
|
PryI18nModule,
|
|
@@ -5988,7 +6003,7 @@ class PryBackendAggregationService extends PryAggregationService {
|
|
|
5988
6003
|
}
|
|
5989
6004
|
return this.cache[key].response;
|
|
5990
6005
|
}
|
|
5991
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryBackendAggregationService, deps: [{ token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }, { token: i1$
|
|
6006
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryBackendAggregationService, deps: [{ token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }, { token: i1$1.HttpClient }, { token: SearchService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5992
6007
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryBackendAggregationService, providedIn: 'root' }); }
|
|
5993
6008
|
}
|
|
5994
6009
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryBackendAggregationService, decorators: [{
|
|
@@ -5996,7 +6011,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
5996
6011
|
args: [{
|
|
5997
6012
|
providedIn: 'root'
|
|
5998
6013
|
}]
|
|
5999
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1$
|
|
6014
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1$1.HttpClient }, { type: SearchService }] });
|
|
6000
6015
|
|
|
6001
6016
|
class ResultsetUtils {
|
|
6002
6017
|
static mergeResultSets(rs1, rs2) {
|
|
@@ -6004,28 +6019,26 @@ class ResultsetUtils {
|
|
|
6004
6019
|
return rs2;
|
|
6005
6020
|
if (!rs2)
|
|
6006
6021
|
return rs1;
|
|
6007
|
-
const rs1Copy =
|
|
6022
|
+
const rs1Copy = structuredClone(rs1);
|
|
6008
6023
|
Object.keys(rs2.items ?? {}).forEach((key) => {
|
|
6009
6024
|
if (!rs1Copy.items[key]) {
|
|
6010
6025
|
rs1Copy.items[key] = [];
|
|
6011
6026
|
}
|
|
6012
6027
|
rs1Copy.items[key].push(...rs2.items[key]);
|
|
6013
6028
|
});
|
|
6014
|
-
rs1Copy.relations = [...(rs1Copy.relations ?? []), ...(rs2.relations ?? [])];
|
|
6015
6029
|
/* Make items and relations unique in resulted dataset */
|
|
6016
6030
|
Object.keys(rs1Copy.items).forEach((key) => {
|
|
6017
6031
|
const uniqueList = [...new Set(rs1Copy.items[key].map((it) => it.id))];
|
|
6018
6032
|
rs1Copy.items[key] = uniqueList.map((id) => rs1Copy.items[key].find((it) => it.id === id));
|
|
6019
6033
|
});
|
|
6020
|
-
|
|
6034
|
+
rs1Copy.relations = [
|
|
6021
6035
|
...new Set([
|
|
6022
|
-
...(rs1Copy.relations ?? []).map((rel) => `${rel.relationType}|${rel.source}|${rel.destination}`),
|
|
6036
|
+
...([...(rs1Copy.relations ?? []), ...(rs2.relations ?? [])] ?? []).map((rel) => `${rel.relationType}|${rel.source}|${rel.destination}`),
|
|
6023
6037
|
...(rs2.relations ?? []).map((rel) => `${rel.relationType}|${rel.source}|${rel.destination}`)
|
|
6024
6038
|
])
|
|
6025
|
-
]
|
|
6026
|
-
rs1Copy.relations = uniqueRelations.map((key) => {
|
|
6039
|
+
].map((key) => {
|
|
6027
6040
|
const splittedKey = key.split('|');
|
|
6028
|
-
return
|
|
6041
|
+
return { relationType: splittedKey[0], source: splittedKey[1], destination: splittedKey[2] };
|
|
6029
6042
|
});
|
|
6030
6043
|
if (!rs1Copy.count) {
|
|
6031
6044
|
rs1Copy.count = {};
|
|
@@ -6039,6 +6052,7 @@ class ResultsetUtils {
|
|
|
6039
6052
|
accurate: rs1Copy.count[key].accurate && rs2.count[key].accurate
|
|
6040
6053
|
};
|
|
6041
6054
|
});
|
|
6055
|
+
rs1Copy.searchAfter = rs2.searchAfter ?? rs1Copy.searchAfter;
|
|
6042
6056
|
return rs1Copy;
|
|
6043
6057
|
}
|
|
6044
6058
|
}
|
|
@@ -6444,11 +6458,11 @@ class LoopScrollColumnComponent {
|
|
|
6444
6458
|
}
|
|
6445
6459
|
}
|
|
6446
6460
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoopScrollColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6447
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6461
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LoopScrollColumnComponent, selector: "loop-scroll-column", inputs: { list: "list", selectedItem: "selectedItem" }, outputs: { selection: "selection" }, viewQueries: [{ propertyName: "column", first: true, predicate: ["column"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul class=\"m-time-picker__list\" (scroll)=\"onScroll()\" [class.disable-scroll]=\"disableScroll\" #column>\n @for (index of LOOP_COUNTER; track index) {\n @for (item of list; track item) {\n <li class=\"m-time-picker__list__item\" [class.is-clone]=\"index === 0\">\n <button (click)=\"select(item)\" [class.-selected]=\"selectedItem === item\">{{ item }}</button>\n </li>\n }\n }\n</ul>\n" }); }
|
|
6448
6462
|
}
|
|
6449
6463
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoopScrollColumnComponent, decorators: [{
|
|
6450
6464
|
type: Component,
|
|
6451
|
-
args: [{ selector: 'loop-scroll-column', template: "<ul class=\"m-time-picker__list\" (scroll)=\"onScroll()\" [class.disable-scroll]=\"disableScroll\" #column>\n
|
|
6465
|
+
args: [{ selector: 'loop-scroll-column', template: "<ul class=\"m-time-picker__list\" (scroll)=\"onScroll()\" [class.disable-scroll]=\"disableScroll\" #column>\n @for (index of LOOP_COUNTER; track index) {\n @for (item of list; track item) {\n <li class=\"m-time-picker__list__item\" [class.is-clone]=\"index === 0\">\n <button (click)=\"select(item)\" [class.-selected]=\"selectedItem === item\">{{ item }}</button>\n </li>\n }\n }\n</ul>\n" }]
|
|
6452
6466
|
}], ctorParameters: () => [], propDecorators: { column: [{
|
|
6453
6467
|
type: ViewChild,
|
|
6454
6468
|
args: ['column']
|
|
@@ -6508,13 +6522,13 @@ class PryTimePickerComponent {
|
|
|
6508
6522
|
}
|
|
6509
6523
|
}
|
|
6510
6524
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6511
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6525
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryTimePickerComponent, selector: "pry-time-picker", inputs: { AMPMFormat: "AMPMFormat" }, providers: [
|
|
6512
6526
|
{
|
|
6513
6527
|
provide: NG_VALUE_ACCESSOR,
|
|
6514
6528
|
useExisting: forwardRef(() => PryTimePickerComponent),
|
|
6515
6529
|
multi: true
|
|
6516
6530
|
}
|
|
6517
|
-
], viewQueries: [{ propertyName: "hourInput", first: true, predicate: ["hourInput"], descendants: true }, { propertyName: "minuteInput", first: true, predicate: ["minuteInput"], descendants: true }], ngImport: i0, template: "
|
|
6531
|
+
], viewQueries: [{ propertyName: "hourInput", first: true, predicate: ["hourInput"], descendants: true }, { propertyName: "minuteInput", first: true, predicate: ["minuteInput"], descendants: true }], ngImport: i0, template: "@if ({ hour: selectedHour | async, minute: selectedMinute | async }; as time) {\n <div class=\"m-time-picker\">\n <loop-scroll-column\n [list]=\"HOURS\"\n [selectedItem]=\"time.hour\"\n (selection)=\"selectHour($event)\"\n #hourInput\n ></loop-scroll-column>\n <loop-scroll-column\n [list]=\"MINUTES\"\n [selectedItem]=\"time.minute\"\n (selection)=\"selectMinute($event)\"\n #minuteInput\n ></loop-scroll-column>\n </div>\n}\n", dependencies: [{ kind: "component", type: LoopScrollColumnComponent, selector: "loop-scroll-column", inputs: ["list", "selectedItem"], outputs: ["selection"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
6518
6532
|
}
|
|
6519
6533
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryTimePickerComponent, decorators: [{
|
|
6520
6534
|
type: Component,
|
|
@@ -6524,7 +6538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
6524
6538
|
useExisting: forwardRef(() => PryTimePickerComponent),
|
|
6525
6539
|
multi: true
|
|
6526
6540
|
}
|
|
6527
|
-
], template: "
|
|
6541
|
+
], template: "@if ({ hour: selectedHour | async, minute: selectedMinute | async }; as time) {\n <div class=\"m-time-picker\">\n <loop-scroll-column\n [list]=\"HOURS\"\n [selectedItem]=\"time.hour\"\n (selection)=\"selectHour($event)\"\n #hourInput\n ></loop-scroll-column>\n <loop-scroll-column\n [list]=\"MINUTES\"\n [selectedItem]=\"time.minute\"\n (selection)=\"selectMinute($event)\"\n #minuteInput\n ></loop-scroll-column>\n </div>\n}\n" }]
|
|
6528
6542
|
}], propDecorators: { AMPMFormat: [{
|
|
6529
6543
|
type: Input
|
|
6530
6544
|
}], hourInput: [{
|
|
@@ -6742,13 +6756,13 @@ class PryDatePickerComponent {
|
|
|
6742
6756
|
}
|
|
6743
6757
|
}
|
|
6744
6758
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6745
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6759
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDatePickerComponent, selector: "pry-date-picker", inputs: { rangePicker: "rangePicker", timePicker: "timePicker", maxYear: "maxYear", minYear: "minYear", roundSelection: "roundSelection" }, providers: [
|
|
6746
6760
|
{
|
|
6747
6761
|
provide: NG_VALUE_ACCESSOR,
|
|
6748
6762
|
useExisting: forwardRef(() => PryDatePickerComponent),
|
|
6749
6763
|
multi: true
|
|
6750
6764
|
}
|
|
6751
|
-
], ngImport: i0, template: "<div class=\"o-date-picker-wrapper\">\n
|
|
6765
|
+
], ngImport: i0, template: "<div class=\"o-date-picker-wrapper\">\n @if ({\n month: currentMonth | async,\n year: currentYear | async,\n firstDay: firstDay | async,\n count: dayCount | async\n }; as data) {\n <div\n class=\"o-date-picker\"\n >\n <div class=\"o-date-picker__header\">\n <div>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"months\"\n id=\"months\"\n [ngModel]=\"data.month\"\n (ngModelChange)=\"changeMonth($event)\"\n >\n @for (month of MONTHS; track month) {\n <option [ngValue]=\"month\" [selected]=\"month === data.month\">\n {{ '@pry.theme.months.' + month | i18n }}\n </option>\n }\n </select>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"year\"\n id=\"year\"\n [ngModel]=\"data.year\"\n (ngModelChange)=\"changeYear($event)\"\n >\n @for (year of YEARS; track year) {\n <option [ngValue]=\"year\" [selected]=\"data.year === year\">\n {{ year }}\n </option>\n }\n </select>\n </div>\n <div>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--left\"\n (click)=\"goBack()\"\n [disabled]=\"data.year === minYear && data.month === 0\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.previousMonth' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--right\"\n (click)=\"goForward()\"\n [disabled]=\"data.year === maxYear && data.month === 11\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.nextMonth' | i18n }}</span>\n </button>\n </div>\n </div>\n <ul class=\"o-date-picker__weekdays\">\n @for (weekday of WEEKDAYS; track weekday) {\n <li class=\"o-date-picker__weekdays__item\">\n <span>{{ '@pry.theme.shortWeekdays.' + weekday | i18n }}</span>\n </li>\n }\n </ul>\n @if (data.month !== null && data.year !== null) {\n <div class=\"o-date-picker__days-grid\">\n @for (day of DAY$ | async; track day; let first = $first) {\n <button\n (click)=\"setDateRange(day + 1); onClick()\"\n class=\"o-date-picker__days-grid__item\"\n [ngClass]=\"[\n roundSelection ? 'round' : '',\n first ? 'start-' + data.firstDay : '',\n day | dateRangeHighlight: data.month : data.year : dateRangeStart : dateRangeEnd\n ]\"\n >\n <time class=\"a-time\" [dateTime]=\"data.year + '-' + addLeadingZero(data.year) + '-' + addLeadingZero(day)\">{{\n day + 1\n }}</time>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (timePicker && !rangePicker) {\n <div class=\"m-time-picker-wrapper\">\n <pry-time-picker (click)=\"onClick()\" [ngModel]=\"time | async\" (ngModelChange)=\"setTime($event)\"></pry-time-picker>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryTimePickerComponent, selector: "pry-time-picker", inputs: ["AMPMFormat"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: DateRangeHighlightPipe, name: "dateRangeHighlight" }] }); }
|
|
6752
6766
|
}
|
|
6753
6767
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatePickerComponent, decorators: [{
|
|
6754
6768
|
type: Component,
|
|
@@ -6758,7 +6772,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
6758
6772
|
useExisting: forwardRef(() => PryDatePickerComponent),
|
|
6759
6773
|
multi: true
|
|
6760
6774
|
}
|
|
6761
|
-
], template: "<div class=\"o-date-picker-wrapper\">\n
|
|
6775
|
+
], template: "<div class=\"o-date-picker-wrapper\">\n @if ({\n month: currentMonth | async,\n year: currentYear | async,\n firstDay: firstDay | async,\n count: dayCount | async\n }; as data) {\n <div\n class=\"o-date-picker\"\n >\n <div class=\"o-date-picker__header\">\n <div>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"months\"\n id=\"months\"\n [ngModel]=\"data.month\"\n (ngModelChange)=\"changeMonth($event)\"\n >\n @for (month of MONTHS; track month) {\n <option [ngValue]=\"month\" [selected]=\"month === data.month\">\n {{ '@pry.theme.months.' + month | i18n }}\n </option>\n }\n </select>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"year\"\n id=\"year\"\n [ngModel]=\"data.year\"\n (ngModelChange)=\"changeYear($event)\"\n >\n @for (year of YEARS; track year) {\n <option [ngValue]=\"year\" [selected]=\"data.year === year\">\n {{ year }}\n </option>\n }\n </select>\n </div>\n <div>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--left\"\n (click)=\"goBack()\"\n [disabled]=\"data.year === minYear && data.month === 0\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.previousMonth' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--right\"\n (click)=\"goForward()\"\n [disabled]=\"data.year === maxYear && data.month === 11\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.nextMonth' | i18n }}</span>\n </button>\n </div>\n </div>\n <ul class=\"o-date-picker__weekdays\">\n @for (weekday of WEEKDAYS; track weekday) {\n <li class=\"o-date-picker__weekdays__item\">\n <span>{{ '@pry.theme.shortWeekdays.' + weekday | i18n }}</span>\n </li>\n }\n </ul>\n @if (data.month !== null && data.year !== null) {\n <div class=\"o-date-picker__days-grid\">\n @for (day of DAY$ | async; track day; let first = $first) {\n <button\n (click)=\"setDateRange(day + 1); onClick()\"\n class=\"o-date-picker__days-grid__item\"\n [ngClass]=\"[\n roundSelection ? 'round' : '',\n first ? 'start-' + data.firstDay : '',\n day | dateRangeHighlight: data.month : data.year : dateRangeStart : dateRangeEnd\n ]\"\n >\n <time class=\"a-time\" [dateTime]=\"data.year + '-' + addLeadingZero(data.year) + '-' + addLeadingZero(day)\">{{\n day + 1\n }}</time>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (timePicker && !rangePicker) {\n <div class=\"m-time-picker-wrapper\">\n <pry-time-picker (click)=\"onClick()\" [ngModel]=\"time | async\" (ngModelChange)=\"setTime($event)\"></pry-time-picker>\n </div>\n }\n</div>\n" }]
|
|
6762
6776
|
}], propDecorators: { rangePicker: [{
|
|
6763
6777
|
type: Input
|
|
6764
6778
|
}], timePicker: [{
|
|
@@ -6841,13 +6855,13 @@ class PryEditInputComponent {
|
|
|
6841
6855
|
}
|
|
6842
6856
|
}
|
|
6843
6857
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryEditInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6844
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6858
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryEditInputComponent, selector: "pry-edit-input", inputs: { label: "label", editButtonTooltip: "editButtonTooltip", confirmButtonTooltip: "confirmButtonTooltip" }, outputs: { validated: "validated" }, providers: [
|
|
6845
6859
|
{
|
|
6846
6860
|
provide: NG_VALUE_ACCESSOR,
|
|
6847
6861
|
useExisting: forwardRef(() => PryEditInputComponent),
|
|
6848
6862
|
multi: true
|
|
6849
6863
|
}
|
|
6850
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"o-pry-edit\" [class.-edit]=\"editMode\">\n <label id=\"edit-input-label-{{ id }}\" for=\"edit-input-{{ id }}\" class=\"a-label\">\n {{ label | i18n }}\n <span class=\"u-visually-hidden\">({{ label | i18n }})</span>\n </label>\n <div class=\"o-pry-edit__wrapper\" (mouseenter)=\"showButton = true\" (mouseleave)=\"showButton = false\">\n <div class=\"o-pry-edit__value u-display-flex -align-center\"
|
|
6864
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"o-pry-edit\" [class.-edit]=\"editMode\">\n <label id=\"edit-input-label-{{ id }}\" for=\"edit-input-{{ id }}\" class=\"a-label\">\n {{ label | i18n }}\n <span class=\"u-visually-hidden\">({{ label | i18n }})</span>\n </label>\n <div class=\"o-pry-edit__wrapper\" (mouseenter)=\"showButton = true\" (mouseleave)=\"showButton = false\">\n @if (!editMode) {\n <div class=\"o-pry-edit__value u-display-flex -align-center\">\n {{ value }}\n </div>\n }\n @if (editMode) {\n <input\n id=\"edit-input-{{ id }}\"\n type=\"text\"\n class=\"a-form-field o-pry-edit__input\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n #input\n />\n }\n <button\n [class.-button-visible]=\"showButton || editMode\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only -size-xs a-tooltip\"\n (click)=\"toggle()\"\n [attr.data-tooltip]=\"(editMode ? confirmButtonTooltip : editButtonTooltip) | i18n\"\n data-tooltip-position=\"left\"\n >\n <pry-icon [width]=\"16\" [height]=\"16\" [iconSvg]=\"editMode ? 'check' : 'edit'\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.editInput.toggle' | i18n }}</span>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6851
6865
|
}
|
|
6852
6866
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryEditInputComponent, decorators: [{
|
|
6853
6867
|
type: Component,
|
|
@@ -6857,7 +6871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
6857
6871
|
useExisting: forwardRef(() => PryEditInputComponent),
|
|
6858
6872
|
multi: true
|
|
6859
6873
|
}
|
|
6860
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"o-pry-edit\" [class.-edit]=\"editMode\">\n <label id=\"edit-input-label-{{ id }}\" for=\"edit-input-{{ id }}\" class=\"a-label\">\n {{ label | i18n }}\n <span class=\"u-visually-hidden\">({{ label | i18n }})</span>\n </label>\n <div class=\"o-pry-edit__wrapper\" (mouseenter)=\"showButton = true\" (mouseleave)=\"showButton = false\">\n <div class=\"o-pry-edit__value u-display-flex -align-center\"
|
|
6874
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"o-pry-edit\" [class.-edit]=\"editMode\">\n <label id=\"edit-input-label-{{ id }}\" for=\"edit-input-{{ id }}\" class=\"a-label\">\n {{ label | i18n }}\n <span class=\"u-visually-hidden\">({{ label | i18n }})</span>\n </label>\n <div class=\"o-pry-edit__wrapper\" (mouseenter)=\"showButton = true\" (mouseleave)=\"showButton = false\">\n @if (!editMode) {\n <div class=\"o-pry-edit__value u-display-flex -align-center\">\n {{ value }}\n </div>\n }\n @if (editMode) {\n <input\n id=\"edit-input-{{ id }}\"\n type=\"text\"\n class=\"a-form-field o-pry-edit__input\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n #input\n />\n }\n <button\n [class.-button-visible]=\"showButton || editMode\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only -size-xs a-tooltip\"\n (click)=\"toggle()\"\n [attr.data-tooltip]=\"(editMode ? confirmButtonTooltip : editButtonTooltip) | i18n\"\n data-tooltip-position=\"left\"\n >\n <pry-icon [width]=\"16\" [height]=\"16\" [iconSvg]=\"editMode ? 'check' : 'edit'\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.editInput.toggle' | i18n }}</span>\n </button>\n </div>\n</div>\n" }]
|
|
6861
6875
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { label: [{
|
|
6862
6876
|
type: Input
|
|
6863
6877
|
}], editButtonTooltip: [{
|
|
@@ -6936,11 +6950,11 @@ class PryModalComponent {
|
|
|
6936
6950
|
this.cancelAction = () => { };
|
|
6937
6951
|
}
|
|
6938
6952
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6939
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6953
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryModalComponent, selector: "pry-modal", inputs: { titleModal: "titleModal", opened: "opened", validateLabel: "validateLabel", validateAction: "validateAction", cancelLabel: "cancelLabel", cancelAction: "cancelAction" }, ngImport: i0, template: "@if (opened) {\n <div class=\"o-modal-wrapper\">\n <div class=\"o-modal backdrop\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ titleModal }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction()\">\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 <ng-content></ng-content>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"cancelAction()\">\n {{ cancelLabel }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"validateAction()\">\n {{ validateLabel }}\n </button>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
6940
6954
|
}
|
|
6941
6955
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryModalComponent, decorators: [{
|
|
6942
6956
|
type: Component,
|
|
6943
|
-
args: [{ selector: 'pry-modal', template: "<div class=\"o-modal-wrapper\"
|
|
6957
|
+
args: [{ selector: 'pry-modal', template: "@if (opened) {\n <div class=\"o-modal-wrapper\">\n <div class=\"o-modal backdrop\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ titleModal }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction()\">\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 <ng-content></ng-content>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"cancelAction()\">\n {{ cancelLabel }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"validateAction()\">\n {{ validateLabel }}\n </button>\n </div>\n </div>\n </div>\n}\n" }]
|
|
6944
6958
|
}], propDecorators: { titleModal: [{
|
|
6945
6959
|
type: Input
|
|
6946
6960
|
}], opened: [{
|
|
@@ -7025,13 +7039,13 @@ class PryToggleComponent {
|
|
|
7025
7039
|
return !!this.leftword || !!this.rightword;
|
|
7026
7040
|
}
|
|
7027
7041
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryToggleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7028
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7042
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryToggleComponent, selector: "pry-toggle", inputs: { alwaysActive: "alwaysActive", disabled: "disabled", mode: "mode", size: "size", dir: "dir", leftword: "leftword", rightword: "rightword" }, host: { properties: { "class": "this.class" } }, providers: [
|
|
7029
7043
|
{
|
|
7030
7044
|
provide: NG_VALUE_ACCESSOR,
|
|
7031
7045
|
useExisting: forwardRef(() => PryToggleComponent),
|
|
7032
7046
|
multi: true
|
|
7033
7047
|
}
|
|
7034
|
-
], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "
|
|
7048
|
+
], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (mode !== 'action') {\n <label\n class=\"a-toggle a-tooltip\"\n [for]=\"'toggle-' + _id\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [attr.data-tooltip]=\"'@pry.toolbox.edit' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <input\n #input\n type=\"checkbox\"\n name=\"toggle\"\n [id]=\"'toggle-' + _id\"\n class=\"a-toggle__input\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n />\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </label>\n}\n@if (mode === 'action') {\n <button\n type=\"button\"\n class=\"a-toggle\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [attr.aria-pressed]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n #button\n >\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n}\n\n<ng-template #contentTpl>\n <span class=\"a-toggle__display\" aria-hidden=\"true\">\n <span class=\"a-toggle__display__txtleft\">{{ leftword }}</span>\n <span class=\"a-toggle__display__txtright\">{{ rightword }}</span>\n </span>\n <span class=\"a-toggle__wording\">\n <ng-content></ng-content>\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7035
7049
|
}
|
|
7036
7050
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryToggleComponent, decorators: [{
|
|
7037
7051
|
type: Component,
|
|
@@ -7041,7 +7055,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
7041
7055
|
useExisting: forwardRef(() => PryToggleComponent),
|
|
7042
7056
|
multi: true
|
|
7043
7057
|
}
|
|
7044
|
-
], template: "
|
|
7058
|
+
], template: "@if (mode !== 'action') {\n <label\n class=\"a-toggle a-tooltip\"\n [for]=\"'toggle-' + _id\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [attr.data-tooltip]=\"'@pry.toolbox.edit' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <input\n #input\n type=\"checkbox\"\n name=\"toggle\"\n [id]=\"'toggle-' + _id\"\n class=\"a-toggle__input\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n />\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </label>\n}\n@if (mode === 'action') {\n <button\n type=\"button\"\n class=\"a-toggle\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [attr.aria-pressed]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n #button\n >\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n}\n\n<ng-template #contentTpl>\n <span class=\"a-toggle__display\" aria-hidden=\"true\">\n <span class=\"a-toggle__display__txtleft\">{{ leftword }}</span>\n <span class=\"a-toggle__display__txtright\">{{ rightword }}</span>\n </span>\n <span class=\"a-toggle__wording\">\n <ng-content></ng-content>\n </span>\n</ng-template>\n" }]
|
|
7045
7059
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { class: [{
|
|
7046
7060
|
type: HostBinding,
|
|
7047
7061
|
args: ['class']
|
|
@@ -7626,7 +7640,7 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
7626
7640
|
enterPressed($event) {
|
|
7627
7641
|
this.pressedEnter.next();
|
|
7628
7642
|
}
|
|
7629
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: SelectA11yService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7643
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: SelectA11yService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7630
7644
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PrySelectComponent, selector: "pry-select", inputs: { items: "items", clearable: "clearable", multiple: "multiple", closeOnSelect: "closeOnSelect", placeholder: "placeholder", isForm: "isForm", required: "required", name: "name", autocomplete: "autocomplete", alwaysShowAutosuggestedValues: "alwaysShowAutosuggestedValues", externalAutocompleteService: "externalAutocompleteService", bindValue: "bindValue", bindLabel: "bindLabel", iconSize: "iconSize", bindIcon: "bindIcon", template: "template", i18nPrefix: "i18nPrefix", bindClasses: "bindClasses", loading: "loading", elementRef: "elementRef" }, outputs: { searched: "searched", cleared: "cleared", clicked: "clicked", pressedEnter: "pressedEnter" }, providers: [
|
|
7631
7645
|
{
|
|
7632
7646
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -7634,7 +7648,7 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
7634
7648
|
multi: true
|
|
7635
7649
|
},
|
|
7636
7650
|
SelectA11yService
|
|
7637
|
-
], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n @if (autocomplete) {\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event, true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n [placeholder]=\"placeholder ?? ''\"\n (keydown.enter)=\"enterPressed($event)\"\n #input\n
|
|
7651
|
+
], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n >\n <div class=\"a-pry-select__content\">\n @if (autocomplete) {\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event, true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n [placeholder]=\"placeholder ?? ''\"\n (keydown.enter)=\"enterPressed($event)\"\n #input\n />\n } @else if ((valueItems$ | async).length === 0) {\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n <div class=\"a-pry-select__filler\"></div>\n } @else {\n @for (item of valueItems$ | async; track !!item && !!item.id ? item.id : item) {\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n @if (template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n } @else {\n @if (bindIcon) {\n <pry-icon\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n }\n @if (bindLabel ? item?.[bindLabel] : item; as value) {\n {{ (i18nPrefix ?? '') + value | i18n: { warn: false } }}\n @if (multiple && clearable) {\n <span\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n }\n }\n }\n </div>\n }\n <div class=\"a-pry-select__filler\"></div>\n }\n </div>\n <div class=\"a-pry-select__actions\">\n <div class=\"a-pry-select__actions__clear-button\">\n @if (clearable && (search$ | async)) {\n <span class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n }\n </div>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n </div>\n <ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"disabled\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n @if (loading) {\n <div class=\"a-pry-select__options__option -hint\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-page-loader></pry-page-loader>\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n } @else {\n @for (\n item of matchingItems$ | async;\n track !!item && !!item.id ? item.id : item;\n let index = $index;\n let first = $first;\n let last = $last\n ) {\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n @if (template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n } @else {\n @if (multiple) {\n <pry-checkbox\n (click)=\"$event.preventDefault()\"\n [ngModel]=\"(valueItems$ | async).includes(item)\"\n ></pry-checkbox>\n }\n @if (bindIcon) {\n <pry-icon [iconSvg]=\"item[bindIcon]\" [width]=\"iconSize[0]\" [height]=\"iconSize[1]\"></pry-icon>\n }\n @if (bindLabel ? item?.[bindLabel] : item; as value) {\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n: { warn: false } }}\n }\n }\n </div>\n } @empty {\n <div class=\"a-pry-select__options__option -hint\" [style.width.px]=\"modalWidth\">\n <p>{{ '@pry.select.empty' | i18n }}</p>\n </div>\n }\n }\n </div>\n </ng-template>\n", dependencies: [{ kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i3$2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i7.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "component", type: i8.PryPageLoaderComponent, selector: "pry-page-loader", inputs: ["image", "imageAltText"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
7638
7652
|
}
|
|
7639
7653
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySelectComponent, decorators: [{
|
|
7640
7654
|
type: Component,
|
|
@@ -7645,8 +7659,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
7645
7659
|
multi: true
|
|
7646
7660
|
},
|
|
7647
7661
|
SelectA11yService
|
|
7648
|
-
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n @if (autocomplete) {\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event, true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n [placeholder]=\"placeholder ?? ''\"\n (keydown.enter)=\"enterPressed($event)\"\n #input\n
|
|
7649
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: SelectA11yService }], propDecorators: { items: [{
|
|
7662
|
+
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n >\n <div class=\"a-pry-select__content\">\n @if (autocomplete) {\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event, true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n [placeholder]=\"placeholder ?? ''\"\n (keydown.enter)=\"enterPressed($event)\"\n #input\n />\n } @else if ((valueItems$ | async).length === 0) {\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n <div class=\"a-pry-select__filler\"></div>\n } @else {\n @for (item of valueItems$ | async; track !!item && !!item.id ? item.id : item) {\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n @if (template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n } @else {\n @if (bindIcon) {\n <pry-icon\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n }\n @if (bindLabel ? item?.[bindLabel] : item; as value) {\n {{ (i18nPrefix ?? '') + value | i18n: { warn: false } }}\n @if (multiple && clearable) {\n <span\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n }\n }\n }\n </div>\n }\n <div class=\"a-pry-select__filler\"></div>\n }\n </div>\n <div class=\"a-pry-select__actions\">\n <div class=\"a-pry-select__actions__clear-button\">\n @if (clearable && (search$ | async)) {\n <span class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n }\n </div>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n </div>\n <ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"disabled\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n @if (loading) {\n <div class=\"a-pry-select__options__option -hint\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-page-loader></pry-page-loader>\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n } @else {\n @for (\n item of matchingItems$ | async;\n track !!item && !!item.id ? item.id : item;\n let index = $index;\n let first = $first;\n let last = $last\n ) {\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n @if (template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n } @else {\n @if (multiple) {\n <pry-checkbox\n (click)=\"$event.preventDefault()\"\n [ngModel]=\"(valueItems$ | async).includes(item)\"\n ></pry-checkbox>\n }\n @if (bindIcon) {\n <pry-icon [iconSvg]=\"item[bindIcon]\" [width]=\"iconSize[0]\" [height]=\"iconSize[1]\"></pry-icon>\n }\n @if (bindLabel ? item?.[bindLabel] : item; as value) {\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n: { warn: false } }}\n }\n }\n </div>\n } @empty {\n <div class=\"a-pry-select__options__option -hint\" [style.width.px]=\"modalWidth\">\n <p>{{ '@pry.select.empty' | i18n }}</p>\n </div>\n }\n }\n </div>\n </ng-template>\n" }]
|
|
7663
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: SelectA11yService }], propDecorators: { items: [{
|
|
7650
7664
|
type: Input
|
|
7651
7665
|
}], clearable: [{
|
|
7652
7666
|
type: Input
|
|
@@ -7805,13 +7819,13 @@ class PryRangeComponent {
|
|
|
7805
7819
|
this.updateView();
|
|
7806
7820
|
}
|
|
7807
7821
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryRangeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7808
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7822
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryRangeComponent, selector: "pry-range", inputs: { min: "min", max: "max", step: "step", disabled: "disabled", labelTranslate: "labelTranslate" }, host: { listeners: { "window:resize": "ngDoCheck()" } }, providers: [
|
|
7809
7823
|
{
|
|
7810
7824
|
provide: NG_VALUE_ACCESSOR,
|
|
7811
7825
|
useExisting: forwardRef(() => PryRangeComponent),
|
|
7812
7826
|
multi: true
|
|
7813
7827
|
}
|
|
7814
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"range-{{ id }}\"
|
|
7828
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"m-form-label-field\">\n @if (labelTranslate) {\n <label class=\"a-label\" for=\"range-{{ id }}\">{{ labelTranslate | i18n }}</label>\n }\n <div class=\"a-range-slider-wrapper\">\n <span aria-hidden=\"true\" class=\"a-range-slider__min\">{{ min }}</span>\n <input\n (input)=\"writeValueEvent($event)\"\n [value]=\"value\"\n class=\"a-range-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n type=\"range\"\n id=\"range-{{ id }}\"\n [style.background-size]=\"info.backgroundSize + '% 100%'\"\n #input\n />\n <output\n aria-hidden=\"true\"\n for=\"range-{{ id }}\"\n class=\"a-range-slider__selected-value\"\n [style.left.px]=\"info.left\"\n >{{ info.text }}</output\n >\n <span aria-hidden=\"true\" class=\"a-range-slider__max\">{{ max }}</span>\n </div>\n </div>\n", dependencies: [{ kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
7815
7829
|
}
|
|
7816
7830
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryRangeComponent, decorators: [{
|
|
7817
7831
|
type: Component,
|
|
@@ -7821,7 +7835,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
7821
7835
|
useExisting: forwardRef(() => PryRangeComponent),
|
|
7822
7836
|
multi: true
|
|
7823
7837
|
}
|
|
7824
|
-
], template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"range-{{ id }}\"
|
|
7838
|
+
], template: "<div class=\"m-form-label-field\">\n @if (labelTranslate) {\n <label class=\"a-label\" for=\"range-{{ id }}\">{{ labelTranslate | i18n }}</label>\n }\n <div class=\"a-range-slider-wrapper\">\n <span aria-hidden=\"true\" class=\"a-range-slider__min\">{{ min }}</span>\n <input\n (input)=\"writeValueEvent($event)\"\n [value]=\"value\"\n class=\"a-range-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n type=\"range\"\n id=\"range-{{ id }}\"\n [style.background-size]=\"info.backgroundSize + '% 100%'\"\n #input\n />\n <output\n aria-hidden=\"true\"\n for=\"range-{{ id }}\"\n class=\"a-range-slider__selected-value\"\n [style.left.px]=\"info.left\"\n >{{ info.text }}</output\n >\n <span aria-hidden=\"true\" class=\"a-range-slider__max\">{{ max }}</span>\n </div>\n </div>\n" }]
|
|
7825
7839
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { min: [{
|
|
7826
7840
|
type: Input
|
|
7827
7841
|
}], max: [{
|
|
@@ -7918,7 +7932,7 @@ class ChipsSelectorComponent extends SubscriptionnerDirective {
|
|
|
7918
7932
|
: (this.usedItems$.getValue() ?? []).find((usedItem) => this.areItemsEqual(usedItem, item));
|
|
7919
7933
|
}
|
|
7920
7934
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ChipsSelectorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7921
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ChipsSelectorComponent, selector: "pry-chips-selector", inputs: { bindValue: "bindValue", bindLabel: "bindLabel", translationStringBase: "translationStringBase", itemTranslationStringBase: "itemTranslationStringBase", showActionButtons: "showActionButtons", showSearchbar: "showSearchbar", items: "items", usedItems: "usedItems" }, outputs: { itemsChanged: "itemsChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-chips-selector\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n @if (showSearchbar) {\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n }\n\n <div class=\"o-chips-selector__items\">\n @if (((usedItems$ | async) ?? []).length > 0) {\n <div class=\"o-chips-selector__used-items\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <ul class=\"o-chips-selector__list\">\n @for (item of usedItems$ | async; track item) {\n <li class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>{{ getItemLabel(item) }}</p>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n }\n </ul>\n </div>\n } @else {\n <span class=\"-no-items\">{{ translationStringBase + 'noItemSelected' | i18n }}</span>\n }\n\n <div class=\"o-chips-selector__unused-items\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <ul class=\"o-chips-selector__list\">\n @for (item of unusedItems$ | async; track item) {\n <li class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n </button>\n </li>\n }\n </ul>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type:
|
|
7935
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ChipsSelectorComponent, selector: "pry-chips-selector", inputs: { bindValue: "bindValue", bindLabel: "bindLabel", translationStringBase: "translationStringBase", itemTranslationStringBase: "itemTranslationStringBase", showActionButtons: "showActionButtons", showSearchbar: "showSearchbar", items: "items", usedItems: "usedItems" }, outputs: { itemsChanged: "itemsChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-chips-selector\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n @if (showSearchbar) {\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n }\n\n <div class=\"o-chips-selector__items\">\n @if (((usedItems$ | async) ?? []).length > 0) {\n <div class=\"o-chips-selector__used-items\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <ul class=\"o-chips-selector__list\">\n @for (item of usedItems$ | async; track item) {\n <li class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>{{ getItemLabel(item) }}</p>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n }\n </ul>\n </div>\n } @else {\n <span class=\"-no-items\">{{ translationStringBase + 'noItemSelected' | i18n }}</span>\n }\n\n <div class=\"o-chips-selector__unused-items\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <ul class=\"o-chips-selector__list\">\n @for (item of unusedItems$ | async; track item) {\n <li class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n </button>\n </li>\n }\n </ul>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
7922
7936
|
}
|
|
7923
7937
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ChipsSelectorComponent, decorators: [{
|
|
7924
7938
|
type: Component,
|
|
@@ -8040,7 +8054,7 @@ class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
|
8040
8054
|
useExisting: forwardRef(() => PryGroupShareComponent),
|
|
8041
8055
|
multi: true
|
|
8042
8056
|
}
|
|
8043
|
-
], usesInheritance: true, ngImport: i0, template: "@if (templateData$ | async; as data) {\n <div class=\"m-form-radio-group\">\n
|
|
8057
|
+
], usesInheritance: true, ngImport: i0, template: "@if (templateData$ | async; as data) {\n <div class=\"m-form-radio-group\">\n @for (shareMode of shareModes; track shareMode) {\n <div class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n name=\"visibility\"\n [id]=\"'radio_share_' + shareMode\"\n [value]=\"shareMode\"\n [ngModel]=\"radioValue\"\n (ngModelChange)=\"onRadioValueChange($event)\"\n [disabled]=\"data.disableRadios[shareMode]\"\n />\n <label [for]=\"'radio_share_' + shareMode\" class=\"a-label\" [class.a-label--disabled]=\"data.disableRadios[shareMode]\">\n {{ '@pry.share.radioLabel.' + shareMode | i18n }}\n </label>\n </div>\n }\n </div>\n @if (radioValue === PryShareMode.GROUPS) {\n <pry-chips-selector\n bindLabel=\"name\"\n bindValue=\"name\"\n translationStringBase=\"@pry.components.chipsSelector.share.\"\n itemTranslationStringBase=\"@pry.components.chipsSelector.share.groups.\"\n [items]=\"data.groups\"\n (itemsChanged)=\"changeGroups($event, 'groupSelectionChange')\"\n [usedItems]=\"data.assignedGroups\"\n [showSearchbar]=\"data.groups.length > 6\"\n ></pry-chips-selector>\n }\n}\n", dependencies: [{ kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ChipsSelectorComponent, selector: "pry-chips-selector", inputs: ["bindValue", "bindLabel", "translationStringBase", "itemTranslationStringBase", "showActionButtons", "showSearchbar", "items", "usedItems"], outputs: ["itemsChanged"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8044
8058
|
}
|
|
8045
8059
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryGroupShareComponent, decorators: [{
|
|
8046
8060
|
type: Component,
|
|
@@ -8050,7 +8064,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
8050
8064
|
useExisting: forwardRef(() => PryGroupShareComponent),
|
|
8051
8065
|
multi: true
|
|
8052
8066
|
}
|
|
8053
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (templateData$ | async; as data) {\n <div class=\"m-form-radio-group\">\n
|
|
8067
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (templateData$ | async; as data) {\n <div class=\"m-form-radio-group\">\n @for (shareMode of shareModes; track shareMode) {\n <div class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n name=\"visibility\"\n [id]=\"'radio_share_' + shareMode\"\n [value]=\"shareMode\"\n [ngModel]=\"radioValue\"\n (ngModelChange)=\"onRadioValueChange($event)\"\n [disabled]=\"data.disableRadios[shareMode]\"\n />\n <label [for]=\"'radio_share_' + shareMode\" class=\"a-label\" [class.a-label--disabled]=\"data.disableRadios[shareMode]\">\n {{ '@pry.share.radioLabel.' + shareMode | i18n }}\n </label>\n </div>\n }\n </div>\n @if (radioValue === PryShareMode.GROUPS) {\n <pry-chips-selector\n bindLabel=\"name\"\n bindValue=\"name\"\n translationStringBase=\"@pry.components.chipsSelector.share.\"\n itemTranslationStringBase=\"@pry.components.chipsSelector.share.groups.\"\n [items]=\"data.groups\"\n (itemsChanged)=\"changeGroups($event, 'groupSelectionChange')\"\n [usedItems]=\"data.assignedGroups\"\n [showSearchbar]=\"data.groups.length > 6\"\n ></pry-chips-selector>\n }\n}\n" }]
|
|
8054
8068
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ChangeDetectorRef }], propDecorators: { disableRadios: [{
|
|
8055
8069
|
type: Input
|
|
8056
8070
|
}], allowedGroups: [{
|
|
@@ -8193,7 +8207,7 @@ class PryShareComponent {
|
|
|
8193
8207
|
useExisting: forwardRef(() => PryShareComponent),
|
|
8194
8208
|
multi: true
|
|
8195
8209
|
}
|
|
8196
|
-
], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"share_type\">{{ '@pry.share.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"onChange($event)\"\n [items]=\"visibilityTypes\"\n [ngModel]=\"stringValue\"\n [disabled]=\"_disabled\"\n i18nPrefix=\"@pry.share.radioLabel.\"\n bindValue=\"name\"\n bindLabel=\"name\"\n bindIcon=\"icon\"\n id=\"share_type\"\n [iconSize]=\"[21, 18]\"\n ></pry-select>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
8210
|
+
], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"share_type\">{{ '@pry.share.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"onChange($event)\"\n [items]=\"visibilityTypes\"\n [ngModel]=\"stringValue\"\n [disabled]=\"_disabled\"\n i18nPrefix=\"@pry.share.radioLabel.\"\n bindValue=\"name\"\n bindLabel=\"name\"\n bindIcon=\"icon\"\n id=\"share_type\"\n [iconSize]=\"[21, 18]\"\n ></pry-select>\n</div>\n", dependencies: [{ kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8197
8211
|
}
|
|
8198
8212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryShareComponent, decorators: [{
|
|
8199
8213
|
type: Component,
|
|
@@ -8320,7 +8334,7 @@ class PryAccessRightsShareComponent extends SubscriptionnerDirective {
|
|
|
8320
8334
|
useExisting: forwardRef(() => PryAccessRightsShareComponent),
|
|
8321
8335
|
multi: true
|
|
8322
8336
|
}
|
|
8323
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"o-access-rights-share\">\n <label for=\"share-group-select\" class=\"a-h4\">{{ '@pry.share.dashboardAccess' | i18n }}</label>\n <form class=\"u-display-flex\">\n <fieldset class=\"m-grouped-select u-display-flex\" name=\"add-access-rights\">\n <legend class=\"u-visually-hidden\">{{ '@pry.share.shareAccessRights' | i18n }}</legend>\n <pry-select\n id=\"share-group-select\"\n class=\"o-access-rights-share__group-select\"\n name=\"share-group-select\"\n [(ngModel)]=\"selectedGroups\"\n (ngModelChange)=\"filterAvailableAccessRights()\"\n [items]=\"groups$ | async\"\n bindLabel=\"label\"\n placeholder=\"{{ ((groups$ | async)?.length === 0 ? '@pry.share.noGroups' : '@pry.share.placeholder') | i18n }}\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n ></pry-select>\n <pry-select\n id=\"share-access-rights-select\"\n class=\"o-access-rights-share__access-rights-select\"\n name=\"share-access-rights-select\"\n [(ngModel)]=\"selectedAccessRight\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </fieldset>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"addAccess()\" [disabled]=\"isAddingDisabled()\">\n {{ '@pry.action.add' | i18n }}\n </button>\n </form>\n <label for=\"share-access-rights-select\" class=\"a-label\">{{ '@pry.share.accessDescription' | i18n }}</label>\n <div class=\"o-access-rights-share__groups\">\n @if (manifestDescription?.owner) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <span class=\"o-access-rights-share__group-name a-h4\">{{ '@pry.share.me' | i18n }}</span>\n <span class=\"o-access-rights-share__owner\">{{ '@pry.share.owner' | i18n }}</span>\n </div>\n }\n @for (group of value | keyvalue; track group.key) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <label class=\"o-access-rights-share__group-name a-h4\" for=\"modify-{{ group.key }}-access-rights-select\">\n {{ getGroupLabelByName(group.key, i18n) }}\n {{\n (userBelongsToGroup(group.key) | async) && group.key !== PUBLIC_GROUP\n ? ' (' + ('@pry.share.me' | i18n) + ')'\n : ''\n }}\n </label>\n <div class=\"u-display-flex -align-center\">\n @if (group.key === PUBLIC_GROUP || group.key === AUTHENTICATED_USERS_GROUP) {\n <span class=\"o-access-rights-share__access-rights\">{{ '@pry.share.read' | i18n }}</span>\n } @else {\n <pry-select\n id=\"modify-{{ group.key }}-access-rights-select\"\n class=\"o-access-rights-share__modify-access-rights\"\n name=\"modify-group-access-rights-select\"\n [(ngModel)]=\"group.value\"\n (ngModelChange)=\"modifyGroupAccess(group.key, group.value)\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n }\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.action.delete' | i18n\"\n (click)=\"removeGroupAccess(group.key)\"\n (keydown.enter)=\"removeGroupAccess(group.key)\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"15\" [width]=\"15\"></pry-icon>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
8337
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"o-access-rights-share\">\n <label for=\"share-group-select\" class=\"a-h4\">{{ '@pry.share.dashboardAccess' | i18n }}</label>\n <form class=\"u-display-flex\">\n <fieldset class=\"m-grouped-select u-display-flex\" name=\"add-access-rights\">\n <legend class=\"u-visually-hidden\">{{ '@pry.share.shareAccessRights' | i18n }}</legend>\n <pry-select\n id=\"share-group-select\"\n class=\"o-access-rights-share__group-select\"\n name=\"share-group-select\"\n [(ngModel)]=\"selectedGroups\"\n (ngModelChange)=\"filterAvailableAccessRights()\"\n [items]=\"groups$ | async\"\n bindLabel=\"label\"\n placeholder=\"{{ ((groups$ | async)?.length === 0 ? '@pry.share.noGroups' : '@pry.share.placeholder') | i18n }}\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n ></pry-select>\n <pry-select\n id=\"share-access-rights-select\"\n class=\"o-access-rights-share__access-rights-select\"\n name=\"share-access-rights-select\"\n [(ngModel)]=\"selectedAccessRight\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </fieldset>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"addAccess()\" [disabled]=\"isAddingDisabled()\">\n {{ '@pry.action.add' | i18n }}\n </button>\n </form>\n <label for=\"share-access-rights-select\" class=\"a-label\">{{ '@pry.share.accessDescription' | i18n }}</label>\n <div class=\"o-access-rights-share__groups\">\n @if (manifestDescription?.owner) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <span class=\"o-access-rights-share__group-name a-h4\">{{ '@pry.share.me' | i18n }}</span>\n <span class=\"o-access-rights-share__owner\">{{ '@pry.share.owner' | i18n }}</span>\n </div>\n }\n @for (group of value | keyvalue; track group.key) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <label class=\"o-access-rights-share__group-name a-h4\" for=\"modify-{{ group.key }}-access-rights-select\">\n {{ getGroupLabelByName(group.key, i18n) }}\n {{\n (userBelongsToGroup(group.key) | async) && group.key !== PUBLIC_GROUP\n ? ' (' + ('@pry.share.me' | i18n) + ')'\n : ''\n }}\n </label>\n <div class=\"u-display-flex -align-center\">\n @if (group.key === PUBLIC_GROUP || group.key === AUTHENTICATED_USERS_GROUP) {\n <span class=\"o-access-rights-share__access-rights\">{{ '@pry.share.read' | i18n }}</span>\n } @else {\n <pry-select\n id=\"modify-{{ group.key }}-access-rights-select\"\n class=\"o-access-rights-share__modify-access-rights\"\n name=\"modify-group-access-rights-select\"\n [(ngModel)]=\"group.value\"\n (ngModelChange)=\"modifyGroupAccess(group.key, group.value)\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n }\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.action.delete' | i18n\"\n (click)=\"removeGroupAccess(group.key)\"\n (keydown.enter)=\"removeGroupAccess(group.key)\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"15\" [width]=\"15\"></pry-icon>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8324
8338
|
}
|
|
8325
8339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAccessRightsShareComponent, decorators: [{
|
|
8326
8340
|
type: Component,
|
|
@@ -8402,7 +8416,7 @@ class PryAccessRightsShareModalComponent {
|
|
|
8402
8416
|
this.submit.nativeElement.focus();
|
|
8403
8417
|
}
|
|
8404
8418
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAccessRightsShareModalComponent, deps: [{ token: i1.Store }, { token: PryDialogRef }, { token: PRY_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8405
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PryAccessRightsShareModalComponent, selector: "pry-access-rights-share-modal", viewQueries: [{ propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }, { propertyName: "submit", first: true, predicate: ["submit"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "crossVisibility", first: true, predicate: ["crossVisibility"], descendants: true }], ngImport: i0, template: "<div class=\"o-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog share access rights\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.shareAccessRights' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (click)=\"toggleModal()\"\n #crossVisibility\n (keydown.shift.tab)=\"focusValidation()\"\n >\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-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"updateAccessRights($event)\"\n [manifestDescription]=\"manifest\"\n [allowedGroups]=\"allowedShareGroups$ | async\"\n ></pry-access-rights-share>\n <div class=\"u-display-flex m-btn-group -justify-center\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #submit\n (keydown.tab)=\"focusCrossElement()\"\n (click)=\"validate()\"\n [disabled]=\"this.disableShareButton$ | async\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
8419
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PryAccessRightsShareModalComponent, selector: "pry-access-rights-share-modal", viewQueries: [{ propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }, { propertyName: "submit", first: true, predicate: ["submit"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "crossVisibility", first: true, predicate: ["crossVisibility"], descendants: true }], ngImport: i0, template: "<div class=\"o-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog share access rights\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.shareAccessRights' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (click)=\"toggleModal()\"\n #crossVisibility\n (keydown.shift.tab)=\"focusValidation()\"\n >\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-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"updateAccessRights($event)\"\n [manifestDescription]=\"manifest\"\n [allowedGroups]=\"allowedShareGroups$ | async\"\n ></pry-access-rights-share>\n <div class=\"u-display-flex m-btn-group -justify-center\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #submit\n (keydown.tab)=\"focusCrossElement()\"\n (click)=\"validate()\"\n [disabled]=\"this.disableShareButton$ | async\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8406
8420
|
}
|
|
8407
8421
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAccessRightsShareModalComponent, decorators: [{
|
|
8408
8422
|
type: Component,
|
|
@@ -8670,7 +8684,7 @@ const arrayOf = (item, num) => {
|
|
|
8670
8684
|
return [...new Array(num)].map(() => item);
|
|
8671
8685
|
};
|
|
8672
8686
|
const createPlacedWidgetCopy = (widget, position) => {
|
|
8673
|
-
const tmp =
|
|
8687
|
+
const tmp = structuredClone(widget);
|
|
8674
8688
|
if (!tmp.layout) {
|
|
8675
8689
|
tmp.layout = {};
|
|
8676
8690
|
}
|
|
@@ -9189,13 +9203,13 @@ class PryObjectEditionComponent extends SubscriptionnerDirective {
|
|
|
9189
9203
|
toggleInversion() {
|
|
9190
9204
|
this.inversion = !this.inversion;
|
|
9191
9205
|
}
|
|
9192
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryObjectEditionComponent, deps: [{ token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--secondary -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i7.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "component", type: PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9206
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryObjectEditionComponent, deps: [{ token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9207
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--secondary -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i7.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "component", type: PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9194
9208
|
}
|
|
9195
9209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryObjectEditionComponent, decorators: [{
|
|
9196
9210
|
type: Component,
|
|
9197
9211
|
args: [{ selector: 'pry-object-creation', template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--secondary -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
9198
|
-
}], ctorParameters: () => [{ type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i1.Store }], propDecorators: { link: [{
|
|
9212
|
+
}], ctorParameters: () => [{ type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: i1.Store }], propDecorators: { link: [{
|
|
9199
9213
|
type: Input
|
|
9200
9214
|
}], object: [{
|
|
9201
9215
|
type: Input
|
|
@@ -9306,13 +9320,13 @@ class ContextMenuComponent extends SubscriptionnerDirective {
|
|
|
9306
9320
|
this.overlayDetailRef?.dispose();
|
|
9307
9321
|
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-detail' }));
|
|
9308
9322
|
}
|
|
9309
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContextMenuComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9310
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
9323
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContextMenuComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9324
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ContextMenuComponent, selector: "pry-context-menu", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n @if (!!itemId) {\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n @if (!!resultSet) {\n <li class=\"m-context-menu__list__item\">\n @if (!!resultSet) {\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n }\n </li>\n }\n @if (isModuleLoaded['graph']) {\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n }\n @if (isModuleLoaded['detail']) {\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n }\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n @if ((selectedItemsIds?.length ?? 0) > 0) {\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n ></pry-object-creation>\n }\n @if (allowObjectCreation$ | async) {\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n }\n </li>\n </ng-container>\n }\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n @if (allowObjectCreation$| async) {\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n }\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: ["link", "object", "menu"], outputs: ["closed"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9311
9325
|
}
|
|
9312
9326
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContextMenuComponent, decorators: [{
|
|
9313
9327
|
type: Component,
|
|
9314
|
-
args: [{ selector: 'pry-context-menu', template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n
|
|
9315
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: WidgetFactoryService }], propDecorators: { template: [{
|
|
9328
|
+
args: [{ selector: 'pry-context-menu', template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n @if (!!itemId) {\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n @if (!!resultSet) {\n <li class=\"m-context-menu__list__item\">\n @if (!!resultSet) {\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n }\n </li>\n }\n @if (isModuleLoaded['graph']) {\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n }\n @if (isModuleLoaded['detail']) {\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n }\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n @if ((selectedItemsIds?.length ?? 0) > 0) {\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n ></pry-object-creation>\n }\n @if (allowObjectCreation$ | async) {\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n }\n </li>\n </ng-container>\n }\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n @if (allowObjectCreation$| async) {\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n }\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
|
|
9329
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: WidgetFactoryService }], propDecorators: { template: [{
|
|
9316
9330
|
type: ViewChild,
|
|
9317
9331
|
args: ['template', { read: TemplateRef }]
|
|
9318
9332
|
}], detailTemplate: [{
|
|
@@ -9389,7 +9403,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
9389
9403
|
this.targetIndexes$ = this.store.select(DashboardSelectors.targetTenantsIndexes);
|
|
9390
9404
|
this.subscriptions.add(this.store.select(DashboardSelectors.dashboardCellParams).subscribe((params) => (this.dashboardParams = params)));
|
|
9391
9405
|
this.windowManifest$ = this.store.select(DashboardSelectors.windowManifest).pipe(combineLatestWith(this.staticDashboard$), switchMap(([windowManifest, staticDashboard]) => (!staticDashboard ? of(windowManifest) : of(staticDashboard))), map$1((_wManifest) => {
|
|
9392
|
-
const wManifest =
|
|
9406
|
+
const wManifest = structuredClone(_wManifest);
|
|
9393
9407
|
if (wManifest.grid?.layout && wManifest.grid.layout !== DashboardGridLayout.MANUAL) {
|
|
9394
9408
|
// Complete with placeholders
|
|
9395
9409
|
const size = WidgetPlacementUtils.getLayout(wManifest.grid.layout)?.places.length ?? 0;
|
|
@@ -9579,7 +9593,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
9579
9593
|
prepareModification($event, indexManifest) {
|
|
9580
9594
|
this.move.initialX = $event.clientX;
|
|
9581
9595
|
this.move.initialY = $event.clientY;
|
|
9582
|
-
this.initialWidgetManifestList =
|
|
9596
|
+
this.initialWidgetManifestList = structuredClone((this.manifest || { widgets: [] }).widgets);
|
|
9583
9597
|
this.currentlyModifiedManifest = this.initialWidgetManifestList.splice(indexManifest, 1)[0];
|
|
9584
9598
|
// console.log('prepare', this.currentlyModifiedManifest, this.initialWidgetManifestList);
|
|
9585
9599
|
}
|
|
@@ -9627,7 +9641,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
9627
9641
|
type: 'placeholder',
|
|
9628
9642
|
layout: { x: target?.x ?? 0, y: target?.y ?? 0, width: 1, height: 1 }
|
|
9629
9643
|
};
|
|
9630
|
-
this.initialWidgetManifestList =
|
|
9644
|
+
this.initialWidgetManifestList = structuredClone((this.manifest || { widgets: [] }).widgets);
|
|
9631
9645
|
// console.log('create placeholder', this.currentlyModifiedManifest, this.initialWidgetManifestList);
|
|
9632
9646
|
// We passed widget size as a mimetype so that we can still read it without security issues
|
|
9633
9647
|
const widgetSizeMimeType = types.find((type) => type.includes(MIME_TYPE_WIDGET_SIZE));
|
|
@@ -9682,7 +9696,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
9682
9696
|
const target = this.getTarget($event, optimize);
|
|
9683
9697
|
if (target !== null) {
|
|
9684
9698
|
this.checkForDragEnter($event);
|
|
9685
|
-
const candidateWidget =
|
|
9699
|
+
const candidateWidget = structuredClone(this.currentlyModifiedManifest);
|
|
9686
9700
|
switch (this.actionType) {
|
|
9687
9701
|
case 'resize-nw':
|
|
9688
9702
|
if (candidateWidget.layout.x + target.x > 0 && candidateWidget.layout.height - target.y > 0) {
|
|
@@ -9863,13 +9877,13 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
9863
9877
|
}
|
|
9864
9878
|
}));
|
|
9865
9879
|
}
|
|
9866
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9867
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
9880
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9881
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", forceModeEdition: "forceModeEdition", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions", noBackground: "noBackground", breakpoint: "breakpoint" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }, { propertyName: "instanciators", predicate: WidgetInstanciatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-dashboard-edit\" [class.-edit]=\"modeEdition$ | async\">\n <div class=\"o-dashboard-add -rows\">\n <button (click)=\"changeSize('rows', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('rows', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <p>{{ '@pry.grid.rows' | i18n }}</p>\n </div>\n <div class=\"o-dashboard-add -cols\">\n <p>{{ '@pry.grid.columns' | i18n }}</p>\n <button (click)=\"changeSize('columns', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('columns', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n </div>\n <div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n >\n @for (\n widgetManifest of (windowManifest$ | async)?.widgets || []; track trackWidgets(widgetIndex,\n widgetManifest); let widgetIndex = $index) {\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n @if (modeEdition) {\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n }\n @if (!modeEdition) {\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n }\n </div>\n }\n\n @if (!noBackground) {\n @if ({\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n }; as data) {\n @if (data.noWidgets) {\n @if (data.globalLoading) {\n <div\n class=\"no-widget\"\n [style.grid-area]=\"backgroundArea$ | async\"\n >\n <pry-page-loader></pry-page-loader>\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n } @else {\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}</span>\n </div>\n }\n }\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-page-loader></pry-page-loader>\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n }\n }\n </div>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i8.PryPageLoaderComponent, selector: "pry-page-loader", inputs: ["image", "imageAltText"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: ContextMenuComponent, selector: "pry-context-menu" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9868
9882
|
}
|
|
9869
9883
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
9870
9884
|
type: Component,
|
|
9871
|
-
args: [{ selector: 'pry-dashboard', template: "<div class=\"o-dashboard-edit\" [class.-edit]=\"modeEdition$ | async\">\n <div class=\"o-dashboard-add -rows\">\n <button (click)=\"changeSize('rows', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('rows', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <p>{{ '@pry.grid.rows' | i18n }}</p>\n </div>\n <div class=\"o-dashboard-add -cols\">\n <p>{{ '@pry.grid.columns' | i18n }}</p>\n <button (click)=\"changeSize('columns', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('columns', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n </div>\n <div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n
|
|
9872
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: WidgetFactoryService }], propDecorators: { templateModal: [{
|
|
9885
|
+
args: [{ selector: 'pry-dashboard', template: "<div class=\"o-dashboard-edit\" [class.-edit]=\"modeEdition$ | async\">\n <div class=\"o-dashboard-add -rows\">\n <button (click)=\"changeSize('rows', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('rows', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <p>{{ '@pry.grid.rows' | i18n }}</p>\n </div>\n <div class=\"o-dashboard-add -cols\">\n <p>{{ '@pry.grid.columns' | i18n }}</p>\n <button (click)=\"changeSize('columns', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('columns', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n </div>\n <div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n >\n @for (\n widgetManifest of (windowManifest$ | async)?.widgets || []; track trackWidgets(widgetIndex,\n widgetManifest); let widgetIndex = $index) {\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n @if (modeEdition) {\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n }\n @if (!modeEdition) {\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n }\n </div>\n }\n\n @if (!noBackground) {\n @if ({\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n }; as data) {\n @if (data.noWidgets) {\n @if (data.globalLoading) {\n <div\n class=\"no-widget\"\n [style.grid-area]=\"backgroundArea$ | async\"\n >\n <pry-page-loader></pry-page-loader>\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n } @else {\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}</span>\n </div>\n }\n }\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-page-loader></pry-page-loader>\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n }\n }\n </div>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
9886
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: WidgetFactoryService }], propDecorators: { templateModal: [{
|
|
9873
9887
|
type: ViewChild,
|
|
9874
9888
|
args: ['templateModal', { read: TemplateRef }]
|
|
9875
9889
|
}], instanciators: [{
|
|
@@ -10164,7 +10178,7 @@ class ToolboxManifestService extends SubscriptionnerDirective {
|
|
|
10164
10178
|
if (!manifest) {
|
|
10165
10179
|
return manifest;
|
|
10166
10180
|
}
|
|
10167
|
-
const copy =
|
|
10181
|
+
const copy = structuredClone(manifest);
|
|
10168
10182
|
if (instanciate && !!copy && copy.datasource === USE_CURRENT_RESULTSET) {
|
|
10169
10183
|
copy.datasource = [];
|
|
10170
10184
|
}
|
|
@@ -10174,7 +10188,7 @@ class ToolboxManifestService extends SubscriptionnerDirective {
|
|
|
10174
10188
|
this.initialManifests$.next({ ...this.initialManifests$.getValue(), [id]: manifest });
|
|
10175
10189
|
}
|
|
10176
10190
|
setAllLayouts(layout) {
|
|
10177
|
-
Object.keys(this.initialManifests$.getValue()).forEach((key) => (this.initialManifests$.getValue()[key].layout =
|
|
10191
|
+
Object.keys(this.initialManifests$.getValue()).forEach((key) => (this.initialManifests$.getValue()[key].layout = structuredClone(layout)));
|
|
10178
10192
|
}
|
|
10179
10193
|
isModel(id) {
|
|
10180
10194
|
const manifest = this.get(id, false);
|
|
@@ -10480,11 +10494,11 @@ class PryAboutComponent {
|
|
|
10480
10494
|
return !!value && (!!backVersion.chartVersion || !!frontVersion.libVersion);
|
|
10481
10495
|
}
|
|
10482
10496
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAboutComponent, deps: [{ token: i1.Store }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10483
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10497
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryAboutComponent, selector: "pry-about", inputs: { tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n @for (version of (version$ | async) ?? {} | keyvalue; track version) {\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chip -md -no-wrap\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
10484
10498
|
}
|
|
10485
10499
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAboutComponent, decorators: [{
|
|
10486
10500
|
type: Component,
|
|
10487
|
-
args: [{ selector: 'pry-about', template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n
|
|
10501
|
+
args: [{ selector: 'pry-about', template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n @for (version of (version$ | async) ?? {} | keyvalue; track version) {\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chip -md -no-wrap\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n }\n </div>\n</div>\n" }]
|
|
10488
10502
|
}], ctorParameters: () => [{ type: i1.Store }, { type: PryI18nService }], propDecorators: { tooltipPosition: [{
|
|
10489
10503
|
type: Input
|
|
10490
10504
|
}] } });
|
|
@@ -10542,7 +10556,7 @@ class BusService {
|
|
|
10542
10556
|
if (!action.sender) {
|
|
10543
10557
|
// Send only non bus-received messages
|
|
10544
10558
|
this.dataChannel.postMessage({
|
|
10545
|
-
...
|
|
10559
|
+
...structuredClone(action),
|
|
10546
10560
|
sender: this.sender,
|
|
10547
10561
|
target
|
|
10548
10562
|
});
|
|
@@ -10594,12 +10608,12 @@ class ActionBusEffects {
|
|
|
10594
10608
|
// For actions with type containing "(bus)", automatically transfer it on the data-bus to propagate to other windows
|
|
10595
10609
|
filter$1((action) => action.type.includes('(bus)')), tap((action) => this.busService.postData(action))), { dispatch: false });
|
|
10596
10610
|
}
|
|
10597
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActionBusEffects, deps: [{ token: i1$
|
|
10611
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActionBusEffects, deps: [{ token: i1$2.Actions }, { token: i1.Store }, { token: BusService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10598
10612
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActionBusEffects }); }
|
|
10599
10613
|
}
|
|
10600
10614
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActionBusEffects, decorators: [{
|
|
10601
10615
|
type: Injectable
|
|
10602
|
-
}], ctorParameters: () => [{ type: i1$
|
|
10616
|
+
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: i1.Store }, { type: BusService }] });
|
|
10603
10617
|
|
|
10604
10618
|
class ManifestsComponent {
|
|
10605
10619
|
constructor(store) {
|
|
@@ -10640,11 +10654,11 @@ class ManifestsComponent {
|
|
|
10640
10654
|
this.fileInput.nativeElement.click();
|
|
10641
10655
|
}
|
|
10642
10656
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ManifestsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10643
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10657
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ManifestsComponent, selector: "pry-manifests", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n class=\"a-btn a-btn--action\"\n type=\"button\"\n (click)=\"triggerFileInput()\"\n title=\"{{ '@pry.manifest.importAlt' | i18n }}\"\n >\n <pry-icon iconSvg=\"upload\"></pry-icon>\n {{ '@pry.manifest.import' | i18n }}\n </button>\n <input\n type=\"file\"\n id=\"file\"\n (change)=\"handleFileInput($event)\"\n #fileInput\n multiple=\"true\"\n class=\"u-visually-hidden\"\n />\n </div>\n\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.manifest.title' | i18n }}</h1>\n\n @for (manifest of manifests$ | async; track manifest) {\n <div class=\"o-card-manifest\">\n <div class=\"o-card-manifest__content\">\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.name' | i18n }}</span>\n {{ manifest.name }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.description' | i18n }}</span>\n {{ manifest.description }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.modification' | i18n }}</span>\n {{ manifest.modificationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.creation' | i18n }}</span>\n {{ manifest.creationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"download(manifest.id, manifest.name)\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"fetch(manifest.id)\">\n <pry-icon iconSvg=\"eye\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"delete(manifest.id)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
10644
10658
|
}
|
|
10645
10659
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ManifestsComponent, decorators: [{
|
|
10646
10660
|
type: Component,
|
|
10647
|
-
args: [{ selector: 'pry-manifests', template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n class=\"a-btn a-btn--action\"\n type=\"button\"\n (click)=\"triggerFileInput()\"\n title=\"{{ '@pry.manifest.importAlt' | i18n }}\"\n
|
|
10661
|
+
args: [{ selector: 'pry-manifests', template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n class=\"a-btn a-btn--action\"\n type=\"button\"\n (click)=\"triggerFileInput()\"\n title=\"{{ '@pry.manifest.importAlt' | i18n }}\"\n >\n <pry-icon iconSvg=\"upload\"></pry-icon>\n {{ '@pry.manifest.import' | i18n }}\n </button>\n <input\n type=\"file\"\n id=\"file\"\n (change)=\"handleFileInput($event)\"\n #fileInput\n multiple=\"true\"\n class=\"u-visually-hidden\"\n />\n </div>\n\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.manifest.title' | i18n }}</h1>\n\n @for (manifest of manifests$ | async; track manifest) {\n <div class=\"o-card-manifest\">\n <div class=\"o-card-manifest__content\">\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.name' | i18n }}</span>\n {{ manifest.name }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.description' | i18n }}</span>\n {{ manifest.description }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.modification' | i18n }}</span>\n {{ manifest.modificationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.creation' | i18n }}</span>\n {{ manifest.creationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"download(manifest.id, manifest.name)\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"fetch(manifest.id)\">\n <pry-icon iconSvg=\"eye\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"delete(manifest.id)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
|
|
10648
10662
|
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { fileInput: [{
|
|
10649
10663
|
type: ViewChild,
|
|
10650
10664
|
args: ['fileInput']
|
|
@@ -10669,11 +10683,11 @@ class MetadataComponent {
|
|
|
10669
10683
|
this.opened = !this.opened;
|
|
10670
10684
|
}
|
|
10671
10685
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10672
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10686
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: MetadataComponent, selector: "pry-metadata", inputs: { item: "item" }, ngImport: i0, template: "<div class=\"m-metadata-tag\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n [attr.aria-expanded]=\"opened\"\n [attr.aria-controls]=\"'metadata_' + id\"\n (click)=\"toggle()\"\n >\n <pry-icon [width]=\"18\" [height]=\"18\" iconSvg=\"tags\"></pry-icon>\n {{ '@pry.metadata.view' | i18n }}\n </button>\n\n <ul [id]=\"'metadata_' + id\" class=\"m-metadata-tag__list\">\n @for (meta of metadata; track meta) {\n <li class=\"m-metadata-tag__list__item\">\n <p class=\"m-metadata-tag__chip\" [title]=\"meta.name + ': ' + meta.value\">\n <span class=\"m-metadata-tag__chip__label\">{{ meta.name }}: </span>\n {{ meta.value }}\n </p>\n </li>\n }\n </ul>\n</div>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
10673
10687
|
}
|
|
10674
10688
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MetadataComponent, decorators: [{
|
|
10675
10689
|
type: Component,
|
|
10676
|
-
args: [{ selector: 'pry-metadata', template: "<div class=\"m-metadata-tag\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n [attr.aria-expanded]=\"opened\"\n [attr.aria-controls]=\"'metadata_' + id\"\n (click)=\"toggle()\"\n
|
|
10690
|
+
args: [{ selector: 'pry-metadata', template: "<div class=\"m-metadata-tag\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n [attr.aria-expanded]=\"opened\"\n [attr.aria-controls]=\"'metadata_' + id\"\n (click)=\"toggle()\"\n >\n <pry-icon [width]=\"18\" [height]=\"18\" iconSvg=\"tags\"></pry-icon>\n {{ '@pry.metadata.view' | i18n }}\n </button>\n\n <ul [id]=\"'metadata_' + id\" class=\"m-metadata-tag__list\">\n @for (meta of metadata; track meta) {\n <li class=\"m-metadata-tag__list__item\">\n <p class=\"m-metadata-tag__chip\" [title]=\"meta.name + ': ' + meta.value\">\n <span class=\"m-metadata-tag__chip__label\">{{ meta.name }}: </span>\n {{ meta.value }}\n </p>\n </li>\n }\n </ul>\n</div>\n" }]
|
|
10677
10691
|
}], ctorParameters: () => [], propDecorators: { item: [{
|
|
10678
10692
|
type: Input
|
|
10679
10693
|
}] } });
|
|
@@ -10705,11 +10719,11 @@ class VizualizeRawComponent {
|
|
|
10705
10719
|
}));
|
|
10706
10720
|
}
|
|
10707
10721
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VizualizeRawComponent, deps: [{ token: RawService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10708
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10722
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: VizualizeRawComponent, selector: "pry-vizualize-raw", inputs: { item: "item", propertyName: "propertyName", alt: "alt" }, ngImport: i0, template: "@if (rawDatas[item?.id + '@' + propertyName]; as rawData) {\n @if (rawData.type.includes('image')) {\n <img [src]=\"rawData.url\" [alt]=\"altValue\" />\n }\n @if (rawData.type.includes('video')) {\n <video [preload]=\"true\" class=\"preview\" controls>\n <source [src]=\"rawData.url\" [type]=\"rawData.type\" />\n </video>\n }\n}\n@if (!rawDatas[item?.id + '@' + propertyName]) {\n @if (getRawData(item?.id ?? '', propertyName) | async) {\n Downloading...\n }\n}\n", dependencies: [{ kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
10709
10723
|
}
|
|
10710
10724
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VizualizeRawComponent, decorators: [{
|
|
10711
10725
|
type: Component,
|
|
10712
|
-
args: [{ selector: 'pry-vizualize-raw', template: "
|
|
10726
|
+
args: [{ selector: 'pry-vizualize-raw', template: "@if (rawDatas[item?.id + '@' + propertyName]; as rawData) {\n @if (rawData.type.includes('image')) {\n <img [src]=\"rawData.url\" [alt]=\"altValue\" />\n }\n @if (rawData.type.includes('video')) {\n <video [preload]=\"true\" class=\"preview\" controls>\n <source [src]=\"rawData.url\" [type]=\"rawData.type\" />\n </video>\n }\n}\n@if (!rawDatas[item?.id + '@' + propertyName]) {\n @if (getRawData(item?.id ?? '', propertyName) | async) {\n Downloading...\n }\n}\n" }]
|
|
10713
10727
|
}], ctorParameters: () => [{ type: RawService }], propDecorators: { item: [{
|
|
10714
10728
|
type: Input
|
|
10715
10729
|
}], propertyName: [{
|
|
@@ -10793,7 +10807,7 @@ class PryDatasourceCardComponent {
|
|
|
10793
10807
|
}
|
|
10794
10808
|
}
|
|
10795
10809
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatasourceCardComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10796
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDatasourceCardComponent, selector: "pry-datasource-card", inputs: { datasource: "datasource", showFooter: "showFooter", isSelectable: "isSelectable", isSelected: "isSelected" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div\n class=\"o-datasource-card\"\n [class.-no-footer]=\"!showFooter\"\n [class.-is-selectable]=\"isSelectable\"\n (click)=\"onClick()\"\n>\n <div class=\"o-datasource-card__header\">\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"datasource.id | translateId: { type: 'datasource', output: 'icon' } | async\"\n />\n <div class=\"o-datasource-card__title\" ellipsis textElementSelector=\".a-h4\">\n <p class=\"a-h4\">{{ datasource.name }}</p>\n </div>\n @if (isSelectable) {\n <pry-checkbox\n (click)=\"$event.preventDefault()\"\n class=\"o-datasource-card__checkbox\"\n [ngModel]=\"isSelected\"\n ></pry-checkbox>\n }\n </div>\n <div class=\"o-datasource-card__content u-display-flex -column -gap-10\">\n @if (datasource.description) {\n <div class=\"o-datasource-card__description\" ellipsis textElementSelector=\".description\">\n <div class=\"description\">{{ truncateDescription(datasource.description, 100) }}</div>\n </div>\n } @else {\n <div class=\"o-datasource-card__description -italic\">{{ '@pry.dataset.noDescription' | i18n }}</div>\n }\n\n <span class=\"o-datasource-card__date\">\n @if (datasource.sourceType === 'dataset') {\n @if (datasource.activeVersion) {\n {{ '@pry.dataset.since_day' | i18n }} {{ datasource.activeVersion.lastModified! | sinceDate }}\n } @else {\n <span class=\"-italic\">{{ '@pry.dataset.noActiveVersion' | i18n }}</span>\n }\n }\n </span>\n @if (datasource.sourceType === 'dataset' && datasource.categories && datasource.categories.length > 0) {\n <div class=\"o-datasource-card__categories u-display-flex -wrap\">\n @for (category of datasource.categories; track category.id) {\n <span class=\"a-chip -md\">{{ category.name }}</span>\n }\n </div>\n }\n </div>\n\n @if (showFooter) {\n <div class=\"o-datasource-card__footer\">\n <button class=\"a-btn\">\n {{ '@pry.dataset.consult' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
10810
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDatasourceCardComponent, selector: "pry-datasource-card", inputs: { datasource: "datasource", showFooter: "showFooter", isSelectable: "isSelectable", isSelected: "isSelected" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div\n class=\"o-datasource-card\"\n [class.-no-footer]=\"!showFooter\"\n [class.-is-selectable]=\"isSelectable\"\n (click)=\"onClick()\"\n>\n <div class=\"o-datasource-card__header\">\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"datasource.id | translateId: { type: 'datasource', output: 'icon' } | async\"\n />\n <div class=\"o-datasource-card__title\" ellipsis textElementSelector=\".a-h4\">\n <p class=\"a-h4\">{{ datasource.name }}</p>\n </div>\n @if (isSelectable) {\n <pry-checkbox\n (click)=\"$event.preventDefault()\"\n class=\"o-datasource-card__checkbox\"\n [ngModel]=\"isSelected\"\n ></pry-checkbox>\n }\n </div>\n <div class=\"o-datasource-card__content u-display-flex -column -gap-10\">\n @if (datasource.description) {\n <div class=\"o-datasource-card__description\" ellipsis textElementSelector=\".description\">\n <div class=\"description\">{{ truncateDescription(datasource.description, 100) }}</div>\n </div>\n } @else {\n <div class=\"o-datasource-card__description -italic\">{{ '@pry.dataset.noDescription' | i18n }}</div>\n }\n\n <span class=\"o-datasource-card__date\">\n @if (datasource.sourceType === 'dataset') {\n @if (datasource.activeVersion) {\n {{ '@pry.dataset.since_day' | i18n }} {{ datasource.activeVersion.lastModified! | sinceDate }}\n } @else {\n <span class=\"-italic\">{{ '@pry.dataset.noActiveVersion' | i18n }}</span>\n }\n }\n </span>\n @if (datasource.sourceType === 'dataset' && datasource.categories && datasource.categories.length > 0) {\n <div class=\"o-datasource-card__categories u-display-flex -wrap\">\n @for (category of datasource.categories; track category.id) {\n <span class=\"a-chip -md\">{{ category.name }}</span>\n }\n </div>\n }\n </div>\n\n @if (showFooter) {\n <div class=\"o-datasource-card__footer\">\n <button class=\"a-btn\">\n {{ '@pry.dataset.consult' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: EllipsisDirective, selector: "[ellipsis]", inputs: ["textElementSelector"] }, { kind: "component", type: i7.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: SinceDatePipe, name: "sinceDate" }] }); }
|
|
10797
10811
|
}
|
|
10798
10812
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatasourceCardComponent, decorators: [{
|
|
10799
10813
|
type: Component,
|
|
@@ -10882,7 +10896,7 @@ class PryDatasourceListComponent extends SubscriptionnerDirective {
|
|
|
10882
10896
|
}
|
|
10883
10897
|
}
|
|
10884
10898
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatasourceListComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10885
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDatasourceListComponent, selector: "pry-datasource-list", inputs: { mode: "mode", selectedDatasources: "selectedDatasources" }, outputs: { consultedDataset: "consultedDataset", datasourceSelected: "datasourceSelected", searchOrCategoryChanged: "searchOrCategoryChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-datasource-list__header u-display-flex\">\n <div class=\"o-datasource-list__search m-form-label-field\">\n <label class=\"a-label\" id=\"catalog-search-label\" for=\"catalog-search\">{{ '@pry.dataset.search' | i18n }}</label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.dataset.searchPlaceholder' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </div>\n <div class=\"o-datasource-list__categories m-form-label-field\">\n <label class=\"a-label\" id=\"tags-label\" for=\"catalog-category-search\">{{ '@pry.dataset.filter' | i18n }}</label>\n <pry-select\n id=\"catalog-category-search\"\n [ngModel]=\"selectedCategories\"\n (ngModelChange)=\"this.selectedCategories$.next($event)\"\n [items]=\"categories$ | async\"\n bindLabel=\"name\"\n aria-labelledby=\"tags-label\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [placeholder]=\"'@pry.dataset.filterPlaceholder' | i18n\"\n ></pry-select>\n </div>\n</div>\n<div class=\"o-datasource-list__content\">\n @if ((_mode$ | async) === 'list') {\n @for (datasource of filteredDatasources$ | async; track datasource.id) {\n <pry-datasource-card\n [datasource]=\"datasource\"\n [isSelectable]=\"false\"\n [showFooter]=\"true\"\n (clicked)=\"onDatasourceClick($event)\"\n ></pry-datasource-card>\n }\n } @else if ((_mode$ | async) === 'selector') {\n @for (datasource of filteredDatasources$ | async; track datasource.id) {\n <pry-datasource-card\n [datasource]=\"datasource\"\n [isSelectable]=\"true\"\n [showFooter]=\"false\"\n (clicked)=\"onDatasourceClick($event)\"\n [isSelected]=\"datasource.isSelected ?? false\"\n ></pry-datasource-card>\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
10899
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDatasourceListComponent, selector: "pry-datasource-list", inputs: { mode: "mode", selectedDatasources: "selectedDatasources" }, outputs: { consultedDataset: "consultedDataset", datasourceSelected: "datasourceSelected", searchOrCategoryChanged: "searchOrCategoryChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-datasource-list__header u-display-flex\">\n <div class=\"o-datasource-list__search m-form-label-field\">\n <label class=\"a-label\" id=\"catalog-search-label\" for=\"catalog-search\">{{ '@pry.dataset.search' | i18n }}</label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.dataset.searchPlaceholder' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </div>\n <div class=\"o-datasource-list__categories m-form-label-field\">\n <label class=\"a-label\" id=\"tags-label\" for=\"catalog-category-search\">{{ '@pry.dataset.filter' | i18n }}</label>\n <pry-select\n id=\"catalog-category-search\"\n [ngModel]=\"selectedCategories\"\n (ngModelChange)=\"this.selectedCategories$.next($event)\"\n [items]=\"categories$ | async\"\n bindLabel=\"name\"\n aria-labelledby=\"tags-label\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [placeholder]=\"'@pry.dataset.filterPlaceholder' | i18n\"\n ></pry-select>\n </div>\n</div>\n<div class=\"o-datasource-list__content\">\n @if ((_mode$ | async) === 'list') {\n @for (datasource of filteredDatasources$ | async; track datasource.id) {\n <pry-datasource-card\n [datasource]=\"datasource\"\n [isSelectable]=\"false\"\n [showFooter]=\"true\"\n (clicked)=\"onDatasourceClick($event)\"\n ></pry-datasource-card>\n }\n } @else if ((_mode$ | async) === 'selector') {\n @for (datasource of filteredDatasources$ | async; track datasource.id) {\n <pry-datasource-card\n [datasource]=\"datasource\"\n [isSelectable]=\"true\"\n [showFooter]=\"false\"\n (clicked)=\"onDatasourceClick($event)\"\n [isSelected]=\"datasource.isSelected ?? false\"\n ></pry-datasource-card>\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryDatasourceCardComponent, selector: "pry-datasource-card", inputs: ["datasource", "showFooter", "isSelectable", "isSelected"], outputs: ["clicked"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
10886
10900
|
}
|
|
10887
10901
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatasourceListComponent, decorators: [{
|
|
10888
10902
|
type: Component,
|
|
@@ -10949,11 +10963,11 @@ class DatasourceSelectorComponent extends SubscriptionnerDirective {
|
|
|
10949
10963
|
this.cdr.detectChanges();
|
|
10950
10964
|
}
|
|
10951
10965
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DatasourceSelectorComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10952
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: { showButtons: "showButtons", showTitle: "showTitle", manifest: "manifest" }, outputs: { previousTab: "previousTab", nextTab: "nextTab", cancel: "cancel", validated: "validated", itemsChanged: "itemsChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-datasource-selector u-display-flex -column\">\n @if (showTitle) {\n <h2 class=\"u-self-center\">{{ '@pry.components.datasourceSelector.select' | i18n }}</h2>\n }\n <div>\n <h3>\n {{ '@pry.components.datasourceSelector.selection' | i18n }} ({{ ((selectedDatasources$ | async) ?? []).length }})\n </h3>\n <div class=\"o-datasource-selector__chips u-display-flex -wrap -gap-10\">\n @if ((selectedDatasources$ | async)?.length === 0) {\n <span class=\"a-label -italic\">{{ '@pry.components.datasourceSelector.noItemSelected' | i18n }}</span>\n } @else {\n @for (datasource of selectedDatasources$ | async; track datasource.id) {\n <button\n class=\"a-chip a-chip--ghost -lg a-tooltip\"\n [attr.data-tooltip]=\"'@pry.components.datasourceSelector.unselectItem' | i18n\"\n type=\"button\"\n (click)=\"toggleSelection(datasource.id)\"\n
|
|
10966
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: { showButtons: "showButtons", showTitle: "showTitle", manifest: "manifest" }, outputs: { previousTab: "previousTab", nextTab: "nextTab", cancel: "cancel", validated: "validated", itemsChanged: "itemsChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-datasource-selector u-display-flex -column\">\n @if (showTitle) {\n <h2 class=\"u-self-center\">{{ '@pry.components.datasourceSelector.select' | i18n }}</h2>\n }\n <div>\n <h3>\n {{ '@pry.components.datasourceSelector.selection' | i18n }} ({{ ((selectedDatasources$ | async) ?? []).length }})\n </h3>\n <div class=\"o-datasource-selector__chips u-display-flex -wrap -gap-10\">\n @if ((selectedDatasources$ | async)?.length === 0) {\n <span class=\"a-label -italic\">{{ '@pry.components.datasourceSelector.noItemSelected' | i18n }}</span>\n } @else {\n @for (datasource of selectedDatasources$ | async; track datasource.id) {\n <button\n class=\"a-chip a-chip--ghost -lg a-tooltip\"\n [attr.data-tooltip]=\"'@pry.components.datasourceSelector.unselectItem' | i18n\"\n type=\"button\"\n (click)=\"toggleSelection(datasource.id)\"\n >\n <pry-icon iconSvg=\"close\" [width]=\"15\" [height]=\"15\"></pry-icon>\n {{ datasource.name }}\n @if (isGeo(datasource)) {\n <pry-icon iconSvg=\"globe\" [width]=\"18\" [height]=\"18\"></pry-icon>\n }\n </button>\n }\n }\n </div>\n </div>\n <pry-datasource-list\n mode=\"selector\"\n [selectedDatasources]=\"(selectedIds$ | async) ?? []\"\n (datasourceSelected)=\"updateDatasourceList($event)\"\n (searchOrCategoryChanged)=\"searchOrCategoryChanged$.next()\"\n ></pry-datasource-list>\n @if (showButtons) {\n <div class=\"m-btn-group o-datasource-selector__footer\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryDatasourceListComponent, selector: "pry-datasource-list", inputs: ["mode", "selectedDatasources"], outputs: ["consultedDataset", "datasourceSelected", "searchOrCategoryChanged"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
10953
10967
|
}
|
|
10954
10968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DatasourceSelectorComponent, decorators: [{
|
|
10955
10969
|
type: Component,
|
|
10956
|
-
args: [{ selector: 'pry-datasource-selector', template: "<div class=\"o-datasource-selector u-display-flex -column\">\n @if (showTitle) {\n <h2 class=\"u-self-center\">{{ '@pry.components.datasourceSelector.select' | i18n }}</h2>\n }\n <div>\n <h3>\n {{ '@pry.components.datasourceSelector.selection' | i18n }} ({{ ((selectedDatasources$ | async) ?? []).length }})\n </h3>\n <div class=\"o-datasource-selector__chips u-display-flex -wrap -gap-10\">\n @if ((selectedDatasources$ | async)?.length === 0) {\n <span class=\"a-label -italic\">{{ '@pry.components.datasourceSelector.noItemSelected' | i18n }}</span>\n } @else {\n @for (datasource of selectedDatasources$ | async; track datasource.id) {\n <button\n class=\"a-chip a-chip--ghost -lg a-tooltip\"\n [attr.data-tooltip]=\"'@pry.components.datasourceSelector.unselectItem' | i18n\"\n type=\"button\"\n (click)=\"toggleSelection(datasource.id)\"\n
|
|
10970
|
+
args: [{ selector: 'pry-datasource-selector', template: "<div class=\"o-datasource-selector u-display-flex -column\">\n @if (showTitle) {\n <h2 class=\"u-self-center\">{{ '@pry.components.datasourceSelector.select' | i18n }}</h2>\n }\n <div>\n <h3>\n {{ '@pry.components.datasourceSelector.selection' | i18n }} ({{ ((selectedDatasources$ | async) ?? []).length }})\n </h3>\n <div class=\"o-datasource-selector__chips u-display-flex -wrap -gap-10\">\n @if ((selectedDatasources$ | async)?.length === 0) {\n <span class=\"a-label -italic\">{{ '@pry.components.datasourceSelector.noItemSelected' | i18n }}</span>\n } @else {\n @for (datasource of selectedDatasources$ | async; track datasource.id) {\n <button\n class=\"a-chip a-chip--ghost -lg a-tooltip\"\n [attr.data-tooltip]=\"'@pry.components.datasourceSelector.unselectItem' | i18n\"\n type=\"button\"\n (click)=\"toggleSelection(datasource.id)\"\n >\n <pry-icon iconSvg=\"close\" [width]=\"15\" [height]=\"15\"></pry-icon>\n {{ datasource.name }}\n @if (isGeo(datasource)) {\n <pry-icon iconSvg=\"globe\" [width]=\"18\" [height]=\"18\"></pry-icon>\n }\n </button>\n }\n }\n </div>\n </div>\n <pry-datasource-list\n mode=\"selector\"\n [selectedDatasources]=\"(selectedIds$ | async) ?? []\"\n (datasourceSelected)=\"updateDatasourceList($event)\"\n (searchOrCategoryChanged)=\"searchOrCategoryChanged$.next()\"\n ></pry-datasource-list>\n @if (showButtons) {\n <div class=\"m-btn-group o-datasource-selector__footer\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n }\n</div>\n" }]
|
|
10957
10971
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ChangeDetectorRef }], propDecorators: { showButtons: [{
|
|
10958
10972
|
type: Input
|
|
10959
10973
|
}], showTitle: [{
|
|
@@ -11372,13 +11386,13 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
|
11372
11386
|
this.subscription?.unsubscribe();
|
|
11373
11387
|
this.openSub?.unsubscribe();
|
|
11374
11388
|
}
|
|
11375
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryWidgetHeaderComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11376
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: { manifest: "manifest", openData$: "openData$", additionalOptions: "additionalOptions", headerOptions: "headerOptions", displayCount: "displayCount", datasourceIds: "datasourceIds", widgetIndex: "widgetIndex" }, outputs: { manifestModified: "manifestModified" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: TemplateRef }, { propertyName: "overlayMenu", first: true, predicate: ["overlayMenu"], descendants: true, read: TemplateRef }, { propertyName: "overlayCatalog", first: true, predicate: ["overlayCatalog"], descendants: true, read: TemplateRef }, { propertyName: "overlaySpot", first: true, predicate: ["overlaySpot"], descendants: true, read: TemplateRef }, { propertyName: "togglePanel", first: true, predicate: ["togglePanel"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }, { propertyName: "validateCatalog", first: true, predicate: ["validateCatalog"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "crossCatalog", first: true, predicate: ["crossCatalog"], descendants: true }, { propertyName: "inputCatalog", first: true, predicate: ["inputCatalog"], descendants: true }, { propertyName: "menuList", first: true, predicate: ["menuList"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"(manifest$ | async)?.title; else querySelector\">\n {{ (manifest$ | async)?.title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <ng-container\n *ngIf=\"ds.id | translateId: { type: 'datasource', output: 'icon', noDefault: true } | async as url\"\n >\n <img [height]=\"20\" [src]=\"url\" [width]=\"20\" alt=\"\" class=\"o-widget__header__content__query__icon\" />\n </ng-container>\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount && !isGeo(ds)\">\n ({{ [ds.id] | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"((usedDatasources$ | async) ?? []).length === 0\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"displayContextMenu$ | async as options\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\" *ngIf=\"displayContextMenu$ | async as options\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"options === true || options['datasourceSelection'] === true\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleDatasourceSelection()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['parameters'] === true\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"options === true || options!['window'] === true\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n: { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"hasGrid && (options === true || options!['changeSpot'] === true)\"\n >\n <button type=\"button\" role=\"menuitem\" (click)=\"toggleChangeSpot()\" class=\"a-btn\" tabindex=\"-1\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['maximize'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['addToCatalog'] === true\">\n <button type=\"button\" role=\"menuitem\" tabindex=\"-1\" (click)=\"toggleCatalog()\" class=\"a-btn\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['delete'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n [manifest]=\"manifest$ | async\"\n (cancel)=\"toggleDatasourceSelection()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal -place\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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-dashboard\n [staticDashboard]=\"targetManifest!\"\n [breakpoint]=\"10\"\n [noBackground]=\"true\"\n [forceModeEdition]=\"false\"\n ></pry-dashboard>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["showButtons", "showTitle", "manifest"], outputs: ["previousTab", "nextTab", "cancel", "validated", "itemsChanged"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: ResultSetSizePipe, name: "resultSetSize" }] }); }
|
|
11389
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryWidgetHeaderComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11390
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: { manifest: "manifest", openData$: "openData$", additionalOptions: "additionalOptions", headerOptions: "headerOptions", displayCount: "displayCount", datasourceIds: "datasourceIds", widgetIndex: "widgetIndex" }, outputs: { manifestModified: "manifestModified" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: TemplateRef }, { propertyName: "overlayMenu", first: true, predicate: ["overlayMenu"], descendants: true, read: TemplateRef }, { propertyName: "overlayCatalog", first: true, predicate: ["overlayCatalog"], descendants: true, read: TemplateRef }, { propertyName: "overlaySpot", first: true, predicate: ["overlaySpot"], descendants: true, read: TemplateRef }, { propertyName: "togglePanel", first: true, predicate: ["togglePanel"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }, { propertyName: "validateCatalog", first: true, predicate: ["validateCatalog"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "crossCatalog", first: true, predicate: ["crossCatalog"], descendants: true }, { propertyName: "inputCatalog", first: true, predicate: ["inputCatalog"], descendants: true }, { propertyName: "menuList", first: true, predicate: ["menuList"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n @if ((manifest$ | async)?.title) {\n <h2 class=\"o-widget__header__content__title\">\n {{ (manifest$ | async)?.title }}\n </h2>\n } @else {\n @for (ds of usedDatasources$ | async; track ds) {\n <div class=\"o-widget__header__content__query\">\n @if (ds.id | translateId: { type: 'datasource', output: 'icon', noDefault: true } | async; as url) {\n <img [height]=\"20\" [src]=\"url\" [width]=\"20\" alt=\"\" class=\"o-widget__header__content__query__icon\" />\n }\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n @if (displayCount && !isGeo(ds)) {\n <h3 class=\"o-widget__header__content__query__name\">\n ({{ [ds.id] | resultSetSize | async }})\n </h3>\n }\n </div>\n }\n @if (((usedDatasources$ | async) ?? []).length === 0) {\n <div class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n }\n }\n </div>\n @if (displayContextMenu$ | async; as options) {\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n }\n</div>\n\n<ng-template #overlayMenu>\n @if (displayContextMenu$ | async; as options) {\n <div class=\"m-context-menu\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n @if (options === true || options['datasourceSelection'] === true) {\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleDatasourceSelection()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n }\n @if (options === true || options!['parameters'] === true) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <ng-content></ng-content>\n </li>\n }\n @if (options === true || options!['window'] === true) {\n @for (targetIndex of targetIndexes$ | async; track targetIndex) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n: { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n }\n }\n @if (hasGrid && (options === true || options!['changeSpot'] === true)) {\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n >\n <button type=\"button\" role=\"menuitem\" (click)=\"toggleChangeSpot()\" class=\"a-btn\" tabindex=\"-1\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n }\n @if (options === true || options!['maximize'] === true) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n }\n @if (options === true || options!['addToCatalog'] === true) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button type=\"button\" role=\"menuitem\" tabindex=\"-1\" (click)=\"toggleCatalog()\" class=\"a-btn\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n }\n @if (options === true || options!['delete'] === true) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n }\n @for (option of additionalOptions; track option) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n }\n </ul>\n </div>\n }\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n [manifest]=\"manifest$ | async\"\n (cancel)=\"toggleDatasourceSelection()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal -place\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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-dashboard\n [staticDashboard]=\"targetManifest!\"\n [breakpoint]=\"10\"\n [noBackground]=\"true\"\n [forceModeEdition]=\"false\"\n ></pry-dashboard>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["showButtons", "showTitle", "manifest"], outputs: ["previousTab", "nextTab", "cancel", "validated", "itemsChanged"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: ResultSetSizePipe, name: "resultSetSize" }] }); }
|
|
11377
11391
|
}
|
|
11378
11392
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryWidgetHeaderComponent, decorators: [{
|
|
11379
11393
|
type: Component,
|
|
11380
|
-
args: [{ selector: 'pry-widget-header', template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"(manifest$ | async)?.title; else querySelector\">\n {{ (manifest$ | async)?.title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <ng-container\n *ngIf=\"ds.id | translateId: { type: 'datasource', output: 'icon', noDefault: true } | async as url\"\n >\n <img [height]=\"20\" [src]=\"url\" [width]=\"20\" alt=\"\" class=\"o-widget__header__content__query__icon\" />\n </ng-container>\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount && !isGeo(ds)\">\n ({{ [ds.id] | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"((usedDatasources$ | async) ?? []).length === 0\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"displayContextMenu$ | async as options\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\" *ngIf=\"displayContextMenu$ | async as options\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"options === true || options['datasourceSelection'] === true\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleDatasourceSelection()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['parameters'] === true\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"options === true || options!['window'] === true\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n: { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"hasGrid && (options === true || options!['changeSpot'] === true)\"\n >\n <button type=\"button\" role=\"menuitem\" (click)=\"toggleChangeSpot()\" class=\"a-btn\" tabindex=\"-1\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['maximize'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['addToCatalog'] === true\">\n <button type=\"button\" role=\"menuitem\" tabindex=\"-1\" (click)=\"toggleCatalog()\" class=\"a-btn\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['delete'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n [manifest]=\"manifest$ | async\"\n (cancel)=\"toggleDatasourceSelection()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal -place\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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-dashboard\n [staticDashboard]=\"targetManifest!\"\n [breakpoint]=\"10\"\n [noBackground]=\"true\"\n [forceModeEdition]=\"false\"\n ></pry-dashboard>\n </div>\n</ng-template>\n" }]
|
|
11381
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: ToolboxMenuService }], propDecorators: { template: [{
|
|
11394
|
+
args: [{ selector: 'pry-widget-header', template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n @if ((manifest$ | async)?.title) {\n <h2 class=\"o-widget__header__content__title\">\n {{ (manifest$ | async)?.title }}\n </h2>\n } @else {\n @for (ds of usedDatasources$ | async; track ds) {\n <div class=\"o-widget__header__content__query\">\n @if (ds.id | translateId: { type: 'datasource', output: 'icon', noDefault: true } | async; as url) {\n <img [height]=\"20\" [src]=\"url\" [width]=\"20\" alt=\"\" class=\"o-widget__header__content__query__icon\" />\n }\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n @if (displayCount && !isGeo(ds)) {\n <h3 class=\"o-widget__header__content__query__name\">\n ({{ [ds.id] | resultSetSize | async }})\n </h3>\n }\n </div>\n }\n @if (((usedDatasources$ | async) ?? []).length === 0) {\n <div class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n }\n }\n </div>\n @if (displayContextMenu$ | async; as options) {\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n }\n</div>\n\n<ng-template #overlayMenu>\n @if (displayContextMenu$ | async; as options) {\n <div class=\"m-context-menu\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n @if (options === true || options['datasourceSelection'] === true) {\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleDatasourceSelection()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n }\n @if (options === true || options!['parameters'] === true) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <ng-content></ng-content>\n </li>\n }\n @if (options === true || options!['window'] === true) {\n @for (targetIndex of targetIndexes$ | async; track targetIndex) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n: { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n }\n }\n @if (hasGrid && (options === true || options!['changeSpot'] === true)) {\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n >\n <button type=\"button\" role=\"menuitem\" (click)=\"toggleChangeSpot()\" class=\"a-btn\" tabindex=\"-1\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n }\n @if (options === true || options!['maximize'] === true) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n }\n @if (options === true || options!['addToCatalog'] === true) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button type=\"button\" role=\"menuitem\" tabindex=\"-1\" (click)=\"toggleCatalog()\" class=\"a-btn\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n }\n @if (options === true || options!['delete'] === true) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n }\n @for (option of additionalOptions; track option) {\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n }\n </ul>\n </div>\n }\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n [manifest]=\"manifest$ | async\"\n (cancel)=\"toggleDatasourceSelection()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal -place\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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-dashboard\n [staticDashboard]=\"targetManifest!\"\n [breakpoint]=\"10\"\n [noBackground]=\"true\"\n [forceModeEdition]=\"false\"\n ></pry-dashboard>\n </div>\n</ng-template>\n" }]
|
|
11395
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: ToolboxMenuService }], propDecorators: { template: [{
|
|
11382
11396
|
type: ViewChild,
|
|
11383
11397
|
args: ['template', { read: TemplateRef }]
|
|
11384
11398
|
}], templateModal: [{
|
|
@@ -11510,13 +11524,13 @@ class SettingsComponent extends SubscriptionnerDirective {
|
|
|
11510
11524
|
this.openSub?.unsubscribe();
|
|
11511
11525
|
this.subscriptions.unsubscribe();
|
|
11512
11526
|
}
|
|
11513
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11527
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11514
11528
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: SettingsComponent, selector: "pry-settings", inputs: { widgetIndex: "widgetIndex", isDisable: "isDisable", headerPresent: "headerPresent", open$: "open$", header: "header" }, outputs: { triggerClick: "triggerClick", saveTriggered: "saveTriggered", changeTitle: "changeTitle" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" (click)=\"toggle()\" class=\"a-btn a-btn--icon-text -settings\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusElement(this.validate)\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\" (click)=\"this.triggerClick.next()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"widget_title\">{{ '@pry.widget.settings.changeTitle' | i18n }} :</label>\n <input\n class=\"a-form-field\"\n id=\"widget_title\"\n type=\"text\"\n [value]=\"manifest?.title ?? ''\"\n (input)=\"emitTitle($event)\"\n />\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusElement(this.cross)\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
11515
11529
|
}
|
|
11516
11530
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
11517
11531
|
type: Component,
|
|
11518
11532
|
args: [{ selector: 'pry-settings', template: "<button type=\"button\" (click)=\"toggle()\" class=\"a-btn a-btn--icon-text -settings\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusElement(this.validate)\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\" (click)=\"this.triggerClick.next()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"widget_title\">{{ '@pry.widget.settings.changeTitle' | i18n }} :</label>\n <input\n class=\"a-form-field\"\n id=\"widget_title\"\n type=\"text\"\n [value]=\"manifest?.title ?? ''\"\n (input)=\"emitTitle($event)\"\n />\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusElement(this.cross)\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
11519
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { triggerClick: [{
|
|
11533
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { triggerClick: [{
|
|
11520
11534
|
type: Output
|
|
11521
11535
|
}], widgetIndex: [{
|
|
11522
11536
|
type: Input
|
|
@@ -11752,11 +11766,11 @@ class FilterGroupComponent {
|
|
|
11752
11766
|
}
|
|
11753
11767
|
}
|
|
11754
11768
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FilterGroupComponent, deps: [{ token: i1.Store }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11755
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FilterGroupComponent, selector: "pry-filter-group", inputs: { enterTriggerFilter: "enterTriggerFilter", clearTriggerFilter: "clearTriggerFilter" }, ngImport: i0, template: "<pry-filter-group-css></pry-filter-group-css>\n
|
|
11769
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FilterGroupComponent, selector: "pry-filter-group", inputs: { enterTriggerFilter: "enterTriggerFilter", clearTriggerFilter: "clearTriggerFilter" }, ngImport: i0, template: "<pry-filter-group-css></pry-filter-group-css>\n@if (globalManifest$ | async; as manifest) {\n @if (manifest.filters && manifest.filters.length > 0) {\n <div class=\"o-container__filters\">\n <div class=\"o-container__filter-container\" (click)=\"openSelect()\">\n @for (filterDescription of manifest.filters; track filterDescription.id) {\n <pry-filter-instanciator\n [filter]=\"filterDescription\"\n [applyFilter$]=\"apply$\"\n (pressedEnter)=\"enterPressed()\"\n (cleared)=\"cleared()\"\n ></pry-filter-instanciator>\n }\n </div>\n <div class=\"o-container__filter-actions\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"filter()\">\n {{ '@pry.toolbox.apply' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n </div>\n }\n}\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: FilterInstanciatorComponent, selector: "pry-filter-instanciator", inputs: ["filter", "applyFilter$"], outputs: ["pressedEnter", "cleared"] }, { kind: "component", type: PryFilterGroupCssComponent, selector: "pry-filter-group-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
11756
11770
|
}
|
|
11757
11771
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FilterGroupComponent, decorators: [{
|
|
11758
11772
|
type: Component,
|
|
11759
|
-
args: [{ selector: 'pry-filter-group', template: "<pry-filter-group-css></pry-filter-group-css>\n
|
|
11773
|
+
args: [{ selector: 'pry-filter-group', template: "<pry-filter-group-css></pry-filter-group-css>\n@if (globalManifest$ | async; as manifest) {\n @if (manifest.filters && manifest.filters.length > 0) {\n <div class=\"o-container__filters\">\n <div class=\"o-container__filter-container\" (click)=\"openSelect()\">\n @for (filterDescription of manifest.filters; track filterDescription.id) {\n <pry-filter-instanciator\n [filter]=\"filterDescription\"\n [applyFilter$]=\"apply$\"\n (pressedEnter)=\"enterPressed()\"\n (cleared)=\"cleared()\"\n ></pry-filter-instanciator>\n }\n </div>\n <div class=\"o-container__filter-actions\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"filter()\">\n {{ '@pry.toolbox.apply' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n </div>\n }\n}\n" }]
|
|
11760
11774
|
}], ctorParameters: () => [{ type: i1.Store }, { type: Document, decorators: [{
|
|
11761
11775
|
type: Inject,
|
|
11762
11776
|
args: [DOCUMENT]
|
|
@@ -11788,7 +11802,7 @@ class DashboardInitService {
|
|
|
11788
11802
|
this.router.config.push({ path: this.baseConfig.path, component: DashboardComponent });
|
|
11789
11803
|
}
|
|
11790
11804
|
}
|
|
11791
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardInitService, deps: [{ token: i1.Store }, { token:
|
|
11805
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardInitService, deps: [{ token: i1.Store }, { token: i2.Router }, { token: BASE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11792
11806
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardInitService, providedIn: 'root' }); }
|
|
11793
11807
|
}
|
|
11794
11808
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardInitService, decorators: [{
|
|
@@ -11796,7 +11810,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
11796
11810
|
args: [{
|
|
11797
11811
|
providedIn: 'root'
|
|
11798
11812
|
}]
|
|
11799
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type:
|
|
11813
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: undefined, decorators: [{
|
|
11800
11814
|
type: Inject,
|
|
11801
11815
|
args: [BASE_CONFIG]
|
|
11802
11816
|
}] }] });
|
|
@@ -11919,7 +11933,7 @@ class ManifestService {
|
|
|
11919
11933
|
.select(ConfigSelectors.refUrl)
|
|
11920
11934
|
.pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/users/me/dashboards/id/${presentationId}/metadata/id/${metadataId}`))));
|
|
11921
11935
|
}
|
|
11922
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ManifestService, deps: [{ token: i1$
|
|
11936
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ManifestService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11923
11937
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ManifestService, providedIn: 'root' }); }
|
|
11924
11938
|
}
|
|
11925
11939
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ManifestService, decorators: [{
|
|
@@ -11927,7 +11941,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
11927
11941
|
args: [{
|
|
11928
11942
|
providedIn: 'root'
|
|
11929
11943
|
}]
|
|
11930
|
-
}], ctorParameters: () => [{ type: i1$
|
|
11944
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }] });
|
|
11931
11945
|
|
|
11932
11946
|
class PryTitleService {
|
|
11933
11947
|
constructor(title, translateService, store) {
|
|
@@ -12044,7 +12058,7 @@ class WmsService {
|
|
|
12044
12058
|
const url = wfsUrlBuilder(wmsUrl, bbox);
|
|
12045
12059
|
return this.httpClient.get(url).pipe(map((json) => json));
|
|
12046
12060
|
}
|
|
12047
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WmsService, deps: [{ token: i1$
|
|
12061
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WmsService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12048
12062
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WmsService, providedIn: 'root' }); }
|
|
12049
12063
|
}
|
|
12050
12064
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WmsService, decorators: [{
|
|
@@ -12052,7 +12066,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
12052
12066
|
args: [{
|
|
12053
12067
|
providedIn: 'root'
|
|
12054
12068
|
}]
|
|
12055
|
-
}], ctorParameters: () => [{ type: i1$
|
|
12069
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
12056
12070
|
const BBOX_ENHANCE_DISTANCE = 0.0001;
|
|
12057
12071
|
const wfsUrlBuilder = (wmsUrl, bbox, params) => {
|
|
12058
12072
|
const enhancedBbox = [
|
|
@@ -12327,7 +12341,7 @@ class DashboardEffects {
|
|
|
12327
12341
|
return result;
|
|
12328
12342
|
})));
|
|
12329
12343
|
this.addWidgetToPresentation$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.addWidgetToPresentation), withLatestFrom(this.store.select(DashboardSelectors.gridLayout), this.store.select(DashboardSelectors.globalManifest), this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.dashboardCellParams), this.store.select(DashboardSelectors.selectedItemIds)), map$1(([action, layout, _globalManifest, rank, params, selectedIds]) => {
|
|
12330
|
-
const manifestGlobal =
|
|
12344
|
+
const manifestGlobal = structuredClone(_globalManifest);
|
|
12331
12345
|
// Create new configuration
|
|
12332
12346
|
const newOptions = this.toolboxManifestService.get(action.widgetType) ?? {
|
|
12333
12347
|
options: {},
|
|
@@ -12398,7 +12412,7 @@ class DashboardEffects {
|
|
|
12398
12412
|
return DashboardActions.updateManifest({ manifest: manifestGlobal, selectedIds });
|
|
12399
12413
|
})));
|
|
12400
12414
|
this.moveWidget$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.moveWidget), withLatestFrom(this.store.select(DashboardSelectors.gridLayout), this.store.select(DashboardSelectors.globalManifest), this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.dashboardCellParams), this.store.select(DashboardSelectors.selectedItemIds)), map$1(([action, layout, _globalManifest, rank, params, selectedIds]) => {
|
|
12401
|
-
const manifestGlobal =
|
|
12415
|
+
const manifestGlobal = structuredClone(_globalManifest);
|
|
12402
12416
|
const newWindows = [...manifestGlobal.windows];
|
|
12403
12417
|
// Creating new current window manifest, without moved widget
|
|
12404
12418
|
const myNewWindow = {
|
|
@@ -12554,12 +12568,12 @@ class DashboardEffects {
|
|
|
12554
12568
|
dashboardInitService.init();
|
|
12555
12569
|
refreshService.start();
|
|
12556
12570
|
}
|
|
12557
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardEffects, deps: [{ token: DashboardInitService }, { token: i1$
|
|
12571
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardEffects, deps: [{ token: DashboardInitService }, { token: i1$2.Actions }, { token: i1.Store }, { token: ManifestService }, { token: ItemService }, { token: PryTitleService }, { token: PryI18nService }, { token: PrySnackbarService }, { token: i2.Router }, { token: RefreshService }, { token: ToolboxManifestService }, { token: BusService }, { token: SearchService }, { token: PryDialogService }, { token: WmsService }, { token: WidgetFactoryService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12558
12572
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardEffects }); }
|
|
12559
12573
|
}
|
|
12560
12574
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DashboardEffects, decorators: [{
|
|
12561
12575
|
type: Injectable
|
|
12562
|
-
}], ctorParameters: () => [{ type: DashboardInitService }, { type: i1$
|
|
12576
|
+
}], ctorParameters: () => [{ type: DashboardInitService }, { type: i1$2.Actions }, { type: i1.Store }, { type: ManifestService }, { type: ItemService }, { type: PryTitleService }, { type: PryI18nService }, { type: PrySnackbarService }, { type: i2.Router }, { type: RefreshService }, { type: ToolboxManifestService }, { type: BusService }, { type: SearchService }, { type: PryDialogService }, { type: WmsService }, { type: WidgetFactoryService }, { type: PryI18nService }] });
|
|
12563
12577
|
|
|
12564
12578
|
const dashboardFeatureKey = '@pry/dashboard';
|
|
12565
12579
|
const dashboardInitialState = {
|
|
@@ -12682,7 +12696,7 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
12682
12696
|
};
|
|
12683
12697
|
}), on(DashboardActions.updateWidgetManifest, (state, action) => {
|
|
12684
12698
|
const myRank = state.manifests.tenants.indexOf(state.manifests.sender);
|
|
12685
|
-
const newWindows =
|
|
12699
|
+
const newWindows = structuredClone(state.manifests.manifest.windows);
|
|
12686
12700
|
(newWindows[myRank] ?? { widgets: [] }).widgets[action.index] = action.manifest;
|
|
12687
12701
|
return {
|
|
12688
12702
|
...state,
|
|
@@ -12702,19 +12716,7 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
12702
12716
|
...state.results.resultSets,
|
|
12703
12717
|
[action.id]: !action.next
|
|
12704
12718
|
? action.resultSet
|
|
12705
|
-
:
|
|
12706
|
-
items: [
|
|
12707
|
-
...new Set(Object.keys(action.resultSet.items).concat(Object.keys(state.results.resultSets[action.id].items)))
|
|
12708
|
-
]
|
|
12709
|
-
.map((key) => ({
|
|
12710
|
-
[key]: [...action.resultSet.items[key], ...state.results.resultSets[action.id].items[key]]
|
|
12711
|
-
}))
|
|
12712
|
-
.reduce((p, c) => ({ ...p, ...c }), {}),
|
|
12713
|
-
count: action.resultSet.count,
|
|
12714
|
-
relations: [...state.results.resultSets[action.id].relations, ...action.resultSet.relations],
|
|
12715
|
-
autoRefreshInterval: action.resultSet.autoRefreshInterval,
|
|
12716
|
-
searchAfter: action.resultSet.searchAfter
|
|
12717
|
-
}
|
|
12719
|
+
: ResultsetUtils.mergeResultSets(state.results.resultSets[action.id], action.resultSet)
|
|
12718
12720
|
},
|
|
12719
12721
|
resultSetsParams: {
|
|
12720
12722
|
...state.results.resultSetsParams,
|
|
@@ -12723,7 +12725,7 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
12723
12725
|
}
|
|
12724
12726
|
})), on(DashboardActions.maximizeWidget, (state, action) => {
|
|
12725
12727
|
const myRank = state.manifests.tenants.indexOf(state.manifests.sender);
|
|
12726
|
-
const newWindows =
|
|
12728
|
+
const newWindows = structuredClone(state.manifests.manifest.windows);
|
|
12727
12729
|
newWindows[myRank].widgets[action.widgetIndex].layout = {
|
|
12728
12730
|
x: 1,
|
|
12729
12731
|
y: 1,
|
|
@@ -12908,7 +12910,7 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
12908
12910
|
}
|
|
12909
12911
|
};
|
|
12910
12912
|
}), on(DashboardActions.addRelationsToResultSets, (state, action) => {
|
|
12911
|
-
const updatedResultSets =
|
|
12913
|
+
const updatedResultSets = structuredClone(state.results.resultSets);
|
|
12912
12914
|
action.relations.forEach((relation) => {
|
|
12913
12915
|
Object.keys(updatedResultSets).forEach((rsId) => {
|
|
12914
12916
|
const isConcerned = Object.keys(updatedResultSets[rsId].items).map((classId) => {
|
|
@@ -12926,8 +12928,27 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
12926
12928
|
resultSets: updatedResultSets
|
|
12927
12929
|
}
|
|
12928
12930
|
};
|
|
12931
|
+
}), on(DashboardActions.removeRelationsFromResultSets, (state, action) => {
|
|
12932
|
+
const updatedResultSets = structuredClone(state.results.resultSets);
|
|
12933
|
+
Object.keys(updatedResultSets).forEach((rsId) => {
|
|
12934
|
+
const isConcerned = Object.keys(updatedResultSets[rsId].items).map((classId) => {
|
|
12935
|
+
return updatedResultSets[rsId].items[classId].map((item) => item.id === action.relation.source || item.id === action.relation.destination);
|
|
12936
|
+
});
|
|
12937
|
+
if (isConcerned) {
|
|
12938
|
+
updatedResultSets[rsId].relations.filter((rel) => rel.relationType !== action.relation.relationType ||
|
|
12939
|
+
rel.source !== action.relation.source ||
|
|
12940
|
+
rel.destination !== action.relation.destination);
|
|
12941
|
+
}
|
|
12942
|
+
});
|
|
12943
|
+
return {
|
|
12944
|
+
...state,
|
|
12945
|
+
results: {
|
|
12946
|
+
...state.results,
|
|
12947
|
+
resultSets: updatedResultSets
|
|
12948
|
+
}
|
|
12949
|
+
};
|
|
12929
12950
|
}), on(DashboardActions.addItemToResultSets, (state, action) => {
|
|
12930
|
-
const updatedResultSets =
|
|
12951
|
+
const updatedResultSets = structuredClone(state.results.resultSets);
|
|
12931
12952
|
if (!!action.resultSet) {
|
|
12932
12953
|
if (!updatedResultSets[action.resultSet].items[action.item.oClass]) {
|
|
12933
12954
|
updatedResultSets[action.resultSet].items[action.item.oClass] = [action.item];
|
|
@@ -12974,7 +12995,7 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
12974
12995
|
};
|
|
12975
12996
|
}), on(DashboardActions.setGridLayout, (state, action) => {
|
|
12976
12997
|
const myRank = state.manifests.tenants.indexOf(state.manifests.sender);
|
|
12977
|
-
const newWindows =
|
|
12998
|
+
const newWindows = structuredClone(state.manifests.manifest.windows ?? []);
|
|
12978
12999
|
if (!newWindows[myRank]) {
|
|
12979
13000
|
newWindows[myRank] = { widgets: [] };
|
|
12980
13001
|
}
|
|
@@ -13016,7 +13037,7 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
13016
13037
|
}), on(DashboardActions.createTab, (state, action) => {
|
|
13017
13038
|
const myRank = state.manifests.tenants.indexOf(state.manifests.sender);
|
|
13018
13039
|
const myLayout = state.manifests.manifest.windows[myRank].grid?.layout ?? DashboardGridLayout.MANUAL;
|
|
13019
|
-
const newWindows =
|
|
13040
|
+
const newWindows = structuredClone(state.manifests.manifest.windows);
|
|
13020
13041
|
newWindows.push({ grid: { layout: myLayout }, widgets: [] });
|
|
13021
13042
|
return {
|
|
13022
13043
|
...state,
|
|
@@ -13033,11 +13054,11 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
13033
13054
|
...state,
|
|
13034
13055
|
manifests: {
|
|
13035
13056
|
...state.manifests,
|
|
13036
|
-
manifest:
|
|
13057
|
+
manifest: structuredClone(state.presentation.initial)
|
|
13037
13058
|
}
|
|
13038
13059
|
};
|
|
13039
13060
|
}), on(DashboardActions.propagateGridLayout, (state, action) => {
|
|
13040
|
-
const newWindows =
|
|
13061
|
+
const newWindows = structuredClone(state.manifests.manifest.windows);
|
|
13041
13062
|
newWindows[action.rank] = action.manifest;
|
|
13042
13063
|
return {
|
|
13043
13064
|
...state,
|
|
@@ -13103,7 +13124,7 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
13103
13124
|
}
|
|
13104
13125
|
}
|
|
13105
13126
|
})), on(DashboardActions.updateFilterValue, (state, action) => {
|
|
13106
|
-
const filters =
|
|
13127
|
+
const filters = structuredClone(state.manifests.manifest.filters ?? []);
|
|
13107
13128
|
const filterToUpdate = filters.find((filter) => filter.id === action.id);
|
|
13108
13129
|
if (filterToUpdate) {
|
|
13109
13130
|
if (!action.value) {
|
|
@@ -13211,11 +13232,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
13211
13232
|
|
|
13212
13233
|
class DefaultTooltipComponent extends BaseTooltipComponent {
|
|
13213
13234
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DefaultTooltipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
13214
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
13235
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: DefaultTooltipComponent, selector: "pry-default-tooltip", usesInheritance: true, ngImport: i0, template: "<div class=\"m-tooltip__item__content\">\n @if (data.item.properties) {\n @for (property of data.item.properties; track property) {\n <p>\n <span>{{ property.key | titlecase }} :</span> {{ property.value }}\n </p>\n }\n } @else {\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId: { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId: { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <p>\n <span>{{ '@pry.widget.itemId' | i18n }} :</span> {{ data.item?.id }}\n </p>\n }\n</div>\n", dependencies: [{ kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: TranslateItemToSymbolPipe, name: "translateItemToSymbol" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
13215
13236
|
}
|
|
13216
13237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DefaultTooltipComponent, decorators: [{
|
|
13217
13238
|
type: Component,
|
|
13218
|
-
args: [{ selector: 'pry-default-tooltip', template: "<div class=\"m-tooltip__item__content\">\n
|
|
13239
|
+
args: [{ selector: 'pry-default-tooltip', template: "<div class=\"m-tooltip__item__content\">\n @if (data.item.properties) {\n @for (property of data.item.properties; track property) {\n <p>\n <span>{{ property.key | titlecase }} :</span> {{ property.value }}\n </p>\n }\n } @else {\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId: { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId: { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <p>\n <span>{{ '@pry.widget.itemId' | i18n }} :</span> {{ data.item?.id }}\n </p>\n }\n</div>\n" }]
|
|
13219
13240
|
}] });
|
|
13220
13241
|
|
|
13221
13242
|
const TOOLTIP_DEFINITION = new InjectionToken('Tooltip definition');
|
|
@@ -13368,7 +13389,7 @@ class PryDashboardModule {
|
|
|
13368
13389
|
PryCoreModule,
|
|
13369
13390
|
PryCheckboxModule,
|
|
13370
13391
|
PryToggleModule,
|
|
13371
|
-
PryOverlayModule, i1.StoreFeatureModule, i1$
|
|
13392
|
+
PryOverlayModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, PryDatePickerModule,
|
|
13372
13393
|
PryI18nModule,
|
|
13373
13394
|
PrySinceDateModule,
|
|
13374
13395
|
PryPageLoaderModule], exports: [DashboardComponent,
|