ca-components 1.0.77 → 1.0.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/ca-components.module.mjs +16 -4
- package/esm2022/lib/components/ca-activity-log-list/ca-activity-log-list.component.mjs +1 -1
- package/esm2022/lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component.mjs +1 -1
- package/esm2022/lib/components/ca-filters/components/ca-dispatcher-filter/ca-dispatcher-filter.component.mjs +2 -2
- package/esm2022/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.mjs +2 -2
- package/esm2022/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.mjs +2 -2
- package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.mjs +1 -1
- package/esm2022/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.mjs +1 -1
- package/esm2022/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.mjs +2 -2
- package/esm2022/lib/components/ca-input/base-classes/ca-input-base-helpres.mjs +237 -0
- package/esm2022/lib/components/ca-input/base-classes/ca-input-base.mjs +1020 -0
- package/esm2022/lib/components/ca-input/base-classes/ca-input-event-manager.mjs +24 -0
- package/esm2022/lib/components/ca-input/ca-input.component.mjs +53 -163
- package/esm2022/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.mjs +4 -4
- package/esm2022/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.mjs +11 -17
- package/esm2022/lib/components/ca-input/config/ca-input.config.mjs +1 -1
- package/esm2022/lib/components/ca-input/directives/caps-lock.directive.mjs +50 -0
- package/esm2022/lib/components/ca-input/directives/index.mjs +5 -1
- package/esm2022/lib/components/ca-input/directives/input-max-value.directive.mjs +53 -0
- package/esm2022/lib/components/ca-input/directives/min-max-value.directive.mjs +1 -1
- package/esm2022/lib/components/ca-input/directives/price_format.directive.mjs +41 -0
- package/esm2022/lib/components/ca-input/directives/restrict-input.directive.mjs +98 -0
- package/esm2022/lib/components/ca-input/enums/input-text-transform.enum.mjs +9 -0
- package/esm2022/lib/components/ca-input/input-test/input-test.component.mjs +175 -0
- package/esm2022/lib/components/ca-input/pipes/input-container-class.pipe.mjs +16 -16
- package/esm2022/lib/components/ca-input/pipes/input-datetime-picker-class.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-input/pipes/input-error.pipe.mjs +18 -15
- package/esm2022/lib/components/ca-input/pipes/input-pattern.pipe.mjs +322 -0
- package/esm2022/lib/components/ca-input/services/index.mjs +1 -2
- package/esm2022/lib/components/ca-input/utils/constants/input-constants.mjs +102 -1
- package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +2 -2
- package/esm2022/lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component.mjs +809 -0
- package/esm2022/lib/components/ca-input-dropdown/ca-input-dropdown.component.mjs +18 -18
- package/esm2022/lib/components/ca-map/ca-map.component.mjs +137 -210
- package/esm2022/lib/components/ca-map/enums/google-map.enum.mjs +2 -1
- package/esm2022/lib/components/ca-map/enums/map-marker-string.enum.mjs +2 -1
- package/esm2022/lib/components/ca-map/models/map.model.mjs +1 -1
- package/esm2022/lib/components/ca-map/utils/constants/index.mjs +2 -1
- package/esm2022/lib/components/ca-map/utils/constants/map-marker-icons.constants.mjs +119 -0
- package/esm2022/lib/components/ca-map/utils/constants/map-options.constants.mjs +1 -2
- package/esm2022/lib/components/ca-map/utils/helpers/map-marker-icon.helper.mjs +50 -12
- package/esm2022/lib/components/ca-map/utils/services/index.mjs +2 -0
- package/esm2022/lib/components/ca-map/utils/services/map-marker-icon.service.mjs +137 -0
- package/esm2022/lib/components/ca-map-dropdown/ca-map-dropdown.component.mjs +25 -11
- package/esm2022/lib/components/ca-progress-bar/ca-progress-bar.component.mjs +15 -15
- package/esm2022/lib/components/ca-rating-review/ca-rating-review.component.mjs +2 -2
- package/esm2022/lib/components/ca-rating-review/components/ca-ratings-reviews-popup/ca-ratings-reviews-popup.component.mjs +1 -1
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/ca-upload-file.component.mjs +1 -1
- package/esm2022/lib/constants/map.constant.mjs +131 -131
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/ca-components.mjs +10387 -9642
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/ca-components.module.d.ts +32 -30
- package/lib/components/ca-input/base-classes/ca-input-base-helpres.d.ts +29 -0
- package/lib/components/ca-input/base-classes/ca-input-base.d.ts +82 -0
- package/lib/components/ca-input/base-classes/ca-input-event-manager.d.ts +16 -0
- package/lib/components/ca-input/ca-input.component.d.ts +30 -48
- package/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.d.ts +3 -7
- package/lib/components/ca-input/config/ca-input.config.d.ts +10 -1
- package/lib/components/ca-input/directives/caps-lock.directive.d.ts +14 -0
- package/lib/components/ca-input/directives/index.d.ts +4 -0
- package/lib/components/ca-input/directives/input-max-value.directive.d.ts +12 -0
- package/lib/components/ca-input/directives/price_format.directive.d.ts +11 -0
- package/lib/components/ca-input/directives/restrict-input.directive.d.ts +15 -0
- package/lib/components/ca-input/enums/input-text-transform.enum.d.ts +6 -0
- package/lib/components/ca-input/input-test/input-test.component.d.ts +47 -0
- package/lib/components/ca-input/pipes/input-container-class.pipe.d.ts +3 -3
- package/lib/components/ca-input/pipes/input-datetime-picker-class.pipe.d.ts +1 -1
- package/lib/components/ca-input/pipes/input-pattern.pipe.d.ts +25 -0
- package/lib/components/ca-input/services/index.d.ts +0 -1
- package/lib/components/ca-input/utils/constants/input-constants.d.ts +11 -0
- package/lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component.d.ts +99 -0
- package/lib/components/ca-map/ca-map.component.d.ts +22 -25
- package/lib/components/ca-map/enums/google-map.enum.d.ts +2 -1
- package/lib/components/ca-map/enums/map-marker-string.enum.d.ts +2 -1
- package/lib/components/ca-map/models/map.model.d.ts +8 -3
- package/lib/components/ca-map/utils/constants/index.d.ts +1 -0
- package/lib/components/ca-map/utils/constants/map-marker-icons.constants.d.ts +6 -0
- package/lib/components/ca-map/utils/helpers/map-marker-icon.helper.d.ts +2 -0
- package/lib/components/ca-map/utils/services/index.d.ts +1 -0
- package/lib/components/ca-map/utils/services/map-marker-icon.service.d.ts +23 -0
- package/lib/components/ca-map-dropdown/ca-map-dropdown.component.d.ts +5 -3
- package/lib/components/ca-progress-bar/ca-progress-bar.component.d.ts +3 -1
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
- package/esm2022/lib/components/ca-input/components/ca-input-datetime-picker/ca-input-datetime-picker.component.mjs +0 -100
- package/esm2022/lib/components/ca-input/services/ca-input-state.service.mjs +0 -2173
- package/lib/components/ca-input/components/ca-input-datetime-picker/ca-input-datetime-picker.component.d.ts +0 -48
- package/lib/components/ca-input/services/ca-input-state.service.d.ts +0 -196
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
|
3
|
+
import { NgbPopover } from '@ng-bootstrap/ng-bootstrap';
|
|
4
|
+
import { ICaInput } from '../ca-input/config';
|
|
5
|
+
import { InputChangeValue, InputSvgRoutes } from '../ca-input/utils';
|
|
6
|
+
import { CaInputComponent } from '../ca-input/ca-input.component';
|
|
7
|
+
import { CaInputPlaceholderIconComponent } from '../ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component';
|
|
8
|
+
import { CalendarDateTimePickerService } from '../ca-custom-datetime-pickers/services/calendar-datetime-picker.service';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export declare class CaInputDatetimePickerComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {
|
|
11
|
+
superControl: NgControl;
|
|
12
|
+
private calendarService;
|
|
13
|
+
inputConfig: ICaInput;
|
|
14
|
+
clearInputEvent: EventEmitter<boolean>;
|
|
15
|
+
blurInputEvent: EventEmitter<boolean>;
|
|
16
|
+
caInputPlaceholderIconComponent: CaInputPlaceholderIconComponent;
|
|
17
|
+
dateTimePopover: NgbPopover;
|
|
18
|
+
caInputComponent: CaInputComponent;
|
|
19
|
+
showDateInput: boolean;
|
|
20
|
+
dateTimeInputDate: Date;
|
|
21
|
+
selectionInput: number;
|
|
22
|
+
private dateTimeMainTimer;
|
|
23
|
+
private focusBlur;
|
|
24
|
+
private timeoutCleaner;
|
|
25
|
+
inputSvgRoutes: typeof InputSvgRoutes;
|
|
26
|
+
isTouchedInput: boolean;
|
|
27
|
+
preventBlur: boolean;
|
|
28
|
+
newInputChanged: boolean;
|
|
29
|
+
selectLastOneForSelectionEmitter: EventEmitter<boolean>;
|
|
30
|
+
selectLastOneAfterMouseUpEmitter: EventEmitter<boolean>;
|
|
31
|
+
onDatePasteEmitter: EventEmitter<ClipboardEvent>;
|
|
32
|
+
onFocusEmitter: EventEmitter<FocusEvent>;
|
|
33
|
+
changeSelectionEmmiter: EventEmitter<{
|
|
34
|
+
e: KeyboardEvent;
|
|
35
|
+
noPreventDefault: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
setSelectionEmmiter: EventEmitter<{
|
|
38
|
+
preventDefault: () => void;
|
|
39
|
+
stopPropagation: () => void;
|
|
40
|
+
target: any;
|
|
41
|
+
}>;
|
|
42
|
+
span1: ElementRef;
|
|
43
|
+
span2: ElementRef;
|
|
44
|
+
span3: ElementRef;
|
|
45
|
+
holder1: ElementRef;
|
|
46
|
+
private destroy$;
|
|
47
|
+
constructor(superControl: NgControl, calendarService: CalendarDateTimePickerService);
|
|
48
|
+
ngAfterViewInit(): void;
|
|
49
|
+
get getSuperControl(): import("@angular/forms").AbstractControl<any, any> | null;
|
|
50
|
+
selectLastOneForSelection(): void;
|
|
51
|
+
selectLastOneAfterMouseUp(): void;
|
|
52
|
+
onDatePaste(event: ClipboardEvent): void;
|
|
53
|
+
changeSelection(event: KeyboardEvent, noPreventDefault?: boolean): void;
|
|
54
|
+
private isNumber;
|
|
55
|
+
private isNavigationKey;
|
|
56
|
+
onFocus(event?: FocusEvent): void;
|
|
57
|
+
closePopover(): void;
|
|
58
|
+
toggleDropdownOptions(): void;
|
|
59
|
+
handleFocusInput(e: Event): void;
|
|
60
|
+
setSpanSelection(element: Node): void;
|
|
61
|
+
setSelection(event: {
|
|
62
|
+
preventDefault: () => void;
|
|
63
|
+
stopPropagation: () => void;
|
|
64
|
+
target: any;
|
|
65
|
+
}): void;
|
|
66
|
+
registerOnChange(fn: any): void;
|
|
67
|
+
onChange(_: InputChangeValue): void;
|
|
68
|
+
writeValue(obj: InputChangeValue): void;
|
|
69
|
+
registerOnTouched(): void;
|
|
70
|
+
blurOnDateTime(): void;
|
|
71
|
+
onPopoverShown(): void;
|
|
72
|
+
onPopoverHidden(): void;
|
|
73
|
+
setTimeDateInput(date: InputChangeValue, hasValue?: boolean): void;
|
|
74
|
+
handleKeyboardInputs(e: KeyboardEvent, isRestart?: boolean): void;
|
|
75
|
+
selectSpanByTabIndex(indx: number, changeTab?: boolean): void;
|
|
76
|
+
private handleNavigationKey;
|
|
77
|
+
private handleDatePickerInput;
|
|
78
|
+
private setDateTimeModel;
|
|
79
|
+
private moveSelectionRightOrTab;
|
|
80
|
+
private focusPreviousInput;
|
|
81
|
+
private focusNextInput;
|
|
82
|
+
setIsFocusInput(value: boolean): void;
|
|
83
|
+
private moveSelectionLeft;
|
|
84
|
+
private updateMonth;
|
|
85
|
+
private updateDate;
|
|
86
|
+
private updateYear;
|
|
87
|
+
private padValue;
|
|
88
|
+
private handleTimePickerInput;
|
|
89
|
+
private updateHours;
|
|
90
|
+
private updateMinutes;
|
|
91
|
+
private toggleAMPM;
|
|
92
|
+
clearInput(event: boolean): void;
|
|
93
|
+
onBlurInput(event: boolean): void;
|
|
94
|
+
resetDateTimeInputs(): void;
|
|
95
|
+
setTimePickerTime(): void;
|
|
96
|
+
ngOnDestroy(): void;
|
|
97
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CaInputDatetimePickerComponent, [{ self: true; }, null]>;
|
|
98
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CaInputDatetimePickerComponent, "app-ca-input-datetime-picker", never, { "inputConfig": { "alias": "inputConfig"; "required": false; }; }, { "clearInputEvent": "clear"; "blurInputEvent": "blurInput"; "selectLastOneForSelectionEmitter": "selectLastOneForSelectionEmitter"; "selectLastOneAfterMouseUpEmitter": "selectLastOneAfterMouseUpEmitter"; "onDatePasteEmitter": "onDatePasteEmitter"; "onFocusEmitter": "onFocusEmitter"; "changeSelectionEmmiter": "changeSelectionEmmiter"; "setSelectionEmmiter": "setSelectionEmmiter"; }, never, never, true, never>;
|
|
99
|
+
}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { ChangeDetectorRef, EventEmitter } from '@angular/core';
|
|
2
|
-
import { GoogleMap
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, Renderer2 } from '@angular/core';
|
|
2
|
+
import { GoogleMap } from '@angular/google-maps';
|
|
3
3
|
import { IMapMarkers, ICaMapProps, IMapOptions, IRoutePath, IMapBoundsZoom, IMapSelectedMarkerData } from '../ca-map/models/map.model';
|
|
4
|
+
import { MapMarkerIconService } from './utils/services';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class CaMapComponent {
|
|
6
7
|
cd: ChangeDetectorRef;
|
|
7
|
-
|
|
8
|
+
private el;
|
|
9
|
+
private renderer;
|
|
10
|
+
private markerIconService;
|
|
11
|
+
constructor(cd: ChangeDetectorRef, el: ElementRef, renderer: Renderer2, markerIconService: MapMarkerIconService);
|
|
8
12
|
set data(values: ICaMapProps);
|
|
9
13
|
resetSelectedMarkerItem: EventEmitter<boolean>;
|
|
10
14
|
clusterMarkerClick: EventEmitter<IMapMarkers>;
|
|
@@ -13,23 +17,15 @@ export declare class CaMapComponent {
|
|
|
13
17
|
boundsChanged: EventEmitter<IMapBoundsZoom>;
|
|
14
18
|
openInMapEvent: EventEmitter<any>;
|
|
15
19
|
maps: GoogleMap;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
markerDropdown: ElementRef;
|
|
21
|
+
clusterDropdown: ElementRef;
|
|
22
|
+
private destroy$;
|
|
23
|
+
currentlyOpenWindow: boolean;
|
|
19
24
|
previousIconUrl: string;
|
|
20
25
|
previousIconUrlRouting: string;
|
|
21
26
|
focusedIconRouting: number;
|
|
22
27
|
private directionService;
|
|
23
28
|
directionsRenderers: google.maps.DirectionsRenderer[];
|
|
24
|
-
initialIcons: {
|
|
25
|
-
url: string;
|
|
26
|
-
labelOrigin?: google.maps.Point;
|
|
27
|
-
}[];
|
|
28
|
-
initialMarkerIcons: {
|
|
29
|
-
url: string;
|
|
30
|
-
labelOrigin?: google.maps.Point;
|
|
31
|
-
zIndex?: number;
|
|
32
|
-
}[];
|
|
33
29
|
infoWindowOptions: google.maps.InfoWindowOptions;
|
|
34
30
|
mapOptions: IMapOptions;
|
|
35
31
|
mapZoom: number;
|
|
@@ -56,19 +52,21 @@ export declare class CaMapComponent {
|
|
|
56
52
|
radius: number;
|
|
57
53
|
};
|
|
58
54
|
isAreaFilterActive: boolean;
|
|
59
|
-
|
|
55
|
+
mapStyles: google.maps.MapTypeStyle[];
|
|
56
|
+
clusterMarkerIds: IMapMarkers[];
|
|
57
|
+
routingMarkerIds: IMapMarkers[];
|
|
58
|
+
isMarkerDropdownOpen: boolean;
|
|
59
|
+
isClusterDropdownOpen: boolean;
|
|
60
|
+
openDropdownTimeout: NodeJS.Timeout | number;
|
|
61
|
+
mapStyleId: string;
|
|
60
62
|
ngOnInit(): void;
|
|
61
|
-
|
|
62
|
-
storeInitialIconForRoutingMarker(): void;
|
|
63
|
+
ngAfterViewInit(): void;
|
|
63
64
|
onClusterMarkerClick(markerItem: IMapMarkers): void;
|
|
64
65
|
getMarkerInfoWindow(markerId: number): void;
|
|
65
66
|
onMarkerClick(markerItem: IMapMarkers): void;
|
|
66
67
|
setDirectionsOnMap(): void;
|
|
67
68
|
calculateAndDisplayRoute(): void;
|
|
68
|
-
onRoutingMarkerClick(i: number, event: google.maps.MapMouseEvent, markeritem: IMapMarkers): void;
|
|
69
|
-
ngAfterViewInit(): void;
|
|
70
69
|
resetMarkersIcons(): void;
|
|
71
|
-
resetRoutingMarkers(): void;
|
|
72
70
|
onMapReady(mapInstance: google.maps.Map): {
|
|
73
71
|
fillColor?: string;
|
|
74
72
|
strokeColor?: string;
|
|
@@ -79,17 +77,16 @@ export declare class CaMapComponent {
|
|
|
79
77
|
getMapIdleEvent(map: google.maps.Map): void;
|
|
80
78
|
sendBoundsChangedEvent(): void;
|
|
81
79
|
onClusterBackButtonClick(): void;
|
|
82
|
-
private getNewData;
|
|
83
80
|
openMarkerInfoWindow(markerItem: IMapSelectedMarkerData): void;
|
|
84
81
|
checkInfoWindowPosition(markerItem: IMapMarkers, markerItem2?: IMapMarkers | null): boolean;
|
|
85
82
|
closeInfoWindow(): void;
|
|
86
83
|
handleMapData(newData: ICaMapProps): void;
|
|
84
|
+
getClusterId(clusterData: IMapMarkers): number | null;
|
|
85
|
+
getRoutingId(markerData: IMapMarkers): number | null;
|
|
87
86
|
onClusterListScrollToEnd(): void;
|
|
88
|
-
checkClusterDataChanges(newData: IMapMarkers, previousData?: IMapMarkers | null): boolean;
|
|
89
|
-
onMarkerMouseover(markerItem: IMapMarkers): void;
|
|
90
|
-
onMarkerMouseout(markerItem: IMapMarkers): void;
|
|
91
87
|
onZoomChange(isMinusClick?: boolean): void;
|
|
92
88
|
onOpenInMap(): void;
|
|
89
|
+
getServiceData(): void;
|
|
93
90
|
trackById(index: number, marker: IMapMarkers): number;
|
|
94
91
|
trackByPosition(index: number, marker: IMapMarkers): number;
|
|
95
92
|
identity(index: number): number;
|
|
@@ -35,7 +35,7 @@ export interface IMapOptions {
|
|
|
35
35
|
strictBounds: boolean;
|
|
36
36
|
};
|
|
37
37
|
streetViewControl: boolean;
|
|
38
|
-
styles
|
|
38
|
+
styles?: IMapStyles[];
|
|
39
39
|
keyboardShortcuts: boolean;
|
|
40
40
|
panControl: boolean;
|
|
41
41
|
gestureHandling: string;
|
|
@@ -55,9 +55,9 @@ export interface IMapColor {
|
|
|
55
55
|
}
|
|
56
56
|
export interface IMapMarkers {
|
|
57
57
|
position: IRoutePath;
|
|
58
|
-
icon
|
|
58
|
+
icon?: IMapMarkersIcon;
|
|
59
59
|
infoWindowContent?: MapDropdownContent;
|
|
60
|
-
label?:
|
|
60
|
+
label?: string;
|
|
61
61
|
labelOrigin?: {
|
|
62
62
|
x: number;
|
|
63
63
|
y: number;
|
|
@@ -67,6 +67,11 @@ export interface IMapMarkers {
|
|
|
67
67
|
zIndex?: number;
|
|
68
68
|
};
|
|
69
69
|
isLargeMarker?: boolean;
|
|
70
|
+
isFavorite?: boolean;
|
|
71
|
+
isClosed?: boolean;
|
|
72
|
+
isShowLabelOnHover?: boolean;
|
|
73
|
+
id?: number;
|
|
74
|
+
content?: any;
|
|
70
75
|
}
|
|
71
76
|
export interface IMapMarkersIcon {
|
|
72
77
|
url: string;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export declare class MapMarkerIconHelper {
|
|
2
|
+
static getRoutingMarkerElement: (stopNumber: number, stopType: string, isStopChecked?: boolean, isLightMode?: boolean, labelName?: string) => HTMLElement;
|
|
2
3
|
static getRoutingMarkerIcon: (stopNumber: number, stopType: string, isStopChecked?: boolean, isLightMode?: boolean) => string;
|
|
3
4
|
static getRoutingMarkerSvg: (stopNumber: number, stopType: string, isLightMode?: boolean) => string;
|
|
5
|
+
static getRoutingCheckedMarkerSvg: (stopType: string, isLightMode?: boolean) => string;
|
|
4
6
|
static getMapMarker(isFavorite?: boolean, isClosed?: boolean): string;
|
|
5
7
|
static getClusterMarker(count: number, isSelected?: boolean): string;
|
|
6
8
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './map-marker-icon.service';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { RendererFactory2 } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { IMapMarkers } from '../../models/map.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class MapMarkerIconService {
|
|
6
|
+
private renderer;
|
|
7
|
+
private clusterMarkerIds;
|
|
8
|
+
clusterMarkerIds$: Observable<IMapMarkers[]>;
|
|
9
|
+
private routingMarkerIds;
|
|
10
|
+
routingMarkerIds$: Observable<IMapMarkers[]>;
|
|
11
|
+
private markerElements;
|
|
12
|
+
private clusterElements;
|
|
13
|
+
private routingElements;
|
|
14
|
+
constructor(rendererFactory: RendererFactory2);
|
|
15
|
+
getMarkerIcon(markerId: number, labelName?: string, isClosed?: boolean, isFavorite?: boolean, isAlwaysSelected?: boolean): HTMLElement;
|
|
16
|
+
getClusterMarkerIcon(markerData: IMapMarkers): HTMLElement;
|
|
17
|
+
getRoutingMarkerIcon(markerData: IMapMarkers, stopNumber: number, stopType: string, isStopChecked?: boolean, isLightMode?: boolean, labelName?: string): HTMLElement;
|
|
18
|
+
createClusterId(clusterData: IMapMarkers): number;
|
|
19
|
+
createRoutingId(markerData: IMapMarkers): number;
|
|
20
|
+
resetMarkersData(): void;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MapMarkerIconService, never>;
|
|
22
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MapMarkerIconService>;
|
|
23
|
+
}
|
|
@@ -4,7 +4,7 @@ import { DropDownData, IDropDownActions } from '../ca-details-dropdown/models/de
|
|
|
4
4
|
import { MapDropdownClusterItem, MapDropdownContent } from './models';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class CaMapDropdownComponent {
|
|
7
|
-
infoWindowContent?: MapDropdownContent;
|
|
7
|
+
infoWindowContent?: MapDropdownContent | null;
|
|
8
8
|
markerData?: any;
|
|
9
9
|
onClusterItemClick: EventEmitter<number>;
|
|
10
10
|
onClusterListScrollToEnd: EventEmitter<any>;
|
|
@@ -13,13 +13,15 @@ export declare class CaMapDropdownComponent {
|
|
|
13
13
|
isHidden: boolean;
|
|
14
14
|
isShowAllDaysActive: boolean;
|
|
15
15
|
data: DropDownData[];
|
|
16
|
-
showHiddenData(): void;
|
|
16
|
+
showHiddenData(event: Event): void;
|
|
17
17
|
callBodyAction(action: IDropDownActions): void;
|
|
18
18
|
getSvgPath(propertyName: keyof typeof MapDropdownSvgRoutes): string;
|
|
19
19
|
clusterItemClick(item: MapDropdownClusterItem): void;
|
|
20
|
-
backButtonClick(): void;
|
|
20
|
+
backButtonClick(event: Event): void;
|
|
21
21
|
showAllDaysClick(): void;
|
|
22
22
|
onClusterListScroll(event: Event): void;
|
|
23
|
+
stopMapZoom(event: Event): void;
|
|
24
|
+
dropdownClick(event: Event): void;
|
|
23
25
|
identity(index: number): number;
|
|
24
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<CaMapDropdownComponent, never>;
|
|
25
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<CaMapDropdownComponent, "app-ca-map-dropdown", never, { "infoWindowContent": { "alias": "infoWindowContent"; "required": false; }; "markerData": { "alias": "markerData"; "required": false; }; }, { "onClusterItemClick": "onClusterItemClick"; "onClusterListScrollToEnd": "onClusterListScrollToEnd"; "onBackButtonClick": "onBackButtonClick"; "bodyActions": "bodyActions"; }, never, never, true, never>;
|
|
@@ -2,8 +2,10 @@ import { NgbPopover } from '@ng-bootstrap/ng-bootstrap';
|
|
|
2
2
|
import { IGpsProgress } from './models';
|
|
3
3
|
import { ICaMapProps } from '../ca-map/models/map.model';
|
|
4
4
|
import { ProgressBarSvgRoutes } from './utils/svg-routes';
|
|
5
|
+
import { MapMarkerIconService } from '../ca-map/utils/services';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export declare class ProgressBarComponent {
|
|
8
|
+
private markerIconService;
|
|
7
9
|
isDropdown: boolean;
|
|
8
10
|
currentPosition: number;
|
|
9
11
|
mileageInfo: string;
|
|
@@ -40,7 +42,7 @@ export declare class ProgressBarComponent {
|
|
|
40
42
|
_gpsProgress: IGpsProgress[];
|
|
41
43
|
gpsIconTopPosition: number;
|
|
42
44
|
Mapdata: ICaMapProps;
|
|
43
|
-
constructor();
|
|
45
|
+
constructor(markerIconService: MapMarkerIconService);
|
|
44
46
|
hoverStop(stop: IGpsProgress, i: number, isIcon?: boolean): void;
|
|
45
47
|
leaveStop(): void;
|
|
46
48
|
getLeftStyle(): string;
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -49,5 +49,8 @@ export * from './lib/components/ca-sort-dropdown/models';
|
|
|
49
49
|
export * from './lib/components/ca-sort-dropdown/enums';
|
|
50
50
|
export * from './lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component';
|
|
51
51
|
export * from './lib/components/ca-modal-button/ca-modal-button.component';
|
|
52
|
+
export * from './lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component';
|
|
52
53
|
export * from './lib/components/ca-chart-manager/ca-chart-manager.component';
|
|
53
54
|
export * from './lib/components/ca-custom-scrollbar/ca-custom-scrollbar.component';
|
|
55
|
+
export * from './lib/components/ca-map/utils/services';
|
|
56
|
+
export * from './lib/components/ca-input/input-test/input-test.component';
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
// pipe
|
|
4
|
-
import { InputDatetimePickerClassPipe } from '../../pipes';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../services";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
export class CaInputDatetimePickerComponent {
|
|
9
|
-
constructor(inputStateService) {
|
|
10
|
-
this.inputStateService = inputStateService;
|
|
11
|
-
this.selectLastOneForSelectionEmitter = new EventEmitter();
|
|
12
|
-
this.selectLastOneAfterMouseUpEmitter = new EventEmitter();
|
|
13
|
-
this.onDatePasteEmitter = new EventEmitter();
|
|
14
|
-
this.onBlurEmitter = new EventEmitter();
|
|
15
|
-
this.onFocusEmitter = new EventEmitter();
|
|
16
|
-
this.changeSelectionEmmiter = new EventEmitter();
|
|
17
|
-
this.setSelectionEmmiter = new EventEmitter();
|
|
18
|
-
}
|
|
19
|
-
ngAfterViewInit() {
|
|
20
|
-
this.inputStateService.setViewChilds(this.span1, this.span2, this.span3, this.holder1);
|
|
21
|
-
}
|
|
22
|
-
selectLastOneForSelection() {
|
|
23
|
-
this.selectLastOneForSelectionEmitter.emit(true);
|
|
24
|
-
}
|
|
25
|
-
selectLastOneAfterMouseUp() {
|
|
26
|
-
this.selectLastOneAfterMouseUpEmitter.emit(true);
|
|
27
|
-
}
|
|
28
|
-
onDatePaste(event) {
|
|
29
|
-
this.onDatePasteEmitter.emit(event);
|
|
30
|
-
}
|
|
31
|
-
onBlur() {
|
|
32
|
-
this.onBlurEmitter.emit(true);
|
|
33
|
-
}
|
|
34
|
-
changeSelection(e, noPreventDefault = false) {
|
|
35
|
-
this.changeSelectionEmmiter.emit({ e, noPreventDefault });
|
|
36
|
-
}
|
|
37
|
-
onFocus(event) {
|
|
38
|
-
this.onFocusEmitter.emit(event);
|
|
39
|
-
}
|
|
40
|
-
toggleDropdownOptions() {
|
|
41
|
-
this.inputStateService.toggleDropdownOptions();
|
|
42
|
-
}
|
|
43
|
-
setSelection(event) {
|
|
44
|
-
this.setSelectionEmmiter.emit(event);
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaInputDatetimePickerComponent, deps: [{ token: i1.InputStateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaInputDatetimePickerComponent, isStandalone: true, selector: "app-ca-input-datetime-picker", inputs: { showDateInput: "showDateInput", inputConfig: "inputConfig", getSuperControl: "getSuperControl", isFocusInput: "isFocusInput", isVisibleCommands: "isVisibleCommands", isTouchedInput: "isTouchedInput" }, outputs: { selectLastOneForSelectionEmitter: "selectLastOneForSelectionEmitter", selectLastOneAfterMouseUpEmitter: "selectLastOneAfterMouseUpEmitter", onDatePasteEmitter: "onDatePasteEmitter", onBlurEmitter: "onBlurEmitter", onFocusEmitter: "onFocusEmitter", changeSelectionEmmiter: "changeSelectionEmmiter", setSelectionEmmiter: "setSelectionEmmiter" }, viewQueries: [{ propertyName: "span1", first: true, predicate: ["span1"], descendants: true }, { propertyName: "span2", first: true, predicate: ["span2"], descendants: true }, { propertyName: "span3", first: true, predicate: ["span3"], descendants: true }, { propertyName: "holder1", first: true, predicate: ["holder1"], descendants: true }], ngImport: i0, template: "<div\n #holder1\n class=\"date_time_holder input-control\"\n [class.active]=\"showDateInput\"\n tabindex=\"-1\"\n (mousedown)=\"selectLastOneForSelection()\"\n (mouseup)=\"selectLastOneAfterMouseUp()\"\n (paste)=\"onDatePaste($event)\"\n (keydown)=\"changeSelection($event, true)\"\n (click)=\"toggleDropdownOptions()\"\n [ngStyle]=\"{\n 'padding-left': inputConfig.isIconHidden ? '2px' : '27px'\n }\"\n [ngClass]=\"\n isFocusInput | inputDatetimePickerClass : isVisibleCommands \n : getSuperControl : inputConfig : isTouchedInput \n : getSuperControl?.value\n \"\n>\n <span\n #span1\n class=\"main\"\n [ngClass]=\"{\n 'reset-selection-color': !isFocusInput\n }\"\n tabindex=\"0\"\n (mouseup)=\"setSelection($event)\"\n (keydown)=\"changeSelection($event)\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? 'mm' : 'HH'\"\n ></span>\n <span>\n <div\n class=\"border-picker\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? '/' : ':'\"\n ></div>\n </span>\n <span\n #span2\n class=\"main\"\n [ngClass]=\"{\n 'reset-selection-color': !isFocusInput\n }\"\n tabindex=\"1\"\n (mouseup)=\"setSelection($event)\"\n (keydown)=\"changeSelection($event)\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? 'dd' : 'MM'\"\n ></span>\n <span>\n <div\n class=\"border-picker\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? '/' : ' '\"\n ></div>\n </span>\n <span\n #span3\n class=\"main\"\n [ngClass]=\"{\n 'reset-selection-color': !isFocusInput\n }\"\n tabindex=\"2\"\n (mouseup)=\"setSelection($event)\"\n (keydown)=\"changeSelection($event)\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? 'yy' : 'AM'\"\n ></span>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type:
|
|
48
|
-
// modules
|
|
49
|
-
CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type:
|
|
50
|
-
// pipes
|
|
51
|
-
InputDatetimePickerClassPipe, name: "inputDatetimePickerClass" }] }); }
|
|
52
|
-
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaInputDatetimePickerComponent, decorators: [{
|
|
54
|
-
type: Component,
|
|
55
|
-
args: [{ selector: 'app-ca-input-datetime-picker', standalone: true, imports: [
|
|
56
|
-
// modules
|
|
57
|
-
CommonModule,
|
|
58
|
-
// pipes
|
|
59
|
-
InputDatetimePickerClassPipe,
|
|
60
|
-
], template: "<div\n #holder1\n class=\"date_time_holder input-control\"\n [class.active]=\"showDateInput\"\n tabindex=\"-1\"\n (mousedown)=\"selectLastOneForSelection()\"\n (mouseup)=\"selectLastOneAfterMouseUp()\"\n (paste)=\"onDatePaste($event)\"\n (keydown)=\"changeSelection($event, true)\"\n (click)=\"toggleDropdownOptions()\"\n [ngStyle]=\"{\n 'padding-left': inputConfig.isIconHidden ? '2px' : '27px'\n }\"\n [ngClass]=\"\n isFocusInput | inputDatetimePickerClass : isVisibleCommands \n : getSuperControl : inputConfig : isTouchedInput \n : getSuperControl?.value\n \"\n>\n <span\n #span1\n class=\"main\"\n [ngClass]=\"{\n 'reset-selection-color': !isFocusInput\n }\"\n tabindex=\"0\"\n (mouseup)=\"setSelection($event)\"\n (keydown)=\"changeSelection($event)\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? 'mm' : 'HH'\"\n ></span>\n <span>\n <div\n class=\"border-picker\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? '/' : ':'\"\n ></div>\n </span>\n <span\n #span2\n class=\"main\"\n [ngClass]=\"{\n 'reset-selection-color': !isFocusInput\n }\"\n tabindex=\"1\"\n (mouseup)=\"setSelection($event)\"\n (keydown)=\"changeSelection($event)\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? 'dd' : 'MM'\"\n ></span>\n <span>\n <div\n class=\"border-picker\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? '/' : ' '\"\n ></div>\n </span>\n <span\n #span3\n class=\"main\"\n [ngClass]=\"{\n 'reset-selection-color': !isFocusInput\n }\"\n tabindex=\"2\"\n (mouseup)=\"setSelection($event)\"\n (keydown)=\"changeSelection($event)\"\n [innerHTML]=\"inputConfig.name === 'datepicker' ? 'yy' : 'AM'\"\n ></span>\n</div>\n" }]
|
|
61
|
-
}], ctorParameters: () => [{ type: i1.InputStateService }], propDecorators: { showDateInput: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], inputConfig: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], getSuperControl: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], isFocusInput: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], isVisibleCommands: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], isTouchedInput: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], selectLastOneForSelectionEmitter: [{
|
|
74
|
-
type: Output
|
|
75
|
-
}], selectLastOneAfterMouseUpEmitter: [{
|
|
76
|
-
type: Output
|
|
77
|
-
}], onDatePasteEmitter: [{
|
|
78
|
-
type: Output
|
|
79
|
-
}], onBlurEmitter: [{
|
|
80
|
-
type: Output
|
|
81
|
-
}], onFocusEmitter: [{
|
|
82
|
-
type: Output
|
|
83
|
-
}], changeSelectionEmmiter: [{
|
|
84
|
-
type: Output
|
|
85
|
-
}], setSelectionEmmiter: [{
|
|
86
|
-
type: Output
|
|
87
|
-
}], span1: [{
|
|
88
|
-
type: ViewChild,
|
|
89
|
-
args: ['span1', { static: false }]
|
|
90
|
-
}], span2: [{
|
|
91
|
-
type: ViewChild,
|
|
92
|
-
args: ['span2', { static: false }]
|
|
93
|
-
}], span3: [{
|
|
94
|
-
type: ViewChild,
|
|
95
|
-
args: ['span3', { static: false }]
|
|
96
|
-
}], holder1: [{
|
|
97
|
-
type: ViewChild,
|
|
98
|
-
args: ['holder1', { static: false }]
|
|
99
|
-
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtaW5wdXQtZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWlucHV0L2NvbXBvbmVudHMvY2EtaW5wdXQtZGF0ZXRpbWUtcGlja2VyL2NhLWlucHV0LWRhdGV0aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1pbnB1dC9jb21wb25lbnRzL2NhLWlucHV0LWRhdGV0aW1lLXBpY2tlci9jYS1pbnB1dC1kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBUS9DLE9BQU87QUFDUCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFlM0QsTUFBTSxPQUFPLDhCQUE4QjtJQTRCekMsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFwQjlDLHFDQUFnQyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDL0QscUNBQWdDLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMvRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUN4RCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ2hELDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUcvQyxDQUFDO1FBQ0ssd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBSTVDLENBQUM7SUFPc0QsQ0FBQztJQUU1RCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FDbEMsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVNLHlCQUF5QjtRQUM5QixJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSx5QkFBeUI7UUFDOUIsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQXFCO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sZUFBZSxDQUFDLENBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsS0FBSztRQUMvRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQWtCO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUluQjtRQUNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0F6RVUsOEJBQThCO21HQUE5Qiw4QkFBOEIscytCQ2xDM0MsNHZEQWlFQTtnQkR0Q0ksVUFBVTtnQkFDVixZQUFZO2dCQUVaLFFBQVE7Z0JBQ1IsNEJBQTRCOzs0RkFHbkIsOEJBQThCO2tCQWIxQyxTQUFTOytCQUNFLDhCQUE4QixjQUc1QixJQUFJLFdBQ1A7d0JBQ1AsVUFBVTt3QkFDVixZQUFZO3dCQUVaLFFBQVE7d0JBQ1IsNEJBQTRCO3FCQUM3QjtzRkFHUSxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGdDQUFnQztzQkFBekMsTUFBTTtnQkFDRyxnQ0FBZ0M7c0JBQXpDLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBSUcsbUJBQW1CO3NCQUE1QixNQUFNO2dCQU1nQyxLQUFLO3NCQUEzQyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0UsS0FBSztzQkFBM0MsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNFLEtBQUs7c0JBQTNDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDSSxPQUFPO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG4vLyBzZXJ2aWNlc1xuaW1wb3J0IHsgSW5wdXRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbi8vIHBpcGVcbmltcG9ydCB7IElucHV0RGF0ZXRpbWVQaWNrZXJDbGFzc1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYS1pbnB1dC1kYXRldGltZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2EtaW5wdXQtZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtaW5wdXQtZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICAvLyBtb2R1bGVzXG4gICAgQ29tbW9uTW9kdWxlLFxuXG4gICAgLy8gcGlwZXNcbiAgICBJbnB1dERhdGV0aW1lUGlja2VyQ2xhc3NQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYUlucHV0RGF0ZXRpbWVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgc2hvd0RhdGVJbnB1dCE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlucHV0Q29uZmlnITogSUNhSW5wdXQ7XG4gIEBJbnB1dCgpIGdldFN1cGVyQ29udHJvbCE6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBudWxsO1xuICBASW5wdXQoKSBpc0ZvY3VzSW5wdXQhOiBib29sZWFuO1xuICBASW5wdXQoKSBpc1Zpc2libGVDb21tYW5kcyE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzVG91Y2hlZElucHV0ITogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgc2VsZWN0TGFzdE9uZUZvclNlbGVjdGlvbkVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RMYXN0T25lQWZ0ZXJNb3VzZVVwRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIG9uRGF0ZVBhc3RlRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Q2xpcGJvYXJkRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkJsdXJFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgb25Gb2N1c0VtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBjaGFuZ2VTZWxlY3Rpb25FbW1pdGVyID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgZTogS2V5Ym9hcmRFdmVudDtcbiAgICBub1ByZXZlbnREZWZhdWx0OiBib29sZWFuO1xuICB9PigpO1xuICBAT3V0cHV0KCkgc2V0U2VsZWN0aW9uRW1taXRlciA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHByZXZlbnREZWZhdWx0OiAoKSA9PiB2b2lkO1xuICAgIHN0b3BQcm9wYWdhdGlvbjogKCkgPT4gdm9pZDtcbiAgICB0YXJnZXQ6IGFueTtcbiAgfT4oKTtcblxuICBAVmlld0NoaWxkKCdzcGFuMScsIHsgc3RhdGljOiBmYWxzZSB9KSBzcGFuMSE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NwYW4yJywgeyBzdGF0aWM6IGZhbHNlIH0pIHNwYW4yITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc3BhbjMnLCB7IHN0YXRpYzogZmFsc2UgfSkgc3BhbjMhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdob2xkZXIxJywgeyBzdGF0aWM6IGZhbHNlIH0pIGhvbGRlcjEhOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5wdXRTdGF0ZVNlcnZpY2U6IElucHV0U3RhdGVTZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLnNldFZpZXdDaGlsZHMoXG4gICAgICB0aGlzLnNwYW4xLFxuICAgICAgdGhpcy5zcGFuMixcbiAgICAgIHRoaXMuc3BhbjMsXG4gICAgICB0aGlzLmhvbGRlcjFcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdExhc3RPbmVGb3JTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RMYXN0T25lRm9yU2VsZWN0aW9uRW1pdHRlci5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdExhc3RPbmVBZnRlck1vdXNlVXAoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RMYXN0T25lQWZ0ZXJNb3VzZVVwRW1pdHRlci5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uRGF0ZVBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMub25EYXRlUGFzdGVFbWl0dGVyLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmx1ckVtaXR0ZXIuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3Rpb24oZTogS2V5Ym9hcmRFdmVudCwgbm9QcmV2ZW50RGVmYXVsdCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VTZWxlY3Rpb25FbW1pdGVyLmVtaXQoeyBlLCBub1ByZXZlbnREZWZhdWx0IH0pO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoZXZlbnQ/OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vbkZvY3VzRW1pdHRlci5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVEcm9wZG93bk9wdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS50b2dnbGVEcm9wZG93bk9wdGlvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWxlY3Rpb24oZXZlbnQ6IHtcbiAgICBwcmV2ZW50RGVmYXVsdDogKCkgPT4gdm9pZDtcbiAgICBzdG9wUHJvcGFnYXRpb246ICgpID0+IHZvaWQ7XG4gICAgdGFyZ2V0OiBhbnk7XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLnNldFNlbGVjdGlvbkVtbWl0ZXIuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2hvbGRlcjFcbiAgY2xhc3M9XCJkYXRlX3RpbWVfaG9sZGVyIGlucHV0LWNvbnRyb2xcIlxuICBbY2xhc3MuYWN0aXZlXT1cInNob3dEYXRlSW5wdXRcIlxuICB0YWJpbmRleD1cIi0xXCJcbiAgKG1vdXNlZG93bik9XCJzZWxlY3RMYXN0T25lRm9yU2VsZWN0aW9uKClcIlxuICAobW91c2V1cCk9XCJzZWxlY3RMYXN0T25lQWZ0ZXJNb3VzZVVwKClcIlxuICAocGFzdGUpPVwib25EYXRlUGFzdGUoJGV2ZW50KVwiXG4gIChrZXlkb3duKT1cImNoYW5nZVNlbGVjdGlvbigkZXZlbnQsIHRydWUpXCJcbiAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duT3B0aW9ucygpXCJcbiAgW25nU3R5bGVdPVwie1xuICAgICdwYWRkaW5nLWxlZnQnOiBpbnB1dENvbmZpZy5pc0ljb25IaWRkZW4gPyAnMnB4JyA6ICcyN3B4J1xuICB9XCJcbiAgW25nQ2xhc3NdPVwiXG4gICAgaXNGb2N1c0lucHV0IHwgaW5wdXREYXRldGltZVBpY2tlckNsYXNzIDogaXNWaXNpYmxlQ29tbWFuZHMgXG4gICAgOiBnZXRTdXBlckNvbnRyb2wgOiBpbnB1dENvbmZpZyA6IGlzVG91Y2hlZElucHV0IFxuICAgIDogZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICBcIlxuPlxuICA8c3BhblxuICAgICNzcGFuMVxuICAgIGNsYXNzPVwibWFpblwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3Jlc2V0LXNlbGVjdGlvbi1jb2xvcic6ICFpc0ZvY3VzSW5wdXRcbiAgICB9XCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIChtb3VzZXVwKT1cInNldFNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJjaGFuZ2VTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgW2lubmVySFRNTF09XCJpbnB1dENvbmZpZy5uYW1lID09PSAnZGF0ZXBpY2tlcicgPyAnbW0nIDogJ0hIJ1wiXG4gID48L3NwYW4+XG4gIDxzcGFuPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYm9yZGVyLXBpY2tlclwiXG4gICAgICBbaW5uZXJIVE1MXT1cImlucHV0Q29uZmlnLm5hbWUgPT09ICdkYXRlcGlja2VyJyA/ICcvJyA6ICc6J1wiXG4gICAgPjwvZGl2PlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgI3NwYW4yXG4gICAgY2xhc3M9XCJtYWluXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAncmVzZXQtc2VsZWN0aW9uLWNvbG9yJzogIWlzRm9jdXNJbnB1dFxuICAgIH1cIlxuICAgIHRhYmluZGV4PVwiMVwiXG4gICAgKG1vdXNldXApPVwic2V0U2VsZWN0aW9uKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cImNoYW5nZVNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICBbaW5uZXJIVE1MXT1cImlucHV0Q29uZmlnLm5hbWUgPT09ICdkYXRlcGlja2VyJyA/ICdkZCcgOiAnTU0nXCJcbiAgPjwvc3Bhbj5cbiAgPHNwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJib3JkZXItcGlja2VyXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiaW5wdXRDb25maWcubmFtZSA9PT0gJ2RhdGVwaWNrZXInID8gJy8nIDogJyAnXCJcbiAgICA+PC9kaXY+XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAjc3BhbjNcbiAgICBjbGFzcz1cIm1haW5cIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdyZXNldC1zZWxlY3Rpb24tY29sb3InOiAhaXNGb2N1c0lucHV0XG4gICAgfVwiXG4gICAgdGFiaW5kZXg9XCIyXCJcbiAgICAobW91c2V1cCk9XCJzZXRTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwiY2hhbmdlU2VsZWN0aW9uKCRldmVudClcIlxuICAgIFtpbm5lckhUTUxdPVwiaW5wdXRDb25maWcubmFtZSA9PT0gJ2RhdGVwaWNrZXInID8gJ3l5JyA6ICdBTSdcIlxuICA+PC9zcGFuPlxuPC9kaXY+XG4iXX0=
|