aril 2.0.1-dev.4 → 2.0.1-dev.5
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/boot/config/apps/src/interfaces.d.ts +7 -1
- package/boot/config/apps/src/route-close.service.d.ts +8 -3
- package/boot/config/apps/src/route-permissions.d.ts +2 -2
- package/esm2022/boot/config/api/src/interfaces.mjs +3 -2
- package/esm2022/boot/config/apps/src/apps.service.mjs +2 -2
- package/esm2022/boot/config/apps/src/custom-route-reuse-strategy.class.mjs +4 -4
- package/esm2022/boot/config/apps/src/interfaces.mjs +2 -1
- package/esm2022/boot/config/apps/src/route-close.service.mjs +11 -4
- package/esm2022/boot/config/apps/src/route-permissions.mjs +24 -6
- package/esm2022/boot/config/plugins/src/plugins.service.mjs +7 -5
- package/esm2022/boot/host/src/bootstrap.mjs +5 -3
- package/esm2022/boot/mfe/src/bootstrap.mjs +11 -3
- package/esm2022/http/index.mjs +1 -2
- package/esm2022/http/src/serviceBase.mjs +4 -4
- package/esm2022/http/src/serviceStateMethods.mjs +9 -1
- package/esm2022/keycloak/src/auth.interceptor.mjs +5 -2
- package/esm2022/selection/aril-selection.mjs +5 -0
- package/esm2022/selection/index.mjs +2 -0
- package/esm2022/selection/src/interfaces.mjs +2 -0
- package/esm2022/selection/src/selection-group.service.mjs +195 -0
- package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +2 -2
- package/esm2022/theme/layout/index.mjs +4 -2
- package/esm2022/ui/button/index.mjs +1 -2
- package/esm2022/ui/button/src/button.component.mjs +5 -2
- package/esm2022/ui/charts/index.mjs +1 -11
- package/esm2022/ui/lib/index.mjs +1 -4
- package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +9 -5
- package/esm2022/ui/multiSelect/src/multi-select.component.mjs +25 -25
- package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +2 -2
- package/esm2022/ui/selectBox/src/select-box.component.mjs +11 -34
- package/esm2022/ui/table/src/table.component.mjs +10 -5
- package/esm2022/ui/value/src/value.component.mjs +3 -2
- package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +14 -6
- package/esm2022/util/activity/aril-util-activity.mjs +5 -0
- package/esm2022/util/activity/index.mjs +4 -0
- package/esm2022/util/activity/src/activity.constants.mjs +4 -0
- package/esm2022/util/activity/src/activity.service.mjs +218 -0
- package/esm2022/util/activity/src/activity.types.mjs +2 -0
- package/esm2022/util/block/src/block.mjs +9 -25
- package/esm2022/util/pub-sub/src/pub-sub.service.mjs +10 -5
- package/fesm2022/{aril-app.component-s14ruALV.mjs → aril-app.component-MjG_tPEe.mjs} +2 -1
- package/fesm2022/{aril-app.component-s14ruALV.mjs.map → aril-app.component-MjG_tPEe.mjs.map} +1 -1
- package/fesm2022/aril-boot-config-api.mjs +2 -1
- package/fesm2022/aril-boot-config-api.mjs.map +1 -1
- package/fesm2022/aril-boot-config-apps.mjs +36 -12
- package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
- package/fesm2022/aril-boot-config-plugins.mjs +6 -4
- package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
- package/fesm2022/aril-boot-host.mjs +4 -2
- package/fesm2022/aril-boot-host.mjs.map +1 -1
- package/fesm2022/{aril-boot-mfe-app.component-oxzMhRXe.mjs → aril-boot-mfe-app.component-DtspQ3J8.mjs} +3 -2
- package/fesm2022/{aril-boot-mfe-app.component-oxzMhRXe.mjs.map → aril-boot-mfe-app.component-DtspQ3J8.mjs.map} +1 -1
- package/fesm2022/{aril-boot-mfe-aril-boot-mfe-CKOM61xb.mjs → aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs} +12 -4
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs.map +1 -0
- package/fesm2022/aril-boot-mfe.mjs +2 -1
- package/fesm2022/aril-boot-mfe.mjs.map +1 -1
- package/fesm2022/aril-http.mjs +11 -7
- package/fesm2022/aril-http.mjs.map +1 -1
- package/fesm2022/aril-keycloak.mjs +4 -1
- package/fesm2022/aril-keycloak.mjs.map +1 -1
- package/fesm2022/aril-selection.mjs +202 -0
- package/fesm2022/aril-selection.mjs.map +1 -0
- package/fesm2022/aril-theme-layout.mjs +4 -193
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-business-enumPicker.mjs +14 -6
- package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-button.mjs +5 -17
- package/fesm2022/aril-ui-button.mjs.map +1 -1
- package/fesm2022/aril-ui-charts.mjs +4 -1302
- package/fesm2022/aril-ui-charts.mjs.map +1 -1
- package/fesm2022/aril-ui-lib.mjs +10 -98
- package/fesm2022/aril-ui-lib.mjs.map +1 -1
- package/fesm2022/aril-ui-multiSelect.mjs +24 -24
- package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
- package/fesm2022/aril-ui-relativeDateSelector.mjs +1 -1
- package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
- package/fesm2022/aril-ui-selectBox.mjs +10 -33
- package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
- package/fesm2022/aril-ui-table.mjs +9 -4
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/fesm2022/aril-ui-value.mjs +2 -1
- package/fesm2022/aril-ui-value.mjs.map +1 -1
- package/fesm2022/aril-util-activity.mjs +228 -0
- package/fesm2022/aril-util-activity.mjs.map +1 -0
- package/fesm2022/aril-util-block.mjs +9 -25
- package/fesm2022/aril-util-block.mjs.map +1 -1
- package/fesm2022/aril-util-pub-sub.mjs +9 -4
- package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
- package/fesm2022/aril.mjs +14 -5
- package/fesm2022/aril.mjs.map +1 -1
- package/http/index.d.ts +0 -1
- package/http/src/serviceStateMethods.d.ts +1 -0
- package/package.json +215 -239
- package/selection/index.d.ts +1 -0
- package/selection/src/interfaces.d.ts +8 -0
- package/{theme/layout/service → selection/src}/selection-group.service.d.ts +1 -1
- package/theme/layout/index.d.ts +1 -1
- package/theme/layout/index.ts +3 -1
- package/ui/button/index.d.ts +0 -1
- package/ui/button/src/button.component.d.ts +2 -0
- package/ui/charts/index.d.ts +0 -10
- package/ui/lib/index.d.ts +0 -3
- package/ui/lib/src/form/form-error-message.directive.d.ts +4 -3
- package/ui/multiSelect/src/multi-select.component.d.ts +4 -5
- package/ui/selectBox/src/select-box.component.d.ts +2 -7
- package/ui/table/src/table.component.d.ts +3 -2
- package/util/activity/index.d.ts +3 -0
- package/util/activity/src/activity.constants.d.ts +3 -0
- package/util/activity/src/activity.service.d.ts +35 -0
- package/util/activity/src/activity.types.d.ts +13 -0
- package/util/block/src/block.d.ts +4 -10
- package/util/pub-sub/src/pub-sub.service.d.ts +2 -2
- package/esm2022/http/src/serviceMockBase.mjs +0 -4
- package/esm2022/theme/layout/service/selection-group.service.mjs +0 -195
- package/esm2022/ui/button/src/split-button.component.mjs +0 -18
- package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +0 -124
- package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +0 -164
- package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +0 -116
- package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +0 -114
- package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +0 -100
- package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +0 -117
- package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +0 -252
- package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +0 -89
- package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +0 -82
- package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +0 -137
- package/esm2022/ui/charts/src/theme/theme.mjs +0 -54
- package/esm2022/ui/dxEditor/aril-ui-dxEditor.mjs +0 -5
- package/esm2022/ui/dxEditor/index.mjs +0 -2
- package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +0 -26
- package/esm2022/ui/lib/src/form/form-field-builder.mjs +0 -23
- package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +0 -49
- package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +0 -25
- package/esm2022/ui/overlayPanel/aril-ui-overlayPanel.mjs +0 -5
- package/esm2022/ui/overlayPanel/index.mjs +0 -2
- package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +0 -20
- package/esm2022/ui/tooltip/aril-ui-tooltip.mjs +0 -5
- package/esm2022/ui/tooltip/index.mjs +0 -2
- package/esm2022/ui/tooltip/src/tooltip-component.mjs +0 -23
- package/esm2022/ui/treeTable/aril-ui-treeTable.mjs +0 -5
- package/esm2022/ui/treeTable/index.mjs +0 -2
- package/esm2022/ui/treeTable/src/tree-table.component.mjs +0 -55
- package/esm2022/ui-business/operation-types-dialog/aril-ui-business-operation-types-dialog.mjs +0 -5
- package/esm2022/ui-business/operation-types-dialog/index.mjs +0 -2
- package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +0 -76
- package/esm2022/util/unwrap/aril-util-unwrap.mjs +0 -5
- package/esm2022/util/unwrap/index.mjs +0 -2
- package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +0 -24
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-CKOM61xb.mjs.map +0 -1
- package/fesm2022/aril-ui-business-operation-types-dialog.mjs +0 -83
- package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +0 -1
- package/fesm2022/aril-ui-dxEditor.mjs +0 -33
- package/fesm2022/aril-ui-dxEditor.mjs.map +0 -1
- package/fesm2022/aril-ui-overlayPanel.mjs +0 -27
- package/fesm2022/aril-ui-overlayPanel.mjs.map +0 -1
- package/fesm2022/aril-ui-tooltip.mjs +0 -30
- package/fesm2022/aril-ui-tooltip.mjs.map +0 -1
- package/fesm2022/aril-ui-treeTable.mjs +0 -62
- package/fesm2022/aril-ui-treeTable.mjs.map +0 -1
- package/fesm2022/aril-util-unwrap.mjs +0 -31
- package/fesm2022/aril-util-unwrap.mjs.map +0 -1
- package/http/src/serviceMockBase.d.ts +0 -6
- package/theme/layout/service/selection-group.service.ts +0 -209
- package/ui/button/src/split-button.component.d.ts +0 -8
- package/ui/charts/src/amCharts/column/column-chart.component.d.ts +0 -25
- package/ui/charts/src/amCharts/line/line-chart.component.d.ts +0 -26
- package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +0 -24
- package/ui/charts/src/highCharts/area/area-chart.component.d.ts +0 -20
- package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +0 -26
- package/ui/charts/src/highCharts/column/column-chart.component.d.ts +0 -28
- package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +0 -32
- package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +0 -21
- package/ui/charts/src/highCharts/line/line-chart.component.d.ts +0 -21
- package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +0 -27
- package/ui/charts/src/theme/theme.d.ts +0 -5
- package/ui/dxEditor/index.d.ts +0 -1
- package/ui/dxEditor/src/dx-editor.component.d.ts +0 -11
- package/ui/lib/src/form/form-field-builder.d.ts +0 -8
- package/ui/lib/src/input/common-input-validators.service.d.ts +0 -20
- package/ui/lib/src/input/input-disabled.directive.d.ts +0 -9
- package/ui/overlayPanel/index.d.ts +0 -1
- package/ui/overlayPanel/src/overlay-panel.component.d.ts +0 -8
- package/ui/tooltip/index.d.ts +0 -1
- package/ui/tooltip/src/tooltip-component.d.ts +0 -14
- package/ui/treeTable/index.d.ts +0 -1
- package/ui/treeTable/src/tree-table.component.d.ts +0 -21
- package/ui-business/operation-types-dialog/index.d.ts +0 -1
- package/ui-business/operation-types-dialog/src/operation-types-dialog.component.d.ts +0 -28
- package/util/unwrap/index.d.ts +0 -1
- package/util/unwrap/src/unwrap-tag.directive.d.ts +0 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './src/selection-group.service';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { SelectionGroupDTO } from '
|
|
2
|
+
import { SelectionGroupDTO } from 'aril/boot/bridge';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class SelectionGroupService {
|
|
5
5
|
private readonly http;
|
package/theme/layout/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './app/layout/app.layout.component';
|
|
2
2
|
export * from './app/layout/mfe.layout.component';
|
|
3
3
|
export * from './service/app.menu.service';
|
|
4
|
-
export
|
|
4
|
+
export { SelectionGroupService } from 'aril/selection';
|
|
5
5
|
export * from './service/breadcrumb.service';
|
|
6
6
|
export * from './service/app.layout.service';
|
|
7
7
|
export * from './app/favorite-pages/favorite-pages.service';
|
package/theme/layout/index.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export * from './app/layout/app.layout.component';
|
|
2
2
|
export * from './app/layout/mfe.layout.component';
|
|
3
3
|
export * from './service/app.menu.service';
|
|
4
|
-
|
|
4
|
+
// SelectionGroupService aril/selection entry point'ine taşındı (theme/layout → selectBox circular'ını
|
|
5
|
+
// kırmak için). Mevcut tüketiciler aril/theme/layout'tan import etmeye devam etsin diye re-export edilir.
|
|
6
|
+
export { SelectionGroupService } from 'aril/selection';
|
|
5
7
|
export * from './service/breadcrumb.service';
|
|
6
8
|
export * from './service/app.layout.service';
|
|
7
9
|
export * from './app/favorite-pages/favorite-pages.service';
|
package/ui/button/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { PrimeIcon } from 'aril/ui/lib';
|
|
3
|
+
import { ActivityService } from 'aril/util/activity';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
type Size = 'sm' | 'md' | 'lg';
|
|
5
6
|
type Colors = 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'help' | 'danger';
|
|
@@ -18,6 +19,7 @@ export declare class ButtonComponent {
|
|
|
18
19
|
iconPos: import("@angular/core").InputSignal<ButtonIconPosition, ButtonIconPosition>;
|
|
19
20
|
color: import("@angular/core").InputSignal<Colors, Colors>;
|
|
20
21
|
clickEvent: EventEmitter<Event>;
|
|
22
|
+
protected readonly activity: ActivityService;
|
|
21
23
|
_icon: import("@angular/core").Signal<string>;
|
|
22
24
|
_color: import("@angular/core").Signal<string>;
|
|
23
25
|
_styleClass: import("@angular/core").Signal<string>;
|
package/ui/charts/index.d.ts
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
export * from './src/amCharts/pie/pie-chart.component';
|
|
2
|
-
export * from './src/amCharts/column/column-chart.component';
|
|
3
|
-
export * from './src/amCharts/line/line-chart.component';
|
|
4
|
-
export * from './src/highCharts/pie/pie-chart.component';
|
|
5
|
-
export * from './src/highCharts/bar/bar-chart.component';
|
|
6
|
-
export * from './src/highCharts/column/column-chart.component';
|
|
7
|
-
export * from './src/highCharts/area/area-chart.component';
|
|
8
1
|
export * from './src/highCharts/line/line-chart-datetime-axis.component';
|
|
9
|
-
export * from './src/highCharts/line/line-chart-series.component';
|
|
10
|
-
export * as HighChartLine from './src/highCharts/line/line-chart.component';
|
|
11
2
|
export * from './src/highCharts/gauge/solid-gauge.component';
|
|
12
|
-
export * from './src/highCharts/heatmap/heatMap-chart.component';
|
package/ui/lib/index.d.ts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
export * from './src/form/form-error-message.directive';
|
|
2
2
|
export * from './src/form/form-validation';
|
|
3
|
-
export * from './src/form/form-field-builder';
|
|
4
3
|
export * from './src/grid/flex-grid.directive';
|
|
5
4
|
export * from './src/grid/enum-color-picker.pipe';
|
|
6
5
|
export * from './src/input/baseInput';
|
|
7
|
-
export * from './src/input/common-input-validators.service';
|
|
8
6
|
export * from './src/input/dx-input-error-message.pipe';
|
|
9
|
-
export * from './src/input/input-disabled.directive';
|
|
10
7
|
export * from './src/input/input-error-message.pipe';
|
|
11
8
|
export * from './src/input/input-transforms';
|
|
12
9
|
export * from './src/input/value-accessor.directive';
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { ComponentRef, OnInit, ViewContainerRef } from '@angular/core';
|
|
1
|
+
import { ComponentRef, DestroyRef, OnInit, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { FormGroup } from '@angular/forms';
|
|
3
3
|
import { FormErrorMessagesComponent } from './form-error-message.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class FormErrorMessageDirective implements OnInit {
|
|
6
|
-
private viewContainerRef;
|
|
7
|
-
|
|
6
|
+
private readonly viewContainerRef;
|
|
7
|
+
private readonly destroyRef;
|
|
8
|
+
constructor(viewContainerRef: ViewContainerRef, destroyRef: DestroyRef);
|
|
8
9
|
formErrorMessage: import("@angular/core").InputSignal<FormGroup<any>, FormGroup<any>>;
|
|
9
10
|
errorKeys: string[];
|
|
10
11
|
componentRef: ComponentRef<FormErrorMessagesComponent>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
1
|
import { TranslocoService } from '@ngneat/transloco';
|
|
2
|
+
import { SelectionGroupService } from 'aril/selection';
|
|
3
3
|
import { BaseInputComponent } from 'aril/ui/lib';
|
|
4
4
|
import { SelectBoxItem } from './interfaces';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "aril/ui/lib";
|
|
7
7
|
export declare class MultiSelectComponent extends BaseInputComponent {
|
|
8
|
-
private
|
|
8
|
+
private readonly selectionGroupService;
|
|
9
9
|
translocoService: TranslocoService;
|
|
10
10
|
options: import("@angular/core").InputSignal<[], []>;
|
|
11
11
|
optionLabel: import("@angular/core").InputSignal<string, string>;
|
|
@@ -19,10 +19,9 @@ export declare class MultiSelectComponent extends BaseInputComponent {
|
|
|
19
19
|
tooltipPosition: import("@angular/core").InputSignal<any, any>;
|
|
20
20
|
groupName: import("@angular/core").InputSignal<string, string>;
|
|
21
21
|
parentSelectionKey: import("@angular/core").InputSignal<null, null>;
|
|
22
|
-
selectionItems: import("@angular/core").WritableSignal<SelectBoxItem[] | null>;
|
|
23
22
|
showClear: import("@angular/core").InputSignal<boolean, boolean>;
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
selectionItems: import("@angular/core").Signal<SelectBoxItem[] | null>;
|
|
24
|
+
constructor(selectionGroupService: SelectionGroupService, translocoService: TranslocoService);
|
|
26
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent, never>;
|
|
27
26
|
static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent, "aril-multi-select[ngModel], aril-multi-select[formControl], aril-multi-select[formControlName]", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "defaultLabel": { "alias": "defaultLabel"; "required": false; "isSignal": true; }; "selectedItemsLabel": { "alias": "selectedItemsLabel"; "required": false; "isSignal": true; }; "appendTo": { "alias": "appendTo"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "groupName": { "alias": "groupName"; "required": false; "isSignal": true; }; "parentSelectionKey": { "alias": "parentSelectionKey"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.ValueAccessorDirective; inputs: {}; outputs: {}; }]>;
|
|
28
27
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
1
|
import { EventEmitter } from '@angular/core';
|
|
3
2
|
import { TranslocoService } from '@ngneat/transloco';
|
|
4
3
|
import { BaseInputComponent } from 'aril/ui/lib';
|
|
@@ -6,25 +5,21 @@ import { SelectBoxItem } from './interfaces';
|
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
import * as i1 from "aril/ui/lib";
|
|
8
7
|
export declare class SelectBoxComponent extends BaseInputComponent {
|
|
9
|
-
private http;
|
|
10
8
|
translocoService: TranslocoService;
|
|
11
9
|
itemKey: import("@angular/core").InputSignal<string, string>;
|
|
12
10
|
itemText: import("@angular/core").InputSignal<string, string>;
|
|
13
|
-
groupName: import("@angular/core").InputSignal<string, string>;
|
|
14
11
|
parentSelectionKey: import("@angular/core").InputSignal<null, null>;
|
|
15
12
|
tabindex: import("@angular/core").InputSignal<number, number>;
|
|
16
13
|
items: import("@angular/core").InputSignal<SelectBoxItem[], SelectBoxItem[]>;
|
|
17
14
|
selectedItemText: string;
|
|
18
|
-
selectionItems: import("@angular/core").WritableSignal<SelectBoxItem[] | null>;
|
|
19
15
|
/** * @description when grouped = true, option item structure { key:string, items:[] } */
|
|
20
16
|
grouped: import("@angular/core").InputSignal<boolean, boolean>;
|
|
21
17
|
showClearButton: import("@angular/core").InputSignal<boolean, boolean>;
|
|
22
18
|
placeholder: import("@angular/core").InputSignal<string, string>;
|
|
23
19
|
searchExpr: import("@angular/core").InputSignal<string | string[], string | string[]>;
|
|
24
20
|
onSelectionChanged: EventEmitter<SelectBoxItem>;
|
|
25
|
-
constructor(
|
|
21
|
+
constructor(translocoService: TranslocoService);
|
|
26
22
|
setTitle(event?: any): void;
|
|
27
|
-
getSelectionItems(): Promise<void>;
|
|
28
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectBoxComponent, never>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SelectBoxComponent, "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", never, { "itemKey": { "alias": "itemKey"; "required": false; "isSignal": true; }; "itemText": { "alias": "itemText"; "required": false; "isSignal": true; }; "
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectBoxComponent, "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", never, { "itemKey": { "alias": "itemKey"; "required": false; "isSignal": true; }; "itemText": { "alias": "itemText"; "required": false; "isSignal": true; }; "parentSelectionKey": { "alias": "parentSelectionKey"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "grouped": { "alias": "grouped"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "searchExpr": { "alias": "searchExpr"; "required": false; "isSignal": true; }; }, { "onSelectionChanged": "onSelectionChanged"; }, never, never, true, [{ directive: typeof i1.ValueAccessorDirective; inputs: {}; outputs: {}; }]>;
|
|
30
25
|
}
|
|
@@ -65,7 +65,7 @@ export declare class TableComponent {
|
|
|
65
65
|
globalSearchValue?: string;
|
|
66
66
|
isAllSelected: boolean;
|
|
67
67
|
selectedRows: any;
|
|
68
|
-
pageOptions:
|
|
68
|
+
pageOptions: number[];
|
|
69
69
|
exportColumns: Array<{
|
|
70
70
|
title: string;
|
|
71
71
|
dataKey: string;
|
|
@@ -76,10 +76,11 @@ export declare class TableComponent {
|
|
|
76
76
|
private requestedEnumKeys;
|
|
77
77
|
ColumnFilterTypeEnum: typeof ColumnFilterTypeEnum;
|
|
78
78
|
sidebarVisible: boolean;
|
|
79
|
+
currentPageReportText: string;
|
|
79
80
|
constructor(translocoService: TranslocoService, selectionGroupService: SelectionGroupService);
|
|
80
81
|
private isInitialLoad;
|
|
81
82
|
ngOnChanges(changes: SimpleChanges): void;
|
|
82
|
-
|
|
83
|
+
private buildCurrentPageReportText;
|
|
83
84
|
toggleExport: (event: Event) => void;
|
|
84
85
|
handleLazyLoadEvent(event: any): void;
|
|
85
86
|
filterGlobal(e: any): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ActivityEventType } from './activity.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class ActivityService {
|
|
4
|
+
private readonly keycloak;
|
|
5
|
+
private readonly router;
|
|
6
|
+
private readonly location;
|
|
7
|
+
private sessionId;
|
|
8
|
+
private username;
|
|
9
|
+
private previousPath;
|
|
10
|
+
private started;
|
|
11
|
+
getSessionId(): string | null;
|
|
12
|
+
start(options?: {
|
|
13
|
+
shellMode?: boolean;
|
|
14
|
+
}): void;
|
|
15
|
+
track(event: string, properties?: Record<string, unknown>, type?: ActivityEventType): void;
|
|
16
|
+
private readSessionIdFromKeycloak;
|
|
17
|
+
private captureSessionContext;
|
|
18
|
+
private subscribeKeycloakRefresh;
|
|
19
|
+
private subscribeLifecycleEvents;
|
|
20
|
+
private subscribeRouterEvents;
|
|
21
|
+
private maybeEmitPageView;
|
|
22
|
+
private handleSessionStart;
|
|
23
|
+
private purgeStaleSessionMarkers;
|
|
24
|
+
private sendSessionEnd;
|
|
25
|
+
private toAbsoluteUrl;
|
|
26
|
+
/**
|
|
27
|
+
* MFE shared scope'unda `Router` ve `Location` null (her ikisi de child injector'da yaşıyor).
|
|
28
|
+
* Bu durumda Angular soyutlamalarına dayanamayız; `window.location.hash`'ten okuruz —
|
|
29
|
+
* browser'ın sahip olduğu güncel URL.
|
|
30
|
+
*/
|
|
31
|
+
private readCurrentPath;
|
|
32
|
+
private send;
|
|
33
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ActivityService, never>;
|
|
34
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ActivityService>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ActivityEventType = 'SESSION_START' | 'SESSION_END' | 'PAGE_VIEW' | 'BUTTON_CLICK' | 'CUSTOM';
|
|
2
|
+
export interface ActivityEvent {
|
|
3
|
+
type: ActivityEventType;
|
|
4
|
+
sessionId: string;
|
|
5
|
+
username: string;
|
|
6
|
+
event: string;
|
|
7
|
+
page: string;
|
|
8
|
+
ip: string;
|
|
9
|
+
referrer: string;
|
|
10
|
+
traceId: string;
|
|
11
|
+
clientTimestamp?: number;
|
|
12
|
+
properties: Record<string, unknown>;
|
|
13
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
declare const KTBlockUI: any;
|
|
4
4
|
interface BlockOptions {
|
|
@@ -6,23 +6,17 @@ interface BlockOptions {
|
|
|
6
6
|
overlayClass?: string;
|
|
7
7
|
message?: string;
|
|
8
8
|
}
|
|
9
|
-
export declare class Block implements AfterViewInit {
|
|
10
|
-
private element;
|
|
9
|
+
export declare class Block implements AfterViewInit, OnDestroy {
|
|
10
|
+
private readonly element;
|
|
11
11
|
constructor(element: ElementRef);
|
|
12
12
|
arilBlock: import("@angular/core").InputSignal<boolean, boolean>;
|
|
13
13
|
blockOptions: import("@angular/core").InputSignal<BlockOptions, BlockOptions>;
|
|
14
14
|
blockUI: typeof KTBlockUI;
|
|
15
15
|
target: import("@angular/core").WritableSignal<HTMLElement>;
|
|
16
16
|
ngAfterViewInit(): void;
|
|
17
|
+
ngOnDestroy(): void;
|
|
17
18
|
getTarget(element: ElementRef): HTMLElement;
|
|
18
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<Block, never>;
|
|
19
20
|
static ɵdir: i0.ɵɵDirectiveDeclaration<Block, "[arilBlock]", never, { "arilBlock": { "alias": "arilBlock"; "required": true; "isSignal": true; }; "blockOptions": { "alias": "blockOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
20
21
|
}
|
|
21
|
-
export declare class BlockPage {
|
|
22
|
-
constructor();
|
|
23
|
-
arilBlockPage: import("@angular/core").InputSignal<boolean, boolean>;
|
|
24
|
-
blockOptions: import("@angular/core").InputSignal<BlockOptions, BlockOptions>;
|
|
25
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BlockPage, never>;
|
|
26
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BlockPage, "[arilBlockPage]", never, { "arilBlockPage": { "alias": "arilBlockPage"; "required": true; "isSignal": true; }; "blockOptions": { "alias": "blockOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
27
|
-
}
|
|
28
22
|
export {};
|
|
@@ -13,8 +13,8 @@ declare const PubSubEvents: {
|
|
|
13
13
|
};
|
|
14
14
|
export declare class PubSubService {
|
|
15
15
|
publish(e: CustomEvent): void;
|
|
16
|
-
subscribe(eventName: keyof typeof PubSubEvents, listener: (data: any) => void):
|
|
17
|
-
unSubscribe(eventName: keyof typeof PubSubEvents,
|
|
16
|
+
subscribe(eventName: keyof typeof PubSubEvents, listener: (data: any) => void): EventListener;
|
|
17
|
+
unSubscribe(eventName: keyof typeof PubSubEvents, handler: EventListener): void;
|
|
18
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<PubSubService, never>;
|
|
19
19
|
static ɵprov: i0.ɵɵInjectableDeclaration<PubSubService>;
|
|
20
20
|
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export function ServiceCallMock(httpMethod, proxy, serviceURL, mockAPI, message) {
|
|
2
|
-
// return ServiceCall(httpMethod, proxy, serviceURL, message, mockAPI, true);
|
|
3
|
-
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZU1vY2tCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC9odHRwL3NyYy9zZXJ2aWNlTW9ja0Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLGVBQWUsQ0FDOUIsVUFBdUIsRUFDdkIsS0FBaUIsRUFDakIsVUFBa0IsRUFDbEIsT0FBZSxFQUNmLE9BQW1FO0lBRW5FLDZFQUE2RTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUE1ldGhvZHMsIFByb3h5VHlwZXMgfSBmcm9tICcuLi9saWIvZW51bXMnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlQ2FsbCB9IGZyb20gJy4vc2VydmljZUJhc2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNlcnZpY2VDYWxsTW9jayhcclxuXHRodHRwTWV0aG9kOiBIVFRQTWV0aG9kcyxcclxuXHRwcm94eTogUHJveHlUeXBlcyxcclxuXHRzZXJ2aWNlVVJMOiBzdHJpbmcsXHJcblx0bW9ja0FQSTogc3RyaW5nLFxyXG5cdG1lc3NhZ2U/OiB7IHN1Y2Nlc3M/OiBzdHJpbmc7IGVycm9yPzogc3RyaW5nOyB1c2VEZWZhdWx0OiBib29sZWFuIH1cclxuKSB7XHJcblx0Ly8gcmV0dXJuIFNlcnZpY2VDYWxsKGh0dHBNZXRob2QsIHByb3h5LCBzZXJ2aWNlVVJMLCBtZXNzYWdlLCBtb2NrQVBJLCB0cnVlKTtcclxufVxyXG4iXX0=
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { take } from 'rxjs';
|
|
3
|
-
import { bridge } from 'aril/boot/bridge';
|
|
4
|
-
import { API_CONFIGS } from 'aril/boot/config/api';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common/http";
|
|
7
|
-
// Key başına maksimum ardışık fetch hatası: limit aşılınca o key oturum boyu yeniden denenmez.
|
|
8
|
-
// Sınırsız retry'da kalıcı hata veren bir grup (örn. silinmiş grup → 404), diğer grupların her
|
|
9
|
-
// başarılı yüklemesinde (map güncellemesi tüm enum computed'larını yeniden çalıştırır) yeniden
|
|
10
|
-
// POST edilirdi → istek/console fırtınası.
|
|
11
|
-
const MAX_FETCH_FAILURES = 3;
|
|
12
|
-
export class SelectionGroupService {
|
|
13
|
-
constructor(http) {
|
|
14
|
-
this.http = http;
|
|
15
|
-
// State cross-MFE paylaşımlı: bridge globalThis-singleton'ında yaşar (bkz. mfe-bridge.ts).
|
|
16
|
-
// Servis instance'ı MFE/tab başına çoğalsa da tüm okuma/yazma tek bridge state'ine gider.
|
|
17
|
-
this.selectionGroups = bridge.selectionGroups;
|
|
18
|
-
this.loading = bridge.selectionLoading;
|
|
19
|
-
this.loaded = bridge.selectionLoaded;
|
|
20
|
-
this.failures = bridge.selectionFailures;
|
|
21
|
-
// loadStates + invalidate yalnızca ilk instance'ta (cross-MFE bir kez): tek localStorage
|
|
22
|
-
// yüklemesi, tek `/versions` çağrısı. effect her instance'ta kurulur ama hepsi aynı paylaşılan
|
|
23
|
-
// state'i yazdığından ezme olmaz.
|
|
24
|
-
if (!bridge.selectionInitialized) {
|
|
25
|
-
bridge.selectionInitialized = true;
|
|
26
|
-
this.loadStatesFromLocalStorage();
|
|
27
|
-
this.invalidateStaleGroups();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
// localStorage'a slim cache yazar. `effect` YERİNE bilinçli olarak doğrudan çağrılır: signal'i
|
|
31
|
-
// değiştiren her yer (fetchEnum, invalidateStaleGroups) persist'i açıkça tetikler. NOT: webpack MF
|
|
32
|
-
// config'iyle `@angular/core` artık singleton shared olduğundan effect-tabanlı persist de çalışırdı;
|
|
33
|
-
// yine de açık/öngörülebilir olması (effect içinde gizli signal-write + NG0600 riski olmaması) için
|
|
34
|
-
// doğrudan çağrı tercih edildi.
|
|
35
|
-
persistToLocalStorage() {
|
|
36
|
-
try {
|
|
37
|
-
const slim = this.slimForStorage(this.selectionGroups());
|
|
38
|
-
localStorage.setItem('selection-groups', btoa(encodeURI(JSON.stringify(slim))));
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
// QuotaExceededError vb. → eski cache'i koru, yeni yazımı sessizce atla.
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
loadStatesFromLocalStorage() {
|
|
45
|
-
const selectionGroups = localStorage.getItem('selection-groups');
|
|
46
|
-
if (selectionGroups) {
|
|
47
|
-
try {
|
|
48
|
-
const decodedData = decodeURI(atob(selectionGroups));
|
|
49
|
-
// Dynamic gruplar zaten persist edilmiyor (slimForStorage onları atlar) → ekstra
|
|
50
|
-
// filtre gerekmez; localStorage içeriği yalnızca Fixed gruplardır.
|
|
51
|
-
const restored = JSON.parse(decodedData);
|
|
52
|
-
this.selectionGroups.set(restored);
|
|
53
|
-
// Restore edilen gruplar loaded sayılır: aksi halde koşulsuz fetchEnum çağıran
|
|
54
|
-
// consumer'lar guard'ı geçip her oturum yeniden çeker (cache faydası kaybolur).
|
|
55
|
-
// Stale'lik kontrolü invalidateStaleGroups'un işi. null entry'ler (legacy) loaded
|
|
56
|
-
// işaretlenmez — işaretlenirse o grup bir daha hiç yüklenemezdi.
|
|
57
|
-
Object.entries(restored).forEach(([key, group]) => {
|
|
58
|
-
if (group)
|
|
59
|
-
this.loaded.set(key, true);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
catch (e) {
|
|
63
|
-
console.error(e);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
// Dynamic grupları atlar + Fixed grupları yalnızca render (value/table/picker/export) ve invalidate
|
|
68
|
-
// için gerekli alanlara indirger. localStorage'da audit/id/açıklama gibi kullanılmayan alanları tutmaz.
|
|
69
|
-
slimForStorage(groups) {
|
|
70
|
-
const out = {};
|
|
71
|
-
for (const [key, group] of Object.entries(groups)) {
|
|
72
|
-
if (!group || group.loadStrategy === 'Dynamic')
|
|
73
|
-
continue;
|
|
74
|
-
out[key] = {
|
|
75
|
-
version: group.version,
|
|
76
|
-
selectionItems: (group.selectionItems ?? []).map((it) => ({
|
|
77
|
-
selectionKey: it.selectionKey,
|
|
78
|
-
selectionDisplay: it.selectionDisplay,
|
|
79
|
-
selectionMultiLanguageDisplays: it.selectionMultiLanguageDisplays,
|
|
80
|
-
showOrder: it.showOrder,
|
|
81
|
-
parentSelectionKey: it.parentSelectionKey
|
|
82
|
-
}))
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
return out;
|
|
86
|
-
}
|
|
87
|
-
// App init'te enum version'larını çekip localStorage'daki stale grupları temizler.
|
|
88
|
-
// Silinen grup, tüketici component'lerin `if (!selectionGroup) fetchEnum()` guard'ıyla yeniden yüklenir.
|
|
89
|
-
invalidateStaleGroups() {
|
|
90
|
-
// App-init snapshot: yalnızca localStorage'dan yüklenen gruplar kontrol edilir. Yanıt gelene
|
|
91
|
-
// kadar consumer'ların fetchEnum ile yüklediği taze gruplar taranmaz/silinmez (aksi halde
|
|
92
|
-
// taze grup silinir ve kalıcı per-component fetch guard'ları onu bir daha çekmeyebilir).
|
|
93
|
-
const keysToCheck = Object.keys(this.selectionGroups());
|
|
94
|
-
if (keysToCheck.length === 0)
|
|
95
|
-
return;
|
|
96
|
-
const hostApi = API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/host/v1`);
|
|
97
|
-
this.http
|
|
98
|
-
.get(hostApi + '/selection-group/versions')
|
|
99
|
-
.pipe(take(1))
|
|
100
|
-
.subscribe({
|
|
101
|
-
next: (versions) => {
|
|
102
|
-
// Boş/bozuk yanıt güvenlik şeridi: aşağıdaki "listede olmayanı sil" kuralı
|
|
103
|
-
// boş listeyle tüm cache'i yanlışlıkla boşaltmasın.
|
|
104
|
-
if (!versions?.length)
|
|
105
|
-
return;
|
|
106
|
-
const latest = new Map(versions.map((v) => [v.groupName, v.version]));
|
|
107
|
-
let changed = false;
|
|
108
|
-
const next = { ...this.selectionGroups() };
|
|
109
|
-
keysToCheck.forEach((key) => {
|
|
110
|
-
const group = next[key];
|
|
111
|
-
if (!group)
|
|
112
|
-
return;
|
|
113
|
-
const separatorIndex = key.indexOf('~');
|
|
114
|
-
if (separatorIndex === -1)
|
|
115
|
-
return;
|
|
116
|
-
const serverVersion = latest.get(key.substring(0, separatorIndex));
|
|
117
|
-
// serverVersion == null: grup /versions listesinde yok → sunucudan silinmiş /
|
|
118
|
-
// yeniden adlandırılmış demektir (endpoint Fixed grupların tam listesini döner)
|
|
119
|
-
// → o da evict edilir; kalırsa kaldırılmış enum değerleri süresiz render edilir.
|
|
120
|
-
if (serverVersion == null || serverVersion !== group.version) {
|
|
121
|
-
delete next[key];
|
|
122
|
-
this.loaded.delete(key);
|
|
123
|
-
this.failures.delete(key);
|
|
124
|
-
// Uçuştaki fetch'in flag'i korunur: silinirse ikinci bir consumer guard'ı
|
|
125
|
-
// geçip duplicate /load atar ve export-overlay'in isLoading poll'ü grubu
|
|
126
|
-
// beklemeden erken geçer. Yanıt geldiğinde flag'i fetchEnum kendisi yönetir.
|
|
127
|
-
if (!this.loading.get(key)) {
|
|
128
|
-
this.loading.delete(key);
|
|
129
|
-
}
|
|
130
|
-
changed = true;
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
if (changed) {
|
|
134
|
-
this.selectionGroups.set(next);
|
|
135
|
-
this.persistToLocalStorage();
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
error: () => {
|
|
139
|
-
// versions endpoint yok/erişilemez: sessizce mevcut cache ile devam.
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
fetchEnum(groupName, parentSelectionKey = 'ALL') {
|
|
144
|
-
const key = groupName + '~' + parentSelectionKey;
|
|
145
|
-
if (this.loaded.get(key) || this.loading.get(key))
|
|
146
|
-
return;
|
|
147
|
-
if ((this.failures.get(key) ?? 0) >= MAX_FETCH_FAILURES)
|
|
148
|
-
return;
|
|
149
|
-
const payload = {
|
|
150
|
-
groupName,
|
|
151
|
-
parentSelectionKey
|
|
152
|
-
};
|
|
153
|
-
this.loading.set(key, true);
|
|
154
|
-
this.loaded.set(key, false);
|
|
155
|
-
const hostApi = API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/host/v1`);
|
|
156
|
-
this.http
|
|
157
|
-
.post(hostApi + '/selection-group/load', payload)
|
|
158
|
-
.pipe(take(1))
|
|
159
|
-
.subscribe({
|
|
160
|
-
next: (selectionGroup) => {
|
|
161
|
-
this.loading.set(key, false);
|
|
162
|
-
this.loaded.set(key, true);
|
|
163
|
-
this.failures.delete(key);
|
|
164
|
-
this.selectionGroups.update((groups) => ({
|
|
165
|
-
...groups,
|
|
166
|
-
[key]: selectionGroup
|
|
167
|
-
}));
|
|
168
|
-
this.persistToLocalStorage();
|
|
169
|
-
},
|
|
170
|
-
// HTTP hatasında loading'i sıfırla: aksi halde guard (loaded/loading) bu enum'u
|
|
171
|
-
// kilitler. loading/loaded bridge'de cross-MFE SHARED olduğundan, tek bir anlık hata
|
|
172
|
-
// bu enum'u TÜM remote'larda hard-reload'a kadar bir daha çekilemez yapardı. loading=false
|
|
173
|
-
// → sonraki fetchEnum (component init/retry) yeniden deneyebilir. loaded zaten false kalır.
|
|
174
|
-
// Deneme sayısı MAX_FETCH_FAILURES ile sınırlı: kalıcı hatada sonsuz retry önlenir.
|
|
175
|
-
error: () => {
|
|
176
|
-
this.loading.set(key, false);
|
|
177
|
-
this.failures.set(key, (this.failures.get(key) ?? 0) + 1);
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
// key formatı: `groupName~parentSelectionKey` (fetchEnum'daki composite key ile aynı).
|
|
182
|
-
// Direkt olarak groupName geçilirse Map'te eşleşme olmaz ve her zaman false döner.
|
|
183
|
-
isLoading(key) {
|
|
184
|
-
return this.loading.get(key) ?? false;
|
|
185
|
-
}
|
|
186
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectionGroupService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
187
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectionGroupService, providedIn: 'root' }); }
|
|
188
|
-
}
|
|
189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectionGroupService, decorators: [{
|
|
190
|
-
type: Injectable,
|
|
191
|
-
args: [{
|
|
192
|
-
providedIn: 'root'
|
|
193
|
-
}]
|
|
194
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWdyb3VwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9zZXJ2aWNlL3NlbGVjdGlvbi1ncm91cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFJbkQsK0ZBQStGO0FBQy9GLCtGQUErRjtBQUMvRiwrRkFBK0Y7QUFDL0YsMkNBQTJDO0FBQzNDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBSzdCLE1BQU0sT0FBTyxxQkFBcUI7SUFTakMsWUFBNkIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQVI3QywyRkFBMkY7UUFDM0YsMEZBQTBGO1FBQzFGLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUV4QixZQUFPLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ2xDLFdBQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7UUFHcEQseUZBQXlGO1FBQ3pGLCtGQUErRjtRQUMvRixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDbkMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNGLENBQUM7SUFFRCwrRkFBK0Y7SUFDL0Ys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Q0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDM0QsQ0FBQztTQUNELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx1RkFBdUY7SUFDdkYsbUZBQW1GO0lBQ25GLFNBQVMsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3ZDLENBQUM7OEdBNUxXLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRnJCLE1BQU07OzJGQUVOLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBicmlkZ2UgfSBmcm9tICdhcmlsL2Jvb3QvYnJpZGdlJztcclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cERUTywgU2VsZWN0aW9uR3JvdXBWZXJzaW9uRFRPLCBTZWxlY3Rpb25SZXF1ZXN0RFRPIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5cclxuLy8gS2V5IGJhxZ/EsW5hIG1ha3NpbXVtIGFyZMSxxZ/EsWsgZmV0Y2ggaGF0YXPEsTogbGltaXQgYcWfxLFsxLFuY2EgbyBrZXkgb3R1cnVtIGJveXUgeWVuaWRlbiBkZW5lbm1lei5cclxuLy8gU8SxbsSxcnPEsXogcmV0cnknZGEga2FsxLFjxLEgaGF0YSB2ZXJlbiBiaXIgZ3J1cCAow7Zybi4gc2lsaW5tacWfIGdydXAg4oaSIDQwNCksIGRpxJ9lciBncnVwbGFyxLFuIGhlclxyXG4vLyBiYcWfYXLEsWzEsSB5w7xrbGVtZXNpbmRlIChtYXAgZ8O8bmNlbGxlbWVzaSB0w7xtIGVudW0gY29tcHV0ZWQnbGFyxLFuxLEgeWVuaWRlbiDDp2FsxLHFn3TEsXLEsXIpIHllbmlkZW5cclxuLy8gUE9TVCBlZGlsaXJkaSDihpIgaXN0ZWsvY29uc29sZSBmxLFydMSxbmFzxLEuXHJcbmNvbnN0IE1BWF9GRVRDSF9GQUlMVVJFUyA9IDM7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Hcm91cFNlcnZpY2Uge1xyXG5cdC8vIFN0YXRlIGNyb3NzLU1GRSBwYXlsYcWfxLFtbMSxOiBicmlkZ2UgZ2xvYmFsVGhpcy1zaW5nbGV0b24nxLFuZGEgeWHFn2FyIChia3ouIG1mZS1icmlkZ2UudHMpLlxyXG5cdC8vIFNlcnZpcyBpbnN0YW5jZSfEsSBNRkUvdGFiIGJhxZ/EsW5hIMOnb8SfYWxzYSBkYSB0w7xtIG9rdW1hL3lhem1hIHRlayBicmlkZ2Ugc3RhdGUnaW5lIGdpZGVyLlxyXG5cdHNlbGVjdGlvbkdyb3VwcyA9IGJyaWRnZS5zZWxlY3Rpb25Hcm91cHM7XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZyA9IGJyaWRnZS5zZWxlY3Rpb25Mb2FkaW5nO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgbG9hZGVkID0gYnJpZGdlLnNlbGVjdGlvbkxvYWRlZDtcclxuXHRwcml2YXRlIHJlYWRvbmx5IGZhaWx1cmVzID0gYnJpZGdlLnNlbGVjdGlvbkZhaWx1cmVzO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQpIHtcclxuXHRcdC8vIGxvYWRTdGF0ZXMgKyBpbnZhbGlkYXRlIHlhbG7EsXpjYSBpbGsgaW5zdGFuY2UndGEgKGNyb3NzLU1GRSBiaXIga2V6KTogdGVrIGxvY2FsU3RvcmFnZVxyXG5cdFx0Ly8gecO8a2xlbWVzaSwgdGVrIGAvdmVyc2lvbnNgIMOnYcSfcsSxc8SxLiBlZmZlY3QgaGVyIGluc3RhbmNlJ3RhIGt1cnVsdXIgYW1hIGhlcHNpIGF5bsSxIHBheWxhxZ/EsWxhblxyXG5cdFx0Ly8gc3RhdGUnaSB5YXpkxLHEn8SxbmRhbiBlem1lIG9sbWF6LlxyXG5cdFx0aWYgKCFicmlkZ2Uuc2VsZWN0aW9uSW5pdGlhbGl6ZWQpIHtcclxuXHRcdFx0YnJpZGdlLnNlbGVjdGlvbkluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHRcdFx0dGhpcy5sb2FkU3RhdGVzRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG5cdFx0XHR0aGlzLmludmFsaWRhdGVTdGFsZUdyb3VwcygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gbG9jYWxTdG9yYWdlJ2Egc2xpbSBjYWNoZSB5YXphci4gYGVmZmVjdGAgWUVSxLBORSBiaWxpbsOnbGkgb2xhcmFrIGRvxJ9ydWRhbiDDp2HEn3LEsWzEsXI6IHNpZ25hbCdpXHJcblx0Ly8gZGXEn2nFn3RpcmVuIGhlciB5ZXIgKGZldGNoRW51bSwgaW52YWxpZGF0ZVN0YWxlR3JvdXBzKSBwZXJzaXN0J2kgYcOnxLFrw6dhIHRldGlrbGVyLiBOT1Q6IHdlYnBhY2sgTUZcclxuXHQvLyBjb25maWcnaXlsZSBgQGFuZ3VsYXIvY29yZWAgYXJ0xLFrIHNpbmdsZXRvbiBzaGFyZWQgb2xkdcSfdW5kYW4gZWZmZWN0LXRhYmFubMSxIHBlcnNpc3QgZGUgw6dhbMSxxZ/EsXJkxLE7XHJcblx0Ly8geWluZSBkZSBhw6fEsWsvw7ZuZ8O2csO8bGViaWxpciBvbG1hc8SxIChlZmZlY3QgacOnaW5kZSBnaXpsaSBzaWduYWwtd3JpdGUgKyBORzA2MDAgcmlza2kgb2xtYW1hc8SxKSBpw6dpblxyXG5cdC8vIGRvxJ9ydWRhbiDDp2HEn3LEsSB0ZXJjaWggZWRpbGRpLlxyXG5cdHByaXZhdGUgcGVyc2lzdFRvTG9jYWxTdG9yYWdlKCkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3Qgc2xpbSA9IHRoaXMuc2xpbUZvclN0b3JhZ2UodGhpcy5zZWxlY3Rpb25Hcm91cHMoKSk7XHJcblx0XHRcdGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzZWxlY3Rpb24tZ3JvdXBzJywgYnRvYShlbmNvZGVVUkkoSlNPTi5zdHJpbmdpZnkoc2xpbSkpKSk7XHJcblx0XHR9IGNhdGNoIHtcclxuXHRcdFx0Ly8gUXVvdGFFeGNlZWRlZEVycm9yIHZiLiDihpIgZXNraSBjYWNoZSdpIGtvcnUsIHllbmkgeWF6xLFtxLEgc2Vzc2l6Y2UgYXRsYS5cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbG9hZFN0YXRlc0Zyb21Mb2NhbFN0b3JhZ2UoKSB7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cHMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2VsZWN0aW9uLWdyb3VwcycpO1xyXG5cclxuXHRcdGlmIChzZWxlY3Rpb25Hcm91cHMpIHtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRjb25zdCBkZWNvZGVkRGF0YSA9IGRlY29kZVVSSShhdG9iKHNlbGVjdGlvbkdyb3VwcykpO1xyXG5cdFx0XHRcdC8vIER5bmFtaWMgZ3J1cGxhciB6YXRlbiBwZXJzaXN0IGVkaWxtaXlvciAoc2xpbUZvclN0b3JhZ2Ugb25sYXLEsSBhdGxhcikg4oaSIGVrc3RyYVxyXG5cdFx0XHRcdC8vIGZpbHRyZSBnZXJla21lejsgbG9jYWxTdG9yYWdlIGnDp2VyacSfaSB5YWxuxLF6Y2EgRml4ZWQgZ3J1cGxhcmTEsXIuXHJcblx0XHRcdFx0Y29uc3QgcmVzdG9yZWQ6IHsgW2tleTogc3RyaW5nXTogU2VsZWN0aW9uR3JvdXBEVE8gfCBudWxsIH0gPSBKU09OLnBhcnNlKGRlY29kZWREYXRhKTtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3Vwcy5zZXQocmVzdG9yZWQpO1xyXG5cclxuXHRcdFx0XHQvLyBSZXN0b3JlIGVkaWxlbiBncnVwbGFyIGxvYWRlZCBzYXnEsWzEsXI6IGFrc2kgaGFsZGUga2/Fn3Vsc3V6IGZldGNoRW51bSDDp2HEn8SxcmFuXHJcblx0XHRcdFx0Ly8gY29uc3VtZXInbGFyIGd1YXJkJ8SxIGdlw6dpcCBoZXIgb3R1cnVtIHllbmlkZW4gw6dla2VyIChjYWNoZSBmYXlkYXPEsSBrYXlib2x1cikuXHJcblx0XHRcdFx0Ly8gU3RhbGUnbGlrIGtvbnRyb2zDvCBpbnZhbGlkYXRlU3RhbGVHcm91cHMndW4gacWfaS4gbnVsbCBlbnRyeSdsZXIgKGxlZ2FjeSkgbG9hZGVkXHJcblx0XHRcdFx0Ly8gacWfYXJldGxlbm1leiDigJQgacWfYXJldGxlbmlyc2UgbyBncnVwIGJpciBkYWhhIGhpw6cgecO8a2xlbmVtZXpkaS5cclxuXHRcdFx0XHRPYmplY3QuZW50cmllcyhyZXN0b3JlZCkuZm9yRWFjaCgoW2tleSwgZ3JvdXBdKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoZ3JvdXApIHRoaXMubG9hZGVkLnNldChrZXksIHRydWUpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdFx0Y29uc29sZS5lcnJvcihlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gRHluYW1pYyBncnVwbGFyxLEgYXRsYXIgKyBGaXhlZCBncnVwbGFyxLEgeWFsbsSxemNhIHJlbmRlciAodmFsdWUvdGFibGUvcGlja2VyL2V4cG9ydCkgdmUgaW52YWxpZGF0ZVxyXG5cdC8vIGnDp2luIGdlcmVrbGkgYWxhbmxhcmEgaW5kaXJnZXIuIGxvY2FsU3RvcmFnZSdkYSBhdWRpdC9pZC9hw6fEsWtsYW1hIGdpYmkga3VsbGFuxLFsbWF5YW4gYWxhbmxhcsSxIHR1dG1hei5cclxuXHRwcml2YXRlIHNsaW1Gb3JTdG9yYWdlKGdyb3VwczogeyBba2V5OiBzdHJpbmddOiBTZWxlY3Rpb25Hcm91cERUTyB8IG51bGwgfSk6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9IHtcclxuXHRcdGNvbnN0IG91dDogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcclxuXHRcdGZvciAoY29uc3QgW2tleSwgZ3JvdXBdIG9mIE9iamVjdC5lbnRyaWVzKGdyb3VwcykpIHtcclxuXHRcdFx0aWYgKCFncm91cCB8fCBncm91cC5sb2FkU3RyYXRlZ3kgPT09ICdEeW5hbWljJykgY29udGludWU7XHJcblx0XHRcdG91dFtrZXldID0ge1xyXG5cdFx0XHRcdHZlcnNpb246IGdyb3VwLnZlcnNpb24sXHJcblx0XHRcdFx0c2VsZWN0aW9uSXRlbXM6IChncm91cC5zZWxlY3Rpb25JdGVtcyA/PyBbXSkubWFwKChpdCkgPT4gKHtcclxuXHRcdFx0XHRcdHNlbGVjdGlvbktleTogaXQuc2VsZWN0aW9uS2V5LFxyXG5cdFx0XHRcdFx0c2VsZWN0aW9uRGlzcGxheTogaXQuc2VsZWN0aW9uRGlzcGxheSxcclxuXHRcdFx0XHRcdHNlbGVjdGlvbk11bHRpTGFuZ3VhZ2VEaXNwbGF5czogaXQuc2VsZWN0aW9uTXVsdGlMYW5ndWFnZURpc3BsYXlzLFxyXG5cdFx0XHRcdFx0c2hvd09yZGVyOiBpdC5zaG93T3JkZXIsXHJcblx0XHRcdFx0XHRwYXJlbnRTZWxlY3Rpb25LZXk6IGl0LnBhcmVudFNlbGVjdGlvbktleVxyXG5cdFx0XHRcdH0pKVxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG91dDtcclxuXHR9XHJcblxyXG5cdC8vIEFwcCBpbml0J3RlIGVudW0gdmVyc2lvbidsYXLEsW7EsSDDp2VraXAgbG9jYWxTdG9yYWdlJ2Rha2kgc3RhbGUgZ3J1cGxhcsSxIHRlbWl6bGVyLlxyXG5cdC8vIFNpbGluZW4gZ3J1cCwgdMO8a2V0aWNpIGNvbXBvbmVudCdsZXJpbiBgaWYgKCFzZWxlY3Rpb25Hcm91cCkgZmV0Y2hFbnVtKClgIGd1YXJkJ8SxeWxhIHllbmlkZW4gecO8a2xlbmlyLlxyXG5cdHByaXZhdGUgaW52YWxpZGF0ZVN0YWxlR3JvdXBzKCkge1xyXG5cdFx0Ly8gQXBwLWluaXQgc25hcHNob3Q6IHlhbG7EsXpjYSBsb2NhbFN0b3JhZ2UnZGFuIHnDvGtsZW5lbiBncnVwbGFyIGtvbnRyb2wgZWRpbGlyLiBZYW7EsXQgZ2VsZW5lXHJcblx0XHQvLyBrYWRhciBjb25zdW1lcidsYXLEsW4gZmV0Y2hFbnVtIGlsZSB5w7xrbGVkacSfaSB0YXplIGdydXBsYXIgdGFyYW5tYXovc2lsaW5tZXogKGFrc2kgaGFsZGVcclxuXHRcdC8vIHRhemUgZ3J1cCBzaWxpbmlyIHZlIGthbMSxY8SxIHBlci1jb21wb25lbnQgZmV0Y2ggZ3VhcmQnbGFyxLEgb251IGJpciBkYWhhIMOnZWttZXllYmlsaXIpLlxyXG5cdFx0Y29uc3Qga2V5c1RvQ2hlY2sgPSBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGlvbkdyb3VwcygpKTtcclxuXHRcdGlmIChrZXlzVG9DaGVjay5sZW5ndGggPT09IDApIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBob3N0QXBpID0gQVBJX0NPTkZJR1MuYXBpLnJlcGxhY2UoL1xcL1teXFwvXStcXC92MSQvLCBgL2hvc3QvdjFgKTtcclxuXHJcblx0XHR0aGlzLmh0dHBcclxuXHRcdFx0LmdldDxTZWxlY3Rpb25Hcm91cFZlcnNpb25EVE9bXT4oaG9zdEFwaSArICcvc2VsZWN0aW9uLWdyb3VwL3ZlcnNpb25zJylcclxuXHRcdFx0LnBpcGUodGFrZSgxKSlcclxuXHRcdFx0LnN1YnNjcmliZSh7XHJcblx0XHRcdFx0bmV4dDogKHZlcnNpb25zKSA9PiB7XHJcblx0XHRcdFx0XHQvLyBCb8WfL2JvenVrIHlhbsSxdCBnw7x2ZW5saWsgxZ9lcmlkaTogYcWfYcSfxLFkYWtpIFwibGlzdGVkZSBvbG1heWFuxLEgc2lsXCIga3VyYWzEsVxyXG5cdFx0XHRcdFx0Ly8gYm/FnyBsaXN0ZXlsZSB0w7xtIGNhY2hlJ2kgeWFubMSxxZ9sxLFrbGEgYm/Fn2FsdG1hc8Sxbi5cclxuXHRcdFx0XHRcdGlmICghdmVyc2lvbnM/Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuXHRcdFx0XHRcdGNvbnN0IGxhdGVzdCA9IG5ldyBNYXAodmVyc2lvbnMubWFwKCh2KSA9PiBbdi5ncm91cE5hbWUsIHYudmVyc2lvbl0gYXMgW3N0cmluZywgbnVtYmVyXSkpO1xyXG5cclxuXHRcdFx0XHRcdGxldCBjaGFuZ2VkID0gZmFsc2U7XHJcblx0XHRcdFx0XHRjb25zdCBuZXh0ID0geyAuLi50aGlzLnNlbGVjdGlvbkdyb3VwcygpIH07XHJcblxyXG5cdFx0XHRcdFx0a2V5c1RvQ2hlY2suZm9yRWFjaCgoa2V5KSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGdyb3VwID0gbmV4dFtrZXldO1xyXG5cdFx0XHRcdFx0XHRpZiAoIWdyb3VwKSByZXR1cm47XHJcblxyXG5cdFx0XHRcdFx0XHRjb25zdCBzZXBhcmF0b3JJbmRleCA9IGtleS5pbmRleE9mKCd+Jyk7XHJcblx0XHRcdFx0XHRcdGlmIChzZXBhcmF0b3JJbmRleCA9PT0gLTEpIHJldHVybjtcclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IHNlcnZlclZlcnNpb24gPSBsYXRlc3QuZ2V0KGtleS5zdWJzdHJpbmcoMCwgc2VwYXJhdG9ySW5kZXgpKTtcclxuXHJcblx0XHRcdFx0XHRcdC8vIHNlcnZlclZlcnNpb24gPT0gbnVsbDogZ3J1cCAvdmVyc2lvbnMgbGlzdGVzaW5kZSB5b2sg4oaSIHN1bnVjdWRhbiBzaWxpbm1pxZ8gL1xyXG5cdFx0XHRcdFx0XHQvLyB5ZW5pZGVuIGFkbGFuZMSxcsSxbG3EscWfIGRlbWVrdGlyIChlbmRwb2ludCBGaXhlZCBncnVwbGFyxLFuIHRhbSBsaXN0ZXNpbmkgZMO2bmVyKVxyXG5cdFx0XHRcdFx0XHQvLyDihpIgbyBkYSBldmljdCBlZGlsaXI7IGthbMSxcnNhIGthbGTEsXLEsWxtxLHFnyBlbnVtIGRlxJ9lcmxlcmkgc8O8cmVzaXogcmVuZGVyIGVkaWxpci5cclxuXHRcdFx0XHRcdFx0aWYgKHNlcnZlclZlcnNpb24gPT0gbnVsbCB8fCBzZXJ2ZXJWZXJzaW9uICE9PSBncm91cC52ZXJzaW9uKSB7XHJcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIG5leHRba2V5XTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRlZC5kZWxldGUoa2V5KTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmZhaWx1cmVzLmRlbGV0ZShrZXkpO1xyXG5cdFx0XHRcdFx0XHRcdC8vIFXDp3XFn3Rha2kgZmV0Y2gnaW4gZmxhZydpIGtvcnVudXI6IHNpbGluaXJzZSBpa2luY2kgYmlyIGNvbnN1bWVyIGd1YXJkJ8SxXHJcblx0XHRcdFx0XHRcdFx0Ly8gZ2XDp2lwIGR1cGxpY2F0ZSAvbG9hZCBhdGFyIHZlIGV4cG9ydC1vdmVybGF5J2luIGlzTG9hZGluZyBwb2xsJ8O8IGdydWJ1XHJcblx0XHRcdFx0XHRcdFx0Ly8gYmVrbGVtZWRlbiBlcmtlbiBnZcOnZXIuIFlhbsSxdCBnZWxkacSfaW5kZSBmbGFnJ2kgZmV0Y2hFbnVtIGtlbmRpc2kgecO2bmV0aXIuXHJcblx0XHRcdFx0XHRcdFx0aWYgKCF0aGlzLmxvYWRpbmcuZ2V0KGtleSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZy5kZWxldGUoa2V5KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0Y2hhbmdlZCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHRcdGlmIChjaGFuZ2VkKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBzLnNldChuZXh0KTtcclxuXHRcdFx0XHRcdFx0dGhpcy5wZXJzaXN0VG9Mb2NhbFN0b3JhZ2UoKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGVycm9yOiAoKSA9PiB7XHJcblx0XHRcdFx0XHQvLyB2ZXJzaW9ucyBlbmRwb2ludCB5b2svZXJpxZ9pbGVtZXo6IHNlc3NpemNlIG1ldmN1dCBjYWNoZSBpbGUgZGV2YW0uXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGZldGNoRW51bShncm91cE5hbWU6IHN0cmluZywgcGFyZW50U2VsZWN0aW9uS2V5OiBzdHJpbmcgPSAnQUxMJykge1xyXG5cdFx0Y29uc3Qga2V5ID0gZ3JvdXBOYW1lICsgJ34nICsgcGFyZW50U2VsZWN0aW9uS2V5O1xyXG5cclxuXHRcdGlmICh0aGlzLmxvYWRlZC5nZXQoa2V5KSB8fCB0aGlzLmxvYWRpbmcuZ2V0KGtleSkpIHJldHVybjtcclxuXHRcdGlmICgodGhpcy5mYWlsdXJlcy5nZXQoa2V5KSA/PyAwKSA+PSBNQVhfRkVUQ0hfRkFJTFVSRVMpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBwYXlsb2FkOiBTZWxlY3Rpb25SZXF1ZXN0RFRPID0ge1xyXG5cdFx0XHRncm91cE5hbWUsXHJcblx0XHRcdHBhcmVudFNlbGVjdGlvbktleVxyXG5cdFx0fTtcclxuXHJcblx0XHR0aGlzLmxvYWRpbmcuc2V0KGtleSwgdHJ1ZSk7XHJcblx0XHR0aGlzLmxvYWRlZC5zZXQoa2V5LCBmYWxzZSk7XHJcblxyXG5cdFx0Y29uc3QgaG9zdEFwaSA9IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXlxcL10rXFwvdjEkLywgYC9ob3N0L3YxYCk7XHJcblxyXG5cdFx0dGhpcy5odHRwXHJcblx0XHRcdC5wb3N0PFNlbGVjdGlvbkdyb3VwRFRPPihob3N0QXBpICsgJy9zZWxlY3Rpb24tZ3JvdXAvbG9hZCcsIHBheWxvYWQpXHJcblx0XHRcdC5waXBlKHRha2UoMSkpXHJcblx0XHRcdC5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdG5leHQ6IChzZWxlY3Rpb25Hcm91cCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5sb2FkaW5nLnNldChrZXksIGZhbHNlKTtcclxuXHRcdFx0XHRcdHRoaXMubG9hZGVkLnNldChrZXksIHRydWUpO1xyXG5cdFx0XHRcdFx0dGhpcy5mYWlsdXJlcy5kZWxldGUoa2V5KTtcclxuXHJcblx0XHRcdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3Vwcy51cGRhdGUoKGdyb3VwcykgPT4gKHtcclxuXHRcdFx0XHRcdFx0Li4uZ3JvdXBzLFxyXG5cdFx0XHRcdFx0XHRba2V5XTogc2VsZWN0aW9uR3JvdXBcclxuXHRcdFx0XHRcdH0pKTtcclxuXHJcblx0XHRcdFx0XHR0aGlzLnBlcnNpc3RUb0xvY2FsU3RvcmFnZSgpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0Ly8gSFRUUCBoYXRhc8SxbmRhIGxvYWRpbmcnaSBzxLFmxLFybGE6IGFrc2kgaGFsZGUgZ3VhcmQgKGxvYWRlZC9sb2FkaW5nKSBidSBlbnVtJ3VcclxuXHRcdFx0XHQvLyBraWxpdGxlci4gbG9hZGluZy9sb2FkZWQgYnJpZGdlJ2RlIGNyb3NzLU1GRSBTSEFSRUQgb2xkdcSfdW5kYW4sIHRlayBiaXIgYW5sxLFrIGhhdGFcclxuXHRcdFx0XHQvLyBidSBlbnVtJ3UgVMOcTSByZW1vdGUnbGFyZGEgaGFyZC1yZWxvYWQnYSBrYWRhciBiaXIgZGFoYSDDp2VraWxlbWV6IHlhcGFyZMSxLiBsb2FkaW5nPWZhbHNlXHJcblx0XHRcdFx0Ly8g4oaSIHNvbnJha2kgZmV0Y2hFbnVtIChjb21wb25lbnQgaW5pdC9yZXRyeSkgeWVuaWRlbiBkZW5leWViaWxpci4gbG9hZGVkIHphdGVuIGZhbHNlIGthbMSxci5cclxuXHRcdFx0XHQvLyBEZW5lbWUgc2F5xLFzxLEgTUFYX0ZFVENIX0ZBSUxVUkVTIGlsZSBzxLFuxLFybMSxOiBrYWzEsWPEsSBoYXRhZGEgc29uc3V6IHJldHJ5IMO2bmxlbmlyLlxyXG5cdFx0XHRcdGVycm9yOiAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRpbmcuc2V0KGtleSwgZmFsc2UpO1xyXG5cdFx0XHRcdFx0dGhpcy5mYWlsdXJlcy5zZXQoa2V5LCAodGhpcy5mYWlsdXJlcy5nZXQoa2V5KSA/PyAwKSArIDEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvLyBrZXkgZm9ybWF0xLE6IGBncm91cE5hbWV+cGFyZW50U2VsZWN0aW9uS2V5YCAoZmV0Y2hFbnVtJ2Rha2kgY29tcG9zaXRlIGtleSBpbGUgYXluxLEpLlxyXG5cdC8vIERpcmVrdCBvbGFyYWsgZ3JvdXBOYW1lIGdlw6dpbGlyc2UgTWFwJ3RlIGXFn2xlxZ9tZSBvbG1heiB2ZSBoZXIgemFtYW4gZmFsc2UgZMO2bmVyLlxyXG5cdGlzTG9hZGluZyhrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMubG9hZGluZy5nZXQoa2V5KSA/PyBmYWxzZTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
-
import { SplitButtonModule } from 'primeng/splitbutton';
|
|
3
|
-
import { ButtonComponent } from './button.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "primeng/splitbutton";
|
|
6
|
-
export class SplitButtonComponent extends ButtonComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.menu = input.required();
|
|
10
|
-
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SplitButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: SplitButtonComponent, isStandalone: true, selector: "aril-split-button", inputs: { menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<p-splitButton [label]=\"label()\" [icon]=\"_icon()\" [styleClass]=\"_styleClass()\" [model]=\"menu()\" [disabled]=\"disabled()\">\r\n</p-splitButton>\r\n", dependencies: [{ kind: "ngmodule", type: SplitButtonModule }, { kind: "component", type: i1.SplitButton, selector: "p-splitButton", inputs: ["model", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "icon", "iconPos", "label", "tooltip", "tooltipOptions", "style", "styleClass", "menuStyle", "menuStyleClass", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions", "buttonProps", "menuButtonProps", "autofocus", "disabled", "tabindex", "menuButtonDisabled", "buttonDisabled"], outputs: ["onClick", "onMenuHide", "onMenuShow", "onDropdownClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SplitButtonComponent, decorators: [{
|
|
15
|
-
type: Component,
|
|
16
|
-
args: [{ standalone: true, selector: 'aril-split-button', imports: [SplitButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-splitButton [label]=\"label()\" [icon]=\"_icon()\" [styleClass]=\"_styleClass()\" [model]=\"menu()\" [disabled]=\"disabled()\">\r\n</p-splitButton>\r\n" }]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvYnV0dG9uL3NyYy9zcGxpdC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9idXR0b24vc3JjL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQVNyRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQVB6RDs7UUFRQyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYyxDQUFDO0tBQ3BDOzhHQUZZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG9PQ2RqQyw0SkFFQSwyQ0RTVyxpQkFBaUI7OzJGQUdmLG9CQUFvQjtrQkFQaEMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sbUJBQW1CLFdBRXBCLENBQUMsaUJBQWlCLENBQUMsbUJBQ1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgU3BsaXRCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3NwbGl0YnV0dG9uJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1zcGxpdC1idXR0b24nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9zcGxpdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG5cdGltcG9ydHM6IFtTcGxpdEJ1dHRvbk1vZHVsZV0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwbGl0QnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQnV0dG9uQ29tcG9uZW50IHtcclxuXHRtZW51ID0gaW5wdXQucmVxdWlyZWQ8TWVudUl0ZW1bXT4oKTtcclxufVxyXG4iLCI8cC1zcGxpdEJ1dHRvbiBbbGFiZWxdPVwibGFiZWwoKVwiIFtpY29uXT1cIl9pY29uKClcIiBbc3R5bGVDbGFzc109XCJfc3R5bGVDbGFzcygpXCIgW21vZGVsXT1cIm1lbnUoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCI+XHJcbjwvcC1zcGxpdEJ1dHRvbj5cclxuIl19
|