@ssv/ngx.ux 2.0.1-dev198 → 2.0.2
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 +149 -142
- package/LICENSE +21 -21
- package/README.md +297 -297
- package/bundles/ssv-ngx.ux.umd.js +1154 -1154
- 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/config.d.ts +7 -7
- package/esm2015/config.js +7 -7
- package/esm2015/index.js +5 -5
- package/esm2015/internal/internal.model.js +2 -2
- package/esm2015/module.js +50 -50
- package/esm2015/platform/window.js +28 -28
- package/esm2015/ssv-ngx.ux.js +7 -7
- package/esm2015/version.js +2 -2
- package/esm2015/viewport/index.js +9 -9
- package/esm2015/viewport/viewport-data/index.js +4 -4
- package/esm2015/viewport/viewport-data/viewport-data-matcher.js +108 -108
- package/esm2015/viewport/viewport-data/viewport-data.pipe.js +43 -43
- package/esm2015/viewport/viewport-data/viewport-data.service.js +38 -38
- package/esm2015/viewport/viewport-data/viewport-data.utils.js +100 -100
- package/esm2015/viewport/viewport-matcher-var.directive.js +64 -64
- package/esm2015/viewport/viewport-matcher.directive.js +134 -134
- package/esm2015/viewport/viewport-server-size.service.js +38 -38
- package/esm2015/viewport/viewport.const.js +18 -18
- package/esm2015/viewport/viewport.model.js +31 -31
- package/esm2015/viewport/viewport.service.js +69 -69
- package/esm2015/viewport/viewport.util.js +117 -117
- package/esm2020/config.mjs +7 -0
- package/esm2020/index.mjs +5 -0
- package/esm2020/internal/internal.model.mjs +2 -0
- package/esm2020/module.mjs +65 -0
- package/esm2020/platform/window.mjs +30 -0
- package/esm2020/ssv-ngx.ux.mjs +5 -0
- package/esm2020/version.mjs +2 -0
- package/esm2020/viewport/index.mjs +9 -0
- package/esm2020/viewport/viewport-data/index.mjs +4 -0
- package/esm2020/viewport/viewport-data/viewport-data-matcher.mjs +108 -0
- package/esm2020/viewport/viewport-data/viewport-data.pipe.mjs +43 -0
- package/esm2020/viewport/viewport-data/viewport-data.service.mjs +37 -0
- package/esm2020/viewport/viewport-data/viewport-data.utils.mjs +100 -0
- package/esm2020/viewport/viewport-matcher-var.directive.mjs +63 -0
- package/esm2020/viewport/viewport-matcher.directive.mjs +131 -0
- package/esm2020/viewport/viewport-server-size.service.mjs +43 -0
- package/esm2020/viewport/viewport.const.mjs +18 -0
- package/esm2020/viewport/viewport.model.mjs +31 -0
- package/esm2020/viewport/viewport.service.mjs +67 -0
- package/esm2020/viewport/viewport.util.mjs +117 -0
- package/fesm2015/ssv-ngx.ux.js +770 -770
- package/fesm2015/ssv-ngx.ux.js.map +1 -1
- package/fesm2015/ssv-ngx.ux.mjs +829 -0
- package/fesm2015/ssv-ngx.ux.mjs.map +1 -0
- package/fesm2020/ssv-ngx.ux.mjs +823 -0
- package/fesm2020/ssv-ngx.ux.mjs.map +1 -0
- package/index.d.ts +4 -4
- package/internal/internal.model.d.ts +9 -9
- package/module.d.ts +19 -12
- package/package.json +21 -9
- package/platform/window.d.ts +13 -10
- package/ssv-ngx.ux.d.ts +6 -6
- package/ssv-ngx.ux.metadata.json +1 -1
- package/version.d.ts +1 -1
- package/viewport/index.d.ts +8 -8
- package/viewport/viewport-data/index.d.ts +3 -3
- package/viewport/viewport-data/viewport-data-matcher.d.ts +32 -32
- package/viewport/viewport-data/viewport-data.pipe.d.ts +18 -15
- package/viewport/viewport-data/viewport-data.service.d.ts +20 -17
- package/viewport/viewport-data/viewport-data.utils.d.ts +21 -21
- package/viewport/viewport-matcher-var.directive.d.ts +25 -22
- package/viewport/viewport-matcher.directive.d.ts +33 -30
- package/viewport/viewport-server-size.service.d.ts +12 -9
- package/viewport/viewport.const.d.ts +5 -5
- package/viewport/viewport.model.d.ts +57 -57
- package/viewport/viewport.service.d.ts +37 -34
- package/viewport/viewport.util.d.ts +25 -25
package/esm2015/ssv-ngx.ux.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
export { WINDOW as ɵb, WindowRef as ɵc } from './platform/window';
|
|
6
|
-
export { UX_VIEWPORT_DEFAULT_CONFIG as ɵa } from './viewport/viewport.const';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
export { WINDOW as ɵb, WindowRef as ɵc } from './platform/window';
|
|
6
|
+
export { UX_VIEWPORT_DEFAULT_CONFIG as ɵa } from './viewport/viewport.const';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3N2LW5neC51eC5qcyIsInNvdXJjZVJvb3QiOiJDOi9kZXYvZ2l0L0Bzc3Yubmd4LnV4L3NyYy8iLCJzb3VyY2VzIjpbInNzdi1uZ3gudXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsTUFBTSxJQUFJLEVBQUUsRUFBQyxTQUFTLElBQUksRUFBRSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtXSU5ET1cgYXMgybViLFdpbmRvd1JlZiBhcyDJtWN9IGZyb20gJy4vcGxhdGZvcm0vd2luZG93JztcbmV4cG9ydCB7VVhfVklFV1BPUlRfREVGQVVMVF9DT05GSUcgYXMgybVhfSBmcm9tICcuL3ZpZXdwb3J0L3ZpZXdwb3J0LmNvbnN0JzsiXX0=
|
package/esm2015/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const VERSION = "0.0.0-PLACEHOLDER";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJDOi9kZXYvZ2l0L0Bzc3Yubmd4LnV4L3NyYy8iLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIjAuMC4wLVBMQUNFSE9MREVSXCI7XHJcbiJdfQ==
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export * from "./viewport-data/index";
|
|
2
|
-
export { SsvViewportMatcherVarDirective, SsvViewportMatcherVarContext } from "./viewport-matcher-var.directive";
|
|
3
|
-
export { SsvViewportMatcherDirective, SsvViewportMatcherContext } from "./viewport-matcher.directive";
|
|
4
|
-
export { UX_VIEWPORT_SSR_DEVICE, ViewportServerSizeService } from "./viewport-server-size.service";
|
|
5
|
-
export { ComparisonOperation, DeviceType, ViewportSizeType } from "./viewport.model";
|
|
6
|
-
export { ViewportService } from "./viewport.service";
|
|
7
|
-
export { generateViewportSizeType } from "./viewport.util";
|
|
8
|
-
export { UX_VIEWPORT_DEFAULT_BREAKPOINTS } from "./viewport.const";
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from "./viewport-data/index";
|
|
2
|
+
export { SsvViewportMatcherVarDirective, SsvViewportMatcherVarContext } from "./viewport-matcher-var.directive";
|
|
3
|
+
export { SsvViewportMatcherDirective, SsvViewportMatcherContext } from "./viewport-matcher.directive";
|
|
4
|
+
export { UX_VIEWPORT_SSR_DEVICE, ViewportServerSizeService } from "./viewport-server-size.service";
|
|
5
|
+
export { ComparisonOperation, DeviceType, ViewportSizeType } from "./viewport.model";
|
|
6
|
+
export { ViewportService } from "./viewport.service";
|
|
7
|
+
export { generateViewportSizeType } from "./viewport.util";
|
|
8
|
+
export { UX_VIEWPORT_DEFAULT_BREAKPOINTS } from "./viewport.const";
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiQzovZGV2L2dpdC9Ac3N2Lm5neC51eC9zcmMvIiwic291cmNlcyI6WyJ2aWV3cG9ydC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQW1DLGdCQUFnQixFQUF3QixNQUFNLGtCQUFrQixDQUFDO0FBQzVJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEvaW5kZXhcIjtcclxuXHJcbmV4cG9ydCB7IFNzdlZpZXdwb3J0TWF0Y2hlclZhckRpcmVjdGl2ZSwgU3N2Vmlld3BvcnRNYXRjaGVyVmFyQ29udGV4dCB9IGZyb20gXCIuL3ZpZXdwb3J0LW1hdGNoZXItdmFyLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQgeyBTc3ZWaWV3cG9ydE1hdGNoZXJEaXJlY3RpdmUsIFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQgfSBmcm9tIFwiLi92aWV3cG9ydC1tYXRjaGVyLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQgeyBVWF9WSUVXUE9SVF9TU1JfREVWSUNFLCBWaWV3cG9ydFNlcnZlclNpemVTZXJ2aWNlIH0gZnJvbSBcIi4vdmlld3BvcnQtc2VydmVyLXNpemUuc2VydmljZVwiO1xyXG5leHBvcnQgeyBDb21wYXJpc29uT3BlcmF0aW9uLCBEZXZpY2VUeXBlLCBVeFZpZXdwb3J0T3B0aW9ucywgVmlld3BvcnRTaXplLCBWaWV3cG9ydFNpemVUeXBlLCBWaWV3cG9ydFNpemVUeXBlSW5mbyB9IGZyb20gXCIuL3ZpZXdwb3J0Lm1vZGVsXCI7XHJcbmV4cG9ydCB7IFZpZXdwb3J0U2VydmljZSB9IGZyb20gXCIuL3ZpZXdwb3J0LnNlcnZpY2VcIjtcclxuZXhwb3J0IHsgZ2VuZXJhdGVWaWV3cG9ydFNpemVUeXBlIH0gZnJvbSBcIi4vdmlld3BvcnQudXRpbFwiO1xyXG5leHBvcnQgeyBVWF9WSUVXUE9SVF9ERUZBVUxUX0JSRUFLUE9JTlRTIH0gZnJvbSBcIi4vdmlld3BvcnQuY29uc3RcIjtcclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ViewportDataService } from "./viewport-data.service";
|
|
2
|
-
export { ViewportDataPipe } from "./viewport-data.pipe";
|
|
3
|
-
export { ViewportDataMatchStrategy } from "./viewport-data-matcher";
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export { ViewportDataService } from "./viewport-data.service";
|
|
2
|
+
export { ViewportDataPipe } from "./viewport-data.pipe";
|
|
3
|
+
export { ViewportDataMatchStrategy } from "./viewport-data-matcher";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiQzovZGV2L2dpdC9Ac3N2Lm5neC51eC9zcmMvIiwic291cmNlcyI6WyJ2aWV3cG9ydC92aWV3cG9ydC1kYXRhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBc0IseUJBQXlCLEVBQW9DLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBWaWV3cG9ydERhdGFTZXJ2aWNlIH0gZnJvbSBcIi4vdmlld3BvcnQtZGF0YS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7IFZpZXdwb3J0RGF0YVBpcGUgfSBmcm9tIFwiLi92aWV3cG9ydC1kYXRhLnBpcGVcIjtcclxuZXhwb3J0IHsgVmlld3BvcnREYXRhQ29uZmlnLCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5TGl0ZXJhbCB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEtbWF0Y2hlclwiO1xyXG4iXX0=
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
export var ViewportDataMatchStrategy;
|
|
2
|
-
(function (ViewportDataMatchStrategy) {
|
|
3
|
-
/** Indicates that size should match exact or default. */
|
|
4
|
-
ViewportDataMatchStrategy[ViewportDataMatchStrategy["exact"] = 0] = "exact";
|
|
5
|
-
/** Indicates that size matches when exact match, first match smaller (down) or default. */
|
|
6
|
-
ViewportDataMatchStrategy[ViewportDataMatchStrategy["smaller"] = 1] = "smaller";
|
|
7
|
-
/** Indicates that size matches when exact match, first match larger (up) or default. */
|
|
8
|
-
ViewportDataMatchStrategy[ViewportDataMatchStrategy["larger"] = 2] = "larger";
|
|
9
|
-
/** Indicates that size matches when exact match, or it tries both smaller/larger (smaller is preferred) until match or default. */
|
|
10
|
-
ViewportDataMatchStrategy[ViewportDataMatchStrategy["closestSmallerFirst"] = 3] = "closestSmallerFirst";
|
|
11
|
-
/** Indicates that size matches when exact match, or it tries both larger/smaller (larger is preferred) until match or default. */
|
|
12
|
-
ViewportDataMatchStrategy[ViewportDataMatchStrategy["closestLargerFirst"] = 4] = "closestLargerFirst";
|
|
13
|
-
})(ViewportDataMatchStrategy || (ViewportDataMatchStrategy = {}));
|
|
14
|
-
/**
|
|
15
|
-
* Utility function to match data based on strategy and size.
|
|
16
|
-
*
|
|
17
|
-
* @param dataConfig Data config to generate rules based on.
|
|
18
|
-
* @param sizeType Size type to get data for.
|
|
19
|
-
* @param strategy Strategy to use when building rules.
|
|
20
|
-
* @param sizeTypes Available size types ordered by index type. (Can be obtained from `ViewportService`)
|
|
21
|
-
* @param sizeTypeMap Available size type map. (Can be obtained from `ViewportService`)
|
|
22
|
-
* @returns Returns the matched data value.
|
|
23
|
-
*/
|
|
24
|
-
export function matchViewportData(dataConfig, sizeType, strategy, sizeTypes, sizeTypeMap) {
|
|
25
|
-
const matchFn = matchStrategyHandlerMap[strategy];
|
|
26
|
-
if (!matchFn) {
|
|
27
|
-
throw Error(`matchViewportData: Viewport Data strategy not implemented. Strategy: '${strategy}'`);
|
|
28
|
-
}
|
|
29
|
-
const data = matchFn(dataConfig, sizeType, sizeTypes, sizeTypeMap);
|
|
30
|
-
if (data !== undefined) {
|
|
31
|
-
return data;
|
|
32
|
-
}
|
|
33
|
-
return dataConfig.default;
|
|
34
|
-
}
|
|
35
|
-
const matchStrategyHandlerMap = {
|
|
36
|
-
[ViewportDataMatchStrategy.exact]: matchWithExact,
|
|
37
|
-
[ViewportDataMatchStrategy.larger]: matchWithLargerMatch,
|
|
38
|
-
[ViewportDataMatchStrategy.smaller]: matchWithSmallerMatch,
|
|
39
|
-
[ViewportDataMatchStrategy.closestSmallerFirst]: matchWithClosestSmallerFirstMatch,
|
|
40
|
-
[ViewportDataMatchStrategy.closestLargerFirst]: matchWithClosestLargerFirstMatch,
|
|
41
|
-
};
|
|
42
|
-
function matchWithExact(dataConfig, currentSizeType) {
|
|
43
|
-
return dataConfig[currentSizeType.name];
|
|
44
|
-
}
|
|
45
|
-
function matchWithLargerMatch(dataConfig, currentSizeType, sizeTypes) {
|
|
46
|
-
let data = dataConfig[currentSizeType.name];
|
|
47
|
-
if (data !== undefined) {
|
|
48
|
-
return data;
|
|
49
|
-
}
|
|
50
|
-
const largestTypeIdx = sizeTypes[sizeTypes.length - 1].type;
|
|
51
|
-
if (currentSizeType.type >= largestTypeIdx) {
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
for (let index = currentSizeType.type; index < sizeTypes.length; index++) {
|
|
55
|
-
const sizeType = sizeTypes[index];
|
|
56
|
-
data = dataConfig[sizeType.name];
|
|
57
|
-
if (data !== undefined) {
|
|
58
|
-
return data;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return undefined;
|
|
62
|
-
}
|
|
63
|
-
function matchWithSmallerMatch(dataConfig, currentSizeType, sizeTypes) {
|
|
64
|
-
let data = dataConfig[currentSizeType.name];
|
|
65
|
-
if (data !== undefined) {
|
|
66
|
-
return data;
|
|
67
|
-
}
|
|
68
|
-
if (currentSizeType.type <= 0) {
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
|
-
// eslint-disable-next-line for-direction
|
|
72
|
-
for (let index = currentSizeType.type; index < sizeTypes.length; index--) {
|
|
73
|
-
const sizeType = sizeTypes[index];
|
|
74
|
-
data = dataConfig[sizeType.name];
|
|
75
|
-
if (data !== undefined) {
|
|
76
|
-
return data;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return undefined;
|
|
80
|
-
}
|
|
81
|
-
function matchWithClosestSmallerFirstMatch(dataConfig, currentSizeType, sizeTypes) {
|
|
82
|
-
return closestMatch(dataConfig, currentSizeType, sizeTypes, true);
|
|
83
|
-
}
|
|
84
|
-
function matchWithClosestLargerFirstMatch(dataConfig, currentSizeType, sizeTypes) {
|
|
85
|
-
return closestMatch(dataConfig, currentSizeType, sizeTypes, false);
|
|
86
|
-
}
|
|
87
|
-
function closestMatch(dataConfig, currentSizeType, sizeTypes, isSmallerFirst) {
|
|
88
|
-
let data = dataConfig[currentSizeType.name];
|
|
89
|
-
if (data !== undefined) {
|
|
90
|
-
return data;
|
|
91
|
-
}
|
|
92
|
-
let downIndex = currentSizeType.type;
|
|
93
|
-
let upIndex = currentSizeType.type;
|
|
94
|
-
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
95
|
-
for (let index = 0; index < sizeTypes.length; index++) {
|
|
96
|
-
for (const idx of isSmallerFirst ? [--downIndex, ++upIndex] : [++upIndex, --downIndex]) {
|
|
97
|
-
const sizeType = sizeTypes[idx];
|
|
98
|
-
if (sizeType) {
|
|
99
|
-
data = dataConfig[sizeType.name];
|
|
100
|
-
if (data !== undefined) {
|
|
101
|
-
return data;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return undefined;
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS1tYXRjaGVyLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2NpcmNsZWNpL3JlcG8vc3JjLyIsInNvdXJjZXMiOlsidmlld3BvcnQvdmlld3BvcnQtZGF0YS92aWV3cG9ydC1kYXRhLW1hdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxDQUFOLElBQVkseUJBZVg7QUFmRCxXQUFZLHlCQUF5QjtJQUNwQyx5REFBeUQ7SUFDekQsMkVBQUssQ0FBQTtJQUVMLDJGQUEyRjtJQUMzRiwrRUFBTyxDQUFBO0lBRVAsd0ZBQXdGO0lBQ3hGLDZFQUFNLENBQUE7SUFFTixtSUFBbUk7SUFDbkksdUdBQW1CLENBQUE7SUFFbkIsa0lBQWtJO0lBQ2xJLHFHQUFrQixDQUFBO0FBQ25CLENBQUMsRUFmVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBZXBDO0FBWUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUNoQyxVQUFpQyxFQUNqQyxRQUE4QixFQUM5QixRQUFtQyxFQUNuQyxTQUFpQyxFQUNqQyxXQUE2QztJQUU3QyxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ2IsTUFBTSxLQUFLLENBQUMseUVBQXlFLFFBQVEsR0FBRyxDQUFDLENBQUM7S0FDbEc7SUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFNLENBQUM7SUFDeEUsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0tBQ1o7SUFDRCxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUM7QUFDM0IsQ0FBQztBQUdELE1BQU0sdUJBQXVCLEdBQW9DO0lBQ2hFLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLEVBQUUsY0FBYztJQUNqRCxDQUFDLHlCQUF5QixDQUFDLE1BQU0s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QUFJLENBQUM7S0FDWjtJQUVELElBQUksU0FBUyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDckMsSUFBSSxPQUFPLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztJQUVuQyw0REFBNEQ7SUFDNUQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3ZGLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLFFBQVEsRUFBRTtnQkFDYixJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO29CQUN2QixPQUFPLElBQUksQ0FBQztpQkFDWjthQUNEO1NBQ0Q7S0FDRDtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSBcIi4uLy4uL2ludGVybmFsL2ludGVybmFsLm1vZGVsXCI7XG5pbXBvcnQgeyBWaWV3cG9ydFNpemVUeXBlSW5mbyB9IGZyb20gXCIuLi92aWV3cG9ydC5tb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBWaWV3cG9ydERhdGFDb25maWc8VFZhbHVlID0gdW5rbm93biwgVERhdGEgPSBEaWN0aW9uYXJ5PFRWYWx1ZT4+ID0gVERhdGEgJiB7XG5cdGRlZmF1bHQ/OiBUVmFsdWVcbn07XG5cbmV4cG9ydCBlbnVtIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kge1xuXHQvKiogSW5kaWNhdGVzIHRoYXQgc2l6ZSBzaG91bGQgbWF0Y2ggZXhhY3Qgb3IgZGVmYXVsdC4gKi9cblx0ZXhhY3QsXG5cblx0LyoqIEluZGljYXRlcyB0aGF0IHNpemUgbWF0Y2hlcyB3aGVuIGV4YWN0IG1hdGNoLCBmaXJzdCBtYXRjaCBzbWFsbGVyIChkb3duKSBvciBkZWZhdWx0LiAqL1xuXHRzbWFsbGVyLFxuXG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBzaXplIG1hdGNoZXMgd2hlbiBleGFjdCBtYXRjaCwgZmlyc3QgbWF0Y2ggbGFyZ2VyICh1cCkgb3IgZGVmYXVsdC4gKi9cblx0bGFyZ2VyLFxuXG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBzaXplIG1hdGNoZXMgd2hlbiBleGFjdCBtYXRjaCwgb3IgaXQgdHJpZXMgYm90aCBzbWFsbGVyL2xhcmdlciAoc21hbGxlciBpcyBwcmVmZXJyZWQpIHVudGlsIG1hdGNoIG9yIGRlZmF1bHQuICovXG5cdGNsb3Nlc3RTbWFsbGVyRmlyc3QsXG5cblx0LyoqIEluZGljYXRlcyB0aGF0IHNpemUgbWF0Y2hlcyB3aGVuIGV4YWN0IG1hdGNoLCBvciBpdCB0cmllcyBib3RoIGxhcmdlci9zbWFsbGVyIChsYXJnZXIgaXMgcHJlZmVycmVkKSB1bnRpbCBtYXRjaCBvciBkZWZhdWx0LiAqL1xuXHRjbG9zZXN0TGFyZ2VyRmlyc3QsXG59XG5leHBvcnQgdHlwZSBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5TGl0ZXJhbCA9IGtleW9mIHR5cGVvZiBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5O1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdwb3J0RGF0YU1hdGNoZXI8VCA9IHVua25vd24+IHtcblx0KFxuXHRcdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcblx0XHRjdXJyZW50U2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxuXHRcdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcblx0XHRzaXplVHlwZU1hcDogRGljdGlvbmFyeTxWaWV3cG9ydFNpemVUeXBlSW5mbz4sXG5cdCk6IFQgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiB0byBtYXRjaCBkYXRhIGJhc2VkIG9uIHN0cmF0ZWd5IGFuZCBzaXplLlxuICpcbiAqIEBwYXJhbSBkYXRhQ29uZmlnIERhdGEgY29uZmlnIHRvIGdlbmVyYXRlIHJ1bGVzIGJhc2VkIG9uLlxuICogQHBhcmFtIHNpemVUeXBlIFNpemUgdHlwZSB0byBnZXQgZGF0YSBmb3IuXG4gKiBAcGFyYW0gc3RyYXRlZ3kgU3RyYXRlZ3kgdG8gdXNlIHdoZW4gYnVpbGRpbmcgcnVsZXMuXG4gKiBAcGFyYW0gc2l6ZVR5cGVzIEF2YWlsYWJsZSBzaXplIHR5cGVzIG9yZGVyZWQgYnkgaW5kZXggdHlwZS4gKENhbiBiZSBvYnRhaW5lZCBmcm9tIGBWaWV3cG9ydFNlcnZpY2VgKVxuICogQHBhcmFtIHNpemVUeXBlTWFwIEF2YWlsYWJsZSBzaXplIHR5cGUgbWFwLiAoQ2FuIGJlIG9idGFpbmVkIGZyb20gYFZpZXdwb3J0U2VydmljZWApXG4gKiBAcmV0dXJucyBSZXR1cm5zIHRoZSBtYXRjaGVkIGRhdGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFZpZXdwb3J0RGF0YTxUPihcblx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxuXHRzaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXG5cdHN0cmF0ZWd5OiBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LFxuXHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXG5cdHNpemVUeXBlTWFwOiBEaWN0aW9uYXJ5PFZpZXdwb3J0U2l6ZVR5cGVJbmZvPixcbik6IFQgfCB1bmRlZmluZWQge1xuXHRjb25zdCBtYXRjaEZuID0gbWF0Y2hTdHJhdGVneUhhbmRsZXJNYXBbc3RyYXRlZ3ldO1xuXHRpZiAoIW1hdGNoRm4pIHtcblx0XHR0aHJvdyBFcnJvcihgbWF0Y2hWaWV3cG9ydERhdGE6IFZpZXdwb3J0IERhdGEgc3RyYXRlZ3kgbm90IGltcGxlbWVudGVkLiBTdHJhdGVneTogJyR7c3RyYXRlZ3l9J2ApO1xuXHR9XG5cdGNvbnN0IGRhdGEgPSBtYXRjaEZuKGRhdGFDb25maWcsIHNpemVUeXBlLCBzaXplVHlwZXMsIHNpemVUeXBlTWFwKSBhcyBUO1xuXHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGRhdGE7XG5cdH1cblx0cmV0dXJuIGRhdGFDb25maWcuZGVmYXVsdDtcbn1cblxuXG5jb25zdCBtYXRjaFN0cmF0ZWd5SGFuZGxlck1hcDogRGljdGlvbmFyeTxWaWV3cG9ydERhdGFNYXRjaGVyPiA9IHtcblx0W1ZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kuZXhhY3RdOiBtYXRjaFdpdGhFeGFjdCxcblx0W1ZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kubGFyZ2VyXTogbWF0Y2hXaXRoTGFyZ2VyTWF0Y2gsXG5cdFtWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LnNtYWxsZXJdOiBtYXRjaFdpdGhTbWFsbGVyTWF0Y2gsXG5cdFtWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LmNsb3Nlc3RTbWFsbGVyRmlyc3RdOiBtYXRjaFdpdGhDbG9zZXN0U21hbGxlckZpcnN0TWF0Y2gsXG5cdFtWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LmNsb3Nlc3RMYXJnZXJGaXJzdF06IG1hdGNoV2l0aENsb3Nlc3RMYXJnZXJGaXJzdE1hdGNoLFxufTtcblxuZnVuY3Rpb24gbWF0Y2hXaXRoRXhhY3Q8VD4oXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcbik6IFQgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZGF0YUNvbmZpZ1tjdXJyZW50U2l6ZVR5cGUubmFtZV07XG59XG5cbmZ1bmN0aW9uIG1hdGNoV2l0aExhcmdlck1hdGNoPFQ+KFxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXG5cdGN1cnJlbnRTaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXG5cdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcbik6IFQgfCB1bmRlZmluZWQge1xuXHRsZXQgZGF0YSA9IGRhdGFDb25maWdbY3VycmVudFNpemVUeXBlLm5hbWVdO1xuXHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGRhdGE7XG5cdH1cblxuXHRjb25zdCBsYXJnZXN0VHlwZUlkeCA9IHNpemVUeXBlc1tzaXplVHlwZXMubGVuZ3RoIC0gMV0udHlwZTtcblx0aWYgKGN1cnJlbnRTaXplVHlwZS50eXBlID49IGxhcmdlc3RUeXBlSWR4KSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGZvciAobGV0IGluZGV4ID0gY3VycmVudFNpemVUeXBlLnR5cGU7IGluZGV4IDwgc2l6ZVR5cGVzLmxlbmd0aDsgaW5kZXgrKykge1xuXHRcdGNvbnN0IHNpemVUeXBlID0gc2l6ZVR5cGVzW2luZGV4XTtcblx0XHRkYXRhID0gZGF0YUNvbmZpZ1tzaXplVHlwZS5uYW1lXTtcblx0XHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gZGF0YTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBtYXRjaFdpdGhTbWFsbGVyTWF0Y2g8VD4oXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcblx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxuKTogVCB8IHVuZGVmaW5lZCB7XG5cdGxldCBkYXRhID0gZGF0YUNvbmZpZ1tjdXJyZW50U2l6ZVR5cGUubmFtZV07XG5cdGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gZGF0YTtcblx0fVxuXG5cdGlmIChjdXJyZW50U2l6ZVR5cGUudHlwZSA8PSAwKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmb3ItZGlyZWN0aW9uXG5cdGZvciAobGV0IGluZGV4ID0gY3VycmVudFNpemVUeXBlLnR5cGU7IGluZGV4IDwgc2l6ZVR5cGVzLmxlbmd0aDsgaW5kZXgtLSkge1xuXHRcdGNvbnN0IHNpemVUeXBlID0gc2l6ZVR5cGVzW2luZGV4XTtcblx0XHRkYXRhID0gZGF0YUNvbmZpZ1tzaXplVHlwZS5uYW1lXTtcblx0XHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gZGF0YTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBtYXRjaFdpdGhDbG9zZXN0U21hbGxlckZpcnN0TWF0Y2g8VD4oXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcblx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxuKTogVCB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBjbG9zZXN0TWF0Y2goZGF0YUNvbmZpZywgY3VycmVudFNpemVUeXBlLCBzaXplVHlwZXMsIHRydWUpO1xufVxuXG5mdW5jdGlvbiBtYXRjaFdpdGhDbG9zZXN0TGFyZ2VyRmlyc3RNYXRjaDxUPihcblx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxuXHRjdXJyZW50U2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxuXHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXG4pOiBUIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGNsb3Nlc3RNYXRjaChkYXRhQ29uZmlnLCBjdXJyZW50U2l6ZVR5cGUsIHNpemVUeXBlcywgZmFsc2UpO1xufVxuXG5mdW5jdGlvbiBjbG9zZXN0TWF0Y2g8VD4oXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcblx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxuXHRpc1NtYWxsZXJGaXJzdDogYm9vbGVhblxuKTogVCB8IHVuZGVmaW5lZCB7XG5cdGxldCBkYXRhID0gZGF0YUNvbmZpZ1tjdXJyZW50U2l6ZVR5cGUubmFtZV07XG5cdGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gZGF0YTtcblx0fVxuXG5cdGxldCBkb3duSW5kZXggPSBjdXJyZW50U2l6ZVR5cGUudHlwZTtcblx0bGV0IHVwSW5kZXggPSBjdXJyZW50U2l6ZVR5cGUudHlwZTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mb3Itb2Zcblx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHNpemVUeXBlcy5sZW5ndGg7IGluZGV4KyspIHtcblx0XHRmb3IgKGNvbnN0IGlkeCBvZiBpc1NtYWxsZXJGaXJzdCA/IFstLWRvd25JbmRleCwgKyt1cEluZGV4XSA6IFsrK3VwSW5kZXgsIC0tZG93bkluZGV4XSkge1xuXHRcdFx0Y29uc3Qgc2l6ZVR5cGUgPSBzaXplVHlwZXNbaWR4XTtcblx0XHRcdGlmIChzaXplVHlwZSkge1xuXHRcdFx0XHRkYXRhID0gZGF0YUNvbmZpZ1tzaXplVHlwZS5uYW1lXTtcblx0XHRcdFx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
1
|
+
export var ViewportDataMatchStrategy;
|
|
2
|
+
(function (ViewportDataMatchStrategy) {
|
|
3
|
+
/** Indicates that size should match exact or default. */
|
|
4
|
+
ViewportDataMatchStrategy[ViewportDataMatchStrategy["exact"] = 0] = "exact";
|
|
5
|
+
/** Indicates that size matches when exact match, first match smaller (down) or default. */
|
|
6
|
+
ViewportDataMatchStrategy[ViewportDataMatchStrategy["smaller"] = 1] = "smaller";
|
|
7
|
+
/** Indicates that size matches when exact match, first match larger (up) or default. */
|
|
8
|
+
ViewportDataMatchStrategy[ViewportDataMatchStrategy["larger"] = 2] = "larger";
|
|
9
|
+
/** Indicates that size matches when exact match, or it tries both smaller/larger (smaller is preferred) until match or default. */
|
|
10
|
+
ViewportDataMatchStrategy[ViewportDataMatchStrategy["closestSmallerFirst"] = 3] = "closestSmallerFirst";
|
|
11
|
+
/** Indicates that size matches when exact match, or it tries both larger/smaller (larger is preferred) until match or default. */
|
|
12
|
+
ViewportDataMatchStrategy[ViewportDataMatchStrategy["closestLargerFirst"] = 4] = "closestLargerFirst";
|
|
13
|
+
})(ViewportDataMatchStrategy || (ViewportDataMatchStrategy = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Utility function to match data based on strategy and size.
|
|
16
|
+
*
|
|
17
|
+
* @param dataConfig Data config to generate rules based on.
|
|
18
|
+
* @param sizeType Size type to get data for.
|
|
19
|
+
* @param strategy Strategy to use when building rules.
|
|
20
|
+
* @param sizeTypes Available size types ordered by index type. (Can be obtained from `ViewportService`)
|
|
21
|
+
* @param sizeTypeMap Available size type map. (Can be obtained from `ViewportService`)
|
|
22
|
+
* @returns Returns the matched data value.
|
|
23
|
+
*/
|
|
24
|
+
export function matchViewportData(dataConfig, sizeType, strategy, sizeTypes, sizeTypeMap) {
|
|
25
|
+
const matchFn = matchStrategyHandlerMap[strategy];
|
|
26
|
+
if (!matchFn) {
|
|
27
|
+
throw Error(`matchViewportData: Viewport Data strategy not implemented. Strategy: '${strategy}'`);
|
|
28
|
+
}
|
|
29
|
+
const data = matchFn(dataConfig, sizeType, sizeTypes, sizeTypeMap);
|
|
30
|
+
if (data !== undefined) {
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
return dataConfig.default;
|
|
34
|
+
}
|
|
35
|
+
const matchStrategyHandlerMap = {
|
|
36
|
+
[ViewportDataMatchStrategy.exact]: matchWithExact,
|
|
37
|
+
[ViewportDataMatchStrategy.larger]: matchWithLargerMatch,
|
|
38
|
+
[ViewportDataMatchStrategy.smaller]: matchWithSmallerMatch,
|
|
39
|
+
[ViewportDataMatchStrategy.closestSmallerFirst]: matchWithClosestSmallerFirstMatch,
|
|
40
|
+
[ViewportDataMatchStrategy.closestLargerFirst]: matchWithClosestLargerFirstMatch,
|
|
41
|
+
};
|
|
42
|
+
function matchWithExact(dataConfig, currentSizeType) {
|
|
43
|
+
return dataConfig[currentSizeType.name];
|
|
44
|
+
}
|
|
45
|
+
function matchWithLargerMatch(dataConfig, currentSizeType, sizeTypes) {
|
|
46
|
+
let data = dataConfig[currentSizeType.name];
|
|
47
|
+
if (data !== undefined) {
|
|
48
|
+
return data;
|
|
49
|
+
}
|
|
50
|
+
const largestTypeIdx = sizeTypes[sizeTypes.length - 1].type;
|
|
51
|
+
if (currentSizeType.type >= largestTypeIdx) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
for (let index = currentSizeType.type; index < sizeTypes.length; index++) {
|
|
55
|
+
const sizeType = sizeTypes[index];
|
|
56
|
+
data = dataConfig[sizeType.name];
|
|
57
|
+
if (data !== undefined) {
|
|
58
|
+
return data;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
function matchWithSmallerMatch(dataConfig, currentSizeType, sizeTypes) {
|
|
64
|
+
let data = dataConfig[currentSizeType.name];
|
|
65
|
+
if (data !== undefined) {
|
|
66
|
+
return data;
|
|
67
|
+
}
|
|
68
|
+
if (currentSizeType.type <= 0) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
// eslint-disable-next-line for-direction
|
|
72
|
+
for (let index = currentSizeType.type; index < sizeTypes.length; index--) {
|
|
73
|
+
const sizeType = sizeTypes[index];
|
|
74
|
+
data = dataConfig[sizeType.name];
|
|
75
|
+
if (data !== undefined) {
|
|
76
|
+
return data;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
function matchWithClosestSmallerFirstMatch(dataConfig, currentSizeType, sizeTypes) {
|
|
82
|
+
return closestMatch(dataConfig, currentSizeType, sizeTypes, true);
|
|
83
|
+
}
|
|
84
|
+
function matchWithClosestLargerFirstMatch(dataConfig, currentSizeType, sizeTypes) {
|
|
85
|
+
return closestMatch(dataConfig, currentSizeType, sizeTypes, false);
|
|
86
|
+
}
|
|
87
|
+
function closestMatch(dataConfig, currentSizeType, sizeTypes, isSmallerFirst) {
|
|
88
|
+
let data = dataConfig[currentSizeType.name];
|
|
89
|
+
if (data !== undefined) {
|
|
90
|
+
return data;
|
|
91
|
+
}
|
|
92
|
+
let downIndex = currentSizeType.type;
|
|
93
|
+
let upIndex = currentSizeType.type;
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
95
|
+
for (let index = 0; index < sizeTypes.length; index++) {
|
|
96
|
+
for (const idx of isSmallerFirst ? [--downIndex, ++upIndex] : [++upIndex, --downIndex]) {
|
|
97
|
+
const sizeType = sizeTypes[idx];
|
|
98
|
+
if (sizeType) {
|
|
99
|
+
data = dataConfig[sizeType.name];
|
|
100
|
+
if (data !== undefined) {
|
|
101
|
+
return data;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS1tYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IkM6L2Rldi9naXQvQHNzdi5uZ3gudXgvc3JjLyIsInNvdXJjZXMiOlsidmlld3BvcnQvdmlld3BvcnQtZGF0YS92aWV3cG9ydC1kYXRhLW1hdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxDQUFOLElBQVkseUJBZVg7QUFmRCxXQUFZLHlCQUF5QjtJQUNwQyx5REFBeUQ7SUFDekQsMkVBQUssQ0FBQTtJQUVMLDJGQUEyRjtJQUMzRiwrRUFBTyxDQUFBO0lBRVAsd0ZBQXdGO0lBQ3hGLDZFQUFNLENBQUE7SUFFTixtSUFBbUk7SUFDbkksdUdBQW1CLENBQUE7SUFFbkIsa0lBQWtJO0lBQ2xJLHFHQUFrQixDQUFBO0FBQ25CLENBQUMsRUFmVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBZXBDO0FBWUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUNoQyxVQUFpQyxFQUNqQyxRQUE4QixFQUM5QixRQUFtQyxFQUNuQyxTQUFpQyxFQUNqQyxXQUE2QztJQUU3QyxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ2IsTUFBTSxLQUFLLENBQUMseUVBQXlFLFFBQVEsR0FBRyxDQUFDLENBQUM7S0FDbEc7SUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFNLENBQUM7SUFDeEUsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0tBQ1o7SUFDRCxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUM7QUFDM0IsQ0FBQztBQUdELE1BQU0sdUJBQXVCLEdBQW9DO0lBQ2hFLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLEVBQUUsY0FBYztJQUNqRCxDQUFDLHlCQUF5QixDQUFDLE1B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TyxJQUFJLENBQUM7S0FDWjtJQUVELElBQUksU0FBUyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDckMsSUFBSSxPQUFPLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztJQUVuQyw0REFBNEQ7SUFDNUQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3ZGLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLFFBQVEsRUFBRTtnQkFDYixJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO29CQUN2QixPQUFPLElBQUksQ0FBQztpQkFDWjthQUNEO1NBQ0Q7S0FDRDtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSBcIi4uLy4uL2ludGVybmFsL2ludGVybmFsLm1vZGVsXCI7XHJcbmltcG9ydCB7IFZpZXdwb3J0U2l6ZVR5cGVJbmZvIH0gZnJvbSBcIi4uL3ZpZXdwb3J0Lm1vZGVsXCI7XHJcblxyXG5leHBvcnQgdHlwZSBWaWV3cG9ydERhdGFDb25maWc8VFZhbHVlID0gdW5rbm93biwgVERhdGEgPSBEaWN0aW9uYXJ5PFRWYWx1ZT4+ID0gVERhdGEgJiB7XHJcblx0ZGVmYXVsdD86IFRWYWx1ZVxyXG59O1xyXG5cclxuZXhwb3J0IGVudW0gVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSB7XHJcblx0LyoqIEluZGljYXRlcyB0aGF0IHNpemUgc2hvdWxkIG1hdGNoIGV4YWN0IG9yIGRlZmF1bHQuICovXHJcblx0ZXhhY3QsXHJcblxyXG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBzaXplIG1hdGNoZXMgd2hlbiBleGFjdCBtYXRjaCwgZmlyc3QgbWF0Y2ggc21hbGxlciAoZG93bikgb3IgZGVmYXVsdC4gKi9cclxuXHRzbWFsbGVyLFxyXG5cclxuXHQvKiogSW5kaWNhdGVzIHRoYXQgc2l6ZSBtYXRjaGVzIHdoZW4gZXhhY3QgbWF0Y2gsIGZpcnN0IG1hdGNoIGxhcmdlciAodXApIG9yIGRlZmF1bHQuICovXHJcblx0bGFyZ2VyLFxyXG5cclxuXHQvKiogSW5kaWNhdGVzIHRoYXQgc2l6ZSBtYXRjaGVzIHdoZW4gZXhhY3QgbWF0Y2gsIG9yIGl0IHRyaWVzIGJvdGggc21hbGxlci9sYXJnZXIgKHNtYWxsZXIgaXMgcHJlZmVycmVkKSB1bnRpbCBtYXRjaCBvciBkZWZhdWx0LiAqL1xyXG5cdGNsb3Nlc3RTbWFsbGVyRmlyc3QsXHJcblxyXG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBzaXplIG1hdGNoZXMgd2hlbiBleGFjdCBtYXRjaCwgb3IgaXQgdHJpZXMgYm90aCBsYXJnZXIvc21hbGxlciAobGFyZ2VyIGlzIHByZWZlcnJlZCkgdW50aWwgbWF0Y2ggb3IgZGVmYXVsdC4gKi9cclxuXHRjbG9zZXN0TGFyZ2VyRmlyc3QsXHJcbn1cclxuZXhwb3J0IHR5cGUgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneUxpdGVyYWwgPSBrZXlvZiB0eXBlb2YgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlld3BvcnREYXRhTWF0Y2hlcjxUID0gdW5rbm93bj4ge1xyXG5cdChcclxuXHRcdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcclxuXHRcdGN1cnJlbnRTaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXHJcblx0XHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXHJcblx0XHRzaXplVHlwZU1hcDogRGljdGlvbmFyeTxWaWV3cG9ydFNpemVUeXBlSW5mbz4sXHJcblx0KTogVCB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFV0aWxpdHkgZnVuY3Rpb24gdG8gbWF0Y2ggZGF0YSBiYXNlZCBvbiBzdHJhdGVneSBhbmQgc2l6ZS5cclxuICpcclxuICogQHBhcmFtIGRhdGFDb25maWcgRGF0YSBjb25maWcgdG8gZ2VuZXJhdGUgcnVsZXMgYmFzZWQgb24uXHJcbiAqIEBwYXJhbSBzaXplVHlwZSBTaXplIHR5cGUgdG8gZ2V0IGRhdGEgZm9yLlxyXG4gKiBAcGFyYW0gc3RyYXRlZ3kgU3RyYXRlZ3kgdG8gdXNlIHdoZW4gYnVpbGRpbmcgcnVsZXMuXHJcbiAqIEBwYXJhbSBzaXplVHlwZXMgQXZhaWxhYmxlIHNpemUgdHlwZXMgb3JkZXJlZCBieSBpbmRleCB0eXBlLiAoQ2FuIGJlIG9idGFpbmVkIGZyb20gYFZpZXdwb3J0U2VydmljZWApXHJcbiAqIEBwYXJhbSBzaXplVHlwZU1hcCBBdmFpbGFibGUgc2l6ZSB0eXBlIG1hcC4gKENhbiBiZSBvYnRhaW5lZCBmcm9tIGBWaWV3cG9ydFNlcnZpY2VgKVxyXG4gKiBAcmV0dXJucyBSZXR1cm5zIHRoZSBtYXRjaGVkIGRhdGEgdmFsdWUuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hWaWV3cG9ydERhdGE8VD4oXHJcblx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxyXG5cdHNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcclxuXHRzdHJhdGVneTogVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSxcclxuXHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXHJcblx0c2l6ZVR5cGVNYXA6IERpY3Rpb25hcnk8Vmlld3BvcnRTaXplVHlwZUluZm8+LFxyXG4pOiBUIHwgdW5kZWZpbmVkIHtcclxuXHRjb25zdCBtYXRjaEZuID0gbWF0Y2hTdHJhdGVneUhhbmRsZXJNYXBbc3RyYXRlZ3ldO1xyXG5cdGlmICghbWF0Y2hGbikge1xyXG5cdFx0dGhyb3cgRXJyb3IoYG1hdGNoVmlld3BvcnREYXRhOiBWaWV3cG9ydCBEYXRhIHN0cmF0ZWd5IG5vdCBpbXBsZW1lbnRlZC4gU3RyYXRlZ3k6ICcke3N0cmF0ZWd5fSdgKTtcclxuXHR9XHJcblx0Y29uc3QgZGF0YSA9IG1hdGNoRm4oZGF0YUNvbmZpZywgc2l6ZVR5cGUsIHNpemVUeXBlcywgc2l6ZVR5cGVNYXApIGFzIFQ7XHJcblx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0cmV0dXJuIGRhdGE7XHJcblx0fVxyXG5cdHJldHVybiBkYXRhQ29uZmlnLmRlZmF1bHQ7XHJcbn1cclxuXHJcblxyXG5jb25zdCBtYXRjaFN0cmF0ZWd5SGFuZGxlck1hcDogRGljdGlvbmFyeTxWaWV3cG9ydERhdGFNYXRjaGVyPiA9IHtcclxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5leGFjdF06IG1hdGNoV2l0aEV4YWN0LFxyXG5cdFtWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5Lmxhcmdlcl06IG1hdGNoV2l0aExhcmdlck1hdGNoLFxyXG5cdFtWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LnNtYWxsZXJdOiBtYXRjaFdpdGhTbWFsbGVyTWF0Y2gsXHJcblx0W1ZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kuY2xvc2VzdFNtYWxsZXJGaXJzdF06IG1hdGNoV2l0aENsb3Nlc3RTbWFsbGVyRmlyc3RNYXRjaCxcclxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5jbG9zZXN0TGFyZ2VyRmlyc3RdOiBtYXRjaFdpdGhDbG9zZXN0TGFyZ2VyRmlyc3RNYXRjaCxcclxufTtcclxuXHJcbmZ1bmN0aW9uIG1hdGNoV2l0aEV4YWN0PFQ+KFxyXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcclxuXHRjdXJyZW50U2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxyXG4pOiBUIHwgdW5kZWZpbmVkIHtcclxuXHRyZXR1cm4gZGF0YUNvbmZpZ1tjdXJyZW50U2l6ZVR5cGUubmFtZV07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hdGNoV2l0aExhcmdlck1hdGNoPFQ+KFxyXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcclxuXHRjdXJyZW50U2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxyXG5cdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcclxuKTogVCB8IHVuZGVmaW5lZCB7XHJcblx0bGV0IGRhdGEgPSBkYXRhQ29uZmlnW2N1cnJlbnRTaXplVHlwZS5uYW1lXTtcclxuXHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRyZXR1cm4gZGF0YTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IGxhcmdlc3RUeXBlSWR4ID0gc2l6ZVR5cGVzW3NpemVUeXBlcy5sZW5ndGggLSAxXS50eXBlO1xyXG5cdGlmIChjdXJyZW50U2l6ZVR5cGUudHlwZSA+PSBsYXJnZXN0VHlwZUlkeCkge1xyXG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdGZvciAobGV0IGluZGV4ID0gY3VycmVudFNpemVUeXBlLnR5cGU7IGluZGV4IDwgc2l6ZVR5cGVzLmxlbmd0aDsgaW5kZXgrKykge1xyXG5cdFx0Y29uc3Qgc2l6ZVR5cGUgPSBzaXplVHlwZXNbaW5kZXhdO1xyXG5cdFx0ZGF0YSA9IGRhdGFDb25maWdbc2l6ZVR5cGUubmFtZV07XHJcblx0XHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybiBkYXRhO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHVuZGVmaW5lZDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWF0Y2hXaXRoU21hbGxlck1hdGNoPFQ+KFxyXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcclxuXHRjdXJyZW50U2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxyXG5cdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcclxuKTogVCB8IHVuZGVmaW5lZCB7XHJcblx0bGV0IGRhdGEgPSBkYXRhQ29uZmlnW2N1cnJlbnRTaXplVHlwZS5uYW1lXTtcclxuXHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRyZXR1cm4gZGF0YTtcclxuXHR9XHJcblxyXG5cdGlmIChjdXJyZW50U2l6ZVR5cGUudHlwZSA8PSAwKSB7XHJcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvci1kaXJlY3Rpb25cclxuXHRmb3IgKGxldCBpbmRleCA9IGN1cnJlbnRTaXplVHlwZS50eXBlOyBpbmRleCA8IHNpemVUeXBlcy5sZW5ndGg7IGluZGV4LS0pIHtcclxuXHRcdGNvbnN0IHNpemVUeXBlID0gc2l6ZVR5cGVzW2luZGV4XTtcclxuXHRcdGRhdGEgPSBkYXRhQ29uZmlnW3NpemVUeXBlLm5hbWVdO1xyXG5cdFx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gZGF0YTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hdGNoV2l0aENsb3Nlc3RTbWFsbGVyRmlyc3RNYXRjaDxUPihcclxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXHJcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcclxuXHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXHJcbik6IFQgfCB1bmRlZmluZWQge1xyXG5cdHJldHVybiBjbG9zZXN0TWF0Y2goZGF0YUNvbmZpZywgY3VycmVudFNpemVUeXBlLCBzaXplVHlwZXMsIHRydWUpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXRjaFdpdGhDbG9zZXN0TGFyZ2VyRmlyc3RNYXRjaDxUPihcclxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXHJcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcclxuXHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXHJcbik6IFQgfCB1bmRlZmluZWQge1xyXG5cdHJldHVybiBjbG9zZXN0TWF0Y2goZGF0YUNvbmZpZywgY3VycmVudFNpemVUeXBlLCBzaXplVHlwZXMsIGZhbHNlKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2xvc2VzdE1hdGNoPFQ+KFxyXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcclxuXHRjdXJyZW50U2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxyXG5cdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcclxuXHRpc1NtYWxsZXJGaXJzdDogYm9vbGVhblxyXG4pOiBUIHwgdW5kZWZpbmVkIHtcclxuXHRsZXQgZGF0YSA9IGRhdGFDb25maWdbY3VycmVudFNpemVUeXBlLm5hbWVdO1xyXG5cdGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdHJldHVybiBkYXRhO1xyXG5cdH1cclxuXHJcblx0bGV0IGRvd25JbmRleCA9IGN1cnJlbnRTaXplVHlwZS50eXBlO1xyXG5cdGxldCB1cEluZGV4ID0gY3VycmVudFNpemVUeXBlLnR5cGU7XHJcblxyXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWZvci1vZlxyXG5cdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzaXplVHlwZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcblx0XHRmb3IgKGNvbnN0IGlkeCBvZiBpc1NtYWxsZXJGaXJzdCA/IFstLWRvd25JbmRleCwgKyt1cEluZGV4XSA6IFsrK3VwSW5kZXgsIC0tZG93bkluZGV4XSkge1xyXG5cdFx0XHRjb25zdCBzaXplVHlwZSA9IHNpemVUeXBlc1tpZHhdO1xyXG5cdFx0XHRpZiAoc2l6ZVR5cGUpIHtcclxuXHRcdFx0XHRkYXRhID0gZGF0YUNvbmZpZ1tzaXplVHlwZS5uYW1lXTtcclxuXHRcdFx0XHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiB1bmRlZmluZWQ7XHJcbn1cclxuIl19
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import { Subscription } from "rxjs";
|
|
2
|
-
import { tap } from "rxjs/operators";
|
|
3
|
-
import { Pipe, ChangeDetectorRef } from "@angular/core";
|
|
4
|
-
import { ViewportDataMatchStrategy } from "./viewport-data-matcher";
|
|
5
|
-
import { ViewportDataService } from "./viewport-data.service";
|
|
6
|
-
/* eslint-disable @angular-eslint/no-pipe-impure */
|
|
7
|
-
export class ViewportDataPipe {
|
|
8
|
-
constructor(viewportData, cdr) {
|
|
9
|
-
this.viewportData = viewportData;
|
|
10
|
-
this.cdr = cdr;
|
|
11
|
-
this.markForTransform = true;
|
|
12
|
-
this.data$$ = Subscription.EMPTY;
|
|
13
|
-
}
|
|
14
|
-
transform(data, strategy) {
|
|
15
|
-
if (!this.markForTransform && data === this.data && strategy === this.strategy) {
|
|
16
|
-
return this.value;
|
|
17
|
-
}
|
|
18
|
-
this.data = data;
|
|
19
|
-
this.strategy = strategy;
|
|
20
|
-
this.data$$.unsubscribe();
|
|
21
|
-
this.data$$ = this.viewportData.get$(data, ViewportDataMatchStrategy[strategy]).pipe(tap(value => {
|
|
22
|
-
this.markForTransform = true;
|
|
23
|
-
this.value = value;
|
|
24
|
-
this.cdr.markForCheck();
|
|
25
|
-
})).subscribe();
|
|
26
|
-
this.markForTransform = false;
|
|
27
|
-
return this.value;
|
|
28
|
-
}
|
|
29
|
-
ngOnDestroy() {
|
|
30
|
-
this.data$$.unsubscribe();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
ViewportDataPipe.decorators = [
|
|
34
|
-
{ type: Pipe, args: [{
|
|
35
|
-
name: "ssvViewportData",
|
|
36
|
-
pure: false
|
|
37
|
-
},] }
|
|
38
|
-
];
|
|
39
|
-
ViewportDataPipe.ctorParameters = () => [
|
|
40
|
-
{ type: ViewportDataService },
|
|
41
|
-
{ type: ChangeDetectorRef }
|
|
42
|
-
];
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Subscription } from "rxjs";
|
|
2
|
+
import { tap } from "rxjs/operators";
|
|
3
|
+
import { Pipe, ChangeDetectorRef } from "@angular/core";
|
|
4
|
+
import { ViewportDataMatchStrategy } from "./viewport-data-matcher";
|
|
5
|
+
import { ViewportDataService } from "./viewport-data.service";
|
|
6
|
+
/* eslint-disable @angular-eslint/no-pipe-impure */
|
|
7
|
+
export class ViewportDataPipe {
|
|
8
|
+
constructor(viewportData, cdr) {
|
|
9
|
+
this.viewportData = viewportData;
|
|
10
|
+
this.cdr = cdr;
|
|
11
|
+
this.markForTransform = true;
|
|
12
|
+
this.data$$ = Subscription.EMPTY;
|
|
13
|
+
}
|
|
14
|
+
transform(data, strategy) {
|
|
15
|
+
if (!this.markForTransform && data === this.data && strategy === this.strategy) {
|
|
16
|
+
return this.value;
|
|
17
|
+
}
|
|
18
|
+
this.data = data;
|
|
19
|
+
this.strategy = strategy;
|
|
20
|
+
this.data$$.unsubscribe();
|
|
21
|
+
this.data$$ = this.viewportData.get$(data, ViewportDataMatchStrategy[strategy]).pipe(tap(value => {
|
|
22
|
+
this.markForTransform = true;
|
|
23
|
+
this.value = value;
|
|
24
|
+
this.cdr.markForCheck();
|
|
25
|
+
})).subscribe();
|
|
26
|
+
this.markForTransform = false;
|
|
27
|
+
return this.value;
|
|
28
|
+
}
|
|
29
|
+
ngOnDestroy() {
|
|
30
|
+
this.data$$.unsubscribe();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
ViewportDataPipe.decorators = [
|
|
34
|
+
{ type: Pipe, args: [{
|
|
35
|
+
name: "ssvViewportData",
|
|
36
|
+
pure: false
|
|
37
|
+
},] }
|
|
38
|
+
];
|
|
39
|
+
ViewportDataPipe.ctorParameters = () => [
|
|
40
|
+
{ type: ViewportDataService },
|
|
41
|
+
{ type: ChangeDetectorRef }
|
|
42
|
+
];
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS5waXBlLmpzIiwic291cmNlUm9vdCI6IkM6L2Rldi9naXQvQHNzdi5uZ3gudXgvc3JjLyIsInNvdXJjZXMiOlsidmlld3BvcnQvdmlld3BvcnQtZGF0YS92aWV3cG9ydC1kYXRhLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBNEIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFzQix5QkFBeUIsRUFBb0MsTUFBTSx5QkFBeUIsQ0FBQztBQUMxSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxtREFBbUQ7QUFLbkQsTUFBTSxPQUFPLGdCQUFnQjtJQVE1QixZQUNTLFlBQWlDLEVBQ2pDLEdBQXNCO1FBRHRCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVJ2QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFJeEIsV0FBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFNcEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF3QixFQUFFLFFBQTBDO1FBQzdFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDL0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkYsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUNGLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFZCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7O1lBeENELElBQUksU0FBQztnQkFDTCxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixJQUFJLEVBQUUsS0FBSzthQUNYOzs7WUFOUSxtQkFBbUI7WUFIYSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBWaWV3cG9ydERhdGFDb25maWcsIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3ksIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3lMaXRlcmFsIH0gZnJvbSBcIi4vdmlld3BvcnQtZGF0YS1tYXRjaGVyXCI7XHJcbmltcG9ydCB7IFZpZXdwb3J0RGF0YVNlcnZpY2UgfSBmcm9tIFwiLi92aWV3cG9ydC1kYXRhLnNlcnZpY2VcIjtcclxuXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1waXBlLWltcHVyZSAqL1xyXG5AUGlwZSh7XHJcblx0bmFtZTogXCJzc3ZWaWV3cG9ydERhdGFcIixcclxuXHRwdXJlOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld3BvcnREYXRhUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XHJcblxyXG5cdHByaXZhdGUgbWFya0ZvclRyYW5zZm9ybSA9IHRydWU7XHJcblx0cHJpdmF0ZSB2YWx1ZTogdW5rbm93bjtcclxuXHRwcml2YXRlIGRhdGE6IFZpZXdwb3J0RGF0YUNvbmZpZyB8IHVuZGVmaW5lZDtcclxuXHRwcml2YXRlIHN0cmF0ZWd5OiBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5TGl0ZXJhbCB8IHVuZGVmaW5lZDtcclxuXHRwcml2YXRlIGRhdGEkJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHZpZXdwb3J0RGF0YTogVmlld3BvcnREYXRhU2VydmljZSxcclxuXHRcdHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG5cdCkge1xyXG5cdH1cclxuXHJcblx0dHJhbnNmb3JtKGRhdGE6IFZpZXdwb3J0RGF0YUNvbmZpZywgc3RyYXRlZ3k6IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3lMaXRlcmFsKTogdW5rbm93biB7XHJcblx0XHRpZiAoIXRoaXMubWFya0ZvclRyYW5zZm9ybSAmJiBkYXRhID09PSB0aGlzLmRhdGEgJiYgc3RyYXRlZ3kgPT09IHRoaXMuc3RyYXRlZ3kpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMudmFsdWU7XHJcblx0XHR9XHJcblx0XHR0aGlzLmRhdGEgPSBkYXRhO1xyXG5cdFx0dGhpcy5zdHJhdGVneSA9IHN0cmF0ZWd5O1xyXG5cclxuXHRcdHRoaXMuZGF0YSQkLnVuc3Vic2NyaWJlKCk7XHJcblx0XHR0aGlzLmRhdGEkJCA9IHRoaXMudmlld3BvcnREYXRhLmdldCQoZGF0YSwgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneVtzdHJhdGVneV0pLnBpcGUoXHJcblx0XHRcdHRhcCh2YWx1ZSA9PiB7XHJcblx0XHRcdFx0dGhpcy5tYXJrRm9yVHJhbnNmb3JtID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLnZhbHVlID0gdmFsdWU7XHJcblx0XHRcdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KS5zdWJzY3JpYmUoKTtcclxuXHJcblx0XHR0aGlzLm1hcmtGb3JUcmFuc2Zvcm0gPSBmYWxzZTtcclxuXHRcdHJldHVybiB0aGlzLnZhbHVlO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblx0XHR0aGlzLmRhdGEkJC51bnN1YnNjcmliZSgpO1xyXG5cdH1cclxuXHJcbn1cclxuIl19
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { distinctUntilChanged, map } from "rxjs/operators";
|
|
3
|
-
import { UX_CONFIG } from "../../config";
|
|
4
|
-
import { ViewportService } from "../viewport.service";
|
|
5
|
-
import { matchViewportData } from "./viewport-data-matcher";
|
|
6
|
-
import { generateViewportRulesRangeFromDataMatcher } from "./viewport-data.utils";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../viewport.service";
|
|
9
|
-
import * as i2 from "../../config";
|
|
10
|
-
export class ViewportDataService {
|
|
11
|
-
constructor(viewport, config) {
|
|
12
|
-
this.viewport = viewport;
|
|
13
|
-
this.config = config;
|
|
14
|
-
}
|
|
15
|
-
/** Get data for match. */
|
|
16
|
-
get(dataConfig, strategy = this.config.viewport.defaultDataMatchStrategy, sizeType = this.viewport.sizeTypeSnapshot) {
|
|
17
|
-
return matchViewportData(dataConfig, sizeType, strategy, this.viewport.sizeTypes, this.viewport.sizeTypeMap);
|
|
18
|
-
}
|
|
19
|
-
/** Get data for match as observable. */
|
|
20
|
-
get$(dataConfig, strategy, throttle = true) {
|
|
21
|
-
return (throttle ? this.viewport.sizeType$ : this.viewport.sizeTypeSnap$).pipe(map(sizeType => this.get(dataConfig, strategy, sizeType)), distinctUntilChanged());
|
|
22
|
-
}
|
|
23
|
-
/** Generate rules based on strategies for data. */
|
|
24
|
-
generateRules(dataConfig, strategy = this.config.viewport.defaultDataMatchStrategy) {
|
|
25
|
-
return generateViewportRulesRangeFromDataMatcher(dataConfig, strategy, this.viewport.sizeTypes, this.viewport.sizeTypeMap);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
ViewportDataService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ViewportDataService_Factory() { return new ViewportDataService(i0.ɵɵinject(i1.ViewportService), i0.ɵɵinject(i2.UX_CONFIG)); }, token: ViewportDataService, providedIn: "root" });
|
|
29
|
-
ViewportDataService.decorators = [
|
|
30
|
-
{ type: Injectable, args: [{
|
|
31
|
-
providedIn: "root",
|
|
32
|
-
},] }
|
|
33
|
-
];
|
|
34
|
-
ViewportDataService.ctorParameters = () => [
|
|
35
|
-
{ type: ViewportService },
|
|
36
|
-
{ type: undefined, decorators: [{ type: Inject, args: [UX_CONFIG,] }] }
|
|
37
|
-
];
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import { distinctUntilChanged, map } from "rxjs/operators";
|
|
3
|
+
import { UX_CONFIG } from "../../config";
|
|
4
|
+
import { ViewportService } from "../viewport.service";
|
|
5
|
+
import { matchViewportData } from "./viewport-data-matcher";
|
|
6
|
+
import { generateViewportRulesRangeFromDataMatcher } from "./viewport-data.utils";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../viewport.service";
|
|
9
|
+
import * as i2 from "../../config";
|
|
10
|
+
export class ViewportDataService {
|
|
11
|
+
constructor(viewport, config) {
|
|
12
|
+
this.viewport = viewport;
|
|
13
|
+
this.config = config;
|
|
14
|
+
}
|
|
15
|
+
/** Get data for match. */
|
|
16
|
+
get(dataConfig, strategy = this.config.viewport.defaultDataMatchStrategy, sizeType = this.viewport.sizeTypeSnapshot) {
|
|
17
|
+
return matchViewportData(dataConfig, sizeType, strategy, this.viewport.sizeTypes, this.viewport.sizeTypeMap);
|
|
18
|
+
}
|
|
19
|
+
/** Get data for match as observable. */
|
|
20
|
+
get$(dataConfig, strategy, throttle = true) {
|
|
21
|
+
return (throttle ? this.viewport.sizeType$ : this.viewport.sizeTypeSnap$).pipe(map(sizeType => this.get(dataConfig, strategy, sizeType)), distinctUntilChanged());
|
|
22
|
+
}
|
|
23
|
+
/** Generate rules based on strategies for data. */
|
|
24
|
+
generateRules(dataConfig, strategy = this.config.viewport.defaultDataMatchStrategy) {
|
|
25
|
+
return generateViewportRulesRangeFromDataMatcher(dataConfig, strategy, this.viewport.sizeTypes, this.viewport.sizeTypeMap);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
ViewportDataService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ViewportDataService_Factory() { return new ViewportDataService(i0.ɵɵinject(i1.ViewportService), i0.ɵɵinject(i2.UX_CONFIG)); }, token: ViewportDataService, providedIn: "root" });
|
|
29
|
+
ViewportDataService.decorators = [
|
|
30
|
+
{ type: Injectable, args: [{
|
|
31
|
+
providedIn: "root",
|
|
32
|
+
},] }
|
|
33
|
+
];
|
|
34
|
+
ViewportDataService.ctorParameters = () => [
|
|
35
|
+
{ type: ViewportService },
|
|
36
|
+
{ type: undefined, decorators: [{ type: Inject, args: [UX_CONFIG,] }] }
|
|
37
|
+
];
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L2Rldi9naXQvQHNzdi5uZ3gudXgvc3JjLyIsInNvdXJjZXMiOlsidmlld3BvcnQvdmlld3BvcnQtZGF0YS92aWV3cG9ydC1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFHcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBaUQsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUseUNBQXlDLEVBQW9CLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFLcEcsTUFBTSxPQUFPLG1CQUFtQjtJQUUvQixZQUNTLFFBQXlCLEVBQ04sTUFBaUI7UUFEcEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDTixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBRTdDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsR0FBRyxDQUNGLFVBQWlDLEVBQ2pDLFdBQXNDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUNuRixXQUFpQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtRQUUvRCxPQUFPLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxJQUFJLENBQUksVUFBaUMsRUFBRSxRQUFvQyxFQUFFLFFBQVEsR0FBRyxJQUFJO1FBQy9GLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDN0UsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQzVELG9CQUFvQixFQUFFLENBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELGFBQWEsQ0FDWixVQUFpQyxFQUNqQyxXQUFzQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0I7UUFFbkYsT0FBTyx5Q0FBeUMsQ0FDL0MsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQ3pCLENBQUM7SUFDSCxDQUFDOzs7O1lBdkNELFVBQVUsU0FBQztnQkFDWCxVQUFVLEVBQUUsTUFBTTthQUNsQjs7O1lBTlEsZUFBZTs0Q0FXckIsTUFBTSxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBVWF9DT05GSUcsIFV4T3B0aW9ucyB9IGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuXHJcbmltcG9ydCB7IFZpZXdwb3J0U2l6ZVR5cGVJbmZvIH0gZnJvbSBcIi4uL3ZpZXdwb3J0Lm1vZGVsXCI7XHJcbmltcG9ydCB7IFZpZXdwb3J0U2VydmljZSB9IGZyb20gXCIuLi92aWV3cG9ydC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IG1hdGNoVmlld3BvcnREYXRhLCBWaWV3cG9ydERhdGFDb25maWcsIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kgfSBmcm9tIFwiLi92aWV3cG9ydC1kYXRhLW1hdGNoZXJcIjtcclxuaW1wb3J0IHsgZ2VuZXJhdGVWaWV3cG9ydFJ1bGVzUmFuZ2VGcm9tRGF0YU1hdGNoZXIsIFZpZXdwb3J0RGF0YVJ1bGUgfSBmcm9tIFwiLi92aWV3cG9ydC1kYXRhLnV0aWxzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3cG9ydERhdGFTZXJ2aWNlIHtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHZpZXdwb3J0OiBWaWV3cG9ydFNlcnZpY2UsXHJcblx0XHRASW5qZWN0KFVYX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFV4T3B0aW9ucyxcclxuXHQpIHtcclxuXHR9XHJcblxyXG5cdC8qKiBHZXQgZGF0YSBmb3IgbWF0Y2guICovXHJcblx0Z2V0PFQ+KFxyXG5cdFx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxyXG5cdFx0c3RyYXRlZ3k6IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kgPSB0aGlzLmNvbmZpZy52aWV3cG9ydC5kZWZhdWx0RGF0YU1hdGNoU3RyYXRlZ3ksXHJcblx0XHRzaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8gPSB0aGlzLnZpZXdwb3J0LnNpemVUeXBlU25hcHNob3RcclxuXHQpOiBUIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiBtYXRjaFZpZXdwb3J0RGF0YShkYXRhQ29uZmlnLCBzaXplVHlwZSwgc3RyYXRlZ3ksIHRoaXMudmlld3BvcnQuc2l6ZVR5cGVzLCB0aGlzLnZpZXdwb3J0LnNpemVUeXBlTWFwKTtcclxuXHR9XHJcblxyXG5cdC8qKiBHZXQgZGF0YSBmb3IgbWF0Y2ggYXMgb2JzZXJ2YWJsZS4gKi9cclxuXHRnZXQkPFQ+KGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPiwgc3RyYXRlZ3k/OiBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LCB0aHJvdHRsZSA9IHRydWUpOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcclxuXHRcdHJldHVybiAodGhyb3R0bGUgPyB0aGlzLnZpZXdwb3J0LnNpemVUeXBlJCA6IHRoaXMudmlld3BvcnQuc2l6ZVR5cGVTbmFwJCkucGlwZShcclxuXHRcdFx0bWFwKHNpemVUeXBlID0+IHRoaXMuZ2V0PFQ+KGRhdGFDb25maWcsIHN0cmF0ZWd5LCBzaXplVHlwZSkpLFxyXG5cdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBHZW5lcmF0ZSBydWxlcyBiYXNlZCBvbiBzdHJhdGVnaWVzIGZvciBkYXRhLiAqL1xyXG5cdGdlbmVyYXRlUnVsZXM8VD4oXHJcblx0XHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXHJcblx0XHRzdHJhdGVneTogVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSA9IHRoaXMuY29uZmlnLnZpZXdwb3J0LmRlZmF1bHREYXRhTWF0Y2hTdHJhdGVneSxcclxuXHQpOiBWaWV3cG9ydERhdGFSdWxlPFQ+W10ge1xyXG5cdFx0cmV0dXJuIGdlbmVyYXRlVmlld3BvcnRSdWxlc1JhbmdlRnJvbURhdGFNYXRjaGVyKFxyXG5cdFx0XHRkYXRhQ29uZmlnLFxyXG5cdFx0XHRzdHJhdGVneSxcclxuXHRcdFx0dGhpcy52aWV3cG9ydC5zaXplVHlwZXMsXHJcblx0XHRcdHRoaXMudmlld3BvcnQuc2l6ZVR5cGVNYXBcclxuXHRcdCk7XHJcblx0fVxyXG5cclxufVxyXG4iXX0=
|