@ngx-stoui/core 15.0.1 → 16.0.0
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/README.md +7 -7
- package/{esm2020 → esm2022}/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/abstract-and-interfaces/keyPress.enum.mjs +1 -1
- package/esm2022/lib/sto-directives/context-menu.directive.mjs +36 -0
- package/esm2022/lib/sto-directives/date-form-field-click.directive.mjs +46 -0
- package/esm2022/lib/sto-directives/directives.module.mjs +64 -0
- package/{esm2020 → esm2022}/lib/sto-directives/index.mjs +1 -1
- package/esm2022/lib/sto-directives/menu-overlay.directive.mjs +48 -0
- package/{esm2020 → esm2022}/lib/sto-directives/quick-keys.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sto-directives/sto-grid.directive.mjs +10 -10
- package/{esm2020 → esm2022}/lib/sto-directives/sto-select-text-on-focus.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sto-pipes/currency-format.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sto-pipes/date-format.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sto-pipes/keys.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sto-pipes/number-format.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sto-pipes/sto-pipes.module.mjs +17 -17
- package/{esm2020 → esm2022}/lib/sto-pipes/with-unit.mjs +7 -7
- package/{esm2020 → esm2022}/lib/sto-pipes/yes-no.mjs +4 -4
- package/{fesm2020 → fesm2022}/ngx-stoui-core.mjs +83 -84
- package/fesm2022/ngx-stoui-core.mjs.map +1 -0
- package/lib/sto-directives/context-menu.directive.d.ts +2 -2
- package/lib/sto-directives/date-form-field-click.directive.d.ts +2 -2
- package/lib/sto-directives/menu-overlay.directive.d.ts +1 -1
- package/lib/sto-directives/quick-keys.directive.d.ts +1 -1
- package/lib/sto-directives/sto-grid.directive.d.ts +2 -2
- package/ngx-datatable.css +26 -9
- package/ngx-stoui.css +3289 -3554
- package/package.json +18 -18
- package/style/_fonts.scss +3 -3
- package/style/datatable/_ngx-datatable-compact.scss +144 -144
- package/style/datatable/_ngx-datatable-form.scss +94 -95
- package/style/datatable/_ngx-datatable-variables.scss +10 -10
- package/style/datatable/ngx-datatable.scss +404 -398
- package/style/form/sto-form.scss +348 -342
- package/style/grid.scss +20 -20
- package/style/sto-dialog.scss +73 -73
- package/style/sto-grid.scss +67 -67
- package/style/theme/_action-footer.scss +20 -20
- package/style/theme/_appheader.scss +121 -122
- package/style/theme/_card.scss +28 -26
- package/style/theme/_colors.scss +170 -170
- package/style/theme/_datatable.scss +231 -224
- package/style/theme/_daterange.scss +47 -51
- package/style/theme/_dialog.scss +25 -25
- package/style/theme/_filterpanel.scss +88 -88
- package/style/theme/_input-overrides.scss +119 -117
- package/style/theme/_message-panel.scss +89 -89
- package/style/theme/_number-input.scss +23 -23
- package/style/theme/_number-unit-input.scss +34 -34
- package/style/theme/_select-filter.scss +16 -16
- package/style/theme/_sto-indicators.scss +89 -89
- package/style/theme/_theme-variables.scss +63 -61
- package/style/theme/_theme.scss +22 -16
- package/style/theme/_typography.scss +44 -41
- package/style/theme/_wysiwyg.scss +38 -38
- package/style/theme/components.scss +16 -16
- package/style/theme/preference-manager.scss +50 -50
- package/style/theme.scss +41 -35
- package/esm2020/lib/sto-directives/context-menu.directive.mjs +0 -36
- package/esm2020/lib/sto-directives/date-form-field-click.directive.mjs +0 -46
- package/esm2020/lib/sto-directives/directives.module.mjs +0 -64
- package/esm2020/lib/sto-directives/menu-overlay.directive.mjs +0 -48
- package/fesm2015/ngx-stoui-core.mjs +0 -829
- package/fesm2015/ngx-stoui-core.mjs.map +0 -1
- package/fesm2020/ngx-stoui-core.mjs.map +0 -1
- /package/{esm2020 → esm2022}/ngx-stoui-core.mjs +0 -0
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
@import "theme";
|
|
2
|
-
@import "typography";
|
|
3
|
-
|
|
4
|
-
@mixin preference-manager-theme($theme, $variables) {
|
|
5
|
-
$selected-color: map_get($variables, selected-bg);
|
|
6
|
-
$hover-color: map_get($variables, hover-bg);
|
|
7
|
-
$border-color: map_get($variables, border-color);
|
|
8
|
-
$secondary-color: map_get($variables, secondary);
|
|
9
|
-
|
|
10
|
-
sto-preference-manager {
|
|
11
|
-
|
|
12
|
-
.filter-title {
|
|
13
|
-
small {
|
|
14
|
-
color: $secondary-color;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.mat-menu-panel.preference-manager-list {
|
|
20
|
-
|
|
21
|
-
.preference-manager-list-item {
|
|
22
|
-
&:hover:not(.selected) {
|
|
23
|
-
background-color: $hover-color !important; // Angular material has super strict rules we need to override.
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
&.selected {
|
|
28
|
-
background-color: $selected-color !important;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.preference-manager-list-item-title {
|
|
32
|
-
|
|
33
|
-
small {
|
|
34
|
-
color: $secondary-color;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.preference-manager-list-footer {
|
|
40
|
-
border-top: 1px solid $border-color;
|
|
41
|
-
background: $hover-color;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Include theme styles for your custom components.
|
|
48
|
-
body {
|
|
49
|
-
@include preference-manager-theme($sto-theme, $variables);
|
|
50
|
-
}
|
|
1
|
+
@import "theme";
|
|
2
|
+
@import "typography";
|
|
3
|
+
|
|
4
|
+
@mixin preference-manager-theme($theme, $variables) {
|
|
5
|
+
$selected-color: map_get($variables, selected-bg);
|
|
6
|
+
$hover-color: map_get($variables, hover-bg);
|
|
7
|
+
$border-color: map_get($variables, border-color);
|
|
8
|
+
$secondary-color: map_get($variables, secondary);
|
|
9
|
+
|
|
10
|
+
sto-preference-manager {
|
|
11
|
+
|
|
12
|
+
.filter-title {
|
|
13
|
+
small {
|
|
14
|
+
color: $secondary-color;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.mat-menu-panel.preference-manager-list {
|
|
20
|
+
|
|
21
|
+
.preference-manager-list-item {
|
|
22
|
+
&:hover:not(.selected) {
|
|
23
|
+
background-color: $hover-color !important; // Angular material has super strict rules we need to override.
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
&.selected {
|
|
28
|
+
background-color: $selected-color !important;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.preference-manager-list-item-title {
|
|
32
|
+
|
|
33
|
+
small {
|
|
34
|
+
color: $secondary-color;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.preference-manager-list-footer {
|
|
40
|
+
border-top: 1px solid $border-color;
|
|
41
|
+
background: $hover-color;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Include theme styles for your custom components.
|
|
48
|
+
body {
|
|
49
|
+
@include preference-manager-theme($sto-theme, $variables);
|
|
50
|
+
}
|
package/style/theme.scss
CHANGED
|
@@ -1,35 +1,41 @@
|
|
|
1
|
-
@use '@angular/material' as mat;
|
|
2
|
-
@import
|
|
3
|
-
@import
|
|
4
|
-
@import
|
|
5
|
-
|
|
6
|
-
@include mat.
|
|
7
|
-
|
|
8
|
-
// Include theme styles for core and each component used in your app.
|
|
9
|
-
@include mat.
|
|
10
|
-
@include mat.all-
|
|
11
|
-
|
|
12
|
-
body,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
@include mat.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
.mat-typography
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
1
|
+
@use '@angular/material' as mat;
|
|
2
|
+
@import './theme/typography';
|
|
3
|
+
@import './theme/theme';
|
|
4
|
+
@import './theme/components';
|
|
5
|
+
|
|
6
|
+
@include mat.core();
|
|
7
|
+
|
|
8
|
+
// Include theme styles for core and each component used in your app.
|
|
9
|
+
@include mat.core-theme($sto-theme);
|
|
10
|
+
@include mat.all-component-themes($sto-theme);
|
|
11
|
+
|
|
12
|
+
body,
|
|
13
|
+
.sto-header,
|
|
14
|
+
.mat-card {
|
|
15
|
+
transition: background-color 200ms ease;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@include mat.typography-hierarchy($sto-typography, '.mat-typography');
|
|
19
|
+
@include mat.typography-hierarchy(
|
|
20
|
+
$sto-sm-typography,
|
|
21
|
+
'.mat-typography.sto-sm-typography'
|
|
22
|
+
);
|
|
23
|
+
@include mat.typography-hierarchy(
|
|
24
|
+
$sto-l-typography,
|
|
25
|
+
'.mat-typography.sto-l-typography'
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
.mat-typography {
|
|
29
|
+
@include mat.core-typography($sto-typography);
|
|
30
|
+
@include mat.all-component-typographies($sto-typography);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.mat-typography.sto-sm-typography {
|
|
34
|
+
@include mat.core-typography($sto-sm-typography);
|
|
35
|
+
@include mat.all-component-typographies($sto-sm-typography);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.mat-typography.sto-l-typography {
|
|
39
|
+
@include mat.core-typography($sto-l-typography);
|
|
40
|
+
@include mat.all-component-typographies($sto-l-typography);
|
|
41
|
+
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
-
import { MatLegacyMenuTrigger as MatMenuTrigger } from '@angular/material/legacy-menu';
|
|
3
|
-
import { MenuOverlayDirective } from './menu-overlay.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ContextMenuDirective {
|
|
6
|
-
contextMenu(event) {
|
|
7
|
-
event.preventDefault();
|
|
8
|
-
if (this.menuTrigger.menuOpen) {
|
|
9
|
-
this.menuTrigger.closeMenu();
|
|
10
|
-
}
|
|
11
|
-
this.overlayDirective.updatePosition(event);
|
|
12
|
-
setTimeout(() => {
|
|
13
|
-
this.menuTrigger.menuData = this.menuContext;
|
|
14
|
-
this.menuTrigger.openMenu();
|
|
15
|
-
}, 150);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
ContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: ContextMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
-
ContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.1", type: ContextMenuDirective, isStandalone: true, selector: "[stoContextMenu]", inputs: { menuTrigger: "menuTrigger", overlayDirective: "overlayDirective", menuContext: "menuContext" }, host: { listeners: { "contextmenu": "contextMenu($event)" } }, ngImport: i0 });
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: ContextMenuDirective, decorators: [{
|
|
21
|
-
type: Directive,
|
|
22
|
-
args: [{
|
|
23
|
-
selector: '[stoContextMenu]',
|
|
24
|
-
standalone: true
|
|
25
|
-
}]
|
|
26
|
-
}], propDecorators: { menuTrigger: [{
|
|
27
|
-
type: Input
|
|
28
|
-
}], overlayDirective: [{
|
|
29
|
-
type: Input
|
|
30
|
-
}], menuContext: [{
|
|
31
|
-
type: Input
|
|
32
|
-
}], contextMenu: [{
|
|
33
|
-
type: HostListener,
|
|
34
|
-
args: ['contextmenu', ['$event']]
|
|
35
|
-
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3N0by1kaXJlY3RpdmVzL2NvbnRleHQtbWVudS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNaEUsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQixXQUFXLENBQUMsS0FBaUI7UUFDM0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUc7WUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUM5QjtRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOztpSEFuQlUsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBR0MsV0FBVztzQkFEVixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUUsUUFBUSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRMZWdhY3lNZW51VHJpZ2dlciBhcyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1tZW51JztcbmltcG9ydCB7IE1lbnVPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi9tZW51LW92ZXJsYXkuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3N0b0NvbnRleHRNZW51XScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dE1lbnVEaXJlY3RpdmUge1xuICBASW5wdXQoKVxuICBtZW51VHJpZ2dlcjogTWF0TWVudVRyaWdnZXI7XG4gIEBJbnB1dCgpXG4gIG92ZXJsYXlEaXJlY3RpdmU6IE1lbnVPdmVybGF5RGlyZWN0aXZlO1xuICBASW5wdXQoKVxuICBtZW51Q29udGV4dDogdW5rbm93bjtcblxuICBASG9zdExpc3RlbmVyKCdjb250ZXh0bWVudScsIFsgJyRldmVudCcgXSlcbiAgY29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICggdGhpcy5tZW51VHJpZ2dlci5tZW51T3BlbiApIHtcbiAgICAgIHRoaXMubWVudVRyaWdnZXIuY2xvc2VNZW51KCk7XG4gICAgfVxuICAgIHRoaXMub3ZlcmxheURpcmVjdGl2ZS51cGRhdGVQb3NpdGlvbihldmVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1lbnVUcmlnZ2VyLm1lbnVEYXRhID0gdGhpcy5tZW51Q29udGV4dDtcbiAgICAgIHRoaXMubWVudVRyaWdnZXIub3Blbk1lbnUoKTtcbiAgICB9LCAxNTApO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ContentChildren, Directive, HostListener, Input, QueryList } from '@angular/core';
|
|
2
|
-
import { MatDatepicker } from '@angular/material/datepicker';
|
|
3
|
-
import { MatLegacyInput as MatInput } from '@angular/material/legacy-input';
|
|
4
|
-
import { Subject } from 'rxjs';
|
|
5
|
-
import { takeUntil } from 'rxjs/operators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Directive that can be placed on mat-form-fields that contains a mat-datepicker.
|
|
9
|
-
* This directive has two tasks:
|
|
10
|
-
* Clicking anywhere on the mat-form-field will open the datepicker dialog
|
|
11
|
-
* When the datepicker is closed in any manner, we shift focus back to the datepicker input
|
|
12
|
-
*/
|
|
13
|
-
export class DateFormFieldClickDirective {
|
|
14
|
-
constructor() {
|
|
15
|
-
this.destroy$ = new Subject();
|
|
16
|
-
}
|
|
17
|
-
clickEvent() {
|
|
18
|
-
this.stoDateFormFieldClick.open();
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
this.stoDateFormFieldClick.closedStream
|
|
22
|
-
.pipe(takeUntil(this.destroy$)).subscribe(() => this.inputs.first.focus());
|
|
23
|
-
}
|
|
24
|
-
ngOnDestroy() {
|
|
25
|
-
this.destroy$.next(true);
|
|
26
|
-
this.destroy$.complete();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
DateFormFieldClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: DateFormFieldClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
30
|
-
DateFormFieldClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.1", type: DateFormFieldClickDirective, isStandalone: true, selector: "[stoDateFormFieldClick]", inputs: { stoDateFormFieldClick: "stoDateFormFieldClick" }, host: { listeners: { "click": "clickEvent()" } }, queries: [{ propertyName: "inputs", predicate: MatInput }], ngImport: i0 });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: DateFormFieldClickDirective, decorators: [{
|
|
32
|
-
type: Directive,
|
|
33
|
-
args: [{
|
|
34
|
-
selector: '[stoDateFormFieldClick]',
|
|
35
|
-
standalone: true
|
|
36
|
-
}]
|
|
37
|
-
}], propDecorators: { inputs: [{
|
|
38
|
-
type: ContentChildren,
|
|
39
|
-
args: [MatInput]
|
|
40
|
-
}], stoDateFormFieldClick: [{
|
|
41
|
-
type: Input
|
|
42
|
-
}], clickEvent: [{
|
|
43
|
-
type: HostListener,
|
|
44
|
-
args: ['click']
|
|
45
|
-
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mb3JtLWZpZWxkLWNsaWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3N0by1kaXJlY3RpdmVzL2RhdGUtZm9ybS1maWVsZC1jbGljay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxJQUFJLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUUzQzs7Ozs7R0FLRztBQUtILE1BQU0sT0FBTywyQkFBMkI7SUFKeEM7UUFPVSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQWtCbEM7SUFmQyxVQUFVO1FBQ1IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVk7YUFDcEMsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O3dIQXBCVSwyQkFBMkI7NEdBQTNCLDJCQUEyQix3TkFDckIsUUFBUTsyRkFEZCwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUU0QixNQUFNO3NCQUFoQyxlQUFlO3VCQUFDLFFBQVE7Z0JBQ2hCLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFJTixVQUFVO3NCQURULFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRMZWdhY3lJbnB1dCBhcyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1pbnB1dCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgY2FuIGJlIHBsYWNlZCBvbiBtYXQtZm9ybS1maWVsZHMgdGhhdCBjb250YWlucyBhIG1hdC1kYXRlcGlja2VyLlxuICogVGhpcyBkaXJlY3RpdmUgaGFzIHR3byB0YXNrczpcbiAqIENsaWNraW5nIGFueXdoZXJlIG9uIHRoZSBtYXQtZm9ybS1maWVsZCB3aWxsIG9wZW4gdGhlIGRhdGVwaWNrZXIgZGlhbG9nXG4gKiBXaGVuIHRoZSBkYXRlcGlja2VyIGlzIGNsb3NlZCBpbiBhbnkgbWFubmVyLCB3ZSBzaGlmdCBmb2N1cyBiYWNrIHRvIHRoZSBkYXRlcGlja2VyIGlucHV0XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzdG9EYXRlRm9ybUZpZWxkQ2xpY2tdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlRm9ybUZpZWxkQ2xpY2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0SW5wdXQpIGlucHV0czogUXVlcnlMaXN0PE1hdElucHV0PjtcbiAgQElucHV0KCkgc3RvRGF0ZUZvcm1GaWVsZENsaWNrOiBNYXREYXRlcGlja2VyPERhdGU+O1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIGNsaWNrRXZlbnQoKSB7XG4gICAgdGhpcy5zdG9EYXRlRm9ybUZpZWxkQ2xpY2sub3BlbigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdG9EYXRlRm9ybUZpZWxkQ2xpY2suY2xvc2VkU3RyZWFtXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLmlucHV0cy5maXJzdC5mb2N1cygpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { QuickKeysDirective } from './quick-keys.directive';
|
|
2
|
-
import { DateFormFieldClickDirective } from './date-form-field-click.directive';
|
|
3
|
-
import { StoSelectTextOnFocusDirective } from './sto-select-text-on-focus.directive';
|
|
4
|
-
import { StoGridColumnDirective, StoGridDirective, StoGridSpacerDirective } from './sto-grid.directive';
|
|
5
|
-
import { MenuOverlayDirective } from './menu-overlay.directive';
|
|
6
|
-
import { ContextMenuDirective } from './context-menu.directive';
|
|
7
|
-
/**
|
|
8
|
-
* Directives have been made standalone, import them directly:
|
|
9
|
-
* QuickKeysDirective
|
|
10
|
-
* DateFormFieldClickDirective
|
|
11
|
-
* StoSelectTextOnFocusDirective
|
|
12
|
-
* StoGridDirective
|
|
13
|
-
* StoGridColumnDirective
|
|
14
|
-
* StoGridSpacerDirective
|
|
15
|
-
* MenuOverlayDirective
|
|
16
|
-
* ContextMenuDirective
|
|
17
|
-
*/
|
|
18
|
-
import { NgModule } from '@angular/core';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
export class StoDirectivesModule {
|
|
21
|
-
}
|
|
22
|
-
StoDirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: StoDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
-
StoDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.1", ngImport: i0, type: StoDirectivesModule, imports: [QuickKeysDirective,
|
|
24
|
-
DateFormFieldClickDirective,
|
|
25
|
-
StoSelectTextOnFocusDirective,
|
|
26
|
-
StoGridDirective,
|
|
27
|
-
StoGridColumnDirective,
|
|
28
|
-
StoGridSpacerDirective,
|
|
29
|
-
MenuOverlayDirective,
|
|
30
|
-
ContextMenuDirective], exports: [QuickKeysDirective,
|
|
31
|
-
DateFormFieldClickDirective,
|
|
32
|
-
StoSelectTextOnFocusDirective,
|
|
33
|
-
StoGridDirective,
|
|
34
|
-
StoGridColumnDirective,
|
|
35
|
-
StoGridSpacerDirective,
|
|
36
|
-
MenuOverlayDirective,
|
|
37
|
-
ContextMenuDirective] });
|
|
38
|
-
StoDirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: StoDirectivesModule });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: StoDirectivesModule, decorators: [{
|
|
40
|
-
type: NgModule,
|
|
41
|
-
args: [{
|
|
42
|
-
imports: [
|
|
43
|
-
QuickKeysDirective,
|
|
44
|
-
DateFormFieldClickDirective,
|
|
45
|
-
StoSelectTextOnFocusDirective,
|
|
46
|
-
StoGridDirective,
|
|
47
|
-
StoGridColumnDirective,
|
|
48
|
-
StoGridSpacerDirective,
|
|
49
|
-
MenuOverlayDirective,
|
|
50
|
-
ContextMenuDirective
|
|
51
|
-
],
|
|
52
|
-
exports: [
|
|
53
|
-
QuickKeysDirective,
|
|
54
|
-
DateFormFieldClickDirective,
|
|
55
|
-
StoSelectTextOnFocusDirective,
|
|
56
|
-
StoGridDirective,
|
|
57
|
-
StoGridColumnDirective,
|
|
58
|
-
StoGridSpacerDirective,
|
|
59
|
-
MenuOverlayDirective,
|
|
60
|
-
ContextMenuDirective
|
|
61
|
-
]
|
|
62
|
-
}]
|
|
63
|
-
}] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zdG8tZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF3QnpDLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixZQXBCNUIsa0JBQWtCO1FBQ2hCLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFDN0IsZ0JBQWdCO1FBQ2hCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsb0JBQW9CO1FBQ3BCLG9CQUFvQixhQUd0QixrQkFBa0I7UUFDaEIsMkJBQTJCO1FBQzNCLDZCQUE2QjtRQUM3QixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixvQkFBb0I7UUFDcEIsb0JBQW9CO2lIQUdiLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQXRCL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLDZCQUE2Qjt3QkFDN0IsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQixvQkFBb0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2hCLDJCQUEyQjt3QkFDM0IsNkJBQTZCO3dCQUM3QixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLG9CQUFvQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWlja0tleXNEaXJlY3RpdmUgfSBmcm9tICcuL3F1aWNrLWtleXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IERhdGVGb3JtRmllbGRDbGlja0RpcmVjdGl2ZSB9IGZyb20gJy4vZGF0ZS1mb3JtLWZpZWxkLWNsaWNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTdG9TZWxlY3RUZXh0T25Gb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4vc3RvLXNlbGVjdC10ZXh0LW9uLWZvY3VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTdG9HcmlkQ29sdW1uRGlyZWN0aXZlLCBTdG9HcmlkRGlyZWN0aXZlLCBTdG9HcmlkU3BhY2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG8tZ3JpZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWVudU92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuL21lbnUtb3ZlcmxheS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRleHQtbWVudS5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIERpcmVjdGl2ZXMgaGF2ZSBiZWVuIG1hZGUgc3RhbmRhbG9uZSwgaW1wb3J0IHRoZW0gZGlyZWN0bHk6XG4gKiAgICAgUXVpY2tLZXlzRGlyZWN0aXZlXG4gKiAgICAgRGF0ZUZvcm1GaWVsZENsaWNrRGlyZWN0aXZlXG4gKiAgICAgU3RvU2VsZWN0VGV4dE9uRm9jdXNEaXJlY3RpdmVcbiAqICAgICBTdG9HcmlkRGlyZWN0aXZlXG4gKiAgICAgU3RvR3JpZENvbHVtbkRpcmVjdGl2ZVxuICogICAgIFN0b0dyaWRTcGFjZXJEaXJlY3RpdmVcbiAqICAgICBNZW51T3ZlcmxheURpcmVjdGl2ZVxuICogICAgIENvbnRleHRNZW51RGlyZWN0aXZlXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBRdWlja0tleXNEaXJlY3RpdmVcbiAgICAsIERhdGVGb3JtRmllbGRDbGlja0RpcmVjdGl2ZVxuICAgICwgU3RvU2VsZWN0VGV4dE9uRm9jdXNEaXJlY3RpdmVcbiAgICAsIFN0b0dyaWREaXJlY3RpdmVcbiAgICAsIFN0b0dyaWRDb2x1bW5EaXJlY3RpdmVcbiAgICAsIFN0b0dyaWRTcGFjZXJEaXJlY3RpdmVcbiAgICAsIE1lbnVPdmVybGF5RGlyZWN0aXZlXG4gICAgLCBDb250ZXh0TWVudURpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUXVpY2tLZXlzRGlyZWN0aXZlXG4gICAgLCBEYXRlRm9ybUZpZWxkQ2xpY2tEaXJlY3RpdmVcbiAgICAsIFN0b1NlbGVjdFRleHRPbkZvY3VzRGlyZWN0aXZlXG4gICAgLCBTdG9HcmlkRGlyZWN0aXZlXG4gICAgLCBTdG9HcmlkQ29sdW1uRGlyZWN0aXZlXG4gICAgLCBTdG9HcmlkU3BhY2VyRGlyZWN0aXZlXG4gICAgLCBNZW51T3ZlcmxheURpcmVjdGl2ZVxuICAgICwgQ29udGV4dE1lbnVEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTdG9EaXJlY3RpdmVzTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Host, HostBinding } from '@angular/core';
|
|
2
|
-
import { MatLegacyMenuTrigger as MatMenuTrigger } from '@angular/material/legacy-menu';
|
|
3
|
-
import { fromEvent } from 'rxjs';
|
|
4
|
-
import { switchMap, take } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/material/legacy-menu";
|
|
7
|
-
export class MenuOverlayDirective {
|
|
8
|
-
constructor(trigger, el) {
|
|
9
|
-
this.trigger = trigger;
|
|
10
|
-
this.left = 0;
|
|
11
|
-
this.top = 0;
|
|
12
|
-
this.menu = trigger.menu;
|
|
13
|
-
this.trigger.menuOpened.pipe(switchMap(() => fromEvent(document, 'click')
|
|
14
|
-
.pipe(take(1)))).subscribe(() => {
|
|
15
|
-
this.trigger.closeMenu();
|
|
16
|
-
});
|
|
17
|
-
this.setStyle(el.nativeElement);
|
|
18
|
-
}
|
|
19
|
-
updatePosition(event) {
|
|
20
|
-
this.left = event.x;
|
|
21
|
-
this.top = event.y;
|
|
22
|
-
}
|
|
23
|
-
setStyle(element) {
|
|
24
|
-
element.style.overflow = 'hidden';
|
|
25
|
-
element.style.position = 'fixed';
|
|
26
|
-
element.style.height = '1px';
|
|
27
|
-
element.style.width = '1px';
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
MenuOverlayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: MenuOverlayDirective, deps: [{ token: i1.MatLegacyMenuTrigger, host: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
31
|
-
MenuOverlayDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.1", type: MenuOverlayDirective, isStandalone: true, selector: "[stoMenuOverlay]", host: { properties: { "style.left.px": "this.left", "style.top.px": "this.top" } }, exportAs: ["stoMenuOverlay"], ngImport: i0 });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: MenuOverlayDirective, decorators: [{
|
|
33
|
-
type: Directive,
|
|
34
|
-
args: [{
|
|
35
|
-
selector: '[stoMenuOverlay]',
|
|
36
|
-
exportAs: 'stoMenuOverlay',
|
|
37
|
-
standalone: true
|
|
38
|
-
}]
|
|
39
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyMenuTrigger, decorators: [{
|
|
40
|
-
type: Host
|
|
41
|
-
}] }, { type: i0.ElementRef }]; }, propDecorators: { left: [{
|
|
42
|
-
type: HostBinding,
|
|
43
|
-
args: ['style.left.px']
|
|
44
|
-
}], top: [{
|
|
45
|
-
type: HostBinding,
|
|
46
|
-
args: ['style.top.px']
|
|
47
|
-
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1vdmVybGF5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3N0by1kaXJlY3RpdmVzL21lbnUtb3ZlcmxheS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQXNDLG9CQUFvQixJQUFJLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBT2pELE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsWUFBNEIsT0FBdUIsRUFBRSxFQUFpQztRQUExRCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUxuRCxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRVQsUUFBRyxHQUFHLENBQUMsQ0FBQztRQUlOLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQW9CLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQ2IsU0FBUyxDQUFhLFFBQVEsRUFBRSxPQUFPLENBQUM7YUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUNGLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWlCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUEwQjtRQUN6QyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDbEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUM3QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQzs7aUhBOUJVLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFRYyxJQUFJO3FFQUxqQixJQUFJO3NCQURILFdBQVc7dUJBQUMsZUFBZTtnQkFHNUIsR0FBRztzQkFERixXQUFXO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3QsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRMZWdhY3lNZW51UGFuZWwgYXMgTWF0TWVudVBhbmVsLCBNYXRMZWdhY3lNZW51VHJpZ2dlciBhcyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1tZW51JztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc3RvTWVudU92ZXJsYXldJyxcbiAgZXhwb3J0QXM6ICdzdG9NZW51T3ZlcmxheScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWVudU92ZXJsYXlEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmxlZnQucHgnKVxuICBsZWZ0ID0gMDtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS50b3AucHgnKVxuICB0b3AgPSAwO1xuICBwcml2YXRlIHJlYWRvbmx5IG1lbnU6IE1hdE1lbnVQYW5lbDtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgdHJpZ2dlcjogTWF0TWVudVRyaWdnZXIsIGVsOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50Pikge1xuICAgIHRoaXMubWVudSA9IHRyaWdnZXIubWVudSBhcyBNYXRNZW51UGFuZWw7XG4gICAgdGhpcy50cmlnZ2VyLm1lbnVPcGVuZWQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsICdjbGljaycpXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICksXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy50cmlnZ2VyLmNsb3NlTWVudSgpO1xuICAgIH0pO1xuICAgIHRoaXMuc2V0U3R5bGUoZWwubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmxlZnQgPSBldmVudC54O1xuICAgIHRoaXMudG9wID0gZXZlbnQueTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3R5bGUoZWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnMXB4JztcbiAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gJzFweCc7XG4gIH1cbn1cbiJdfQ==
|