@ssv/ngx.ux 2.0.2-dev.7 → 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.
Files changed (75) hide show
  1. package/CHANGELOG.md +149 -0
  2. package/LICENSE +21 -21
  3. package/README.md +297 -297
  4. package/bundles/ssv-ngx.ux.umd.js +1219 -0
  5. package/bundles/ssv-ngx.ux.umd.js.map +1 -0
  6. package/bundles/ssv-ngx.ux.umd.min.js +16 -0
  7. package/bundles/ssv-ngx.ux.umd.min.js.map +1 -0
  8. package/config.d.ts +7 -7
  9. package/esm2015/config.js +7 -0
  10. package/esm2015/index.js +5 -0
  11. package/esm2015/internal/internal.model.js +2 -0
  12. package/esm2015/module.js +50 -0
  13. package/esm2015/platform/window.js +28 -0
  14. package/esm2015/ssv-ngx.ux.js +7 -0
  15. package/esm2015/version.js +2 -0
  16. package/esm2015/viewport/index.js +9 -0
  17. package/esm2015/viewport/viewport-data/index.js +4 -0
  18. package/esm2015/viewport/viewport-data/viewport-data-matcher.js +108 -0
  19. package/esm2015/viewport/viewport-data/viewport-data.pipe.js +43 -0
  20. package/esm2015/viewport/viewport-data/viewport-data.service.js +38 -0
  21. package/esm2015/viewport/viewport-data/viewport-data.utils.js +100 -0
  22. package/esm2015/viewport/viewport-matcher-var.directive.js +64 -0
  23. package/esm2015/viewport/viewport-matcher.directive.js +134 -0
  24. package/esm2015/viewport/viewport-server-size.service.js +38 -0
  25. package/esm2015/viewport/viewport.const.js +18 -0
  26. package/esm2015/viewport/viewport.model.js +31 -0
  27. package/esm2015/viewport/viewport.service.js +69 -0
  28. package/esm2015/viewport/viewport.util.js +117 -0
  29. package/esm2020/config.mjs +7 -7
  30. package/esm2020/index.mjs +5 -5
  31. package/esm2020/internal/internal.model.mjs +2 -2
  32. package/esm2020/module.mjs +65 -65
  33. package/esm2020/platform/window.mjs +30 -30
  34. package/esm2020/ssv-ngx.ux.mjs +4 -4
  35. package/esm2020/version.mjs +2 -2
  36. package/esm2020/viewport/index.mjs +9 -9
  37. package/esm2020/viewport/viewport-data/index.mjs +4 -4
  38. package/esm2020/viewport/viewport-data/viewport-data-matcher.mjs +108 -108
  39. package/esm2020/viewport/viewport-data/viewport-data.pipe.mjs +43 -43
  40. package/esm2020/viewport/viewport-data/viewport-data.service.mjs +37 -37
  41. package/esm2020/viewport/viewport-data/viewport-data.utils.mjs +100 -100
  42. package/esm2020/viewport/viewport-matcher-var.directive.mjs +63 -63
  43. package/esm2020/viewport/viewport-matcher.directive.mjs +131 -131
  44. package/esm2020/viewport/viewport-server-size.service.mjs +43 -43
  45. package/esm2020/viewport/viewport.const.mjs +18 -18
  46. package/esm2020/viewport/viewport.model.mjs +31 -31
  47. package/esm2020/viewport/viewport.service.mjs +67 -66
  48. package/esm2020/viewport/viewport.util.mjs +117 -117
  49. package/fesm2015/ssv-ngx.ux.js +807 -0
  50. package/fesm2015/ssv-ngx.ux.js.map +1 -0
  51. package/fesm2015/ssv-ngx.ux.mjs +790 -789
  52. package/fesm2015/ssv-ngx.ux.mjs.map +1 -1
  53. package/fesm2020/ssv-ngx.ux.mjs +784 -783
  54. package/fesm2020/ssv-ngx.ux.mjs.map +1 -1
  55. package/index.d.ts +4 -4
  56. package/internal/internal.model.d.ts +9 -9
  57. package/module.d.ts +19 -19
  58. package/package.json +1 -1
  59. package/platform/window.d.ts +13 -13
  60. package/ssv-ngx.ux.d.ts +6 -0
  61. package/ssv-ngx.ux.metadata.json +1 -0
  62. package/version.d.ts +1 -1
  63. package/viewport/index.d.ts +8 -8
  64. package/viewport/viewport-data/index.d.ts +3 -3
  65. package/viewport/viewport-data/viewport-data-matcher.d.ts +32 -32
  66. package/viewport/viewport-data/viewport-data.pipe.d.ts +18 -18
  67. package/viewport/viewport-data/viewport-data.service.d.ts +20 -20
  68. package/viewport/viewport-data/viewport-data.utils.d.ts +21 -21
  69. package/viewport/viewport-matcher-var.directive.d.ts +25 -25
  70. package/viewport/viewport-matcher.directive.d.ts +33 -33
  71. package/viewport/viewport-server-size.service.d.ts +12 -12
  72. package/viewport/viewport.const.d.ts +5 -5
  73. package/viewport/viewport.model.d.ts +57 -57
  74. package/viewport/viewport.service.d.ts +37 -37
  75. package/viewport/viewport.util.d.ts +25 -25
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmlld3BvcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFtQyxnQkFBZ0IsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM1SSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi92aWV3cG9ydC1kYXRhL2luZGV4XCI7XG5cbmV4cG9ydCB7IFNzdlZpZXdwb3J0TWF0Y2hlclZhckRpcmVjdGl2ZSwgU3N2Vmlld3BvcnRNYXRjaGVyVmFyQ29udGV4dCB9IGZyb20gXCIuL3ZpZXdwb3J0LW1hdGNoZXItdmFyLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHsgU3N2Vmlld3BvcnRNYXRjaGVyRGlyZWN0aXZlLCBTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0IH0gZnJvbSBcIi4vdmlld3BvcnQtbWF0Y2hlci5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7IFVYX1ZJRVdQT1JUX1NTUl9ERVZJQ0UsIFZpZXdwb3J0U2VydmVyU2l6ZVNlcnZpY2UgfSBmcm9tIFwiLi92aWV3cG9ydC1zZXJ2ZXItc2l6ZS5zZXJ2aWNlXCI7XG5leHBvcnQgeyBDb21wYXJpc29uT3BlcmF0aW9uLCBEZXZpY2VUeXBlLCBVeFZpZXdwb3J0T3B0aW9ucywgVmlld3BvcnRTaXplLCBWaWV3cG9ydFNpemVUeXBlLCBWaWV3cG9ydFNpemVUeXBlSW5mbyB9IGZyb20gXCIuL3ZpZXdwb3J0Lm1vZGVsXCI7XG5leHBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tIFwiLi92aWV3cG9ydC5zZXJ2aWNlXCI7XG5leHBvcnQgeyBnZW5lcmF0ZVZpZXdwb3J0U2l6ZVR5cGUgfSBmcm9tIFwiLi92aWV3cG9ydC51dGlsXCI7XG5leHBvcnQgeyBVWF9WSUVXUE9SVF9ERUZBVUxUX0JSRUFLUE9JTlRTIH0gZnJvbSBcIi4vdmlld3BvcnQuY29uc3RcIjtcbiJdfQ==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmlld3BvcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFtQyxnQkFBZ0IsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM1SSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi92aWV3cG9ydC1kYXRhL2luZGV4XCI7XHJcblxyXG5leHBvcnQgeyBTc3ZWaWV3cG9ydE1hdGNoZXJWYXJEaXJlY3RpdmUsIFNzdlZpZXdwb3J0TWF0Y2hlclZhckNvbnRleHQgfSBmcm9tIFwiLi92aWV3cG9ydC1tYXRjaGVyLXZhci5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHsgU3N2Vmlld3BvcnRNYXRjaGVyRGlyZWN0aXZlLCBTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0IH0gZnJvbSBcIi4vdmlld3BvcnQtbWF0Y2hlci5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHsgVVhfVklFV1BPUlRfU1NSX0RFVklDRSwgVmlld3BvcnRTZXJ2ZXJTaXplU2VydmljZSB9IGZyb20gXCIuL3ZpZXdwb3J0LXNlcnZlci1zaXplLnNlcnZpY2VcIjtcclxuZXhwb3J0IHsgQ29tcGFyaXNvbk9wZXJhdGlvbiwgRGV2aWNlVHlwZSwgVXhWaWV3cG9ydE9wdGlvbnMsIFZpZXdwb3J0U2l6ZSwgVmlld3BvcnRTaXplVHlwZSwgVmlld3BvcnRTaXplVHlwZUluZm8gfSBmcm9tIFwiLi92aWV3cG9ydC5tb2RlbFwiO1xyXG5leHBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tIFwiLi92aWV3cG9ydC5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7IGdlbmVyYXRlVmlld3BvcnRTaXplVHlwZSB9IGZyb20gXCIuL3ZpZXdwb3J0LnV0aWxcIjtcclxuZXhwb3J0IHsgVVhfVklFV1BPUlRfREVGQVVMVF9CUkVBS1BPSU5UUyB9IGZyb20gXCIuL3ZpZXdwb3J0LmNvbnN0XCI7XHJcbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdmlld3BvcnQvdmlld3BvcnQtZGF0YS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQXNCLHlCQUF5QixFQUFvQyxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVmlld3BvcnREYXRhU2VydmljZSB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEuc2VydmljZVwiO1xuZXhwb3J0IHsgVmlld3BvcnREYXRhUGlwZSB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEucGlwZVwiO1xuZXhwb3J0IHsgVmlld3BvcnREYXRhQ29uZmlnLCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5TGl0ZXJhbCB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEtbWF0Y2hlclwiO1xuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdmlld3BvcnQvdmlld3BvcnQtZGF0YS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQXNCLHlCQUF5QixFQUFvQyxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVmlld3BvcnREYXRhU2VydmljZSB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEuc2VydmljZVwiO1xyXG5leHBvcnQgeyBWaWV3cG9ydERhdGFQaXBlIH0gZnJvbSBcIi4vdmlld3BvcnQtZGF0YS5waXBlXCI7XHJcbmV4cG9ydCB7IFZpZXdwb3J0RGF0YUNvbmZpZywgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSwgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneUxpdGVyYWwgfSBmcm9tIFwiLi92aWV3cG9ydC1kYXRhLW1hdGNoZXJcIjtcclxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS1tYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZpZXdwb3J0L3ZpZXdwb3J0LWRhdGEvdmlld3BvcnQtZGF0YS1tYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBTixJQUFZLHlCQWVYO0FBZkQsV0FBWSx5QkFBeUI7SUFDcEMseURBQXlEO0lBQ3pELDJFQUFLLENBQUE7SUFFTCwyRkFBMkY7SUFDM0YsK0VBQU8sQ0FBQTtJQUVQLHdGQUF3RjtJQUN4Riw2RUFBTSxDQUFBO0lBRU4sbUlBQW1JO0lBQ25JLHVHQUFtQixDQUFBO0lBRW5CLGtJQUFrSTtJQUNsSSxxR0FBa0IsQ0FBQTtBQUNuQixDQUFDLEVBZlcseUJBQXlCLEtBQXpCLHlCQUF5QixRQWVwQztBQVlEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDaEMsVUFBaUMsRUFDakMsUUFBOEIsRUFDOUIsUUFBbUMsRUFDbkMsU0FBaUMsRUFDakMsV0FBNkM7SUFFN0MsTUFBTSxPQUFPLEdBQUcsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNiLE1BQU0sS0FBSyxDQUFDLHlFQUF5RSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0tBQ2xHO0lBQ0QsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBTSxDQUFDO0lBQ3hFLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUN2QixPQUFPLElBQUksQ0FBQztLQUNaO0lBQ0QsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDO0FBQzNCLENBQUM7QUFHRCxNQUFNLHVCQUF1QixHQUFvQztJQUNoRSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxFQUFFLGNBQWM7SUFDakQsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFB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O0tBQ1o7SUFFRCxJQUFJLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQ3JDLElBQUksT0FBTyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFFbkMsNERBQTREO0lBQzVELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3RELEtBQUssTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUN2RixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxRQUFRLEVBQUU7Z0JBQ2IsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtvQkFDdkIsT0FBTyxJQUFJLENBQUM7aUJBQ1o7YUFDRDtTQUNEO0tBQ0Q7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gXCIuLi8uLi9pbnRlcm5hbC9pbnRlcm5hbC5tb2RlbFwiO1xuaW1wb3J0IHsgVmlld3BvcnRTaXplVHlwZUluZm8gfSBmcm9tIFwiLi4vdmlld3BvcnQubW9kZWxcIjtcblxuZXhwb3J0IHR5cGUgVmlld3BvcnREYXRhQ29uZmlnPFRWYWx1ZSA9IHVua25vd24sIFREYXRhID0gRGljdGlvbmFyeTxUVmFsdWU+PiA9IFREYXRhICYge1xuXHRkZWZhdWx0PzogVFZhbHVlXG59O1xuXG5leHBvcnQgZW51bSBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5IHtcblx0LyoqIEluZGljYXRlcyB0aGF0IHNpemUgc2hvdWxkIG1hdGNoIGV4YWN0IG9yIGRlZmF1bHQuICovXG5cdGV4YWN0LFxuXG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBzaXplIG1hdGNoZXMgd2hlbiBleGFjdCBtYXRjaCwgZmlyc3QgbWF0Y2ggc21hbGxlciAoZG93bikgb3IgZGVmYXVsdC4gKi9cblx0c21hbGxlcixcblxuXHQvKiogSW5kaWNhdGVzIHRoYXQgc2l6ZSBtYXRjaGVzIHdoZW4gZXhhY3QgbWF0Y2gsIGZpcnN0IG1hdGNoIGxhcmdlciAodXApIG9yIGRlZmF1bHQuICovXG5cdGxhcmdlcixcblxuXHQvKiogSW5kaWNhdGVzIHRoYXQgc2l6ZSBtYXRjaGVzIHdoZW4gZXhhY3QgbWF0Y2gsIG9yIGl0IHRyaWVzIGJvdGggc21hbGxlci9sYXJnZXIgKHNtYWxsZXIgaXMgcHJlZmVycmVkKSB1bnRpbCBtYXRjaCBvciBkZWZhdWx0LiAqL1xuXHRjbG9zZXN0U21hbGxlckZpcnN0LFxuXG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBzaXplIG1hdGNoZXMgd2hlbiBleGFjdCBtYXRjaCwgb3IgaXQgdHJpZXMgYm90aCBsYXJnZXIvc21hbGxlciAobGFyZ2VyIGlzIHByZWZlcnJlZCkgdW50aWwgbWF0Y2ggb3IgZGVmYXVsdC4gKi9cblx0Y2xvc2VzdExhcmdlckZpcnN0LFxufVxuZXhwb3J0IHR5cGUgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneUxpdGVyYWwgPSBrZXlvZiB0eXBlb2YgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneTtcblxuZXhwb3J0IGludGVyZmFjZSBWaWV3cG9ydERhdGFNYXRjaGVyPFQgPSB1bmtub3duPiB7XG5cdChcblx0XHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXG5cdFx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcblx0XHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXG5cdFx0c2l6ZVR5cGVNYXA6IERpY3Rpb25hcnk8Vmlld3BvcnRTaXplVHlwZUluZm8+LFxuXHQpOiBUIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gdG8gbWF0Y2ggZGF0YSBiYXNlZCBvbiBzdHJhdGVneSBhbmQgc2l6ZS5cbiAqXG4gKiBAcGFyYW0gZGF0YUNvbmZpZyBEYXRhIGNvbmZpZyB0byBnZW5lcmF0ZSBydWxlcyBiYXNlZCBvbi5cbiAqIEBwYXJhbSBzaXplVHlwZSBTaXplIHR5cGUgdG8gZ2V0IGRhdGEgZm9yLlxuICogQHBhcmFtIHN0cmF0ZWd5IFN0cmF0ZWd5IHRvIHVzZSB3aGVuIGJ1aWxkaW5nIHJ1bGVzLlxuICogQHBhcmFtIHNpemVUeXBlcyBBdmFpbGFibGUgc2l6ZSB0eXBlcyBvcmRlcmVkIGJ5IGluZGV4IHR5cGUuIChDYW4gYmUgb2J0YWluZWQgZnJvbSBgVmlld3BvcnRTZXJ2aWNlYClcbiAqIEBwYXJhbSBzaXplVHlwZU1hcCBBdmFpbGFibGUgc2l6ZSB0eXBlIG1hcC4gKENhbiBiZSBvYnRhaW5lZCBmcm9tIGBWaWV3cG9ydFNlcnZpY2VgKVxuICogQHJldHVybnMgUmV0dXJucyB0aGUgbWF0Y2hlZCBkYXRhIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hWaWV3cG9ydERhdGE8VD4oXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcblx0c2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxuXHRzdHJhdGVneTogVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSxcblx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxuXHRzaXplVHlwZU1hcDogRGljdGlvbmFyeTxWaWV3cG9ydFNpemVUeXBlSW5mbz4sXG4pOiBUIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgbWF0Y2hGbiA9IG1hdGNoU3RyYXRlZ3lIYW5kbGVyTWFwW3N0cmF0ZWd5XTtcblx0aWYgKCFtYXRjaEZuKSB7XG5cdFx0dGhyb3cgRXJyb3IoYG1hdGNoVmlld3BvcnREYXRhOiBWaWV3cG9ydCBEYXRhIHN0cmF0ZWd5IG5vdCBpbXBsZW1lbnRlZC4gU3RyYXRlZ3k6ICcke3N0cmF0ZWd5fSdgKTtcblx0fVxuXHRjb25zdCBkYXRhID0gbWF0Y2hGbihkYXRhQ29uZmlnLCBzaXplVHlwZSwgc2l6ZVR5cGVzLCBzaXplVHlwZU1hcCkgYXMgVDtcblx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBkYXRhO1xuXHR9XG5cdHJldHVybiBkYXRhQ29uZmlnLmRlZmF1bHQ7XG59XG5cblxuY29uc3QgbWF0Y2hTdHJhdGVneUhhbmRsZXJNYXA6IERpY3Rpb25hcnk8Vmlld3BvcnREYXRhTWF0Y2hlcj4gPSB7XG5cdFtWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LmV4YWN0XTogbWF0Y2hXaXRoRXhhY3QsXG5cdFtWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5Lmxhcmdlcl06IG1hdGNoV2l0aExhcmdlck1hdGNoLFxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5zbWFsbGVyXTogbWF0Y2hXaXRoU21hbGxlck1hdGNoLFxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5jbG9zZXN0U21hbGxlckZpcnN0XTogbWF0Y2hXaXRoQ2xvc2VzdFNtYWxsZXJGaXJzdE1hdGNoLFxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5jbG9zZXN0TGFyZ2VyRmlyc3RdOiBtYXRjaFdpdGhDbG9zZXN0TGFyZ2VyRmlyc3RNYXRjaCxcbn07XG5cbmZ1bmN0aW9uIG1hdGNoV2l0aEV4YWN0PFQ+KFxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXG5cdGN1cnJlbnRTaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXG4pOiBUIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGRhdGFDb25maWdbY3VycmVudFNpemVUeXBlLm5hbWVdO1xufVxuXG5mdW5jdGlvbiBtYXRjaFdpdGhMYXJnZXJNYXRjaDxUPihcblx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxuXHRjdXJyZW50U2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxuXHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXG4pOiBUIHwgdW5kZWZpbmVkIHtcblx0bGV0IGRhdGEgPSBkYXRhQ29uZmlnW2N1cnJlbnRTaXplVHlwZS5uYW1lXTtcblx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBkYXRhO1xuXHR9XG5cblx0Y29uc3QgbGFyZ2VzdFR5cGVJZHggPSBzaXplVHlwZXNbc2l6ZVR5cGVzLmxlbmd0aCAtIDFdLnR5cGU7XG5cdGlmIChjdXJyZW50U2l6ZVR5cGUudHlwZSA+PSBsYXJnZXN0VHlwZUlkeCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRmb3IgKGxldCBpbmRleCA9IGN1cnJlbnRTaXplVHlwZS50eXBlOyBpbmRleCA8IHNpemVUeXBlcy5sZW5ndGg7IGluZGV4KyspIHtcblx0XHRjb25zdCBzaXplVHlwZSA9IHNpemVUeXBlc1tpbmRleF07XG5cdFx0ZGF0YSA9IGRhdGFDb25maWdbc2l6ZVR5cGUubmFtZV07XG5cdFx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gbWF0Y2hXaXRoU21hbGxlck1hdGNoPFQ+KFxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXG5cdGN1cnJlbnRTaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXG5cdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcbik6IFQgfCB1bmRlZmluZWQge1xuXHRsZXQgZGF0YSA9IGRhdGFDb25maWdbY3VycmVudFNpemVUeXBlLm5hbWVdO1xuXHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGRhdGE7XG5cdH1cblxuXHRpZiAoY3VycmVudFNpemVUeXBlLnR5cGUgPD0gMCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9yLWRpcmVjdGlvblxuXHRmb3IgKGxldCBpbmRleCA9IGN1cnJlbnRTaXplVHlwZS50eXBlOyBpbmRleCA8IHNpemVUeXBlcy5sZW5ndGg7IGluZGV4LS0pIHtcblx0XHRjb25zdCBzaXplVHlwZSA9IHNpemVUeXBlc1tpbmRleF07XG5cdFx0ZGF0YSA9IGRhdGFDb25maWdbc2l6ZVR5cGUubmFtZV07XG5cdFx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gbWF0Y2hXaXRoQ2xvc2VzdFNtYWxsZXJGaXJzdE1hdGNoPFQ+KFxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXG5cdGN1cnJlbnRTaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXG5cdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcbik6IFQgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gY2xvc2VzdE1hdGNoKGRhdGFDb25maWcsIGN1cnJlbnRTaXplVHlwZSwgc2l6ZVR5cGVzLCB0cnVlKTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hXaXRoQ2xvc2VzdExhcmdlckZpcnN0TWF0Y2g8VD4oXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcblx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxuKTogVCB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBjbG9zZXN0TWF0Y2goZGF0YUNvbmZpZywgY3VycmVudFNpemVUeXBlLCBzaXplVHlwZXMsIGZhbHNlKTtcbn1cblxuZnVuY3Rpb24gY2xvc2VzdE1hdGNoPFQ+KFxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXG5cdGN1cnJlbnRTaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXG5cdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcblx0aXNTbWFsbGVyRmlyc3Q6IGJvb2xlYW5cbik6IFQgfCB1bmRlZmluZWQge1xuXHRsZXQgZGF0YSA9IGRhdGFDb25maWdbY3VycmVudFNpemVUeXBlLm5hbWVdO1xuXHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGRhdGE7XG5cdH1cblxuXHRsZXQgZG93bkluZGV4ID0gY3VycmVudFNpemVUeXBlLnR5cGU7XG5cdGxldCB1cEluZGV4ID0gY3VycmVudFNpemVUeXBlLnR5cGU7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZm9yLW9mXG5cdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzaXplVHlwZXMubGVuZ3RoOyBpbmRleCsrKSB7XG5cdFx0Zm9yIChjb25zdCBpZHggb2YgaXNTbWFsbGVyRmlyc3QgPyBbLS1kb3duSW5kZXgsICsrdXBJbmRleF0gOiBbKyt1cEluZGV4LCAtLWRvd25JbmRleF0pIHtcblx0XHRcdGNvbnN0IHNpemVUeXBlID0gc2l6ZVR5cGVzW2lkeF07XG5cdFx0XHRpZiAoc2l6ZVR5cGUpIHtcblx0XHRcdFx0ZGF0YSA9IGRhdGFDb25maWdbc2l6ZVR5cGUubmFtZV07XG5cdFx0XHRcdGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS1tYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZpZXdwb3J0L3ZpZXdwb3J0LWRhdGEvdmlld3BvcnQtZGF0YS1tYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBTixJQUFZLHlCQWVYO0FBZkQsV0FBWSx5QkFBeUI7SUFDcEMseURBQXlEO0lBQ3pELDJFQUFLLENBQUE7SUFFTCwyRkFBMkY7SUFDM0YsK0VBQU8sQ0FBQTtJQUVQLHdGQUF3RjtJQUN4Riw2RUFBTSxDQUFBO0lBRU4sbUlBQW1JO0lBQ25JLHVHQUFtQixDQUFBO0lBRW5CLGtJQUFrSTtJQUNsSSxxR0FBa0IsQ0FBQTtBQUNuQixDQUFDLEVBZlcseUJBQXlCLEtBQXpCLHlCQUF5QixRQWVwQztBQVlEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDaEMsVUFBaUMsRUFDakMsUUFBOEIsRUFDOUIsUUFBbUMsRUFDbkMsU0FBaUMsRUFDakMsV0FBNkM7SUFFN0MsTUFBTSxPQUFPLEdBQUcsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNiLE1BQU0sS0FBSyxDQUFDLHlFQUF5RSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0tBQ2xHO0lBQ0QsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBTSxDQUFDO0lBQ3hFLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUN2QixPQUFPLElBQUksQ0FBQztLQUNaO0lBQ0QsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDO0FBQzNCLENBQUM7QUFHRCxNQUFNLHVCQUF1QixHQUFvQztJQUNoRSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxFQUFFLGNBQWM7SUFDakQsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFB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O0tBQ1o7SUFFRCxJQUFJLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQ3JDLElBQUksT0FBTyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFFbkMsNERBQTREO0lBQzVELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3RELEtBQUssTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUN2RixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxRQUFRLEVBQUU7Z0JBQ2IsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtvQkFDdkIsT0FBTyxJQUFJLENBQUM7aUJBQ1o7YUFDRDtTQUNEO0tBQ0Q7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gXCIuLi8uLi9pbnRlcm5hbC9pbnRlcm5hbC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBWaWV3cG9ydFNpemVUeXBlSW5mbyB9IGZyb20gXCIuLi92aWV3cG9ydC5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IHR5cGUgVmlld3BvcnREYXRhQ29uZmlnPFRWYWx1ZSA9IHVua25vd24sIFREYXRhID0gRGljdGlvbmFyeTxUVmFsdWU+PiA9IFREYXRhICYge1xyXG5cdGRlZmF1bHQ/OiBUVmFsdWVcclxufTtcclxuXHJcbmV4cG9ydCBlbnVtIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kge1xyXG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBzaXplIHNob3VsZCBtYXRjaCBleGFjdCBvciBkZWZhdWx0LiAqL1xyXG5cdGV4YWN0LFxyXG5cclxuXHQvKiogSW5kaWNhdGVzIHRoYXQgc2l6ZSBtYXRjaGVzIHdoZW4gZXhhY3QgbWF0Y2gsIGZpcnN0IG1hdGNoIHNtYWxsZXIgKGRvd24pIG9yIGRlZmF1bHQuICovXHJcblx0c21hbGxlcixcclxuXHJcblx0LyoqIEluZGljYXRlcyB0aGF0IHNpemUgbWF0Y2hlcyB3aGVuIGV4YWN0IG1hdGNoLCBmaXJzdCBtYXRjaCBsYXJnZXIgKHVwKSBvciBkZWZhdWx0LiAqL1xyXG5cdGxhcmdlcixcclxuXHJcblx0LyoqIEluZGljYXRlcyB0aGF0IHNpemUgbWF0Y2hlcyB3aGVuIGV4YWN0IG1hdGNoLCBvciBpdCB0cmllcyBib3RoIHNtYWxsZXIvbGFyZ2VyIChzbWFsbGVyIGlzIHByZWZlcnJlZCkgdW50aWwgbWF0Y2ggb3IgZGVmYXVsdC4gKi9cclxuXHRjbG9zZXN0U21hbGxlckZpcnN0LFxyXG5cclxuXHQvKiogSW5kaWNhdGVzIHRoYXQgc2l6ZSBtYXRjaGVzIHdoZW4gZXhhY3QgbWF0Y2gsIG9yIGl0IHRyaWVzIGJvdGggbGFyZ2VyL3NtYWxsZXIgKGxhcmdlciBpcyBwcmVmZXJyZWQpIHVudGlsIG1hdGNoIG9yIGRlZmF1bHQuICovXHJcblx0Y2xvc2VzdExhcmdlckZpcnN0LFxyXG59XHJcbmV4cG9ydCB0eXBlIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3lMaXRlcmFsID0ga2V5b2YgdHlwZW9mIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3k7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdwb3J0RGF0YU1hdGNoZXI8VCA9IHVua25vd24+IHtcclxuXHQoXHJcblx0XHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXHJcblx0XHRjdXJyZW50U2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxyXG5cdFx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxyXG5cdFx0c2l6ZVR5cGVNYXA6IERpY3Rpb25hcnk8Vmlld3BvcnRTaXplVHlwZUluZm8+LFxyXG5cdCk6IFQgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIHRvIG1hdGNoIGRhdGEgYmFzZWQgb24gc3RyYXRlZ3kgYW5kIHNpemUuXHJcbiAqXHJcbiAqIEBwYXJhbSBkYXRhQ29uZmlnIERhdGEgY29uZmlnIHRvIGdlbmVyYXRlIHJ1bGVzIGJhc2VkIG9uLlxyXG4gKiBAcGFyYW0gc2l6ZVR5cGUgU2l6ZSB0eXBlIHRvIGdldCBkYXRhIGZvci5cclxuICogQHBhcmFtIHN0cmF0ZWd5IFN0cmF0ZWd5IHRvIHVzZSB3aGVuIGJ1aWxkaW5nIHJ1bGVzLlxyXG4gKiBAcGFyYW0gc2l6ZVR5cGVzIEF2YWlsYWJsZSBzaXplIHR5cGVzIG9yZGVyZWQgYnkgaW5kZXggdHlwZS4gKENhbiBiZSBvYnRhaW5lZCBmcm9tIGBWaWV3cG9ydFNlcnZpY2VgKVxyXG4gKiBAcGFyYW0gc2l6ZVR5cGVNYXAgQXZhaWxhYmxlIHNpemUgdHlwZSBtYXAuIChDYW4gYmUgb2J0YWluZWQgZnJvbSBgVmlld3BvcnRTZXJ2aWNlYClcclxuICogQHJldHVybnMgUmV0dXJucyB0aGUgbWF0Y2hlZCBkYXRhIHZhbHVlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoVmlld3BvcnREYXRhPFQ+KFxyXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcclxuXHRzaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXHJcblx0c3RyYXRlZ3k6IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3ksXHJcblx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxyXG5cdHNpemVUeXBlTWFwOiBEaWN0aW9uYXJ5PFZpZXdwb3J0U2l6ZVR5cGVJbmZvPixcclxuKTogVCB8IHVuZGVmaW5lZCB7XHJcblx0Y29uc3QgbWF0Y2hGbiA9IG1hdGNoU3RyYXRlZ3lIYW5kbGVyTWFwW3N0cmF0ZWd5XTtcclxuXHRpZiAoIW1hdGNoRm4pIHtcclxuXHRcdHRocm93IEVycm9yKGBtYXRjaFZpZXdwb3J0RGF0YTogVmlld3BvcnQgRGF0YSBzdHJhdGVneSBub3QgaW1wbGVtZW50ZWQuIFN0cmF0ZWd5OiAnJHtzdHJhdGVneX0nYCk7XHJcblx0fVxyXG5cdGNvbnN0IGRhdGEgPSBtYXRjaEZuKGRhdGFDb25maWcsIHNpemVUeXBlLCBzaXplVHlwZXMsIHNpemVUeXBlTWFwKSBhcyBUO1xyXG5cdGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdHJldHVybiBkYXRhO1xyXG5cdH1cclxuXHRyZXR1cm4gZGF0YUNvbmZpZy5kZWZhdWx0O1xyXG59XHJcblxyXG5cclxuY29uc3QgbWF0Y2hTdHJhdGVneUhhbmRsZXJNYXA6IERpY3Rpb25hcnk8Vmlld3BvcnREYXRhTWF0Y2hlcj4gPSB7XHJcblx0W1ZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kuZXhhY3RdOiBtYXRjaFdpdGhFeGFjdCxcclxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5sYXJnZXJdOiBtYXRjaFdpdGhMYXJnZXJNYXRjaCxcclxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5zbWFsbGVyXTogbWF0Y2hXaXRoU21hbGxlck1hdGNoLFxyXG5cdFtWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LmNsb3Nlc3RTbWFsbGVyRmlyc3RdOiBtYXRjaFdpdGhDbG9zZXN0U21hbGxlckZpcnN0TWF0Y2gsXHJcblx0W1ZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kuY2xvc2VzdExhcmdlckZpcnN0XTogbWF0Y2hXaXRoQ2xvc2VzdExhcmdlckZpcnN0TWF0Y2gsXHJcbn07XHJcblxyXG5mdW5jdGlvbiBtYXRjaFdpdGhFeGFjdDxUPihcclxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXHJcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcclxuKTogVCB8IHVuZGVmaW5lZCB7XHJcblx0cmV0dXJuIGRhdGFDb25maWdbY3VycmVudFNpemVUeXBlLm5hbWVdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXRjaFdpdGhMYXJnZXJNYXRjaDxUPihcclxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXHJcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcclxuXHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXHJcbik6IFQgfCB1bmRlZmluZWQge1xyXG5cdGxldCBkYXRhID0gZGF0YUNvbmZpZ1tjdXJyZW50U2l6ZVR5cGUubmFtZV07XHJcblx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0cmV0dXJuIGRhdGE7XHJcblx0fVxyXG5cclxuXHRjb25zdCBsYXJnZXN0VHlwZUlkeCA9IHNpemVUeXBlc1tzaXplVHlwZXMubGVuZ3RoIC0gMV0udHlwZTtcclxuXHRpZiAoY3VycmVudFNpemVUeXBlLnR5cGUgPj0gbGFyZ2VzdFR5cGVJZHgpIHtcclxuXHRcdHJldHVybiB1bmRlZmluZWQ7XHJcblx0fVxyXG5cclxuXHRmb3IgKGxldCBpbmRleCA9IGN1cnJlbnRTaXplVHlwZS50eXBlOyBpbmRleCA8IHNpemVUeXBlcy5sZW5ndGg7IGluZGV4KyspIHtcclxuXHRcdGNvbnN0IHNpemVUeXBlID0gc2l6ZVR5cGVzW2luZGV4XTtcclxuXHRcdGRhdGEgPSBkYXRhQ29uZmlnW3NpemVUeXBlLm5hbWVdO1xyXG5cdFx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gZGF0YTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hdGNoV2l0aFNtYWxsZXJNYXRjaDxUPihcclxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXHJcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcclxuXHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXHJcbik6IFQgfCB1bmRlZmluZWQge1xyXG5cdGxldCBkYXRhID0gZGF0YUNvbmZpZ1tjdXJyZW50U2l6ZVR5cGUubmFtZV07XHJcblx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0cmV0dXJuIGRhdGE7XHJcblx0fVxyXG5cclxuXHRpZiAoY3VycmVudFNpemVUeXBlLnR5cGUgPD0gMCkge1xyXG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmb3ItZGlyZWN0aW9uXHJcblx0Zm9yIChsZXQgaW5kZXggPSBjdXJyZW50U2l6ZVR5cGUudHlwZTsgaW5kZXggPCBzaXplVHlwZXMubGVuZ3RoOyBpbmRleC0tKSB7XHJcblx0XHRjb25zdCBzaXplVHlwZSA9IHNpemVUeXBlc1tpbmRleF07XHJcblx0XHRkYXRhID0gZGF0YUNvbmZpZ1tzaXplVHlwZS5uYW1lXTtcclxuXHRcdGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cmV0dXJuIGRhdGE7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gdW5kZWZpbmVkO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXRjaFdpdGhDbG9zZXN0U21hbGxlckZpcnN0TWF0Y2g8VD4oXHJcblx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxyXG5cdGN1cnJlbnRTaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXHJcblx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxyXG4pOiBUIHwgdW5kZWZpbmVkIHtcclxuXHRyZXR1cm4gY2xvc2VzdE1hdGNoKGRhdGFDb25maWcsIGN1cnJlbnRTaXplVHlwZSwgc2l6ZVR5cGVzLCB0cnVlKTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWF0Y2hXaXRoQ2xvc2VzdExhcmdlckZpcnN0TWF0Y2g8VD4oXHJcblx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxyXG5cdGN1cnJlbnRTaXplVHlwZTogVmlld3BvcnRTaXplVHlwZUluZm8sXHJcblx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxyXG4pOiBUIHwgdW5kZWZpbmVkIHtcclxuXHRyZXR1cm4gY2xvc2VzdE1hdGNoKGRhdGFDb25maWcsIGN1cnJlbnRTaXplVHlwZSwgc2l6ZVR5cGVzLCBmYWxzZSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNsb3Nlc3RNYXRjaDxUPihcclxuXHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXHJcblx0Y3VycmVudFNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyxcclxuXHRzaXplVHlwZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10sXHJcblx0aXNTbWFsbGVyRmlyc3Q6IGJvb2xlYW5cclxuKTogVCB8IHVuZGVmaW5lZCB7XHJcblx0bGV0IGRhdGEgPSBkYXRhQ29uZmlnW2N1cnJlbnRTaXplVHlwZS5uYW1lXTtcclxuXHRpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRyZXR1cm4gZGF0YTtcclxuXHR9XHJcblxyXG5cdGxldCBkb3duSW5kZXggPSBjdXJyZW50U2l6ZVR5cGUudHlwZTtcclxuXHRsZXQgdXBJbmRleCA9IGN1cnJlbnRTaXplVHlwZS50eXBlO1xyXG5cclxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mb3Itb2ZcclxuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZVR5cGVzLmxlbmd0aDsgaW5kZXgrKykge1xyXG5cdFx0Zm9yIChjb25zdCBpZHggb2YgaXNTbWFsbGVyRmlyc3QgPyBbLS1kb3duSW5kZXgsICsrdXBJbmRleF0gOiBbKyt1cEluZGV4LCAtLWRvd25JbmRleF0pIHtcclxuXHRcdFx0Y29uc3Qgc2l6ZVR5cGUgPSBzaXplVHlwZXNbaWR4XTtcclxuXHRcdFx0aWYgKHNpemVUeXBlKSB7XHJcblx0XHRcdFx0ZGF0YSA9IGRhdGFDb25maWdbc2l6ZVR5cGUubmFtZV07XHJcblx0XHRcdFx0aWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gdW5kZWZpbmVkO1xyXG59XHJcbiJdfQ==
@@ -1,43 +1,43 @@
1
- import { Subscription } from "rxjs";
2
- import { tap } from "rxjs/operators";
3
- import { Pipe } from "@angular/core";
4
- import { ViewportDataMatchStrategy } from "./viewport-data-matcher";
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./viewport-data.service";
7
- /* eslint-disable @angular-eslint/no-pipe-impure */
8
- export class ViewportDataPipe {
9
- constructor(viewportData, cdr) {
10
- this.viewportData = viewportData;
11
- this.cdr = cdr;
12
- this.markForTransform = true;
13
- this.data$$ = Subscription.EMPTY;
14
- }
15
- transform(data, strategy) {
16
- if (!this.markForTransform && data === this.data && strategy === this.strategy) {
17
- return this.value;
18
- }
19
- this.data = data;
20
- this.strategy = strategy;
21
- this.data$$.unsubscribe();
22
- this.data$$ = this.viewportData.get$(data, ViewportDataMatchStrategy[strategy]).pipe(tap(value => {
23
- this.markForTransform = true;
24
- this.value = value;
25
- this.cdr.markForCheck();
26
- })).subscribe();
27
- this.markForTransform = false;
28
- return this.value;
29
- }
30
- ngOnDestroy() {
31
- this.data$$.unsubscribe();
32
- }
33
- }
34
- ViewportDataPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataPipe, deps: [{ token: i1.ViewportDataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
35
- ViewportDataPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataPipe, name: "ssvViewportData", pure: false });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataPipe, decorators: [{
37
- type: Pipe,
38
- args: [{
39
- name: "ssvViewportData",
40
- pure: false
41
- }]
42
- }], ctorParameters: function () { return [{ type: i1.ViewportDataService }, { type: i0.ChangeDetectorRef }]; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZpZXdwb3J0L3ZpZXdwb3J0LWRhdGEvdmlld3BvcnQtZGF0YS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxJQUFJLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBc0IseUJBQXlCLEVBQW9DLE1BQU0seUJBQXlCLENBQUM7OztBQUcxSCxtREFBbUQ7QUFLbkQsTUFBTSxPQUFPLGdCQUFnQjtJQVE1QixZQUNTLFlBQWlDLEVBQ2pDLEdBQXNCO1FBRHRCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVJ2QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFJeEIsV0FBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFNcEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF3QixFQUFFLFFBQTBDO1FBQzdFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDL0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkYsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUNGLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFZCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7NkdBcENXLGdCQUFnQjsyR0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0wsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLEtBQUs7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgVmlld3BvcnREYXRhQ29uZmlnLCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5TGl0ZXJhbCB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEtbWF0Y2hlclwiO1xuaW1wb3J0IHsgVmlld3BvcnREYXRhU2VydmljZSB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEuc2VydmljZVwiO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tcGlwZS1pbXB1cmUgKi9cbkBQaXBlKHtcblx0bmFtZTogXCJzc3ZWaWV3cG9ydERhdGFcIixcblx0cHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVmlld3BvcnREYXRhUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG5cblx0cHJpdmF0ZSBtYXJrRm9yVHJhbnNmb3JtID0gdHJ1ZTtcblx0cHJpdmF0ZSB2YWx1ZTogdW5rbm93bjtcblx0cHJpdmF0ZSBkYXRhOiBWaWV3cG9ydERhdGFDb25maWcgfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgc3RyYXRlZ3k6IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3lMaXRlcmFsIHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIGRhdGEkJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHZpZXdwb3J0RGF0YTogVmlld3BvcnREYXRhU2VydmljZSxcblx0XHRwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcblx0KSB7XG5cdH1cblxuXHR0cmFuc2Zvcm0oZGF0YTogVmlld3BvcnREYXRhQ29uZmlnLCBzdHJhdGVneTogVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneUxpdGVyYWwpOiB1bmtub3duIHtcblx0XHRpZiAoIXRoaXMubWFya0ZvclRyYW5zZm9ybSAmJiBkYXRhID09PSB0aGlzLmRhdGEgJiYgc3RyYXRlZ3kgPT09IHRoaXMuc3RyYXRlZ3kpIHtcblx0XHRcdHJldHVybiB0aGlzLnZhbHVlO1xuXHRcdH1cblx0XHR0aGlzLmRhdGEgPSBkYXRhO1xuXHRcdHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneTtcblxuXHRcdHRoaXMuZGF0YSQkLnVuc3Vic2NyaWJlKCk7XG5cdFx0dGhpcy5kYXRhJCQgPSB0aGlzLnZpZXdwb3J0RGF0YS5nZXQkKGRhdGEsIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3lbc3RyYXRlZ3ldKS5waXBlKFxuXHRcdFx0dGFwKHZhbHVlID0+IHtcblx0XHRcdFx0dGhpcy5tYXJrRm9yVHJhbnNmb3JtID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy52YWx1ZSA9IHZhbHVlO1xuXHRcdFx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0XHRcdH0pLFxuXHRcdCkuc3Vic2NyaWJlKCk7XG5cblx0XHR0aGlzLm1hcmtGb3JUcmFuc2Zvcm0gPSBmYWxzZTtcblx0XHRyZXR1cm4gdGhpcy52YWx1ZTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuZGF0YSQkLnVuc3Vic2NyaWJlKCk7XG5cdH1cblxufVxuIl19
1
+ import { Subscription } from "rxjs";
2
+ import { tap } from "rxjs/operators";
3
+ import { Pipe } from "@angular/core";
4
+ import { ViewportDataMatchStrategy } from "./viewport-data-matcher";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./viewport-data.service";
7
+ /* eslint-disable @angular-eslint/no-pipe-impure */
8
+ export class ViewportDataPipe {
9
+ constructor(viewportData, cdr) {
10
+ this.viewportData = viewportData;
11
+ this.cdr = cdr;
12
+ this.markForTransform = true;
13
+ this.data$$ = Subscription.EMPTY;
14
+ }
15
+ transform(data, strategy) {
16
+ if (!this.markForTransform && data === this.data && strategy === this.strategy) {
17
+ return this.value;
18
+ }
19
+ this.data = data;
20
+ this.strategy = strategy;
21
+ this.data$$.unsubscribe();
22
+ this.data$$ = this.viewportData.get$(data, ViewportDataMatchStrategy[strategy]).pipe(tap(value => {
23
+ this.markForTransform = true;
24
+ this.value = value;
25
+ this.cdr.markForCheck();
26
+ })).subscribe();
27
+ this.markForTransform = false;
28
+ return this.value;
29
+ }
30
+ ngOnDestroy() {
31
+ this.data$$.unsubscribe();
32
+ }
33
+ }
34
+ ViewportDataPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataPipe, deps: [{ token: i1.ViewportDataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
35
+ ViewportDataPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataPipe, name: "ssvViewportData", pure: false });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataPipe, decorators: [{
37
+ type: Pipe,
38
+ args: [{
39
+ name: "ssvViewportData",
40
+ pure: false
41
+ }]
42
+ }], ctorParameters: function () { return [{ type: i1.ViewportDataService }, { type: i0.ChangeDetectorRef }]; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZpZXdwb3J0L3ZpZXdwb3J0LWRhdGEvdmlld3BvcnQtZGF0YS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxJQUFJLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBc0IseUJBQXlCLEVBQW9DLE1BQU0seUJBQXlCLENBQUM7OztBQUcxSCxtREFBbUQ7QUFLbkQsTUFBTSxPQUFPLGdCQUFnQjtJQVE1QixZQUNTLFlBQWlDLEVBQ2pDLEdBQXNCO1FBRHRCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVJ2QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFJeEIsV0FBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFNcEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF3QixFQUFFLFFBQTBDO1FBQzdFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDL0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkYsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUNGLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFZCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7NkdBcENXLGdCQUFnQjsyR0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0wsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLEtBQUs7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBWaWV3cG9ydERhdGFDb25maWcsIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3ksIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3lMaXRlcmFsIH0gZnJvbSBcIi4vdmlld3BvcnQtZGF0YS1tYXRjaGVyXCI7XHJcbmltcG9ydCB7IFZpZXdwb3J0RGF0YVNlcnZpY2UgfSBmcm9tIFwiLi92aWV3cG9ydC1kYXRhLnNlcnZpY2VcIjtcclxuXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1waXBlLWltcHVyZSAqL1xyXG5AUGlwZSh7XHJcblx0bmFtZTogXCJzc3ZWaWV3cG9ydERhdGFcIixcclxuXHRwdXJlOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld3BvcnREYXRhUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XHJcblxyXG5cdHByaXZhdGUgbWFya0ZvclRyYW5zZm9ybSA9IHRydWU7XHJcblx0cHJpdmF0ZSB2YWx1ZTogdW5rbm93bjtcclxuXHRwcml2YXRlIGRhdGE6IFZpZXdwb3J0RGF0YUNvbmZpZyB8IHVuZGVmaW5lZDtcclxuXHRwcml2YXRlIHN0cmF0ZWd5OiBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5TGl0ZXJhbCB8IHVuZGVmaW5lZDtcclxuXHRwcml2YXRlIGRhdGEkJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHZpZXdwb3J0RGF0YTogVmlld3BvcnREYXRhU2VydmljZSxcclxuXHRcdHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG5cdCkge1xyXG5cdH1cclxuXHJcblx0dHJhbnNmb3JtKGRhdGE6IFZpZXdwb3J0RGF0YUNvbmZpZywgc3RyYXRlZ3k6IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3lMaXRlcmFsKTogdW5rbm93biB7XHJcblx0XHRpZiAoIXRoaXMubWFya0ZvclRyYW5zZm9ybSAmJiBkYXRhID09PSB0aGlzLmRhdGEgJiYgc3RyYXRlZ3kgPT09IHRoaXMuc3RyYXRlZ3kpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMudmFsdWU7XHJcblx0XHR9XHJcblx0XHR0aGlzLmRhdGEgPSBkYXRhO1xyXG5cdFx0dGhpcy5zdHJhdGVneSA9IHN0cmF0ZWd5O1xyXG5cclxuXHRcdHRoaXMuZGF0YSQkLnVuc3Vic2NyaWJlKCk7XHJcblx0XHR0aGlzLmRhdGEkJCA9IHRoaXMudmlld3BvcnREYXRhLmdldCQoZGF0YSwgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneVtzdHJhdGVneV0pLnBpcGUoXHJcblx0XHRcdHRhcCh2YWx1ZSA9PiB7XHJcblx0XHRcdFx0dGhpcy5tYXJrRm9yVHJhbnNmb3JtID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLnZhbHVlID0gdmFsdWU7XHJcblx0XHRcdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KS5zdWJzY3JpYmUoKTtcclxuXHJcblx0XHR0aGlzLm1hcmtGb3JUcmFuc2Zvcm0gPSBmYWxzZTtcclxuXHRcdHJldHVybiB0aGlzLnZhbHVlO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblx0XHR0aGlzLmRhdGEkJC51bnN1YnNjcmliZSgpO1xyXG5cdH1cclxuXHJcbn1cclxuIl19
@@ -1,37 +1,37 @@
1
- import { Inject, Injectable } from "@angular/core";
2
- import { distinctUntilChanged, map } from "rxjs/operators";
3
- import { UX_CONFIG } from "../../config";
4
- import { matchViewportData } from "./viewport-data-matcher";
5
- import { generateViewportRulesRangeFromDataMatcher } from "./viewport-data.utils";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../viewport.service";
8
- export class ViewportDataService {
9
- constructor(viewport, config) {
10
- this.viewport = viewport;
11
- this.config = config;
12
- }
13
- /** Get data for match. */
14
- get(dataConfig, strategy = this.config.viewport.defaultDataMatchStrategy, sizeType = this.viewport.sizeTypeSnapshot) {
15
- return matchViewportData(dataConfig, sizeType, strategy, this.viewport.sizeTypes, this.viewport.sizeTypeMap);
16
- }
17
- /** Get data for match as observable. */
18
- get$(dataConfig, strategy, throttle = true) {
19
- return (throttle ? this.viewport.sizeType$ : this.viewport.sizeTypeSnap$).pipe(map(sizeType => this.get(dataConfig, strategy, sizeType)), distinctUntilChanged());
20
- }
21
- /** Generate rules based on strategies for data. */
22
- generateRules(dataConfig, strategy = this.config.viewport.defaultDataMatchStrategy) {
23
- return generateViewportRulesRangeFromDataMatcher(dataConfig, strategy, this.viewport.sizeTypes, this.viewport.sizeTypeMap);
24
- }
25
- }
26
- ViewportDataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataService, deps: [{ token: i1.ViewportService }, { token: UX_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
27
- ViewportDataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataService, providedIn: "root" });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataService, decorators: [{
29
- type: Injectable,
30
- args: [{
31
- providedIn: "root",
32
- }]
33
- }], ctorParameters: function () { return [{ type: i1.ViewportService }, { type: undefined, decorators: [{
34
- type: Inject,
35
- args: [UX_CONFIG]
36
- }] }]; } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZpZXdwb3J0L3ZpZXdwb3J0LWRhdGEvdmlld3BvcnQtZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBSXBELE9BQU8sRUFBRSxpQkFBaUIsRUFBaUQsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUseUNBQXlDLEVBQW9CLE1BQU0sdUJBQXVCLENBQUM7OztBQUtwRyxNQUFNLE9BQU8sbUJBQW1CO0lBRS9CLFlBQ1MsUUFBeUIsRUFDTixNQUFpQjtRQURwQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUNOLFdBQU0sR0FBTixNQUFNLENBQVc7SUFFN0MsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixHQUFHLENBQ0YsVUFBaUMsRUFDakMsV0FBc0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQ25GLFdBQWlDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO1FBRS9ELE9BQU8saUJBQWlCLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLElBQUksQ0FBSSxVQUFpQyxFQUFFLFFBQW9DLEVBQUUsUUFBUSxHQUFHLElBQUk7UUFDL0YsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUM3RSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFDNUQsb0JBQW9CLEVBQUUsQ0FDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsYUFBYSxDQUNaLFVBQWlDLEVBQ2pDLFdBQXNDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHdCQUF3QjtRQUVuRixPQUFPLHlDQUF5QyxDQUMvQyxVQUFVLEVBQ1YsUUFBUSxFQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDekIsQ0FBQztJQUNILENBQUM7O2dIQXBDVyxtQkFBbUIsaURBSXRCLFNBQVM7b0hBSk4sbUJBQW1CLGNBRm5CLE1BQU07MkZBRU4sbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQjs7MEJBS0UsTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgVVhfQ09ORklHLCBVeE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XG5cbmltcG9ydCB7IFZpZXdwb3J0U2l6ZVR5cGVJbmZvIH0gZnJvbSBcIi4uL3ZpZXdwb3J0Lm1vZGVsXCI7XG5pbXBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tIFwiLi4vdmlld3BvcnQuc2VydmljZVwiO1xuaW1wb3J0IHsgbWF0Y2hWaWV3cG9ydERhdGEsIFZpZXdwb3J0RGF0YUNvbmZpZywgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEtbWF0Y2hlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVWaWV3cG9ydFJ1bGVzUmFuZ2VGcm9tRGF0YU1hdGNoZXIsIFZpZXdwb3J0RGF0YVJ1bGUgfSBmcm9tIFwiLi92aWV3cG9ydC1kYXRhLnV0aWxzXCI7XG5cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdwb3J0RGF0YVNlcnZpY2Uge1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgdmlld3BvcnQ6IFZpZXdwb3J0U2VydmljZSxcblx0XHRASW5qZWN0KFVYX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFV4T3B0aW9ucyxcblx0KSB7XG5cdH1cblxuXHQvKiogR2V0IGRhdGEgZm9yIG1hdGNoLiAqL1xuXHRnZXQ8VD4oXG5cdFx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxuXHRcdHN0cmF0ZWd5OiBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5ID0gdGhpcy5jb25maWcudmlld3BvcnQuZGVmYXVsdERhdGFNYXRjaFN0cmF0ZWd5LFxuXHRcdHNpemVUeXBlOiBWaWV3cG9ydFNpemVUeXBlSW5mbyA9IHRoaXMudmlld3BvcnQuc2l6ZVR5cGVTbmFwc2hvdFxuXHQpOiBUIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gbWF0Y2hWaWV3cG9ydERhdGEoZGF0YUNvbmZpZywgc2l6ZVR5cGUsIHN0cmF0ZWd5LCB0aGlzLnZpZXdwb3J0LnNpemVUeXBlcywgdGhpcy52aWV3cG9ydC5zaXplVHlwZU1hcCk7XG5cdH1cblxuXHQvKiogR2V0IGRhdGEgZm9yIG1hdGNoIGFzIG9ic2VydmFibGUuICovXG5cdGdldCQ8VD4oZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LCBzdHJhdGVneT86IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3ksIHRocm90dGxlID0gdHJ1ZSk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuXHRcdHJldHVybiAodGhyb3R0bGUgPyB0aGlzLnZpZXdwb3J0LnNpemVUeXBlJCA6IHRoaXMudmlld3BvcnQuc2l6ZVR5cGVTbmFwJCkucGlwZShcblx0XHRcdG1hcChzaXplVHlwZSA9PiB0aGlzLmdldDxUPihkYXRhQ29uZmlnLCBzdHJhdGVneSwgc2l6ZVR5cGUpKSxcblx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG5cdFx0KTtcblx0fVxuXG5cdC8qKiBHZW5lcmF0ZSBydWxlcyBiYXNlZCBvbiBzdHJhdGVnaWVzIGZvciBkYXRhLiAqL1xuXHRnZW5lcmF0ZVJ1bGVzPFQ+KFxuXHRcdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcblx0XHRzdHJhdGVneTogVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSA9IHRoaXMuY29uZmlnLnZpZXdwb3J0LmRlZmF1bHREYXRhTWF0Y2hTdHJhdGVneSxcblx0KTogVmlld3BvcnREYXRhUnVsZTxUPltdIHtcblx0XHRyZXR1cm4gZ2VuZXJhdGVWaWV3cG9ydFJ1bGVzUmFuZ2VGcm9tRGF0YU1hdGNoZXIoXG5cdFx0XHRkYXRhQ29uZmlnLFxuXHRcdFx0c3RyYXRlZ3ksXG5cdFx0XHR0aGlzLnZpZXdwb3J0LnNpemVUeXBlcyxcblx0XHRcdHRoaXMudmlld3BvcnQuc2l6ZVR5cGVNYXBcblx0XHQpO1xuXHR9XG5cbn1cbiJdfQ==
1
+ import { Inject, Injectable } from "@angular/core";
2
+ import { distinctUntilChanged, map } from "rxjs/operators";
3
+ import { UX_CONFIG } from "../../config";
4
+ import { matchViewportData } from "./viewport-data-matcher";
5
+ import { generateViewportRulesRangeFromDataMatcher } from "./viewport-data.utils";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../viewport.service";
8
+ export class ViewportDataService {
9
+ constructor(viewport, config) {
10
+ this.viewport = viewport;
11
+ this.config = config;
12
+ }
13
+ /** Get data for match. */
14
+ get(dataConfig, strategy = this.config.viewport.defaultDataMatchStrategy, sizeType = this.viewport.sizeTypeSnapshot) {
15
+ return matchViewportData(dataConfig, sizeType, strategy, this.viewport.sizeTypes, this.viewport.sizeTypeMap);
16
+ }
17
+ /** Get data for match as observable. */
18
+ get$(dataConfig, strategy, throttle = true) {
19
+ return (throttle ? this.viewport.sizeType$ : this.viewport.sizeTypeSnap$).pipe(map(sizeType => this.get(dataConfig, strategy, sizeType)), distinctUntilChanged());
20
+ }
21
+ /** Generate rules based on strategies for data. */
22
+ generateRules(dataConfig, strategy = this.config.viewport.defaultDataMatchStrategy) {
23
+ return generateViewportRulesRangeFromDataMatcher(dataConfig, strategy, this.viewport.sizeTypes, this.viewport.sizeTypeMap);
24
+ }
25
+ }
26
+ ViewportDataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataService, deps: [{ token: i1.ViewportService }, { token: UX_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ ViewportDataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataService, providedIn: "root" });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportDataService, decorators: [{
29
+ type: Injectable,
30
+ args: [{
31
+ providedIn: "root",
32
+ }]
33
+ }], ctorParameters: function () { return [{ type: i1.ViewportService }, { type: undefined, decorators: [{
34
+ type: Inject,
35
+ args: [UX_CONFIG]
36
+ }] }]; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZpZXdwb3J0L3ZpZXdwb3J0LWRhdGEvdmlld3BvcnQtZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBSXBELE9BQU8sRUFBRSxpQkFBaUIsRUFBaUQsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUseUNBQXlDLEVBQW9CLE1BQU0sdUJBQXVCLENBQUM7OztBQUtwRyxNQUFNLE9BQU8sbUJBQW1CO0lBRS9CLFlBQ1MsUUFBeUIsRUFDTixNQUFpQjtRQURwQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUNOLFdBQU0sR0FBTixNQUFNLENBQVc7SUFFN0MsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixHQUFHLENBQ0YsVUFBaUMsRUFDakMsV0FBc0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQ25GLFdBQWlDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO1FBRS9ELE9BQU8saUJBQWlCLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLElBQUksQ0FBSSxVQUFpQyxFQUFFLFFBQW9DLEVBQUUsUUFBUSxHQUFHLElBQUk7UUFDL0YsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUM3RSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFDNUQsb0JBQW9CLEVBQUUsQ0FDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsYUFBYSxDQUNaLFVBQWlDLEVBQ2pDLFdBQXNDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHdCQUF3QjtRQUVuRixPQUFPLHlDQUF5QyxDQUMvQyxVQUFVLEVBQ1YsUUFBUSxFQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDekIsQ0FBQztJQUNILENBQUM7O2dIQXBDVyxtQkFBbUIsaURBSXRCLFNBQVM7b0hBSk4sbUJBQW1CLGNBRm5CLE1BQU07MkZBRU4sbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQjs7MEJBS0UsTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVVhfQ09ORklHLCBVeE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcblxyXG5pbXBvcnQgeyBWaWV3cG9ydFNpemVUeXBlSW5mbyB9IGZyb20gXCIuLi92aWV3cG9ydC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tIFwiLi4vdmlld3BvcnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBtYXRjaFZpZXdwb3J0RGF0YSwgVmlld3BvcnREYXRhQ29uZmlnLCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5IH0gZnJvbSBcIi4vdmlld3BvcnQtZGF0YS1tYXRjaGVyXCI7XHJcbmltcG9ydCB7IGdlbmVyYXRlVmlld3BvcnRSdWxlc1JhbmdlRnJvbURhdGFNYXRjaGVyLCBWaWV3cG9ydERhdGFSdWxlIH0gZnJvbSBcIi4vdmlld3BvcnQtZGF0YS51dGlsc1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld3BvcnREYXRhU2VydmljZSB7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSB2aWV3cG9ydDogVmlld3BvcnRTZXJ2aWNlLFxyXG5cdFx0QEluamVjdChVWF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBVeE9wdGlvbnMsXHJcblx0KSB7XHJcblx0fVxyXG5cclxuXHQvKiogR2V0IGRhdGEgZm9yIG1hdGNoLiAqL1xyXG5cdGdldDxUPihcclxuXHRcdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcclxuXHRcdHN0cmF0ZWd5OiBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5ID0gdGhpcy5jb25maWcudmlld3BvcnQuZGVmYXVsdERhdGFNYXRjaFN0cmF0ZWd5LFxyXG5cdFx0c2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvID0gdGhpcy52aWV3cG9ydC5zaXplVHlwZVNuYXBzaG90XHJcblx0KTogVCB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gbWF0Y2hWaWV3cG9ydERhdGEoZGF0YUNvbmZpZywgc2l6ZVR5cGUsIHN0cmF0ZWd5LCB0aGlzLnZpZXdwb3J0LnNpemVUeXBlcywgdGhpcy52aWV3cG9ydC5zaXplVHlwZU1hcCk7XHJcblx0fVxyXG5cclxuXHQvKiogR2V0IGRhdGEgZm9yIG1hdGNoIGFzIG9ic2VydmFibGUuICovXHJcblx0Z2V0JDxUPihkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sIHN0cmF0ZWd5PzogVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSwgdGhyb3R0bGUgPSB0cnVlKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XHJcblx0XHRyZXR1cm4gKHRocm90dGxlID8gdGhpcy52aWV3cG9ydC5zaXplVHlwZSQgOiB0aGlzLnZpZXdwb3J0LnNpemVUeXBlU25hcCQpLnBpcGUoXHJcblx0XHRcdG1hcChzaXplVHlwZSA9PiB0aGlzLmdldDxUPihkYXRhQ29uZmlnLCBzdHJhdGVneSwgc2l6ZVR5cGUpKSxcclxuXHRcdFx0ZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogR2VuZXJhdGUgcnVsZXMgYmFzZWQgb24gc3RyYXRlZ2llcyBmb3IgZGF0YS4gKi9cclxuXHRnZW5lcmF0ZVJ1bGVzPFQ+KFxyXG5cdFx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxyXG5cdFx0c3RyYXRlZ3k6IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kgPSB0aGlzLmNvbmZpZy52aWV3cG9ydC5kZWZhdWx0RGF0YU1hdGNoU3RyYXRlZ3ksXHJcblx0KTogVmlld3BvcnREYXRhUnVsZTxUPltdIHtcclxuXHRcdHJldHVybiBnZW5lcmF0ZVZpZXdwb3J0UnVsZXNSYW5nZUZyb21EYXRhTWF0Y2hlcihcclxuXHRcdFx0ZGF0YUNvbmZpZyxcclxuXHRcdFx0c3RyYXRlZ3ksXHJcblx0XHRcdHRoaXMudmlld3BvcnQuc2l6ZVR5cGVzLFxyXG5cdFx0XHR0aGlzLnZpZXdwb3J0LnNpemVUeXBlTWFwXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcbn1cclxuIl19