ngssm-toolkit 15.2.8 → 15.2.10
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/esm2020/lib/overlay/index.mjs +2 -1
- package/esm2020/lib/overlay/ngssm-overlay-builder.mjs +58 -0
- package/esm2020/lib/regex-editor/index.mjs +2 -1
- package/esm2020/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.mjs +24 -21
- package/esm2020/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.mjs +2 -1
- package/esm2020/lib/regex-editor/regex-editor-validator.mjs +29 -0
- package/fesm2015/ngssm-toolkit.mjs +101 -18
- package/fesm2015/ngssm-toolkit.mjs.map +1 -1
- package/fesm2020/ngssm-toolkit.mjs +97 -18
- package/fesm2020/ngssm-toolkit.mjs.map +1 -1
- package/lib/overlay/index.d.ts +1 -0
- package/lib/overlay/ngssm-overlay-builder.d.ts +20 -0
- package/lib/regex-editor/index.d.ts +1 -0
- package/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.d.ts +6 -4
- package/lib/regex-editor/regex-editor-validator.d.ts +11 -0
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './component-overlay.directive';
|
|
2
2
|
export * from './empty-overlay.component';
|
|
3
3
|
export * from './message-overlay.component';
|
|
4
|
-
|
|
4
|
+
export * from './ngssm-overlay-builder';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvb3ZlcmxheS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQtb3ZlcmxheS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbXB0eS1vdmVybGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2Utb3ZlcmxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1vdmVybGF5LWJ1aWxkZXInO1xuIl19
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
+
import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
+
import { DOCUMENT } from '@angular/common';
|
|
4
|
+
import { Inject, Injectable } from '@angular/core';
|
|
5
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import { MessageOverlayComponent } from './message-overlay.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
9
|
+
import * as i2 from "@angular/cdk/bidi";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
11
|
+
export class NgssmOverlayBuilder {
|
|
12
|
+
constructor(elementRef, viewContainerRef, document, scrollStrategies,
|
|
13
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
14
|
+
componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, directionality, location, outsideClickDispatcher, renderer) {
|
|
15
|
+
this.elementRef = elementRef;
|
|
16
|
+
this.viewContainerRef = viewContainerRef;
|
|
17
|
+
this._overlayMessage$ = new BehaviorSubject('Please wait');
|
|
18
|
+
renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');
|
|
19
|
+
const container = {
|
|
20
|
+
getContainerElement: () => this.elementRef.nativeElement
|
|
21
|
+
};
|
|
22
|
+
this.overlay = new Overlay(scrollStrategies, container, componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, document, directionality, location, outsideClickDispatcher);
|
|
23
|
+
this.overlayRef = this.overlay.create({
|
|
24
|
+
positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),
|
|
25
|
+
hasBackdrop: true
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
set overlayMessage(value) {
|
|
29
|
+
this._overlayMessage$.next(value);
|
|
30
|
+
}
|
|
31
|
+
showOverlay() {
|
|
32
|
+
if (this.overLayTemplate) {
|
|
33
|
+
this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));
|
|
34
|
+
}
|
|
35
|
+
else if (this.overlayComponent) {
|
|
36
|
+
const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));
|
|
37
|
+
if (this.overlayComponent === MessageOverlayComponent) {
|
|
38
|
+
ref.instance.message$ = this._overlayMessage$.asObservable();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));
|
|
43
|
+
ref.instance.message$ = this._overlayMessage$.asObservable();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
hideOverlay() {
|
|
47
|
+
this.overlayRef.detach();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
NgssmOverlayBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmOverlayBuilder, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: DOCUMENT }, { token: i1.ScrollStrategyOptions }, { token: i0.ComponentFactoryResolver }, { token: i1.OverlayPositionBuilder }, { token: i1.OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: i2.Directionality }, { token: i3.Location }, { token: i1.OverlayOutsideClickDispatcher }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
51
|
+
NgssmOverlayBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmOverlayBuilder });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmOverlayBuilder, decorators: [{
|
|
53
|
+
type: Injectable
|
|
54
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
55
|
+
type: Inject,
|
|
56
|
+
args: [DOCUMENT]
|
|
57
|
+
}] }, { type: i1.ScrollStrategyOptions }, { type: i0.ComponentFactoryResolver }, { type: i1.OverlayPositionBuilder }, { type: i1.OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: i2.Directionality }, { type: i3.Location }, { type: i1.OverlayOutsideClickDispatcher }, { type: i0.Renderer2 }]; } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tb3ZlcmxheS1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdG9vbGtpdC9zcmMvbGliL292ZXJsYXkvbmdzc20tb3ZlcmxheS1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTCxPQUFPLEVBTVIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQVksTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBR0wsTUFBTSxFQUNOLFVBQVUsRUFNWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQUd0RSxNQUFNLE9BQU8sbUJBQW1CO0lBUzlCLFlBQ1UsVUFBc0IsRUFDdEIsZ0JBQWtDLEVBQ3hCLFFBQWEsRUFDL0IsZ0JBQXVDO0lBQ3ZDLG1EQUFtRDtJQUNuRCx3QkFBa0QsRUFDbEQsZUFBdUMsRUFDdkMsa0JBQTZDLEVBQzdDLFFBQWtCLEVBQ2xCLE1BQWMsRUFDZCxjQUE4QixFQUM5QixRQUFrQixFQUNsQixzQkFBcUQsRUFDckQsUUFBbUI7UUFiWCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFWM0IscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQVMsYUFBYSxDQUFDLENBQUM7UUF3QjdFLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLG1CQUFtQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYTtTQUN6RCxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FDeEIsZ0JBQWdCLEVBQ2hCLFNBQWdCLEVBQ2hCLHdCQUF3QixFQUN4QixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLGNBQWMsRUFDZCxRQUFRLEVBQ1Isc0JBQXNCLENBQ3ZCLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3BDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxRixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBVyxjQUFjLENBQUMsS0FBYTtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7U0FDekY7YUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQy9FLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLHVCQUF1QixFQUFFO2dCQUNyRCxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDOUQ7U0FDRjthQUFNO1lBQ0wsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUM5RDtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Z0hBdEVVLG1CQUFtQiw0RUFZcEIsUUFBUTtvSEFaUCxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBYU4sTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRUeXBlLFxuICBPdmVybGF5LFxuICBPdmVybGF5S2V5Ym9hcmREaXNwYXRjaGVyLFxuICBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlcixcbiAgT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcbiAgT3ZlcmxheVJlZixcbiAgU2Nyb2xsU3RyYXRlZ3lPcHRpb25zXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5ULCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIE5nWm9uZSxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzc2FnZU92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2Utb3ZlcmxheS5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmdzc21PdmVybGF5QnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXlNZXNzYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignUGxlYXNlIHdhaXQnKTtcblxuICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXk7XG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICBwdWJsaWMgb3ZlckxheVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgb3ZlcmxheUNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICBzY3JvbGxTdHJhdGVnaWVzOiBTY3JvbGxTdHJhdGVneU9wdGlvbnMsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlcHJlY2F0aW9uL2RlcHJlY2F0aW9uXG4gICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcG9zaXRpb25CdWlsZGVyOiBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICAgIGtleWJvYXJkRGlzcGF0Y2hlcjogT3ZlcmxheUtleWJvYXJkRGlzcGF0Y2hlcixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5LFxuICAgIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBvdXRzaWRlQ2xpY2tEaXNwYXRjaGVyOiBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlcixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcbiAgICBjb25zdCBjb250YWluZXIgPSB7XG4gICAgICBnZXRDb250YWluZXJFbGVtZW50OiAoKSA9PiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgIH07XG5cbiAgICB0aGlzLm92ZXJsYXkgPSBuZXcgT3ZlcmxheShcbiAgICAgIHNjcm9sbFN0cmF0ZWdpZXMsXG4gICAgICBjb250YWluZXIgYXMgYW55LFxuICAgICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgcG9zaXRpb25CdWlsZGVyLFxuICAgICAga2V5Ym9hcmREaXNwYXRjaGVyLFxuICAgICAgaW5qZWN0b3IsXG4gICAgICBuZ1pvbmUsXG4gICAgICBkb2N1bWVudCxcbiAgICAgIGRpcmVjdGlvbmFsaXR5LFxuICAgICAgbG9jYXRpb24sXG4gICAgICBvdXRzaWRlQ2xpY2tEaXNwYXRjaGVyXG4gICAgKTtcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgb3ZlcmxheU1lc3NhZ2UodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX292ZXJsYXlNZXNzYWdlJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93T3ZlcmxheSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vdmVyTGF5VGVtcGxhdGUpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlckxheVRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub3ZlcmxheUNvbXBvbmVudCkge1xuICAgICAgY29uc3QgcmVmID0gdGhpcy5vdmVybGF5UmVmLmF0dGFjaChuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMub3ZlcmxheUNvbXBvbmVudCkpO1xuICAgICAgaWYgKHRoaXMub3ZlcmxheUNvbXBvbmVudCA9PT0gTWVzc2FnZU92ZXJsYXlDb21wb25lbnQpIHtcbiAgICAgICAgcmVmLmluc3RhbmNlLm1lc3NhZ2UkID0gdGhpcy5fb3ZlcmxheU1lc3NhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwoTWVzc2FnZU92ZXJsYXlDb21wb25lbnQpKTtcbiAgICAgIHJlZi5pbnN0YW5jZS5tZXNzYWdlJCA9IHRoaXMuX292ZXJsYXlNZXNzYWdlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGlkZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component';
|
|
2
2
|
export * from './ngssm-regex-editor/ngssm-regex-editor.component';
|
|
3
|
-
|
|
3
|
+
export * from './regex-editor-validator';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvcmVnZXgtZWRpdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1yZWdleC1lZGl0b3ItdG9nZ2xlL25nc3NtLXJlZ2V4LWVkaXRvci10b2dnbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tcmVnZXgtZWRpdG9yL25nc3NtLXJlZ2V4LWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdleC1lZGl0b3ItdmFsaWRhdG9yJztcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, EventEmitter, Output, Input } from '@angular/core';
|
|
1
|
+
import { Component, ChangeDetectionStrategy, EventEmitter, Output, Input, Inject, Optional } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
4
4
|
import { MatCardModule } from '@angular/material/card';
|
|
@@ -8,6 +8,7 @@ import { MatButtonModule } from '@angular/material/button';
|
|
|
8
8
|
import { MatIconModule } from '@angular/material/icon';
|
|
9
9
|
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
10
10
|
import { useDefaultErrorStateMatcher } from '../../default-error-state-matcher';
|
|
11
|
+
import { defaultRegexEditorValidator, NGSSM_REGEX_EDITOR_VALIDATOR } from '../regex-editor-validator';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "@angular/common";
|
|
13
14
|
import * as i2 from "@angular/forms";
|
|
@@ -16,32 +17,20 @@ import * as i4 from "@angular/material/form-field";
|
|
|
16
17
|
import * as i5 from "@angular/material/input";
|
|
17
18
|
import * as i6 from "@angular/material/button";
|
|
18
19
|
import * as i7 from "@angular/material/icon";
|
|
19
|
-
export const regexValidator = (control) => {
|
|
20
|
-
try {
|
|
21
|
-
const regex = new RegExp(control.value);
|
|
22
|
-
if (regex.test('')) {
|
|
23
|
-
// nothing here
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
return {
|
|
28
|
-
regex: error.message
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
return null;
|
|
32
|
-
};
|
|
33
20
|
export class NgssmRegexEditorComponent {
|
|
34
|
-
constructor() {
|
|
21
|
+
constructor(validator) {
|
|
35
22
|
this._isRegexValid$ = new BehaviorSubject(null);
|
|
36
|
-
this.regexControl = new FormControl(null, [Validators.required, regexValidator]);
|
|
37
23
|
this.testStringControl = new FormControl('');
|
|
38
24
|
this.closeEditor = new EventEmitter();
|
|
25
|
+
this.regexValidator = validator ?? defaultRegexEditorValidator;
|
|
26
|
+
this.regexControl = new FormControl(null, [Validators.required, (c) => this.validatedRegex(c)]);
|
|
39
27
|
combineLatest([this.regexControl.valueChanges, this.testStringControl.valueChanges, this.regexControl.statusChanges]).subscribe((values) => {
|
|
40
28
|
if (this.regexControl.invalid || (values[1] ?? '').length === 0) {
|
|
41
29
|
this._isRegexValid$.next(null);
|
|
42
30
|
return;
|
|
43
31
|
}
|
|
44
|
-
this.
|
|
32
|
+
const isMatch = this.regexValidator.isMatch(values[0] ?? '', values[1] ?? '');
|
|
33
|
+
this._isRegexValid$.next(isMatch);
|
|
45
34
|
});
|
|
46
35
|
}
|
|
47
36
|
set regex(value) {
|
|
@@ -56,15 +45,29 @@ export class NgssmRegexEditorComponent {
|
|
|
56
45
|
submit() {
|
|
57
46
|
this.closeEditor.emit(this.regexControl.value ?? '');
|
|
58
47
|
}
|
|
48
|
+
validatedRegex(control) {
|
|
49
|
+
const result = this.regexValidator.validatePattern(control.value);
|
|
50
|
+
if (result.isValid) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
regex: result.error
|
|
55
|
+
};
|
|
56
|
+
}
|
|
59
57
|
}
|
|
60
|
-
NgssmRegexEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
NgssmRegexEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, deps: [{ token: NGSSM_REGEX_EDITOR_VALIDATOR, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
61
59
|
NgssmRegexEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorComponent, isStandalone: true, selector: "ngssm-regex-editor", inputs: { regex: "regex" }, outputs: { closeEditor: "closeEditor" }, providers: [useDefaultErrorStateMatcher], ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
62
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, decorators: [{
|
|
63
61
|
type: Component,
|
|
64
62
|
args: [{ selector: 'ngssm-regex-editor', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule], providers: [useDefaultErrorStateMatcher], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"] }]
|
|
65
|
-
}], ctorParameters: function () { return [
|
|
63
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
64
|
+
type: Inject,
|
|
65
|
+
args: [NGSSM_REGEX_EDITOR_VALIDATOR]
|
|
66
|
+
}, {
|
|
67
|
+
type: Optional
|
|
68
|
+
}] }]; }, propDecorators: { closeEditor: [{
|
|
66
69
|
type: Output
|
|
67
70
|
}], regex: [{
|
|
68
71
|
type: Input
|
|
69
72
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVnZXgtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRvb2xraXQvc3JjL2xpYi9yZWdleC1lZGl0b3Ivbmdzc20tcmVnZXgtZWRpdG9yL25nc3NtLXJlZ2V4LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvcmVnZXgtZWRpdG9yL25nc3NtLXJlZ2V4LWVkaXRvci9uZ3NzbS1yZWdleC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFtQixXQUFXLEVBQUUsbUJBQW1CLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7O0FBRWhGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7SUFDbEYsSUFBSTtRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbEIsZUFBZTtTQUNoQjtLQUNGO0lBQUMsT0FBTyxLQUFVLEVBQUU7UUFDbkIsT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTztTQUNyQixDQUFDO0tBQ0g7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQVdGLE1BQU0sT0FBTyx5QkFBeUI7SUFRcEM7UUFQaUIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBaUIsSUFBSSxDQUFDLENBQUM7UUFFNUQsaUJBQVksR0FBRyxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQzNGLHNCQUFpQixHQUFHLElBQUksV0FBVyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXRELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFHN0QsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUM3SCxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFnQztRQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7c0hBbkNVLHlCQUF5QjswR0FBekIseUJBQXlCLHNJQUx6QixDQUFDLDJCQUEyQixDQUFDLDBCQy9CMUMsbWpEQWdDVyxpTERGQyxZQUFZLHVMQUFFLG1CQUFtQix5a0JBQUUsYUFBYSxpaEJBQUUsa0JBQWtCLHVZQUFFLGNBQWMsMFdBQUUsZUFBZSwyUUFBRSxhQUFhOzJGQU1uSCx5QkFBeUI7a0JBVHJDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsYUFDcEgsQ0FBQywyQkFBMkIsQ0FBQyxtQkFHdkIsdUJBQXVCLENBQUMsTUFBTTswRUFRckMsV0FBVztzQkFBcEIsTUFBTTtnQkFlTSxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHVzZURlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uLy4uL2RlZmF1bHQtZXJyb3Itc3RhdGUtbWF0Y2hlcic7XG5cbmV4cG9ydCBjb25zdCByZWdleFZhbGlkYXRvciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGNvbnRyb2wudmFsdWUpO1xuICAgIGlmIChyZWdleC50ZXN0KCcnKSkge1xuICAgICAgLy8gbm90aGluZyBoZXJlXG4gICAgfVxuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2V4OiBlcnJvci5tZXNzYWdlXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdzc20tcmVnZXgtZWRpdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0Q2FyZE1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbdXNlRGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyXSxcbiAgdGVtcGxhdGVVcmw6ICcuL25nc3NtLXJlZ2V4LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25nc3NtLXJlZ2V4LWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOZ3NzbVJlZ2V4RWRpdG9yQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNSZWdleFZhbGlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbiB8IG51bGw+KG51bGwpO1xuXG4gIHB1YmxpYyByZWFkb25seSByZWdleENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHJlZ2V4VmFsaWRhdG9yXSk7XG4gIHB1YmxpYyByZWFkb25seSB0ZXN0U3RyaW5nQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKTtcblxuICBAT3V0cHV0KCkgY2xvc2VFZGl0b3IgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlZ2V4Q29udHJvbC52YWx1ZUNoYW5nZXMsIHRoaXMudGVzdFN0cmluZ0NvbnRyb2wudmFsdWVDaGFuZ2VzLCB0aGlzLnJlZ2V4Q29udHJvbC5zdGF0dXNDaGFuZ2VzXSkuc3Vic2NyaWJlKFxuICAgICAgKHZhbHVlcykgPT4ge1xuICAgICAgICBpZiAodGhpcy5yZWdleENvbnRyb2wuaW52YWxpZCB8fCAodmFsdWVzWzFdID8/ICcnKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9pc1JlZ2V4VmFsaWQkLm5leHQobnVsbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXNSZWdleFZhbGlkJC5uZXh0KG5ldyBSZWdFeHAodmFsdWVzWzBdID8/ICcnKS50ZXN0KHZhbHVlc1sxXSA/PyAnJykpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgcmVnZXgodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLnJlZ2V4Q29udHJvbC5zZXRWYWx1ZSh2YWx1ZSA/PyBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNSZWdleFZhbGlkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzUmVnZXhWYWxpZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VFZGl0b3IuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRWRpdG9yLmVtaXQodGhpcy5yZWdleENvbnRyb2wudmFsdWUgPz8gJycpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJmbGV4LWNvbHVtbi1zdHJldGNoIGZ4RmxleFwiPlxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5SZWdleCBFZGl0b3I8L21hdC1jYXJkLXRpdGxlPlxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiZmxleC1jb2x1bW4tc3RyZXRjaCBmeEZsZXhcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwid2l0aC1tYXJnaW4tdG9wLThcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+UmVndWxhciBleHByZXNzaW9uPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cInJlZ2V4Q29udHJvbFwiPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInJlZ2V4Q29udHJvbC5lcnJvcnM/LlsncmVnZXgnXVwiPlxuICAgICAgICAgICAgICAgIHt7cmVnZXhDb250cm9sLmVycm9ycz8uWydyZWdleCddfX1cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1yb3ctY2VudGVyXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmeEZsZXhcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlRlc3Qgc3RyaW5nPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJ0ZXN0U3RyaW5nQ29udHJvbFwiPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZWNrIHN1Y2Nlc3Mgd2l0aC1tYXJnaW4tbGVmdC0xMlwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoaXNSZWdleFZhbGlkJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS14bWFyayBmYWlsdXJlIHdpdGgtbWFyZ2luLWxlZnQtMTJcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGlzUmVnZXhWYWxpZCQgfCBhc3luYykgPT09IGZhbHNlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDxtYXQtY2FyZC1hY3Rpb25zIGNsYXNzPVwiZmxleC1yb3ctY2VudGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZnhGbGV4XCI+PC9zcGFuPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCIgaWQ9XCJjYW5jZWxCdXR0b25cIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWdleENvbnRyb2wuaW52YWxpZCB8fCAoKGlzUmVnZXhWYWxpZCQgfCBhc3luYykgPT09IGZhbHNlKVwiIChjbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICAgICAgICBpZD1cInN1Ym1pdEJ1dHRvblwiPlxuICAgICAgICAgICAgU3VibWl0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbjwvbWF0LWNhcmQ+Il19
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVnZXgtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRvb2xraXQvc3JjL2xpYi9yZWdleC1lZGl0b3Ivbmdzc20tcmVnZXgtZWRpdG9yL25nc3NtLXJlZ2V4LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvcmVnZXgtZWRpdG9yL25nc3NtLXJlZ2V4LWVkaXRvci9uZ3NzbS1yZWdleC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxtQkFBbUIsRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRWxFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSw0QkFBNEIsRUFBd0IsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBVzVILE1BQU0sT0FBTyx5QkFBeUI7SUFTcEMsWUFBOEQsU0FBZ0M7UUFQN0UsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBaUIsSUFBSSxDQUFDLENBQUM7UUFHNUQsc0JBQWlCLEdBQUcsSUFBSSxXQUFXLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFdEQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUc3RCxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsSUFBSSwyQkFBMkIsQ0FBQztRQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzdILENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDVCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixPQUFPO2FBQ1I7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFnQztRQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUF3QjtRQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEUsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1NBQ3BCLENBQUM7SUFDSixDQUFDOztzSEFsRFUseUJBQXlCLGtCQVNoQiw0QkFBNEI7MEdBVHJDLHlCQUF5QixzSUFMekIsQ0FBQywyQkFBMkIsQ0FBQywwQkNqQjFDLG1qREFnQ1csaUxEaEJDLFlBQVksdUxBQUUsbUJBQW1CLHlrQkFBRSxhQUFhLGloQkFBRSxrQkFBa0IsdVlBQUUsY0FBYywwV0FBRSxlQUFlLDJRQUFFLGFBQWE7MkZBTW5ILHlCQUF5QjtrQkFUckMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxhQUNwSCxDQUFDLDJCQUEyQixDQUFDLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNOzswQkFXbEMsTUFBTTsyQkFBQyw0QkFBNEI7OzBCQUFHLFFBQVE7NENBRmpELFdBQVc7c0JBQXBCLE1BQU07Z0JBa0JNLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgdXNlRGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnLi4vLi4vZGVmYXVsdC1lcnJvci1zdGF0ZS1tYXRjaGVyJztcbmltcG9ydCB7IGRlZmF1bHRSZWdleEVkaXRvclZhbGlkYXRvciwgTkdTU01fUkVHRVhfRURJVE9SX1ZBTElEQVRPUiwgUmVnZXhFZGl0b3JWYWxpZGF0b3IgfSBmcm9tICcuLi9yZWdleC1lZGl0b3ItdmFsaWRhdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdzc20tcmVnZXgtZWRpdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0Q2FyZE1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbdXNlRGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyXSxcbiAgdGVtcGxhdGVVcmw6ICcuL25nc3NtLXJlZ2V4LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25nc3NtLXJlZ2V4LWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOZ3NzbVJlZ2V4RWRpdG9yQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSByZWdleFZhbGlkYXRvcjogUmVnZXhFZGl0b3JWYWxpZGF0b3I7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzUmVnZXhWYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4gfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVnZXhDb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgcHVibGljIHJlYWRvbmx5IHRlc3RTdHJpbmdDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJycpO1xuXG4gIEBPdXRwdXQoKSBjbG9zZUVkaXRvciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdTU01fUkVHRVhfRURJVE9SX1ZBTElEQVRPUikgQE9wdGlvbmFsKCkgdmFsaWRhdG9yPzogUmVnZXhFZGl0b3JWYWxpZGF0b3IpIHtcbiAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yID0gdmFsaWRhdG9yID8/IGRlZmF1bHRSZWdleEVkaXRvclZhbGlkYXRvcjtcbiAgICB0aGlzLnJlZ2V4Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgKGMpID0+IHRoaXMudmFsaWRhdGVkUmVnZXgoYyldKTtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlZ2V4Q29udHJvbC52YWx1ZUNoYW5nZXMsIHRoaXMudGVzdFN0cmluZ0NvbnRyb2wudmFsdWVDaGFuZ2VzLCB0aGlzLnJlZ2V4Q29udHJvbC5zdGF0dXNDaGFuZ2VzXSkuc3Vic2NyaWJlKFxuICAgICAgKHZhbHVlcykgPT4ge1xuICAgICAgICBpZiAodGhpcy5yZWdleENvbnRyb2wuaW52YWxpZCB8fCAodmFsdWVzWzFdID8/ICcnKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9pc1JlZ2V4VmFsaWQkLm5leHQobnVsbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNNYXRjaCA9IHRoaXMucmVnZXhWYWxpZGF0b3IuaXNNYXRjaCh2YWx1ZXNbMF0gPz8gJycsIHZhbHVlc1sxXSA/PyAnJyk7XG4gICAgICAgIHRoaXMuX2lzUmVnZXhWYWxpZCQubmV4dChpc01hdGNoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHJlZ2V4KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgdGhpcy5yZWdleENvbnRyb2wuc2V0VmFsdWUodmFsdWUgPz8gbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUmVnZXhWYWxpZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9pc1JlZ2V4VmFsaWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRWRpdG9yLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZUVkaXRvci5lbWl0KHRoaXMucmVnZXhDb250cm9sLnZhbHVlID8/ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVkUmVnZXgoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucmVnZXhWYWxpZGF0b3IudmFsaWRhdGVQYXR0ZXJuKGNvbnRyb2wudmFsdWUpO1xuICAgIGlmIChyZXN1bHQuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2V4OiByZXN1bHQuZXJyb3JcbiAgICB9O1xuICB9XG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJmbGV4LWNvbHVtbi1zdHJldGNoIGZ4RmxleFwiPlxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5SZWdleCBFZGl0b3I8L21hdC1jYXJkLXRpdGxlPlxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiZmxleC1jb2x1bW4tc3RyZXRjaCBmeEZsZXhcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwid2l0aC1tYXJnaW4tdG9wLThcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+UmVndWxhciBleHByZXNzaW9uPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cInJlZ2V4Q29udHJvbFwiPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInJlZ2V4Q29udHJvbC5lcnJvcnM/LlsncmVnZXgnXVwiPlxuICAgICAgICAgICAgICAgIHt7cmVnZXhDb250cm9sLmVycm9ycz8uWydyZWdleCddfX1cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1yb3ctY2VudGVyXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmeEZsZXhcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlRlc3Qgc3RyaW5nPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJ0ZXN0U3RyaW5nQ29udHJvbFwiPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZWNrIHN1Y2Nlc3Mgd2l0aC1tYXJnaW4tbGVmdC0xMlwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoaXNSZWdleFZhbGlkJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS14bWFyayBmYWlsdXJlIHdpdGgtbWFyZ2luLWxlZnQtMTJcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGlzUmVnZXhWYWxpZCQgfCBhc3luYykgPT09IGZhbHNlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDxtYXQtY2FyZC1hY3Rpb25zIGNsYXNzPVwiZmxleC1yb3ctY2VudGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZnhGbGV4XCI+PC9zcGFuPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCIgaWQ9XCJjYW5jZWxCdXR0b25cIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWdleENvbnRyb2wuaW52YWxpZCB8fCAoKGlzUmVnZXhWYWxpZCQgfCBhc3luYykgPT09IGZhbHNlKVwiIChjbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICAgICAgICBpZD1cInN1Ym1pdEJ1dHRvblwiPlxuICAgICAgICAgICAgU3VibWl0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbjwvbWF0LWNhcmQ+Il19
|
package/esm2020/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.mjs
CHANGED
|
@@ -36,6 +36,7 @@ export class NgssmRegexEditorToggleComponent {
|
|
|
36
36
|
this._isOpen$.next(false);
|
|
37
37
|
if (regex !== undefined && this.inputElement) {
|
|
38
38
|
this.inputElement.value = regex;
|
|
39
|
+
this.inputElement.dispatchEvent(new Event('input', { bubbles: true }));
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
}
|
|
@@ -49,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
49
50
|
}], disabled: [{
|
|
50
51
|
type: Input
|
|
51
52
|
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVnZXgtZWRpdG9yLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvcmVnZXgtZWRpdG9yL25nc3NtLXJlZ2V4LWVkaXRvci10b2dnbGUvbmdzc20tcmVnZXgtZWRpdG9yLXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvcmVnZXgtZWRpdG9yL25nc3NtLXJlZ2V4LWVkaXRvci10b2dnbGUvbmdzc20tcmVnZXgtZWRpdG9yLXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7O0FBVS9GLE1BQU0sT0FBTywrQkFBK0I7SUFSNUM7UUFTbUIsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9DLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7S0FrQ3JFO0lBN0JDLElBQWEsUUFBUSxDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFpQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDaEMsT0FBTztTQUNSO1FBRUQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUF5QjtRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN4RTtJQUNILENBQUM7OzRIQW5DVSwrQkFBK0I7Z0hBQS9CLCtCQUErQixxSkNqQjVDLGlqQkFRYyxrT0RJRixZQUFZLG1GQUFFLGFBQWEsbUxBQUUsZUFBZSwyTEFBRSxhQUFhLGlwQ0FBRSx5QkFBeUI7MkZBS3JGLCtCQUErQjtrQkFSM0MsU0FBUzsrQkFDRSwyQkFBMkIsY0FDekIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixDQUFDLG1CQUdoRix1QkFBdUIsQ0FBQyxNQUFNOzhCQVEvQixZQUFZO3NCQUEzQixLQUFLO2dCQUNPLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5nc3NtUmVnZXhFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi9uZ3NzbS1yZWdleC1lZGl0b3Ivbmdzc20tcmVnZXgtZWRpdG9yLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nc3NtLXJlZ2V4LWVkaXRvci10b2dnbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE92ZXJsYXlNb2R1bGUsIE5nc3NtUmVnZXhFZGl0b3JDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vbmdzc20tcmVnZXgtZWRpdG9yLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25nc3NtLXJlZ2V4LWVkaXRvci10b2dnbGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTmdzc21SZWdleEVkaXRvclRvZ2dsZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzT3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNEaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwdWJsaWMgcmVnZXhWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0Rpc2FibGVkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcGVuJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNEaXNhYmxlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRGlzYWJsZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG9wZW5FZGl0b3IoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faXNEaXNhYmxlZCQuZ2V0VmFsdWUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucmVnZXhWYWx1ZSA9IHRoaXMuaW5wdXRFbGVtZW50Py52YWx1ZTtcbiAgICB0aGlzLl9pc09wZW4kLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VFZGl0b3IocmVnZXg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuX2lzT3BlbiQubmV4dChmYWxzZSk7XG4gICAgaWYgKHJlZ2V4ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gcmVnZXg7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5FZGl0b3IoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkJCB8IGFzeW5jXCIgY29sb3I9XCJwcmltYXJ5XCIgaWQ9XCJ0b2dnbGVCdXR0b25cIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS11cC1yaWdodC1mcm9tLXNxdWFyZSBuZ3NzbS1yZWdleC1lZGl0b3ItdG9nZ2xlLWljb25cIiBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiPjwvbWF0LWljb24+XG48L2J1dHRvbj5cblxuPG5nLXRlbXBsYXRlIGNka0Nvbm5lY3RlZE92ZXJsYXkgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIihpc09wZW4kIHwgYXN5bmMpID09PSB0cnVlXCI+XG4gICAgPG5nc3NtLXJlZ2V4LWVkaXRvciAoY2xvc2VFZGl0b3IpPVwiY2xvc2VFZGl0b3IoJGV2ZW50KVwiIFtyZWdleF09XCJyZWdleFZhbHVlXCI+PC9uZ3NzbS1yZWdleC1lZGl0b3I+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const NGSSM_REGEX_EDITOR_VALIDATOR = new InjectionToken('NGSSM_NGSSM_REGEX_EDITOR_VALIDATORREDUCER');
|
|
3
|
+
export const defaultRegexEditorValidator = {
|
|
4
|
+
validatePattern: (pattern) => {
|
|
5
|
+
try {
|
|
6
|
+
const regex = new RegExp(pattern);
|
|
7
|
+
if (regex.test('')) {
|
|
8
|
+
return { isValid: true };
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
return { isValid: false, error: error.message };
|
|
13
|
+
}
|
|
14
|
+
return { isValid: true };
|
|
15
|
+
},
|
|
16
|
+
isMatch: (pattern, testString) => {
|
|
17
|
+
try {
|
|
18
|
+
const regex = new RegExp(pattern);
|
|
19
|
+
if (regex.test(testString)) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgtZWRpdG9yLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRvb2xraXQvc3JjL2xpYi9yZWdleC1lZGl0b3IvcmVnZXgtZWRpdG9yLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWS9DLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUF1QiwyQ0FBMkMsQ0FBQyxDQUFDO0FBRWxJLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUF5QjtJQUMvRCxlQUFlLEVBQUUsQ0FBQyxPQUFlLEVBQUUsRUFBRTtRQUNuQyxJQUFJO1lBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUNsQixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzFCO1NBQ0Y7UUFBQyxPQUFPLEtBQVUsRUFBRTtZQUNuQixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBUyxDQUFDO1NBQ3hEO1FBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsT0FBZSxFQUFFLFVBQWtCLEVBQUUsRUFBRTtRQUMvQyxJQUFJO1lBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUMxQixPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFBQyxPQUFPLEtBQVUsRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnZXhWYWxpZGF0aW9uUmVzdWx0IHtcbiAgaXNWYWxpZDogYm9vbGVhbjtcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnZXhFZGl0b3JWYWxpZGF0b3Ige1xuICB2YWxpZGF0ZVBhdHRlcm46IChwYXR0ZXJuOiBzdHJpbmcpID0+IFJlZ2V4VmFsaWRhdGlvblJlc3VsdDtcbiAgaXNNYXRjaDogKHBhdHRlcm46IHN0cmluZywgdGVzdFN0cmluZzogc3RyaW5nKSA9PiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgTkdTU01fUkVHRVhfRURJVE9SX1ZBTElEQVRPUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWdleEVkaXRvclZhbGlkYXRvcj4oJ05HU1NNX05HU1NNX1JFR0VYX0VESVRPUl9WQUxJREFUT1JSRURVQ0VSJyk7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UmVnZXhFZGl0b3JWYWxpZGF0b3I6IFJlZ2V4RWRpdG9yVmFsaWRhdG9yID0ge1xuICB2YWxpZGF0ZVBhdHRlcm46IChwYXR0ZXJuOiBzdHJpbmcpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHBhdHRlcm4pO1xuICAgICAgaWYgKHJlZ2V4LnRlc3QoJycpKSB7XG4gICAgICAgIHJldHVybiB7IGlzVmFsaWQ6IHRydWUgfTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICByZXR1cm4geyBpc1ZhbGlkOiBmYWxzZSwgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfSBhcyBhbnk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSB9O1xuICB9LFxuICBpc01hdGNoOiAocGF0dGVybjogc3RyaW5nLCB0ZXN0U3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHBhdHRlcm4pO1xuICAgICAgaWYgKHJlZ2V4LnRlc3QodGVzdFN0cmluZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { NgModule, Component, Directive, Inject, Input, Pipe, Optional, Self, ViewChild, HostBinding, ChangeDetectionStrategy,
|
|
2
|
+
import { NgModule, Component, Directive, Inject, Input, Injectable, Pipe, Optional, Self, ViewChild, HostBinding, ChangeDetectionStrategy, InjectionToken, EventEmitter, Output } from '@angular/core';
|
|
3
3
|
import { RouterModule } from '@angular/router';
|
|
4
4
|
import * as i3$1 from '@angular/common';
|
|
5
5
|
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
@@ -277,6 +277,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
277
277
|
args: [{ selector: 'ngssm-empty-overlay', template: `` }]
|
|
278
278
|
}] });
|
|
279
279
|
|
|
280
|
+
class NgssmOverlayBuilder {
|
|
281
|
+
constructor(elementRef, viewContainerRef, document, scrollStrategies,
|
|
282
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
283
|
+
componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, directionality, location, outsideClickDispatcher, renderer) {
|
|
284
|
+
this.elementRef = elementRef;
|
|
285
|
+
this.viewContainerRef = viewContainerRef;
|
|
286
|
+
this._overlayMessage$ = new BehaviorSubject('Please wait');
|
|
287
|
+
renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');
|
|
288
|
+
const container = {
|
|
289
|
+
getContainerElement: () => this.elementRef.nativeElement
|
|
290
|
+
};
|
|
291
|
+
this.overlay = new Overlay(scrollStrategies, container, componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, document, directionality, location, outsideClickDispatcher);
|
|
292
|
+
this.overlayRef = this.overlay.create({
|
|
293
|
+
positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),
|
|
294
|
+
hasBackdrop: true
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
set overlayMessage(value) {
|
|
298
|
+
this._overlayMessage$.next(value);
|
|
299
|
+
}
|
|
300
|
+
showOverlay() {
|
|
301
|
+
if (this.overLayTemplate) {
|
|
302
|
+
this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));
|
|
303
|
+
}
|
|
304
|
+
else if (this.overlayComponent) {
|
|
305
|
+
const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));
|
|
306
|
+
if (this.overlayComponent === MessageOverlayComponent) {
|
|
307
|
+
ref.instance.message$ = this._overlayMessage$.asObservable();
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));
|
|
312
|
+
ref.instance.message$ = this._overlayMessage$.asObservable();
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
hideOverlay() {
|
|
316
|
+
this.overlayRef.detach();
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
NgssmOverlayBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmOverlayBuilder, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: DOCUMENT }, { token: i1.ScrollStrategyOptions }, { token: i0.ComponentFactoryResolver }, { token: i1.OverlayPositionBuilder }, { token: i1.OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: i2$1.Directionality }, { token: i3$1.Location }, { token: i1.OverlayOutsideClickDispatcher }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
320
|
+
NgssmOverlayBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmOverlayBuilder });
|
|
321
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmOverlayBuilder, decorators: [{
|
|
322
|
+
type: Injectable
|
|
323
|
+
}], ctorParameters: function () {
|
|
324
|
+
return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
325
|
+
type: Inject,
|
|
326
|
+
args: [DOCUMENT]
|
|
327
|
+
}] }, { type: i1.ScrollStrategyOptions }, { type: i0.ComponentFactoryResolver }, { type: i1.OverlayPositionBuilder }, { type: i1.OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: i2$1.Directionality }, { type: i3$1.Location }, { type: i1.OverlayOutsideClickDispatcher }, { type: i0.Renderer2 }];
|
|
328
|
+
} });
|
|
329
|
+
|
|
280
330
|
class FileSizePipe {
|
|
281
331
|
constructor() {
|
|
282
332
|
this.units = ['bytes', 'KB', 'MB', 'GB'];
|
|
@@ -533,33 +583,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
533
583
|
}]
|
|
534
584
|
}], ctorParameters: function () { return [{ type: i1$2.MatSnackBar }]; } });
|
|
535
585
|
|
|
536
|
-
const
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
586
|
+
const NGSSM_REGEX_EDITOR_VALIDATOR = new InjectionToken('NGSSM_NGSSM_REGEX_EDITOR_VALIDATORREDUCER');
|
|
587
|
+
const defaultRegexEditorValidator = {
|
|
588
|
+
validatePattern: (pattern) => {
|
|
589
|
+
try {
|
|
590
|
+
const regex = new RegExp(pattern);
|
|
591
|
+
if (regex.test('')) {
|
|
592
|
+
return { isValid: true };
|
|
593
|
+
}
|
|
541
594
|
}
|
|
595
|
+
catch (error) {
|
|
596
|
+
return { isValid: false, error: error.message };
|
|
597
|
+
}
|
|
598
|
+
return { isValid: true };
|
|
599
|
+
},
|
|
600
|
+
isMatch: (pattern, testString) => {
|
|
601
|
+
try {
|
|
602
|
+
const regex = new RegExp(pattern);
|
|
603
|
+
if (regex.test(testString)) {
|
|
604
|
+
return true;
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
catch (error) {
|
|
608
|
+
return false;
|
|
609
|
+
}
|
|
610
|
+
return false;
|
|
542
611
|
}
|
|
543
|
-
catch (error) {
|
|
544
|
-
return {
|
|
545
|
-
regex: error.message
|
|
546
|
-
};
|
|
547
|
-
}
|
|
548
|
-
return null;
|
|
549
612
|
};
|
|
613
|
+
|
|
550
614
|
class NgssmRegexEditorComponent {
|
|
551
|
-
constructor() {
|
|
615
|
+
constructor(validator) {
|
|
552
616
|
this._isRegexValid$ = new BehaviorSubject(null);
|
|
553
|
-
this.regexControl = new FormControl(null, [Validators.required, regexValidator]);
|
|
554
617
|
this.testStringControl = new FormControl('');
|
|
555
618
|
this.closeEditor = new EventEmitter();
|
|
619
|
+
this.regexValidator = validator !== null && validator !== void 0 ? validator : defaultRegexEditorValidator;
|
|
620
|
+
this.regexControl = new FormControl(null, [Validators.required, (c) => this.validatedRegex(c)]);
|
|
556
621
|
combineLatest([this.regexControl.valueChanges, this.testStringControl.valueChanges, this.regexControl.statusChanges]).subscribe((values) => {
|
|
557
622
|
var _a, _b, _c;
|
|
558
623
|
if (this.regexControl.invalid || ((_a = values[1]) !== null && _a !== void 0 ? _a : '').length === 0) {
|
|
559
624
|
this._isRegexValid$.next(null);
|
|
560
625
|
return;
|
|
561
626
|
}
|
|
562
|
-
this.
|
|
627
|
+
const isMatch = this.regexValidator.isMatch((_b = values[0]) !== null && _b !== void 0 ? _b : '', (_c = values[1]) !== null && _c !== void 0 ? _c : '');
|
|
628
|
+
this._isRegexValid$.next(isMatch);
|
|
563
629
|
});
|
|
564
630
|
}
|
|
565
631
|
set regex(value) {
|
|
@@ -575,13 +641,29 @@ class NgssmRegexEditorComponent {
|
|
|
575
641
|
var _a;
|
|
576
642
|
this.closeEditor.emit((_a = this.regexControl.value) !== null && _a !== void 0 ? _a : '');
|
|
577
643
|
}
|
|
644
|
+
validatedRegex(control) {
|
|
645
|
+
const result = this.regexValidator.validatePattern(control.value);
|
|
646
|
+
if (result.isValid) {
|
|
647
|
+
return null;
|
|
648
|
+
}
|
|
649
|
+
return {
|
|
650
|
+
regex: result.error
|
|
651
|
+
};
|
|
652
|
+
}
|
|
578
653
|
}
|
|
579
|
-
NgssmRegexEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
654
|
+
NgssmRegexEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, deps: [{ token: NGSSM_REGEX_EDITOR_VALIDATOR, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
580
655
|
NgssmRegexEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorComponent, isStandalone: true, selector: "ngssm-regex-editor", inputs: { regex: "regex" }, outputs: { closeEditor: "closeEditor" }, providers: [useDefaultErrorStateMatcher], ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
581
656
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, decorators: [{
|
|
582
657
|
type: Component,
|
|
583
658
|
args: [{ selector: 'ngssm-regex-editor', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule], providers: [useDefaultErrorStateMatcher], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"] }]
|
|
584
|
-
}], ctorParameters: function () {
|
|
659
|
+
}], ctorParameters: function () {
|
|
660
|
+
return [{ type: undefined, decorators: [{
|
|
661
|
+
type: Inject,
|
|
662
|
+
args: [NGSSM_REGEX_EDITOR_VALIDATOR]
|
|
663
|
+
}, {
|
|
664
|
+
type: Optional
|
|
665
|
+
}] }];
|
|
666
|
+
}, propDecorators: { closeEditor: [{
|
|
585
667
|
type: Output
|
|
586
668
|
}], regex: [{
|
|
587
669
|
type: Input
|
|
@@ -614,6 +696,7 @@ class NgssmRegexEditorToggleComponent {
|
|
|
614
696
|
this._isOpen$.next(false);
|
|
615
697
|
if (regex !== undefined && this.inputElement) {
|
|
616
698
|
this.inputElement.value = regex;
|
|
699
|
+
this.inputElement.dispatchEvent(new Event('input', { bubbles: true }));
|
|
617
700
|
}
|
|
618
701
|
}
|
|
619
702
|
}
|
|
@@ -636,5 +719,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
636
719
|
* Generated bundle index. Do not edit.
|
|
637
720
|
*/
|
|
638
721
|
|
|
639
|
-
export { ComponentOverlayDirective, DefaultErrorStateMatcher, EmptyOverlayComponent, FilePickerComponent, FileSizePipe, MaterialImportsModule, MessageOverlayComponent, NgssmNotificationErrorComponent, NgssmNotificationSuccessComponent, NgssmNotifierService, NgssmRegexEditorComponent, NgssmRegexEditorToggleComponent, NgssmToolkitModule, NotFoundComponent,
|
|
722
|
+
export { ComponentOverlayDirective, DefaultErrorStateMatcher, EmptyOverlayComponent, FilePickerComponent, FileSizePipe, MaterialImportsModule, MessageOverlayComponent, NGSSM_REGEX_EDITOR_VALIDATOR, NgssmNotificationErrorComponent, NgssmNotificationSuccessComponent, NgssmNotifierService, NgssmOverlayBuilder, NgssmRegexEditorComponent, NgssmRegexEditorToggleComponent, NgssmToolkitModule, NotFoundComponent, defaultRegexEditorValidator, noop, useDefaultErrorStateMatcher };
|
|
640
723
|
//# sourceMappingURL=ngssm-toolkit.mjs.map
|