@ssv/ngx.ux 2.0.0-dev160 → 2.0.1-dev198
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/CHANGELOG.md +6 -0
- package/README.md +20 -0
- package/bundles/ssv-ngx.ux.umd.js +130 -51
- package/bundles/ssv-ngx.ux.umd.js.map +1 -1
- package/bundles/ssv-ngx.ux.umd.min.js +1 -1
- package/bundles/ssv-ngx.ux.umd.min.js.map +1 -1
- package/esm2015/module.js +3 -2
- package/esm2015/version.js +2 -2
- package/esm2015/viewport/index.js +5 -4
- package/esm2015/viewport/viewport-data/viewport-data.service.js +3 -3
- package/esm2015/viewport/viewport-matcher-var.directive.js +64 -0
- package/esm2015/viewport/viewport-matcher.directive.js +38 -38
- package/esm2015/viewport/viewport.service.js +10 -5
- package/fesm2015/ssv-ngx.ux.js +113 -48
- package/fesm2015/ssv-ngx.ux.js.map +1 -1
- package/package.json +1 -1
- package/ssv-ngx.ux.metadata.json +1 -1
- package/version.d.ts +1 -1
- package/viewport/index.d.ts +4 -3
- package/viewport/viewport-data/viewport-data.service.d.ts +1 -1
- package/viewport/viewport-matcher-var.directive.d.ts +22 -0
- package/viewport/viewport-matcher.directive.d.ts +4 -4
- package/viewport/viewport.service.d.ts +8 -2
|
@@ -10,10 +10,10 @@ export class SsvViewportMatcherContext {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
export class SsvViewportMatcherDirective {
|
|
13
|
-
constructor(viewport, renderer,
|
|
13
|
+
constructor(viewport, renderer, viewContainer, cdr, templateRef) {
|
|
14
14
|
this.viewport = viewport;
|
|
15
15
|
this.renderer = renderer;
|
|
16
|
-
this.
|
|
16
|
+
this.viewContainer = viewContainer;
|
|
17
17
|
this.cdr = cdr;
|
|
18
18
|
this._context = new SsvViewportMatcherContext();
|
|
19
19
|
this._thenTemplateRef = null;
|
|
@@ -25,6 +25,37 @@ export class SsvViewportMatcherDirective {
|
|
|
25
25
|
this._update$ = new Subject();
|
|
26
26
|
this._thenTemplateRef = templateRef;
|
|
27
27
|
}
|
|
28
|
+
set ssvViewportMatcher(value) {
|
|
29
|
+
if (isViewportSizeMatcherExpression(value)) {
|
|
30
|
+
this._context.expression = value;
|
|
31
|
+
}
|
|
32
|
+
else if (isViewportSizeMatcherTupleExpression(value)) {
|
|
33
|
+
const [op, size] = value;
|
|
34
|
+
this._context.expression = {
|
|
35
|
+
operation: op,
|
|
36
|
+
size
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this._context.sizeType = value;
|
|
41
|
+
}
|
|
42
|
+
if (this.sizeInfo) {
|
|
43
|
+
this._update$.next(this._context);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
set ssvViewportMatcherExclude(value) {
|
|
47
|
+
this._context.sizeTypeExclude = value;
|
|
48
|
+
if (this.sizeInfo) {
|
|
49
|
+
this._update$.next(this._context);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
set ssvViewportMatcherElse(templateRef) {
|
|
53
|
+
this._elseTemplateRef = templateRef;
|
|
54
|
+
this._elseViewRef = null; // clear previous view if any.
|
|
55
|
+
if (this.sizeInfo) {
|
|
56
|
+
this._update$.next(this._context);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
28
59
|
ngOnInit() {
|
|
29
60
|
// console.log("ssvViewportMatcher init");
|
|
30
61
|
this._update$
|
|
@@ -61,53 +92,22 @@ export class SsvViewportMatcherDirective {
|
|
|
61
92
|
this.sizeType$$.unsubscribe();
|
|
62
93
|
this._update$.complete();
|
|
63
94
|
}
|
|
64
|
-
set ssvViewportMatcher(value) {
|
|
65
|
-
if (isViewportSizeMatcherExpression(value)) {
|
|
66
|
-
this._context.expression = value;
|
|
67
|
-
}
|
|
68
|
-
else if (isViewportSizeMatcherTupleExpression(value)) {
|
|
69
|
-
const [op, size] = value;
|
|
70
|
-
this._context.expression = {
|
|
71
|
-
operation: op,
|
|
72
|
-
size
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
this._context.sizeType = value;
|
|
77
|
-
}
|
|
78
|
-
if (this.sizeInfo) {
|
|
79
|
-
this._update$.next(this._context);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
set ssvViewportMatcherExclude(value) {
|
|
83
|
-
this._context.sizeTypeExclude = value;
|
|
84
|
-
if (this.sizeInfo) {
|
|
85
|
-
this._update$.next(this._context);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
set ssvViewportMatcherElse(templateRef) {
|
|
89
|
-
this._elseTemplateRef = templateRef;
|
|
90
|
-
this._elseViewRef = null; // clear previous view if any.
|
|
91
|
-
if (this.sizeInfo) {
|
|
92
|
-
this._update$.next(this._context);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
95
|
_updateView(sizeInfo) {
|
|
96
96
|
if (isViewportConditionMatch(sizeInfo, this._context, this.viewport.sizeTypeMap)) {
|
|
97
97
|
if (!this._thenViewRef) {
|
|
98
|
-
this.
|
|
98
|
+
this.viewContainer.clear();
|
|
99
99
|
this._elseViewRef = null;
|
|
100
100
|
if (this._thenTemplateRef) {
|
|
101
|
-
this._thenViewRef = this.
|
|
101
|
+
this._thenViewRef = this.viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
else {
|
|
106
106
|
if (!this._elseViewRef) {
|
|
107
|
-
this.
|
|
107
|
+
this.viewContainer.clear();
|
|
108
108
|
this._thenViewRef = null;
|
|
109
109
|
if (this._elseTemplateRef) {
|
|
110
|
-
this._elseViewRef = this.
|
|
110
|
+
this._elseViewRef = this.viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
}
|
|
@@ -131,4 +131,4 @@ SsvViewportMatcherDirective.propDecorators = {
|
|
|
131
131
|
ssvViewportMatcherExclude: [{ type: Input }],
|
|
132
132
|
ssvViewportMatcherElse: [{ type: Input }]
|
|
133
133
|
};
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtbWF0Y2hlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvY2lyY2xlY2kvcmVwby9zcmMvIiwic291cmNlcyI6WyJ2aWV3cG9ydC92aWV3cG9ydC1tYXRjaGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR04sU0FBUyxFQUNULFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsS0FBSyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQ04sK0JBQStCLEVBQy9CLG9DQUFvQyxFQUNwQyx3QkFBd0IsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixNQUFNLE9BQU8seUJBQXlCO0lBQXRDO1FBRUMsYUFBUSxHQUE2QixJQUFJLENBQUM7UUFDMUMsb0JBQWUsR0FBNkIsSUFBSSxDQUFDO0lBR2xELENBQUM7Q0FBQTtBQU1ELE1BQU0sT0FBTywyQkFBMkI7SUFhdkMsWUFDUyxRQUF5QixFQUN6QixRQUFtQixFQUNuQixjQUFnQyxFQUNoQyxHQUFzQixFQUM5QixXQUFtRDtRQUozQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWJ2QixhQUFRLEdBQThCLElBQUkseUJBQXlCLEVBQUUsQ0FBQztRQUN0RSxxQkFBZ0IsR0FBa0QsSUFBSSxDQUFDO1FBQ3ZFLHFCQUFnQixHQUFrRCxJQUFJLENBQUM7UUFDdkUs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Q0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUV6QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUN6RCxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxRQUFRLENBQ2IsQ0FBQztpQkFDRjthQUNEO1NBQ0Q7YUFBTTtZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFFekIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FDekQsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsUUFBUSxDQUNiLENBQUM7aUJBQ0Y7YUFDRDtTQUNEO0lBQ0YsQ0FBQzs7O1lBeklELFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxRQUFRLEVBQUUsb0JBQW9CO2FBQzlCOzs7WUFuQlEsZUFBZTtZQVZ2QixTQUFTO1lBQ1QsZ0JBQWdCO1lBSWhCLGlCQUFpQjtZQURqQixXQUFXOzs7aUNBbUdWLEtBQUs7d0NBa0JMLEtBQUs7cUNBUUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdE9uSW5pdCxcblx0T25EZXN0cm95LFxuXHREaXJlY3RpdmUsXG5cdFJlbmRlcmVyMixcblx0Vmlld0NvbnRhaW5lclJlZixcblx0SW5wdXQsXG5cdEVtYmVkZGVkVmlld1JlZixcblx0VGVtcGxhdGVSZWYsXG5cdENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRhcCwgZmlsdGVyLCBwYWlyd2lzZSwgc3RhcnRXaXRoIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IFZpZXdwb3J0U2VydmljZSB9IGZyb20gXCIuL3ZpZXdwb3J0LnNlcnZpY2VcIjtcbmltcG9ydCB7XG5cdGlzVmlld3BvcnRTaXplTWF0Y2hlckV4cHJlc3Npb24sXG5cdGlzVmlld3BvcnRTaXplTWF0Y2hlclR1cGxlRXhwcmVzc2lvbixcblx0aXNWaWV3cG9ydENvbmRpdGlvbk1hdGNoXG59IGZyb20gXCIuL3ZpZXdwb3J0LnV0aWxcIjtcbmltcG9ydCB7IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLCBWaWV3cG9ydE1hdGNoQ29uZGl0aW9ucywgVmlld3BvcnRTaXplTWF0Y2hlckV4cHJlc3Npb24gfSBmcm9tIFwiLi92aWV3cG9ydC5tb2RlbFwiO1xuXG5leHBvcnQgY2xhc3MgU3N2Vmlld3BvcnRNYXRjaGVyQ29udGV4dCBpbXBsZW1lbnRzIFZpZXdwb3J0TWF0Y2hDb25kaXRpb25zIHtcblxuXHRzaXplVHlwZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsID0gbnVsbDtcblx0c2l6ZVR5cGVFeGNsdWRlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuXHRleHByZXNzaW9uPzogVmlld3BvcnRTaXplTWF0Y2hlckV4cHJlc3Npb247XG5cbn1cblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiBcIltzc3ZWaWV3cG9ydE1hdGNoZXJdXCIsXG5cdGV4cG9ydEFzOiBcInNzdlZpZXdwb3J0TWF0Y2hlclwiLFxufSlcbmV4cG9ydCBjbGFzcyBTc3ZWaWV3cG9ydE1hdGNoZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cblx0c2l6ZUluZm86IFZpZXdwb3J0U2l6ZVR5cGVJbmZvIHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgX2NvbnRleHQ6IFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQgPSBuZXcgU3N2Vmlld3BvcnRNYXRjaGVyQ29udGV4dCgpO1xuXHRwcml2YXRlIF90aGVuVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQ+IHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgX2Vsc2VUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8U3N2Vmlld3BvcnRNYXRjaGVyQ29udGV4dD4gfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBfdGhlblZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0PiB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIF9lbHNlVmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQ+IHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgc2l6ZVR5cGUkJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblx0cHJpdmF0ZSBjc3NDbGFzcyQkID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXHRwcml2YXRlIHJlYWRvbmx5IF91cGRhdGUkID0gbmV3IFN1YmplY3Q8U3N2Vmlld3BvcnRNYXRjaGVyQ29udGV4dD4oKTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHZpZXdwb3J0OiBWaWV3cG9ydFNlcnZpY2UsXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuXHRcdHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG5cdFx0cHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0Pixcblx0KSB7XG5cdFx0dGhpcy5fdGhlblRlbXBsYXRlUmVmID0gdGVtcGxhdGVSZWY7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHQvLyBjb25zb2xlLmxvZyhcInNzdlZpZXdwb3J0TWF0Y2hlciBpbml0XCIpO1xuXG5cdFx0dGhpcy5fdXBkYXRlJFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdC8vIHRhcCh4ID0+IGNvbnNvbGUubG9nKFwiPj4+IHNzdlZpZXdwb3J0TWF0Y2hlciAtIHVwZGF0ZSB0cmlnZ2VyZWRcIiwgeCkpLFxuXHRcdFx0XHRmaWx0ZXIoKCkgPT4gISF0aGlzLnNpemVJbmZvKSxcblx0XHRcdFx0Ly8gdGFwKHggPT4gY29uc29sZS5sb2coXCI+Pj4gc3N2Vmlld3BvcnRNYXRjaGVyIC0gdXBkYXRpbmcuLi5cIiwgeCkpLFxuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuXHRcdFx0XHR0YXAoKCkgPT4gdGhpcy5fdXBkYXRlVmlldyh0aGlzLnNpemVJbmZvISkpLFxuXHRcdFx0XHR0YXAoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cblx0XHR0aGlzLnNpemVUeXBlJCQgPSB0aGlzLnZpZXdwb3J0LnNpemVUeXBlJFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdC8vIHRhcCh4ID0+IGNvbnNvbGUubG9nKFwic3N2Vmlld3BvcnRNYXRjaGVyIC0gc2l6ZVR5cGUgY2hhbmdlZFwiLCB4KSksXG5cdFx0XHRcdHRhcCh4ID0+IHRoaXMuc2l6ZUluZm8gPSB4KSxcblx0XHRcdFx0dGFwKCgpID0+IHRoaXMuX3VwZGF0ZSQubmV4dCh0aGlzLl9jb250ZXh0KSksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cblx0XHR0aGlzLmNzc0NsYXNzJCQgPSB0aGlzLnZpZXdwb3J0LnNpemVUeXBlJFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdHN0YXJ0V2l0aDxWaWV3cG9ydFNpemVUeXBlSW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKSxcblx0XHRcdFx0ZmlsdGVyKCgpID0+ICEhKHRoaXMuX3RoZW5WaWV3UmVmIHx8IHRoaXMuX2Vsc2VWaWV3UmVmKSksXG5cdFx0XHRcdHBhaXJ3aXNlKCksXG5cdFx0XHRcdHRhcCgoW3ByZXYsIGN1cnJdKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgZWw6IEVsZW1lbnQgPSB0aGlzLl90aGVuVmlld1JlZlxuXHRcdFx0XHRcdFx0PyB0aGlzLl90aGVuVmlld1JlZi5yb290Tm9kZXNbMF1cblx0XHRcdFx0XHRcdDogdGhpcy5fZWxzZVZpZXdSZWY/LnJvb3ROb2Rlc1swXTtcblxuXHRcdFx0XHRcdGlmICghZWwuY2xhc3NMaXN0KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChwcmV2KSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGVsLCBgc3N2LXZwLXNpemUtLSR7cHJldi5uYW1lfWApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsLCBgc3N2LXZwLXNpemUtLSR7Y3Vycj8ubmFtZX1gKTtcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLmNzc0NsYXNzJCQudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLnNpemVUeXBlJCQudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLl91cGRhdGUkLmNvbXBsZXRlKCk7XG5cdH1cblxuXHRASW5wdXQoKSBzZXQgc3N2Vmlld3BvcnRNYXRjaGVyKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IFZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uKSB7XG5cdFx0aWYgKGlzVmlld3BvcnRTaXplTWF0Y2hlckV4cHJlc3Npb24odmFsdWUpKSB7XG5cdFx0XHR0aGlzLl9jb250ZXh0LmV4cHJlc3Npb24gPSB2YWx1ZTtcblx0XHR9IGVsc2UgaWYgKGlzVmlld3BvcnRTaXplTWF0Y2hlclR1cGxlRXhwcmVzc2lvbih2YWx1ZSkpIHtcblx0XHRcdGNvbnN0IFtvcCwgc2l6ZV0gPSB2YWx1ZTtcblx0XHRcdHRoaXMuX2NvbnRleHQuZXhwcmVzc2lvbiA9IHtcblx0XHRcdFx0b3BlcmF0aW9uOiBvcCxcblx0XHRcdFx0c2l6ZVxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fY29udGV4dC5zaXplVHlwZSA9IHZhbHVlO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnNpemVJbmZvKSB7XG5cdFx0XHR0aGlzLl91cGRhdGUkLm5leHQodGhpcy5fY29udGV4dCk7XG5cdFx0fVxuXHR9XG5cblx0QElucHV0KCkgc2V0IHNzdlZpZXdwb3J0TWF0Y2hlckV4Y2x1ZGUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG5cdFx0dGhpcy5fY29udGV4dC5zaXplVHlwZUV4Y2x1ZGUgPSB2YWx1ZTtcblxuXHRcdGlmICh0aGlzLnNpemVJbmZvKSB7XG5cdFx0XHR0aGlzLl91cGRhdGUkLm5leHQodGhpcy5fY29udGV4dCk7XG5cdFx0fVxuXHR9XG5cblx0QElucHV0KCkgc2V0IHNzdlZpZXdwb3J0TWF0Y2hlckVsc2UodGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQ+IHwgbnVsbCkge1xuXHRcdHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZiA9IHRlbXBsYXRlUmVmO1xuXHRcdHRoaXMuX2Vsc2VWaWV3UmVmID0gbnVsbDsgLy8gY2xlYXIgcHJldmlvdXMgdmlldyBpZiBhbnkuXG5cdFx0aWYgKHRoaXMuc2l6ZUluZm8pIHtcblx0XHRcdHRoaXMuX3VwZGF0ZSQubmV4dCh0aGlzLl9jb250ZXh0KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF91cGRhdGVWaWV3KHNpemVJbmZvOiBWaWV3cG9ydFNpemVUeXBlSW5mbykge1xuXHRcdGlmIChpc1ZpZXdwb3J0Q29uZGl0aW9uTWF0Y2goc2l6ZUluZm8sIHRoaXMuX2NvbnRleHQsIHRoaXMudmlld3BvcnQuc2l6ZVR5cGVNYXApKSB7XG5cdFx0XHRpZiAoIXRoaXMuX3RoZW5WaWV3UmVmKSB7XG5cdFx0XHRcdHRoaXMuX3ZpZXdDb250YWluZXIuY2xlYXIoKTtcblx0XHRcdFx0dGhpcy5fZWxzZVZpZXdSZWYgPSBudWxsO1xuXG5cdFx0XHRcdGlmICh0aGlzLl90aGVuVGVtcGxhdGVSZWYpIHtcblx0XHRcdFx0XHR0aGlzLl90aGVuVmlld1JlZiA9IHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KFxuXHRcdFx0XHRcdFx0dGhpcy5fdGhlblRlbXBsYXRlUmVmLFxuXHRcdFx0XHRcdFx0dGhpcy5fY29udGV4dCxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICghdGhpcy5fZWxzZVZpZXdSZWYpIHtcblx0XHRcdFx0dGhpcy5fdmlld0NvbnRhaW5lci5jbGVhcigpO1xuXHRcdFx0XHR0aGlzLl90aGVuVmlld1JlZiA9IG51bGw7XG5cblx0XHRcdFx0aWYgKHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZikge1xuXHRcdFx0XHRcdHRoaXMuX2Vsc2VWaWV3UmVmID0gdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcoXG5cdFx0XHRcdFx0XHR0aGlzLl9lbHNlVGVtcGxhdGVSZWYsXG5cdFx0XHRcdFx0XHR0aGlzLl9jb250ZXh0LFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxufVxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtbWF0Y2hlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvY2lyY2xlY2kvcmVwby9zcmMvIiwic291cmNlcyI6WyJ2aWV3cG9ydC92aWV3cG9ydC1tYXRjaGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR04sU0FBUyxFQUNULFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsS0FBSyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQ04sK0JBQStCLEVBQy9CLG9DQUFvQyxFQUNwQyx3QkFBd0IsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixNQUFNLE9BQU8seUJBQXlCO0lBQXRDO1FBRUMsYUFBUSxHQUE2QixJQUFJLENBQUM7UUFDMUMsb0JBQWUsR0FBNkIsSUFBSSxDQUFDO0lBR2xELENBQUM7Q0FBQTtBQU1ELE1BQU0sT0FBTywyQkFBMkI7SUErQ3ZDLFlBQ1MsUUFBeUIsRUFDekIsUUFBbUIsRUFDbkIsYUFBK0IsRUFDL0IsR0FBc0IsRUFDOUIsV0FBbUQ7UUFKM0MsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQ3ZCLGFBQVEsR0FBOEIsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQ3RFLHFCQUFnQixHQUFrRCxJQUFJLENBQUM7UUFDdkUscUJBQWdCLEdBQWtELElBQUksQ0FBQztRQUN2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QUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFFekIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDeEQsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsUUFBUSxDQUNiLENBQUM7aUJBQ0Y7YUFDRDtTQUNEO2FBQU07WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBRXpCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQ3hELElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FDYixDQUFDO2lCQUNGO2FBQ0Q7U0FDRDtJQUNGLENBQUM7OztZQXpJRCxTQUFTLFNBQUM7Z0JBQ1YsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsUUFBUSxFQUFFLG9CQUFvQjthQUM5Qjs7O1lBbkJRLGVBQWU7WUFWdkIsU0FBUztZQUNULGdCQUFnQjtZQUloQixpQkFBaUI7WUFEakIsV0FBVzs7O2lDQXVDVixLQUFLO3dDQWtCTCxLQUFLO3FDQVFMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRPbkluaXQsXG5cdE9uRGVzdHJveSxcblx0RGlyZWN0aXZlLFxuXHRSZW5kZXJlcjIsXG5cdFZpZXdDb250YWluZXJSZWYsXG5cdElucHV0LFxuXHRFbWJlZGRlZFZpZXdSZWYsXG5cdFRlbXBsYXRlUmVmLFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YXAsIGZpbHRlciwgcGFpcndpc2UsIHN0YXJ0V2l0aCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tIFwiLi92aWV3cG9ydC5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuXHRpc1ZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uLFxuXHRpc1ZpZXdwb3J0U2l6ZU1hdGNoZXJUdXBsZUV4cHJlc3Npb24sXG5cdGlzVmlld3BvcnRDb25kaXRpb25NYXRjaFxufSBmcm9tIFwiLi92aWV3cG9ydC51dGlsXCI7XG5pbXBvcnQgeyBWaWV3cG9ydFNpemVUeXBlSW5mbywgVmlld3BvcnRNYXRjaENvbmRpdGlvbnMsIFZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uIH0gZnJvbSBcIi4vdmlld3BvcnQubW9kZWxcIjtcblxuZXhwb3J0IGNsYXNzIFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQgaW1wbGVtZW50cyBWaWV3cG9ydE1hdGNoQ29uZGl0aW9ucyB7XG5cblx0c2l6ZVR5cGU6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG5cdHNpemVUeXBlRXhjbHVkZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsID0gbnVsbDtcblx0ZXhwcmVzc2lvbj86IFZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uO1xuXG59XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogXCJbc3N2Vmlld3BvcnRNYXRjaGVyXVwiLFxuXHRleHBvcnRBczogXCJzc3ZWaWV3cG9ydE1hdGNoZXJcIixcbn0pXG5leHBvcnQgY2xhc3MgU3N2Vmlld3BvcnRNYXRjaGVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG5cdHNpemVJbmZvOiBWaWV3cG9ydFNpemVUeXBlSW5mbyB8IHVuZGVmaW5lZDtcblxuXHRwcml2YXRlIF9jb250ZXh0OiBTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0ID0gbmV3IFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQoKTtcblx0cHJpdmF0ZSBfdGhlblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0PiB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIF9lbHNlVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQ+IHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgX3RoZW5WaWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8U3N2Vmlld3BvcnRNYXRjaGVyQ29udGV4dD4gfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBfZWxzZVZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0PiB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHNpemVUeXBlJCQgPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cdHByaXZhdGUgY3NzQ2xhc3MkJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblx0cHJpdmF0ZSByZWFkb25seSBfdXBkYXRlJCA9IG5ldyBTdWJqZWN0PFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQ+KCk7XG5cblx0QElucHV0KCkgc2V0IHNzdlZpZXdwb3J0TWF0Y2hlcih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBWaWV3cG9ydFNpemVNYXRjaGVyRXhwcmVzc2lvbikge1xuXHRcdGlmIChpc1ZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uKHZhbHVlKSkge1xuXHRcdFx0dGhpcy5fY29udGV4dC5leHByZXNzaW9uID0gdmFsdWU7XG5cdFx0fSBlbHNlIGlmIChpc1ZpZXdwb3J0U2l6ZU1hdGNoZXJUdXBsZUV4cHJlc3Npb24odmFsdWUpKSB7XG5cdFx0XHRjb25zdCBbb3AsIHNpemVdID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9jb250ZXh0LmV4cHJlc3Npb24gPSB7XG5cdFx0XHRcdG9wZXJhdGlvbjogb3AsXG5cdFx0XHRcdHNpemVcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX2NvbnRleHQuc2l6ZVR5cGUgPSB2YWx1ZTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5zaXplSW5mbykge1xuXHRcdFx0dGhpcy5fdXBkYXRlJC5uZXh0KHRoaXMuX2NvbnRleHQpO1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCgpIHNldCBzc3ZWaWV3cG9ydE1hdGNoZXJFeGNsdWRlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXHRcdHRoaXMuX2NvbnRleHQuc2l6ZVR5cGVFeGNsdWRlID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5zaXplSW5mbykge1xuXHRcdFx0dGhpcy5fdXBkYXRlJC5uZXh0KHRoaXMuX2NvbnRleHQpO1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCgpIHNldCBzc3ZWaWV3cG9ydE1hdGNoZXJFbHNlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0PiB8IG51bGwpIHtcblx0XHR0aGlzLl9lbHNlVGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcblx0XHR0aGlzLl9lbHNlVmlld1JlZiA9IG51bGw7IC8vIGNsZWFyIHByZXZpb3VzIHZpZXcgaWYgYW55LlxuXHRcdGlmICh0aGlzLnNpemVJbmZvKSB7XG5cdFx0XHR0aGlzLl91cGRhdGUkLm5leHQodGhpcy5fY29udGV4dCk7XG5cdFx0fVxuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSB2aWV3cG9ydDogVmlld3BvcnRTZXJ2aWNlLFxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG5cdFx0cHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0Pixcblx0KSB7XG5cdFx0dGhpcy5fdGhlblRlbXBsYXRlUmVmID0gdGVtcGxhdGVSZWY7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHQvLyBjb25zb2xlLmxvZyhcInNzdlZpZXdwb3J0TWF0Y2hlciBpbml0XCIpO1xuXG5cdFx0dGhpcy5fdXBkYXRlJFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdC8vIHRhcCh4ID0+IGNvbnNvbGUubG9nKFwiPj4+IHNzdlZpZXdwb3J0TWF0Y2hlciAtIHVwZGF0ZSB0cmlnZ2VyZWRcIiwgeCkpLFxuXHRcdFx0XHRmaWx0ZXIoKCkgPT4gISF0aGlzLnNpemVJbmZvKSxcblx0XHRcdFx0Ly8gdGFwKHggPT4gY29uc29sZS5sb2coXCI+Pj4gc3N2Vmlld3BvcnRNYXRjaGVyIC0gdXBkYXRpbmcuLi5cIiwgeCkpLFxuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuXHRcdFx0XHR0YXAoKCkgPT4gdGhpcy5fdXBkYXRlVmlldyh0aGlzLnNpemVJbmZvISkpLFxuXHRcdFx0XHR0YXAoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cblx0XHR0aGlzLnNpemVUeXBlJCQgPSB0aGlzLnZpZXdwb3J0LnNpemVUeXBlJFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdC8vIHRhcCh4ID0+IGNvbnNvbGUubG9nKFwic3N2Vmlld3BvcnRNYXRjaGVyIC0gc2l6ZVR5cGUgY2hhbmdlZFwiLCB4KSksXG5cdFx0XHRcdHRhcCh4ID0+IHRoaXMuc2l6ZUluZm8gPSB4KSxcblx0XHRcdFx0dGFwKCgpID0+IHRoaXMuX3VwZGF0ZSQubmV4dCh0aGlzLl9jb250ZXh0KSksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cblx0XHR0aGlzLmNzc0NsYXNzJCQgPSB0aGlzLnZpZXdwb3J0LnNpemVUeXBlJFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdHN0YXJ0V2l0aDxWaWV3cG9ydFNpemVUeXBlSW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKSxcblx0XHRcdFx0ZmlsdGVyKCgpID0+ICEhKHRoaXMuX3RoZW5WaWV3UmVmIHx8IHRoaXMuX2Vsc2VWaWV3UmVmKSksXG5cdFx0XHRcdHBhaXJ3aXNlKCksXG5cdFx0XHRcdHRhcCgoW3ByZXYsIGN1cnJdKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgZWw6IEVsZW1lbnQgPSB0aGlzLl90aGVuVmlld1JlZlxuXHRcdFx0XHRcdFx0PyB0aGlzLl90aGVuVmlld1JlZi5yb290Tm9kZXNbMF1cblx0XHRcdFx0XHRcdDogdGhpcy5fZWxzZVZpZXdSZWY/LnJvb3ROb2Rlc1swXTtcblxuXHRcdFx0XHRcdGlmICghZWwuY2xhc3NMaXN0KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChwcmV2KSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGVsLCBgc3N2LXZwLXNpemUtLSR7cHJldi5uYW1lfWApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsLCBgc3N2LXZwLXNpemUtLSR7Y3Vycj8ubmFtZX1gKTtcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLmNzc0NsYXNzJCQudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLnNpemVUeXBlJCQudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLl91cGRhdGUkLmNvbXBsZXRlKCk7XG5cdH1cblxuXHRwcml2YXRlIF91cGRhdGVWaWV3KHNpemVJbmZvOiBWaWV3cG9ydFNpemVUeXBlSW5mbykge1xuXHRcdGlmIChpc1ZpZXdwb3J0Q29uZGl0aW9uTWF0Y2goc2l6ZUluZm8sIHRoaXMuX2NvbnRleHQsIHRoaXMudmlld3BvcnQuc2l6ZVR5cGVNYXApKSB7XG5cdFx0XHRpZiAoIXRoaXMuX3RoZW5WaWV3UmVmKSB7XG5cdFx0XHRcdHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuXHRcdFx0XHR0aGlzLl9lbHNlVmlld1JlZiA9IG51bGw7XG5cblx0XHRcdFx0aWYgKHRoaXMuX3RoZW5UZW1wbGF0ZVJlZikge1xuXHRcdFx0XHRcdHRoaXMuX3RoZW5WaWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyhcblx0XHRcdFx0XHRcdHRoaXMuX3RoZW5UZW1wbGF0ZVJlZixcblx0XHRcdFx0XHRcdHRoaXMuX2NvbnRleHQsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIXRoaXMuX2Vsc2VWaWV3UmVmKSB7XG5cdFx0XHRcdHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuXHRcdFx0XHR0aGlzLl90aGVuVmlld1JlZiA9IG51bGw7XG5cblx0XHRcdFx0aWYgKHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZikge1xuXHRcdFx0XHRcdHRoaXMuX2Vsc2VWaWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyhcblx0XHRcdFx0XHRcdHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZixcblx0XHRcdFx0XHRcdHRoaXMuX2NvbnRleHQsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG59XG4iXX0=
|
|
@@ -16,15 +16,20 @@ export class ViewportService {
|
|
|
16
16
|
this._sizeTypes = generateViewportSizeTypeInfoList(config.viewport.breakpoints);
|
|
17
17
|
this._sizeTypeMap = generateViewportSizeTypeInfoRefs(this._sizeTypes);
|
|
18
18
|
if (windowRef.hasNative) {
|
|
19
|
-
this.
|
|
19
|
+
this.resizeSnap$ = fromEvent(window, "resize").pipe(map(() => this.getViewportSize()), share());
|
|
20
|
+
this.resize$ = this.resizeSnap$.pipe(auditTime(config.viewport.resizePollingSpeed), share());
|
|
20
21
|
}
|
|
21
22
|
else {
|
|
22
|
-
this.resize$ = of(viewportServerSize.get());
|
|
23
|
+
this.resizeSnap$ = this.resize$ = of(viewportServerSize.get());
|
|
23
24
|
}
|
|
24
25
|
const size = this.getViewportSize();
|
|
25
26
|
this._sizeTypeSnapshot = getSizeTypeInfo(size.width, this.sizeTypes);
|
|
26
|
-
|
|
27
|
-
this.
|
|
27
|
+
const sizeFn = (obs$) => obs$.pipe(startWith(size), distinctUntilChanged((a, b) => a.width === b.width && a.height === b.height), shareReplay(1));
|
|
28
|
+
this.sizeSnap$ = sizeFn(this.resizeSnap$);
|
|
29
|
+
this.size$ = sizeFn(this.resize$);
|
|
30
|
+
const sizeTypeFn = (obs$) => obs$.pipe(distinctUntilChanged((a, b) => a.width === b.width), map(x => getSizeTypeInfo(x.width, this.sizeTypes)), distinctUntilChanged(), tap(x => this._sizeTypeSnapshot = x), shareReplay(1));
|
|
31
|
+
this.sizeType$ = sizeTypeFn(this.size$);
|
|
32
|
+
this.sizeTypeSnap$ = sizeTypeFn(this.sizeSnap$);
|
|
28
33
|
}
|
|
29
34
|
/** Viewport size type snapshot of the last value. (Prefer use `sizeType$` observable when possible.) */
|
|
30
35
|
get sizeTypeSnapshot() { return this._sizeTypeSnapshot; }
|
|
@@ -61,4 +66,4 @@ ViewportService.ctorParameters = () => [
|
|
|
61
66
|
{ type: ViewportServerSizeService },
|
|
62
67
|
{ type: undefined, decorators: [{ type: Inject, args: [UX_CONFIG,] }] }
|
|
63
68
|
];
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9jaXJjbGVjaS9yZXBvL3NyYy8iLCJzb3VyY2VzIjpbInZpZXdwb3J0L3ZpZXdwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUNOLEdBQUcsRUFDSCxHQUFHLEVBQ0gsb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsR0FDVCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBYSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxnQ0FBZ0MsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFNdEgsTUFBTSxPQUFPLGVBQWU7SUFpQzNCLFlBQ1MsU0FBb0IsRUFDcEIsa0JBQTZDLEVBQ2xDLE1BQWlCO1FBRjVCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEyQjtRQUdyRCxJQUFJLENBQUMsVUFBVSxHQUFHLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFlBQVksR0FBRyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdEUsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFRLE1BQU0sRUFBRSxRQUFRLENBQUMs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QUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLHVDQUF1QztZQUN4RyxPQUFPO2dCQUNOLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVc7Z0JBQ2pFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVk7YUFDbkUsQ0FBQztTQUNGO1FBRUQsT0FBTztZQUNOLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXO1NBQ3pDLENBQUM7SUFDSCxDQUFDOzs7O1lBbkdELFVBQVUsU0FBQztnQkFDWCxVQUFVLEVBQUUsTUFBTTthQUNsQjs7O1lBUFEsU0FBUztZQUNULHlCQUF5Qjs0Q0EyQy9CLE1BQU0sU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb21FdmVudCwgb2YgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtcblx0bWFwLFxuXHR0YXAsXG5cdGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuXHRzdGFydFdpdGgsXG5cdHNoYXJlLFxuXHRzaGFyZVJlcGxheSxcblx0YXVkaXRUaW1lLFxufSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgVXhPcHRpb25zLCBVWF9DT05GSUcgfSBmcm9tIFwiLi4vY29uZmlnXCI7XG5pbXBvcnQgeyBWaWV3cG9ydFNpemVUeXBlSW5mbywgVmlld3BvcnRTaXplIH0gZnJvbSBcIi4vdmlld3BvcnQubW9kZWxcIjtcbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gXCIuLi9wbGF0Zm9ybS93aW5kb3dcIjtcbmltcG9ydCB7IFZpZXdwb3J0U2VydmVyU2l6ZVNlcnZpY2UgfSBmcm9tIFwiLi92aWV3cG9ydC1zZXJ2ZXItc2l6ZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZVZpZXdwb3J0U2l6ZVR5cGVJbmZvTGlzdCwgZ2VuZXJhdGVWaWV3cG9ydFNpemVUeXBlSW5mb1JlZnMsIGdldFNpemVUeXBlSW5mbyB9IGZyb20gXCIuL3ZpZXdwb3J0LnV0aWxcIjtcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tIFwiLi4vaW50ZXJuYWwvaW50ZXJuYWwubW9kZWxcIjtcblxuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgVmlld3BvcnRTZXJ2aWNlIHtcblxuXHQvKiogV2luZG93IHJlc2l6ZSBvYnNlcnZhYmxlLiAqL1xuXHRyZWFkb25seSByZXNpemVTbmFwJDogT2JzZXJ2YWJsZTxWaWV3cG9ydFNpemU+O1xuXG5cdC8qKiBXaW5kb3cgcmVzaXplIG9ic2VydmFibGUgKHdoaWNoIGlzIGFsc28gdGhyb3R0bGVkKS4gKi9cblx0cmVhZG9ubHkgcmVzaXplJDogT2JzZXJ2YWJsZTxWaWV3cG9ydFNpemU+O1xuXG5cdC8qKiBWaWV3cG9ydCBzaXplIHR5cGUgb2JzZXJ2YWJsZSAod2hpY2ggaXMgYWxzbyB0aHJvdHRsZWQpLiAqL1xuXHRyZWFkb25seSBzaXplVHlwZSQ6IE9ic2VydmFibGU8Vmlld3BvcnRTaXplVHlwZUluZm8+O1xuXG5cdC8qKiBWaWV3cG9ydCBzaXplIHR5cGUgb2JzZXJ2YWJsZS4gKi9cblx0cmVhZG9ubHkgc2l6ZVR5cGVTbmFwJDogT2JzZXJ2YWJsZTxWaWV3cG9ydFNpemVUeXBlSW5mbz47XG5cblx0LyoqIFZpZXdwb3J0IHNpemUgdHlwZSBzbmFwc2hvdCBvZiB0aGUgbGFzdCB2YWx1ZS4gKFByZWZlciB1c2UgYHNpemVUeXBlJGAgb2JzZXJ2YWJsZSB3aGVuIHBvc3NpYmxlLikgKi9cblx0Z2V0IHNpemVUeXBlU25hcHNob3QoKTogVmlld3BvcnRTaXplVHlwZUluZm8geyByZXR1cm4gdGhpcy5fc2l6ZVR5cGVTbmFwc2hvdDsgfVxuXG5cdC8qKiBWaWV3cG9ydCBzaXplIG9ic2VydmFibGUgKHdoaWNoIGlzIGFsc28gdGhyb3R0bGVkKS4gKi9cblx0cmVhZG9ubHkgc2l6ZSQ6IE9ic2VydmFibGU8Vmlld3BvcnRTaXplPjtcblxuXHQvKiogVmlld3BvcnQgc2l6ZSBvYnNlcnZhYmxlLiAqL1xuXHRyZWFkb25seSBzaXplU25hcCQ6IE9ic2VydmFibGU8Vmlld3BvcnRTaXplPjtcblxuXHQvKiogU2l6ZSB0eXBlcyByZWZzIG9mIHRoZSBnZW5lcmF0ZWQgdmlld3BvcnQgc2l6ZSB0eXBlIGluZm8uICovXG5cdGdldCBzaXplVHlwZU1hcCgpOiBEaWN0aW9uYXJ5PFZpZXdwb3J0U2l6ZVR5cGVJbmZvPiB7IHJldHVybiB0aGlzLl9zaXplVHlwZU1hcDsgfVxuXG5cdC8qKiBWaWV3cG9ydCBzaXplIHR5cGVzIGxpc3Qgb3JkZXJlZCBieSB0eXBlLCBzbWFsbGVzdCB0byBsYXJnZXN0LiAqL1xuXHRnZXQgc2l6ZVR5cGVzKCk6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10geyByZXR1cm4gdGhpcy5fc2l6ZVR5cGVzOyB9XG5cblx0cHJpdmF0ZSBfc2l6ZVR5cGVNYXA6IERpY3Rpb25hcnk8Vmlld3BvcnRTaXplVHlwZUluZm8+O1xuXHRwcml2YXRlIF9zaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW107XG5cdHByaXZhdGUgX3NpemVUeXBlU25hcHNob3Q6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgd2luZG93UmVmOiBXaW5kb3dSZWYsXG5cdFx0cHJpdmF0ZSB2aWV3cG9ydFNlcnZlclNpemU6IFZpZXdwb3J0U2VydmVyU2l6ZVNlcnZpY2UsXG5cdFx0QEluamVjdChVWF9DT05GSUcpIGNvbmZpZzogVXhPcHRpb25zLFxuXHQpIHtcblx0XHR0aGlzLl9zaXplVHlwZXMgPSBnZW5lcmF0ZVZpZXdwb3J0U2l6ZVR5cGVJbmZvTGlzdChjb25maWcudmlld3BvcnQuYnJlYWtwb2ludHMpO1xuXHRcdHRoaXMuX3NpemVUeXBlTWFwID0gZ2VuZXJhdGVWaWV3cG9ydFNpemVUeXBlSW5mb1JlZnModGhpcy5fc2l6ZVR5cGVzKTtcblxuXHRcdGlmICh3aW5kb3dSZWYuaGFzTmF0aXZlKSB7XG5cdFx0XHR0aGlzLnJlc2l6ZVNuYXAkID0gZnJvbUV2ZW50PEV2ZW50Pih3aW5kb3csIFwicmVzaXplXCIpLnBpcGUoXG5cdFx0XHRcdG1hcCgoKSA9PiB0aGlzLmdldFZpZXdwb3J0U2l6ZSgpKSxcblx0XHRcdFx0c2hhcmUoKVxuXHRcdFx0KTtcblxuXHRcdFx0dGhpcy5yZXNpemUkID0gdGhpcy5yZXNpemVTbmFwJC5waXBlKFxuXHRcdFx0XHRhdWRpdFRpbWUoY29uZmlnLnZpZXdwb3J0LnJlc2l6ZVBvbGxpbmdTcGVlZCksXG5cdFx0XHRcdHNoYXJlKCksXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnJlc2l6ZVNuYXAkID0gdGhpcy5yZXNpemUkID0gb2Yodmlld3BvcnRTZXJ2ZXJTaXplLmdldCgpKTtcblx0XHR9XG5cdFx0Y29uc3Qgc2l6ZSA9IHRoaXMuZ2V0Vmlld3BvcnRTaXplKCk7XG5cdFx0dGhpcy5fc2l6ZVR5cGVTbmFwc2hvdCA9IGdldFNpemVUeXBlSW5mbyhzaXplLndpZHRoLCB0aGlzLnNpemVUeXBlcyk7XG5cblx0XHRjb25zdCBzaXplRm4gPSAob2JzJDogT2JzZXJ2YWJsZTxWaWV3cG9ydFNpemU+KSA9PiBvYnMkLnBpcGUoXG5cdFx0XHRzdGFydFdpdGgoc2l6ZSksXG5cdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYS53aWR0aCA9PT0gYi53aWR0aCAmJiBhLmhlaWdodCA9PT0gYi5oZWlnaHQpLFxuXHRcdFx0c2hhcmVSZXBsYXkoMSksXG5cdFx0KTtcblxuXHRcdHRoaXMuc2l6ZVNuYXAkID0gc2l6ZUZuKHRoaXMucmVzaXplU25hcCQpO1xuXHRcdHRoaXMuc2l6ZSQgPSBzaXplRm4odGhpcy5yZXNpemUkKTtcblxuXHRcdGNvbnN0IHNpemVUeXBlRm4gPSAob2JzJDogT2JzZXJ2YWJsZTxWaWV3cG9ydFNpemU+KSA9PiBvYnMkLnBpcGUoXG5cdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYS53aWR0aCA9PT0gYi53aWR0aCksXG5cdFx0XHRtYXAoeCA9PiBnZXRTaXplVHlwZUluZm8oeC53aWR0aCwgdGhpcy5zaXplVHlwZXMpKSxcblx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG5cdFx0XHR0YXAoeCA9PiB0aGlzLl9zaXplVHlwZVNuYXBzaG90ID0geCksXG5cdFx0XHRzaGFyZVJlcGxheSgxKSxcblx0XHQpO1xuXG5cdFx0dGhpcy5zaXplVHlwZSQgPSBzaXplVHlwZUZuKHRoaXMuc2l6ZSQpO1xuXHRcdHRoaXMuc2l6ZVR5cGVTbmFwJCA9IHNpemVUeXBlRm4odGhpcy5zaXplU25hcCQpO1xuXHR9XG5cblx0LyoqIFJldHVybnMgdGhlIGN1cnJlbnQgdmlld3BvcnQgc2l6ZSAqL1xuXHRwcml2YXRlIGdldFZpZXdwb3J0U2l6ZSgpOiBWaWV3cG9ydFNpemUge1xuXHRcdGlmICghdGhpcy53aW5kb3dSZWYuaGFzTmF0aXZlKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy52aWV3cG9ydFNlcnZlclNpemUuZ2V0KCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XG5cdFx0aWYgKHVhLmluZGV4T2YoXCJzYWZhcmlcIikgIT09IC0xICYmIHVhLmluZGV4T2YoXCJjaHJvbWVcIikgPT09IC0xKSB7IC8vIHNhZmFyaSBzdWJ0cmFjdHMgdGhlIHNjcm9sbGJhciB3aWR0aFxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0d2lkdGg6IHRoaXMud2luZG93UmVmLm5hdGl2ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsXG5cdFx0XHRcdGhlaWdodDogdGhpcy53aW5kb3dSZWYubmF0aXZlLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsXG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHR3aWR0aDogdGhpcy53aW5kb3dSZWYubmF0aXZlLmlubmVyV2lkdGgsXG5cdFx0XHRoZWlnaHQ6IHRoaXMud2luZG93UmVmLm5hdGl2ZS5pbm5lckhlaWdodCxcblx0XHR9O1xuXHR9XG5cbn1cbiJdfQ==
|
package/fesm2015/ssv-ngx.ux.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { InjectionToken, ɵɵdefineInjectable, ɵɵinject, Injectable, Inject, Optional, Pipe, ChangeDetectorRef, Directive,
|
|
2
|
-
import { map,
|
|
3
|
-
import { fromEvent, of, Subscription, Subject } from 'rxjs';
|
|
1
|
+
import { InjectionToken, ɵɵdefineInjectable, ɵɵinject, Injectable, Inject, Optional, Pipe, ChangeDetectorRef, Directive, ViewContainerRef, TemplateRef, Input, Renderer2, NgModule } from '@angular/core';
|
|
2
|
+
import { map, share, auditTime, startWith, distinctUntilChanged, shareReplay, tap, takeUntil, filter, pairwise } from 'rxjs/operators';
|
|
3
|
+
import { fromEvent, of, Subscription, Subject, ReplaySubject, combineLatest } from 'rxjs';
|
|
4
4
|
|
|
5
5
|
var ViewportDataMatchStrategy;
|
|
6
6
|
(function (ViewportDataMatchStrategy) {
|
|
@@ -347,15 +347,20 @@ class ViewportService {
|
|
|
347
347
|
this._sizeTypes = generateViewportSizeTypeInfoList(config.viewport.breakpoints);
|
|
348
348
|
this._sizeTypeMap = generateViewportSizeTypeInfoRefs(this._sizeTypes);
|
|
349
349
|
if (windowRef.hasNative) {
|
|
350
|
-
this.
|
|
350
|
+
this.resizeSnap$ = fromEvent(window, "resize").pipe(map(() => this.getViewportSize()), share());
|
|
351
|
+
this.resize$ = this.resizeSnap$.pipe(auditTime(config.viewport.resizePollingSpeed), share());
|
|
351
352
|
}
|
|
352
353
|
else {
|
|
353
|
-
this.resize$ = of(viewportServerSize.get());
|
|
354
|
+
this.resizeSnap$ = this.resize$ = of(viewportServerSize.get());
|
|
354
355
|
}
|
|
355
356
|
const size = this.getViewportSize();
|
|
356
357
|
this._sizeTypeSnapshot = getSizeTypeInfo(size.width, this.sizeTypes);
|
|
357
|
-
|
|
358
|
-
this.
|
|
358
|
+
const sizeFn = (obs$) => obs$.pipe(startWith(size), distinctUntilChanged((a, b) => a.width === b.width && a.height === b.height), shareReplay(1));
|
|
359
|
+
this.sizeSnap$ = sizeFn(this.resizeSnap$);
|
|
360
|
+
this.size$ = sizeFn(this.resize$);
|
|
361
|
+
const sizeTypeFn = (obs$) => obs$.pipe(distinctUntilChanged((a, b) => a.width === b.width), map(x => getSizeTypeInfo(x.width, this.sizeTypes)), distinctUntilChanged(), tap(x => this._sizeTypeSnapshot = x), shareReplay(1));
|
|
362
|
+
this.sizeType$ = sizeTypeFn(this.size$);
|
|
363
|
+
this.sizeTypeSnap$ = sizeTypeFn(this.sizeSnap$);
|
|
359
364
|
}
|
|
360
365
|
/** Viewport size type snapshot of the last value. (Prefer use `sizeType$` observable when possible.) */
|
|
361
366
|
get sizeTypeSnapshot() { return this._sizeTypeSnapshot; }
|
|
@@ -502,8 +507,8 @@ class ViewportDataService {
|
|
|
502
507
|
return matchViewportData(dataConfig, sizeType, strategy, this.viewport.sizeTypes, this.viewport.sizeTypeMap);
|
|
503
508
|
}
|
|
504
509
|
/** Get data for match as observable. */
|
|
505
|
-
get$(dataConfig, strategy) {
|
|
506
|
-
return this.viewport.sizeType
|
|
510
|
+
get$(dataConfig, strategy, throttle = true) {
|
|
511
|
+
return (throttle ? this.viewport.sizeType$ : this.viewport.sizeTypeSnap$).pipe(map(sizeType => this.get(dataConfig, strategy, sizeType)), distinctUntilChanged());
|
|
507
512
|
}
|
|
508
513
|
/** Generate rules based on strategies for data. */
|
|
509
514
|
generateRules(dataConfig, strategy = this.config.viewport.defaultDataMatchStrategy) {
|
|
@@ -559,6 +564,65 @@ ViewportDataPipe.ctorParameters = () => [
|
|
|
559
564
|
{ type: ChangeDetectorRef }
|
|
560
565
|
];
|
|
561
566
|
|
|
567
|
+
const NAME_CAMEL = "ssvViewportMatcherVar";
|
|
568
|
+
class SsvViewportMatcherVarContext {
|
|
569
|
+
constructor($implicit = false) {
|
|
570
|
+
this.$implicit = $implicit;
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
class SsvViewportMatcherVarDirective {
|
|
574
|
+
constructor(viewport, viewContainer, templateRef) {
|
|
575
|
+
this.viewport = viewport;
|
|
576
|
+
this.viewContainer = viewContainer;
|
|
577
|
+
this.templateRef = templateRef;
|
|
578
|
+
this._matchConditions = {};
|
|
579
|
+
this._context = new SsvViewportMatcherVarContext();
|
|
580
|
+
this._destroy$ = new Subject();
|
|
581
|
+
this._update$ = new ReplaySubject(1);
|
|
582
|
+
}
|
|
583
|
+
set condition(value) {
|
|
584
|
+
if (isViewportSizeMatcherExpression(value)) {
|
|
585
|
+
this._matchConditions.expression = value;
|
|
586
|
+
}
|
|
587
|
+
else if (isViewportSizeMatcherTupleExpression(value)) {
|
|
588
|
+
const [op, size] = value;
|
|
589
|
+
this._matchConditions.expression = {
|
|
590
|
+
operation: op,
|
|
591
|
+
size
|
|
592
|
+
};
|
|
593
|
+
}
|
|
594
|
+
else {
|
|
595
|
+
this._matchConditions.sizeType = value;
|
|
596
|
+
}
|
|
597
|
+
this._update$.next();
|
|
598
|
+
}
|
|
599
|
+
ngOnInit() {
|
|
600
|
+
this.updateView();
|
|
601
|
+
combineLatest([this.viewport.sizeType$, this._update$]).pipe(map(([sizeType]) => isViewportConditionMatch(sizeType, this._matchConditions, this.viewport.sizeTypeMap)), tap(x => this._context.$implicit = x), tap(() => this._viewRef.markForCheck()), takeUntil(this._destroy$)).subscribe();
|
|
602
|
+
}
|
|
603
|
+
ngOnDestroy() {
|
|
604
|
+
this._destroy$.next();
|
|
605
|
+
this._destroy$.complete();
|
|
606
|
+
}
|
|
607
|
+
updateView() {
|
|
608
|
+
this.viewContainer.clear();
|
|
609
|
+
this._viewRef = this.viewContainer.createEmbeddedView(this.templateRef, this._context);
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
SsvViewportMatcherVarDirective.decorators = [
|
|
613
|
+
{ type: Directive, args: [{
|
|
614
|
+
selector: `[${NAME_CAMEL}]`,
|
|
615
|
+
},] }
|
|
616
|
+
];
|
|
617
|
+
SsvViewportMatcherVarDirective.ctorParameters = () => [
|
|
618
|
+
{ type: ViewportService },
|
|
619
|
+
{ type: ViewContainerRef },
|
|
620
|
+
{ type: TemplateRef }
|
|
621
|
+
];
|
|
622
|
+
SsvViewportMatcherVarDirective.propDecorators = {
|
|
623
|
+
condition: [{ type: Input, args: [`${NAME_CAMEL}When`,] }]
|
|
624
|
+
};
|
|
625
|
+
|
|
562
626
|
class SsvViewportMatcherContext {
|
|
563
627
|
constructor() {
|
|
564
628
|
this.sizeType = null;
|
|
@@ -566,10 +630,10 @@ class SsvViewportMatcherContext {
|
|
|
566
630
|
}
|
|
567
631
|
}
|
|
568
632
|
class SsvViewportMatcherDirective {
|
|
569
|
-
constructor(viewport, renderer,
|
|
633
|
+
constructor(viewport, renderer, viewContainer, cdr, templateRef) {
|
|
570
634
|
this.viewport = viewport;
|
|
571
635
|
this.renderer = renderer;
|
|
572
|
-
this.
|
|
636
|
+
this.viewContainer = viewContainer;
|
|
573
637
|
this.cdr = cdr;
|
|
574
638
|
this._context = new SsvViewportMatcherContext();
|
|
575
639
|
this._thenTemplateRef = null;
|
|
@@ -581,6 +645,37 @@ class SsvViewportMatcherDirective {
|
|
|
581
645
|
this._update$ = new Subject();
|
|
582
646
|
this._thenTemplateRef = templateRef;
|
|
583
647
|
}
|
|
648
|
+
set ssvViewportMatcher(value) {
|
|
649
|
+
if (isViewportSizeMatcherExpression(value)) {
|
|
650
|
+
this._context.expression = value;
|
|
651
|
+
}
|
|
652
|
+
else if (isViewportSizeMatcherTupleExpression(value)) {
|
|
653
|
+
const [op, size] = value;
|
|
654
|
+
this._context.expression = {
|
|
655
|
+
operation: op,
|
|
656
|
+
size
|
|
657
|
+
};
|
|
658
|
+
}
|
|
659
|
+
else {
|
|
660
|
+
this._context.sizeType = value;
|
|
661
|
+
}
|
|
662
|
+
if (this.sizeInfo) {
|
|
663
|
+
this._update$.next(this._context);
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
set ssvViewportMatcherExclude(value) {
|
|
667
|
+
this._context.sizeTypeExclude = value;
|
|
668
|
+
if (this.sizeInfo) {
|
|
669
|
+
this._update$.next(this._context);
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
set ssvViewportMatcherElse(templateRef) {
|
|
673
|
+
this._elseTemplateRef = templateRef;
|
|
674
|
+
this._elseViewRef = null; // clear previous view if any.
|
|
675
|
+
if (this.sizeInfo) {
|
|
676
|
+
this._update$.next(this._context);
|
|
677
|
+
}
|
|
678
|
+
}
|
|
584
679
|
ngOnInit() {
|
|
585
680
|
// console.log("ssvViewportMatcher init");
|
|
586
681
|
this._update$
|
|
@@ -617,53 +712,22 @@ class SsvViewportMatcherDirective {
|
|
|
617
712
|
this.sizeType$$.unsubscribe();
|
|
618
713
|
this._update$.complete();
|
|
619
714
|
}
|
|
620
|
-
set ssvViewportMatcher(value) {
|
|
621
|
-
if (isViewportSizeMatcherExpression(value)) {
|
|
622
|
-
this._context.expression = value;
|
|
623
|
-
}
|
|
624
|
-
else if (isViewportSizeMatcherTupleExpression(value)) {
|
|
625
|
-
const [op, size] = value;
|
|
626
|
-
this._context.expression = {
|
|
627
|
-
operation: op,
|
|
628
|
-
size
|
|
629
|
-
};
|
|
630
|
-
}
|
|
631
|
-
else {
|
|
632
|
-
this._context.sizeType = value;
|
|
633
|
-
}
|
|
634
|
-
if (this.sizeInfo) {
|
|
635
|
-
this._update$.next(this._context);
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
set ssvViewportMatcherExclude(value) {
|
|
639
|
-
this._context.sizeTypeExclude = value;
|
|
640
|
-
if (this.sizeInfo) {
|
|
641
|
-
this._update$.next(this._context);
|
|
642
|
-
}
|
|
643
|
-
}
|
|
644
|
-
set ssvViewportMatcherElse(templateRef) {
|
|
645
|
-
this._elseTemplateRef = templateRef;
|
|
646
|
-
this._elseViewRef = null; // clear previous view if any.
|
|
647
|
-
if (this.sizeInfo) {
|
|
648
|
-
this._update$.next(this._context);
|
|
649
|
-
}
|
|
650
|
-
}
|
|
651
715
|
_updateView(sizeInfo) {
|
|
652
716
|
if (isViewportConditionMatch(sizeInfo, this._context, this.viewport.sizeTypeMap)) {
|
|
653
717
|
if (!this._thenViewRef) {
|
|
654
|
-
this.
|
|
718
|
+
this.viewContainer.clear();
|
|
655
719
|
this._elseViewRef = null;
|
|
656
720
|
if (this._thenTemplateRef) {
|
|
657
|
-
this._thenViewRef = this.
|
|
721
|
+
this._thenViewRef = this.viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);
|
|
658
722
|
}
|
|
659
723
|
}
|
|
660
724
|
}
|
|
661
725
|
else {
|
|
662
726
|
if (!this._elseViewRef) {
|
|
663
|
-
this.
|
|
727
|
+
this.viewContainer.clear();
|
|
664
728
|
this._thenViewRef = null;
|
|
665
729
|
if (this._elseTemplateRef) {
|
|
666
|
-
this._elseViewRef = this.
|
|
730
|
+
this._elseViewRef = this.viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);
|
|
667
731
|
}
|
|
668
732
|
}
|
|
669
733
|
}
|
|
@@ -692,6 +756,7 @@ SsvViewportMatcherDirective.propDecorators = {
|
|
|
692
756
|
const MODULE_CONFIG_DATA = new InjectionToken("@ssv/ngx.ux/configData");
|
|
693
757
|
const components = [
|
|
694
758
|
SsvViewportMatcherDirective,
|
|
759
|
+
SsvViewportMatcherVarDirective,
|
|
695
760
|
ViewportDataPipe,
|
|
696
761
|
];
|
|
697
762
|
// todo: create module for Viewport
|
|
@@ -732,11 +797,11 @@ function _window() {
|
|
|
732
797
|
return {};
|
|
733
798
|
}
|
|
734
799
|
|
|
735
|
-
const VERSION = "2.0.
|
|
800
|
+
const VERSION = "2.0.1-dev198";
|
|
736
801
|
|
|
737
802
|
/**
|
|
738
803
|
* Generated bundle index. Do not edit.
|
|
739
804
|
*/
|
|
740
805
|
|
|
741
|
-
export { ComparisonOperation, DeviceType, MODULE_CONFIG_DATA, SsvUxModule, SsvViewportMatcherContext, SsvViewportMatcherDirective, UX_CONFIG, UX_DEFAULT_CONFIG, UX_VIEWPORT_DEFAULT_BREAKPOINTS, UX_VIEWPORT_SSR_DEVICE, VERSION, ViewportDataMatchStrategy, ViewportDataPipe, ViewportDataService, ViewportServerSizeService, ViewportService, ViewportSizeType, _moduleConfigFactory, _window, generateViewportSizeType, UX_VIEWPORT_DEFAULT_CONFIG as ɵa, WINDOW as ɵb, WindowRef as ɵc };
|
|
806
|
+
export { ComparisonOperation, DeviceType, MODULE_CONFIG_DATA, SsvUxModule, SsvViewportMatcherContext, SsvViewportMatcherDirective, SsvViewportMatcherVarContext, SsvViewportMatcherVarDirective, UX_CONFIG, UX_DEFAULT_CONFIG, UX_VIEWPORT_DEFAULT_BREAKPOINTS, UX_VIEWPORT_SSR_DEVICE, VERSION, ViewportDataMatchStrategy, ViewportDataPipe, ViewportDataService, ViewportServerSizeService, ViewportService, ViewportSizeType, _moduleConfigFactory, _window, generateViewportSizeType, UX_VIEWPORT_DEFAULT_CONFIG as ɵa, WINDOW as ɵb, WindowRef as ɵc };
|
|
742
807
|
//# sourceMappingURL=ssv-ngx.ux.js.map
|