@ssv/ngx.ux 2.0.1-dev198 → 2.0.2-dev.7

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 (63) hide show
  1. package/README.md +2 -2
  2. package/esm2020/config.mjs +7 -0
  3. package/esm2020/index.mjs +5 -0
  4. package/esm2020/internal/internal.model.mjs +2 -0
  5. package/esm2020/module.mjs +65 -0
  6. package/esm2020/platform/window.mjs +30 -0
  7. package/esm2020/ssv-ngx.ux.mjs +5 -0
  8. package/esm2020/version.mjs +2 -0
  9. package/esm2020/viewport/index.mjs +9 -0
  10. package/esm2020/viewport/viewport-data/index.mjs +4 -0
  11. package/esm2020/viewport/viewport-data/viewport-data-matcher.mjs +108 -0
  12. package/esm2020/viewport/viewport-data/viewport-data.pipe.mjs +43 -0
  13. package/esm2020/viewport/viewport-data/viewport-data.service.mjs +37 -0
  14. package/esm2020/viewport/viewport-data/viewport-data.utils.mjs +100 -0
  15. package/esm2020/viewport/viewport-matcher-var.directive.mjs +63 -0
  16. package/esm2020/viewport/viewport-matcher.directive.mjs +131 -0
  17. package/esm2020/viewport/viewport-server-size.service.mjs +43 -0
  18. package/esm2020/viewport/viewport.const.mjs +18 -0
  19. package/esm2020/viewport/viewport.model.mjs +31 -0
  20. package/esm2020/viewport/viewport.service.mjs +66 -0
  21. package/esm2020/viewport/viewport.util.mjs +117 -0
  22. package/fesm2015/{ssv-ngx.ux.js → ssv-ngx.ux.mjs} +254 -233
  23. package/fesm2015/ssv-ngx.ux.mjs.map +1 -0
  24. package/fesm2020/ssv-ngx.ux.mjs +822 -0
  25. package/fesm2020/ssv-ngx.ux.mjs.map +1 -0
  26. package/module.d.ts +7 -0
  27. package/package.json +21 -9
  28. package/platform/window.d.ts +3 -0
  29. package/version.d.ts +1 -1
  30. package/viewport/viewport-data/viewport-data.pipe.d.ts +3 -0
  31. package/viewport/viewport-data/viewport-data.service.d.ts +3 -0
  32. package/viewport/viewport-matcher-var.directive.d.ts +3 -0
  33. package/viewport/viewport-matcher.directive.d.ts +3 -0
  34. package/viewport/viewport-server-size.service.d.ts +3 -0
  35. package/viewport/viewport.service.d.ts +3 -0
  36. package/CHANGELOG.md +0 -142
  37. package/bundles/ssv-ngx.ux.umd.js +0 -1219
  38. package/bundles/ssv-ngx.ux.umd.js.map +0 -1
  39. package/bundles/ssv-ngx.ux.umd.min.js +0 -16
  40. package/bundles/ssv-ngx.ux.umd.min.js.map +0 -1
  41. package/esm2015/config.js +0 -7
  42. package/esm2015/index.js +0 -5
  43. package/esm2015/internal/internal.model.js +0 -2
  44. package/esm2015/module.js +0 -50
  45. package/esm2015/platform/window.js +0 -28
  46. package/esm2015/ssv-ngx.ux.js +0 -7
  47. package/esm2015/version.js +0 -2
  48. package/esm2015/viewport/index.js +0 -9
  49. package/esm2015/viewport/viewport-data/index.js +0 -4
  50. package/esm2015/viewport/viewport-data/viewport-data-matcher.js +0 -108
  51. package/esm2015/viewport/viewport-data/viewport-data.pipe.js +0 -43
  52. package/esm2015/viewport/viewport-data/viewport-data.service.js +0 -38
  53. package/esm2015/viewport/viewport-data/viewport-data.utils.js +0 -100
  54. package/esm2015/viewport/viewport-matcher-var.directive.js +0 -64
  55. package/esm2015/viewport/viewport-matcher.directive.js +0 -134
  56. package/esm2015/viewport/viewport-server-size.service.js +0 -38
  57. package/esm2015/viewport/viewport.const.js +0 -18
  58. package/esm2015/viewport/viewport.model.js +0 -31
  59. package/esm2015/viewport/viewport.service.js +0 -69
  60. package/esm2015/viewport/viewport.util.js +0 -117
  61. package/fesm2015/ssv-ngx.ux.js.map +0 -1
  62. package/ssv-ngx.ux.d.ts +0 -6
  63. package/ssv-ngx.ux.metadata.json +0 -1
@@ -1,108 +0,0 @@
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,43 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS5waXBlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2NpcmNsZWNpL3JlcG8vc3JjLyIsInNvdXJjZXMiOlsidmlld3BvcnQvdmlld3BvcnQtZGF0YS92aWV3cG9ydC1kYXRhLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBNEIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFzQix5QkFBeUIsRUFBb0MsTUFBTSx5QkFBeUIsQ0FBQztBQUMxSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxtREFBbUQ7QUFLbkQsTUFBTSxPQUFPLGdCQUFnQjtJQVE1QixZQUNTLFlBQWlDLEVBQ2pDLEdBQXNCO1FBRHRCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVJ2QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFJeEIsV0FBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFNcEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF3QixFQUFFLFFBQTBDO1FBQzdFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDL0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkYsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUNGLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFZCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7O1lBeENELElBQUksU0FBQztnQkFDTCxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixJQUFJLEVBQUUsS0FBSzthQUNYOzs7WUFOUSxtQkFBbUI7WUFIYSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgVmlld3BvcnREYXRhQ29uZmlnLCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5LCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5TGl0ZXJhbCB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEtbWF0Y2hlclwiO1xuaW1wb3J0IHsgVmlld3BvcnREYXRhU2VydmljZSB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEuc2VydmljZVwiO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tcGlwZS1pbXB1cmUgKi9cbkBQaXBlKHtcblx0bmFtZTogXCJzc3ZWaWV3cG9ydERhdGFcIixcblx0cHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVmlld3BvcnREYXRhUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG5cblx0cHJpdmF0ZSBtYXJrRm9yVHJhbnNmb3JtID0gdHJ1ZTtcblx0cHJpdmF0ZSB2YWx1ZTogdW5rbm93bjtcblx0cHJpdmF0ZSBkYXRhOiBWaWV3cG9ydERhdGFDb25maWcgfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgc3RyYXRlZ3k6IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3lMaXRlcmFsIHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIGRhdGEkJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHZpZXdwb3J0RGF0YTogVmlld3BvcnREYXRhU2VydmljZSxcblx0XHRwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcblx0KSB7XG5cdH1cblxuXHR0cmFuc2Zvcm0oZGF0YTogVmlld3BvcnREYXRhQ29uZmlnLCBzdHJhdGVneTogVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneUxpdGVyYWwpOiB1bmtub3duIHtcblx0XHRpZiAoIXRoaXMubWFya0ZvclRyYW5zZm9ybSAmJiBkYXRhID09PSB0aGlzLmRhdGEgJiYgc3RyYXRlZ3kgPT09IHRoaXMuc3RyYXRlZ3kpIHtcblx0XHRcdHJldHVybiB0aGlzLnZhbHVlO1xuXHRcdH1cblx0XHR0aGlzLmRhdGEgPSBkYXRhO1xuXHRcdHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneTtcblxuXHRcdHRoaXMuZGF0YSQkLnVuc3Vic2NyaWJlKCk7XG5cdFx0dGhpcy5kYXRhJCQgPSB0aGlzLnZpZXdwb3J0RGF0YS5nZXQkKGRhdGEsIFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3lbc3RyYXRlZ3ldKS5waXBlKFxuXHRcdFx0dGFwKHZhbHVlID0+IHtcblx0XHRcdFx0dGhpcy5tYXJrRm9yVHJhbnNmb3JtID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy52YWx1ZSA9IHZhbHVlO1xuXHRcdFx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0XHRcdH0pLFxuXHRcdCkuc3Vic2NyaWJlKCk7XG5cblx0XHR0aGlzLm1hcmtGb3JUcmFuc2Zvcm0gPSBmYWxzZTtcblx0XHRyZXR1cm4gdGhpcy52YWx1ZTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuZGF0YSQkLnVuc3Vic2NyaWJlKCk7XG5cdH1cblxufVxuIl19
@@ -1,38 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2NpcmNsZWNpL3JlcG8vc3JjLyIsInNvdXJjZXMiOlsidmlld3BvcnQvdmlld3BvcnQtZGF0YS92aWV3cG9ydC1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFHcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBaUQsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUseUNBQXlDLEVBQW9CLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFLcEcsTUFBTSxPQUFPLG1CQUFtQjtJQUUvQixZQUNTLFFBQXlCLEVBQ04sTUFBaUI7UUFEcEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDTixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBRTdDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsR0FBRyxDQUNGLFVBQWlDLEVBQ2pDLFdBQXNDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUNuRixXQUFpQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtRQUUvRCxPQUFPLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxJQUFJLENBQUksVUFBaUMsRUFBRSxRQUFvQyxFQUFFLFFBQVEsR0FBRyxJQUFJO1FBQy9GLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDN0UsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQzVELG9CQUFvQixFQUFFLENBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELGFBQWEsQ0FDWixVQUFpQyxFQUNqQyxXQUFzQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0I7UUFFbkYsT0FBTyx5Q0FBeUMsQ0FDL0MsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQ3pCLENBQUM7SUFDSCxDQUFDOzs7O1lBdkNELFVBQVUsU0FBQztnQkFDWCxVQUFVLEVBQUUsTUFBTTthQUNsQjs7O1lBTlEsZUFBZTs0Q0FXckIsTUFBTSxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBVWF9DT05GSUcsIFV4T3B0aW9ucyB9IGZyb20gXCIuLi8uLi9jb25maWdcIjtcblxuaW1wb3J0IHsgVmlld3BvcnRTaXplVHlwZUluZm8gfSBmcm9tIFwiLi4vdmlld3BvcnQubW9kZWxcIjtcbmltcG9ydCB7IFZpZXdwb3J0U2VydmljZSB9IGZyb20gXCIuLi92aWV3cG9ydC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBtYXRjaFZpZXdwb3J0RGF0YSwgVmlld3BvcnREYXRhQ29uZmlnLCBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5IH0gZnJvbSBcIi4vdmlld3BvcnQtZGF0YS1tYXRjaGVyXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZVZpZXdwb3J0UnVsZXNSYW5nZUZyb21EYXRhTWF0Y2hlciwgVmlld3BvcnREYXRhUnVsZSB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEudXRpbHNcIjtcblxuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgVmlld3BvcnREYXRhU2VydmljZSB7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSB2aWV3cG9ydDogVmlld3BvcnRTZXJ2aWNlLFxuXHRcdEBJbmplY3QoVVhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVXhPcHRpb25zLFxuXHQpIHtcblx0fVxuXG5cdC8qKiBHZXQgZGF0YSBmb3IgbWF0Y2guICovXG5cdGdldDxUPihcblx0XHRkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sXG5cdFx0c3RyYXRlZ3k6IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3kgPSB0aGlzLmNvbmZpZy52aWV3cG9ydC5kZWZhdWx0RGF0YU1hdGNoU3RyYXRlZ3ksXG5cdFx0c2l6ZVR5cGU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvID0gdGhpcy52aWV3cG9ydC5zaXplVHlwZVNuYXBzaG90XG5cdCk6IFQgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiBtYXRjaFZpZXdwb3J0RGF0YShkYXRhQ29uZmlnLCBzaXplVHlwZSwgc3RyYXRlZ3ksIHRoaXMudmlld3BvcnQuc2l6ZVR5cGVzLCB0aGlzLnZpZXdwb3J0LnNpemVUeXBlTWFwKTtcblx0fVxuXG5cdC8qKiBHZXQgZGF0YSBmb3IgbWF0Y2ggYXMgb2JzZXJ2YWJsZS4gKi9cblx0Z2V0JDxUPihkYXRhQ29uZmlnOiBWaWV3cG9ydERhdGFDb25maWc8VD4sIHN0cmF0ZWd5PzogVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSwgdGhyb3R0bGUgPSB0cnVlKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XG5cdFx0cmV0dXJuICh0aHJvdHRsZSA/IHRoaXMudmlld3BvcnQuc2l6ZVR5cGUkIDogdGhpcy52aWV3cG9ydC5zaXplVHlwZVNuYXAkKS5waXBlKFxuXHRcdFx0bWFwKHNpemVUeXBlID0+IHRoaXMuZ2V0PFQ+KGRhdGFDb25maWcsIHN0cmF0ZWd5LCBzaXplVHlwZSkpLFxuXHRcdFx0ZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcblx0XHQpO1xuXHR9XG5cblx0LyoqIEdlbmVyYXRlIHJ1bGVzIGJhc2VkIG9uIHN0cmF0ZWdpZXMgZm9yIGRhdGEuICovXG5cdGdlbmVyYXRlUnVsZXM8VD4oXG5cdFx0ZGF0YUNvbmZpZzogVmlld3BvcnREYXRhQ29uZmlnPFQ+LFxuXHRcdHN0cmF0ZWd5OiBWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5ID0gdGhpcy5jb25maWcudmlld3BvcnQuZGVmYXVsdERhdGFNYXRjaFN0cmF0ZWd5LFxuXHQpOiBWaWV3cG9ydERhdGFSdWxlPFQ+W10ge1xuXHRcdHJldHVybiBnZW5lcmF0ZVZpZXdwb3J0UnVsZXNSYW5nZUZyb21EYXRhTWF0Y2hlcihcblx0XHRcdGRhdGFDb25maWcsXG5cdFx0XHRzdHJhdGVneSxcblx0XHRcdHRoaXMudmlld3BvcnQuc2l6ZVR5cGVzLFxuXHRcdFx0dGhpcy52aWV3cG9ydC5zaXplVHlwZU1hcFxuXHRcdCk7XG5cdH1cblxufVxuIl19
@@ -1,100 +0,0 @@
1
- import { ViewportDataMatchStrategy } from "./viewport-data-matcher";
2
- /**
3
- * Utility function to generate rules based on strategies.
4
- *
5
- * @param dataConfig Data config to generate rules based on.
6
- * @param strategy Strategy to use when building rules.
7
- * @param sizeTypes Available size types ordered by index type. (Can be obtained from `ViewportService`)
8
- * @param sizeTypeMap Available size type map. (Can be obtained from `ViewportService`)
9
- * @returns Returns a collection of rules (ordered).
10
- */
11
- export function generateViewportRulesRangeFromDataMatcher(dataConfig, strategy, sizeTypes, sizeTypeMap) {
12
- const ruleBuilderFn = matchStrategyHandlerMap[strategy];
13
- if (!ruleBuilderFn) {
14
- throw Error(`generateViewportRulesRangeFromDataMatcher: Viewport Data strategy not implemented. Strategy: '${strategy}'`);
15
- }
16
- let dataSizes = [];
17
- for (const key in dataConfig) {
18
- if (Object.prototype.hasOwnProperty.call(dataConfig, key)) {
19
- const data = dataConfig[key];
20
- if (data === undefined) {
21
- continue;
22
- }
23
- const size = sizeTypeMap[key];
24
- if (size) {
25
- dataSizes.push(size);
26
- }
27
- }
28
- }
29
- dataSizes = dataSizes.sort(({ type: typeA }, { type: typeB }) => typeA - typeB);
30
- const rules = [];
31
- if (dataConfig.default) {
32
- rules.push({ value: dataConfig.default, min: undefined, max: undefined });
33
- }
34
- let prevRule;
35
- for (let index = 0; index < dataSizes.length; index++) {
36
- const prevDataSize = dataSizes[index - 1];
37
- const nextDataSize = dataSizes[index + 1];
38
- const dataSize = dataSizes[index];
39
- const prevSize = sizeTypes[dataSize.type - 1];
40
- // const nextSize = sizeTypes[dataSize.type + 1];
41
- const data = dataConfig[dataSize.name];
42
- const rule = {
43
- value: data,
44
- min: undefined,
45
- max: undefined,
46
- };
47
- ruleBuilderFn(rule, dataSize, nextDataSize, prevDataSize, prevSize, prevRule, sizeTypes);
48
- prevRule = rule;
49
- rules.push(rule);
50
- }
51
- return rules;
52
- }
53
- const matchStrategyHandlerMap = {
54
- [ViewportDataMatchStrategy.exact]: (rule, dataSize, _nextDataSize, _prevDataSize, prevSize) => {
55
- rule.max = dataSize.widthThreshold;
56
- if (prevSize) {
57
- rule.min = prevSize.widthThreshold + 1;
58
- }
59
- },
60
- [ViewportDataMatchStrategy.smaller]: (rule, dataSize, nextDataSize, _prevDataSize, prevSize) => {
61
- if (nextDataSize) {
62
- rule.max = dataSize.widthThreshold;
63
- }
64
- if (prevSize) {
65
- rule.min = prevSize.widthThreshold + 1;
66
- }
67
- },
68
- [ViewportDataMatchStrategy.larger]: (rule, dataSize, _nextDataSize, prevDataSize) => {
69
- if (dataSize) {
70
- rule.max = dataSize.widthThreshold;
71
- }
72
- if (prevDataSize) {
73
- rule.min = prevDataSize.widthThreshold + 1;
74
- }
75
- },
76
- [ViewportDataMatchStrategy.closestSmallerFirst]: (rule, dataSize, nextDataSize, _prevDataSize, _prevSize, prevRule, sizeTypes) => {
77
- if (nextDataSize) {
78
- rule.max = calculateClosestWidthThreshold(nextDataSize, dataSize, sizeTypes, true);
79
- }
80
- if (prevRule === null || prevRule === void 0 ? void 0 : prevRule.max) {
81
- rule.min = prevRule.max + 1;
82
- }
83
- },
84
- [ViewportDataMatchStrategy.closestLargerFirst]: (rule, dataSize, nextDataSize, _prevDataSize, _prevSize, prevRule, sizeTypes) => {
85
- if (nextDataSize) {
86
- rule.max = calculateClosestWidthThreshold(nextDataSize, dataSize, sizeTypes, false);
87
- }
88
- if (prevRule === null || prevRule === void 0 ? void 0 : prevRule.max) {
89
- rule.min = prevRule.max + 1;
90
- }
91
- },
92
- };
93
- function calculateClosestWidthThreshold(nextDataSize, dataSize, sizeTypes, isSmallerPreferred) {
94
- const fn = isSmallerPreferred ? Math.ceil : Math.floor;
95
- // get closest between curr and next
96
- const diffIndex = fn((nextDataSize.type - dataSize.type - 1) / 2);
97
- const diffNextSize = sizeTypes[dataSize.type + diffIndex];
98
- return (diffNextSize || dataSize).widthThreshold;
99
- }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtZGF0YS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9jaXJjbGVjaS9yZXBvL3NyYy8iLCJzb3VyY2VzIjpbInZpZXdwb3J0L3ZpZXdwb3J0LWRhdGEvdmlld3BvcnQtZGF0YS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQXNCLHlCQUF5QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFReEY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUseUNBQXlDLENBQ3hELFVBQWlDLEVBQ2pDLFFBQW1DLEVBQ25DLFNBQWlDLEVBQ2pDLFdBQTZDO0lBRTdDLE1BQU0sYUFBYSxHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDbkIsTUFBTSxLQUFLLENBQUMsaUdBQWlHLFFBQVEsR0FBRyxDQUFDLENBQUM7S0FDMUg7SUFFRCxJQUFJLFNBQVMsR0FBMkIsRUFBRSxDQUFDO0lBQzNDLEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFO1FBQzdCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUMxRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUN2QixTQUFTO2FBQ1Q7WUFDRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1QsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQjtTQUNEO0tBQ0Q7SUFDRCxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxL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QUFTLENBQUMsQ0FBQztJQUMxRCxPQUFPLENBQUMsWUFBWSxJQUFJLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gXCIuLi8uLi9pbnRlcm5hbC9pbnRlcm5hbC5tb2RlbFwiO1xuaW1wb3J0IHsgVmlld3BvcnRTaXplVHlwZUluZm8gfSBmcm9tIFwiLi4vdmlld3BvcnQubW9kZWxcIjtcbmltcG9ydCB7IFZpZXdwb3J0RGF0YUNvbmZpZywgVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneSB9IGZyb20gXCIuL3ZpZXdwb3J0LWRhdGEtbWF0Y2hlclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdwb3J0RGF0YVJ1bGU8VD4ge1xuXHRtaW4/OiBudW1iZXI7XG5cdG1heD86IG51bWJlcjtcblx0dmFsdWU6IFQ7XG59XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiB0byBnZW5lcmF0ZSBydWxlcyBiYXNlZCBvbiBzdHJhdGVnaWVzLlxuICpcbiAqIEBwYXJhbSBkYXRhQ29uZmlnIERhdGEgY29uZmlnIHRvIGdlbmVyYXRlIHJ1bGVzIGJhc2VkIG9uLlxuICogQHBhcmFtIHN0cmF0ZWd5IFN0cmF0ZWd5IHRvIHVzZSB3aGVuIGJ1aWxkaW5nIHJ1bGVzLlxuICogQHBhcmFtIHNpemVUeXBlcyBBdmFpbGFibGUgc2l6ZSB0eXBlcyBvcmRlcmVkIGJ5IGluZGV4IHR5cGUuIChDYW4gYmUgb2J0YWluZWQgZnJvbSBgVmlld3BvcnRTZXJ2aWNlYClcbiAqIEBwYXJhbSBzaXplVHlwZU1hcCBBdmFpbGFibGUgc2l6ZSB0eXBlIG1hcC4gKENhbiBiZSBvYnRhaW5lZCBmcm9tIGBWaWV3cG9ydFNlcnZpY2VgKVxuICogQHJldHVybnMgUmV0dXJucyBhIGNvbGxlY3Rpb24gb2YgcnVsZXMgKG9yZGVyZWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVWaWV3cG9ydFJ1bGVzUmFuZ2VGcm9tRGF0YU1hdGNoZXI8VD4oXG5cdGRhdGFDb25maWc6IFZpZXdwb3J0RGF0YUNvbmZpZzxUPixcblx0c3RyYXRlZ3k6IFZpZXdwb3J0RGF0YU1hdGNoU3RyYXRlZ3ksXG5cdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcblx0c2l6ZVR5cGVNYXA6IERpY3Rpb25hcnk8Vmlld3BvcnRTaXplVHlwZUluZm8+LFxuKTogVmlld3BvcnREYXRhUnVsZTxUPltdIHtcblx0Y29uc3QgcnVsZUJ1aWxkZXJGbiA9IG1hdGNoU3RyYXRlZ3lIYW5kbGVyTWFwW3N0cmF0ZWd5XTtcblx0aWYgKCFydWxlQnVpbGRlckZuKSB7XG5cdFx0dGhyb3cgRXJyb3IoYGdlbmVyYXRlVmlld3BvcnRSdWxlc1JhbmdlRnJvbURhdGFNYXRjaGVyOiBWaWV3cG9ydCBEYXRhIHN0cmF0ZWd5IG5vdCBpbXBsZW1lbnRlZC4gU3RyYXRlZ3k6ICcke3N0cmF0ZWd5fSdgKTtcblx0fVxuXG5cdGxldCBkYXRhU2l6ZXM6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvW10gPSBbXTtcblx0Zm9yIChjb25zdCBrZXkgaW4gZGF0YUNvbmZpZykge1xuXHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YUNvbmZpZywga2V5KSkge1xuXHRcdFx0Y29uc3QgZGF0YSA9IGRhdGFDb25maWdba2V5XTtcblx0XHRcdGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBzaXplID0gc2l6ZVR5cGVNYXBba2V5XTtcblx0XHRcdGlmIChzaXplKSB7XG5cdFx0XHRcdGRhdGFTaXplcy5wdXNoKHNpemUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRkYXRhU2l6ZXMgPSBkYXRhU2l6ZXMuc29ydCgoeyB0eXBlOiB0eXBlQSB9LCB7IHR5cGU6IHR5cGVCIH0pID0+IHR5cGVBIC0gdHlwZUIpO1xuXG5cdGNvbnN0IHJ1bGVzOiBWaWV3cG9ydERhdGFSdWxlPFQ+W10gPSBbXTtcblx0aWYgKGRhdGFDb25maWcuZGVmYXVsdCkge1xuXHRcdHJ1bGVzLnB1c2goeyB2YWx1ZTogZGF0YUNvbmZpZy5kZWZhdWx0LCBtaW46IHVuZGVmaW5lZCwgbWF4OiB1bmRlZmluZWQgfSk7XG5cdH1cblxuXHRsZXQgcHJldlJ1bGU6IFZpZXdwb3J0RGF0YVJ1bGU8VD4gfCB1bmRlZmluZWQ7XG5cdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhU2l6ZXMubGVuZ3RoOyBpbmRleCsrKSB7XG5cdFx0Y29uc3QgcHJldkRhdGFTaXplID0gZGF0YVNpemVzW2luZGV4IC0gMV07XG5cdFx0Y29uc3QgbmV4dERhdGFTaXplID0gZGF0YVNpemVzW2luZGV4ICsgMV07XG5cdFx0Y29uc3QgZGF0YVNpemUgPSBkYXRhU2l6ZXNbaW5kZXhdO1xuXHRcdGNvbnN0IHByZXZTaXplID0gc2l6ZVR5cGVzW2RhdGFTaXplLnR5cGUgLSAxXTtcblx0XHQvLyBjb25zdCBuZXh0U2l6ZSA9IHNpemVUeXBlc1tkYXRhU2l6ZS50eXBlICsgMV07XG5cdFx0Y29uc3QgZGF0YSA9IGRhdGFDb25maWdbZGF0YVNpemUubmFtZV07XG5cdFx0Y29uc3QgcnVsZTogVmlld3BvcnREYXRhUnVsZTxUPiA9IHtcblx0XHRcdHZhbHVlOiBkYXRhLFxuXHRcdFx0bWluOiB1bmRlZmluZWQsXG5cdFx0XHRtYXg6IHVuZGVmaW5lZCxcblx0XHR9O1xuXG5cdFx0cnVsZUJ1aWxkZXJGbihydWxlLCBkYXRhU2l6ZSwgbmV4dERhdGFTaXplLCBwcmV2RGF0YVNpemUsIHByZXZTaXplLCBwcmV2UnVsZSwgc2l6ZVR5cGVzKTtcblxuXHRcdHByZXZSdWxlID0gcnVsZTtcblx0XHRydWxlcy5wdXNoKHJ1bGUpO1xuXHR9XG5cdHJldHVybiBydWxlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWaWV3cG9ydFJ1bGVSYW5nZUJ1aWxkZXI8VCA9IHVua25vd24+IHtcblx0KFxuXHRcdHJ1bGU6IFZpZXdwb3J0RGF0YVJ1bGU8VD4sXG5cdFx0ZGF0YVNpemU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxuXHRcdG5leHREYXRhU2l6ZTogVmlld3BvcnRTaXplVHlwZUluZm8gfCB1bmRlZmluZWQsXG5cdFx0cHJldkRhdGFTaXplOiBWaWV3cG9ydFNpemVUeXBlSW5mbyB8IHVuZGVmaW5lZCxcblx0XHRwcmV2U2l6ZTogVmlld3BvcnRTaXplVHlwZUluZm8gfCB1bmRlZmluZWQsXG5cdFx0cHJldlJ1bGU6IFZpZXdwb3J0RGF0YVJ1bGU8VD4gfCB1bmRlZmluZWQsXG5cdFx0c2l6ZVR5cGVzOiBWaWV3cG9ydFNpemVUeXBlSW5mb1tdLFxuXHQpOiB2b2lkO1xufVxuXG5jb25zdCBtYXRjaFN0cmF0ZWd5SGFuZGxlck1hcDogRGljdGlvbmFyeTxWaWV3cG9ydFJ1bGVSYW5nZUJ1aWxkZXI+ID0ge1xuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5leGFjdF06IChydWxlLCBkYXRhU2l6ZSwgX25leHREYXRhU2l6ZSwgX3ByZXZEYXRhU2l6ZSwgcHJldlNpemUpID0+IHtcblx0XHRydWxlLm1heCA9IGRhdGFTaXplLndpZHRoVGhyZXNob2xkO1xuXHRcdGlmIChwcmV2U2l6ZSkge1xuXHRcdFx0cnVsZS5taW4gPSBwcmV2U2l6ZS53aWR0aFRocmVzaG9sZCArIDE7XG5cdFx0fVxuXHR9LFxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5zbWFsbGVyXTogKHJ1bGUsIGRhdGFTaXplLCBuZXh0RGF0YVNpemUsIF9wcmV2RGF0YVNpemUsIHByZXZTaXplKSA9PiB7XG5cdFx0aWYgKG5leHREYXRhU2l6ZSkge1xuXHRcdFx0cnVsZS5tYXggPSBkYXRhU2l6ZS53aWR0aFRocmVzaG9sZDtcblx0XHR9XG5cdFx0aWYgKHByZXZTaXplKSB7XG5cdFx0XHRydWxlLm1pbiA9IHByZXZTaXplLndpZHRoVGhyZXNob2xkICsgMTtcblx0XHR9XG5cdH0sXG5cdFtWaWV3cG9ydERhdGFNYXRjaFN0cmF0ZWd5Lmxhcmdlcl06IChydWxlLCBkYXRhU2l6ZSwgX25leHREYXRhU2l6ZSwgcHJldkRhdGFTaXplKSA9PiB7XG5cdFx0aWYgKGRhdGFTaXplKSB7XG5cdFx0XHRydWxlLm1heCA9IGRhdGFTaXplLndpZHRoVGhyZXNob2xkO1xuXHRcdH1cblx0XHRpZiAocHJldkRhdGFTaXplKSB7XG5cdFx0XHRydWxlLm1pbiA9IHByZXZEYXRhU2l6ZS53aWR0aFRocmVzaG9sZCArIDE7XG5cdFx0fVxuXHR9LFxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5jbG9zZXN0U21hbGxlckZpcnN0XTogKHJ1bGUsIGRhdGFTaXplLCBuZXh0RGF0YVNpemUsIF9wcmV2RGF0YVNpemUsIF9wcmV2U2l6ZSwgcHJldlJ1bGUsIHNpemVUeXBlcykgPT4ge1xuXHRcdGlmIChuZXh0RGF0YVNpemUpIHtcblx0XHRcdHJ1bGUubWF4ID0gY2FsY3VsYXRlQ2xvc2VzdFdpZHRoVGhyZXNob2xkKG5leHREYXRhU2l6ZSwgZGF0YVNpemUsIHNpemVUeXBlcywgdHJ1ZSk7XG5cdFx0fVxuXHRcdGlmIChwcmV2UnVsZT8ubWF4KSB7XG5cdFx0XHRydWxlLm1pbiA9IHByZXZSdWxlLm1heCArIDE7XG5cdFx0fVxuXHR9LFxuXHRbVmlld3BvcnREYXRhTWF0Y2hTdHJhdGVneS5jbG9zZXN0TGFyZ2VyRmlyc3RdOiAocnVsZSwgZGF0YVNpemUsIG5leHREYXRhU2l6ZSwgX3ByZXZEYXRhU2l6ZSwgX3ByZXZTaXplLCBwcmV2UnVsZSwgc2l6ZVR5cGVzKSA9PiB7XG5cdFx0aWYgKG5leHREYXRhU2l6ZSkge1xuXHRcdFx0cnVsZS5tYXggPSBjYWxjdWxhdGVDbG9zZXN0V2lkdGhUaHJlc2hvbGQobmV4dERhdGFTaXplLCBkYXRhU2l6ZSwgc2l6ZVR5cGVzLCBmYWxzZSk7XG5cdFx0fVxuXHRcdGlmIChwcmV2UnVsZT8ubWF4KSB7XG5cdFx0XHRydWxlLm1pbiA9IHByZXZSdWxlLm1heCArIDE7XG5cdFx0fVxuXHR9LFxufTtcblxuZnVuY3Rpb24gY2FsY3VsYXRlQ2xvc2VzdFdpZHRoVGhyZXNob2xkKFxuXHRuZXh0RGF0YVNpemU6IFZpZXdwb3J0U2l6ZVR5cGVJbmZvLFxuXHRkYXRhU2l6ZTogVmlld3BvcnRTaXplVHlwZUluZm8sXG5cdHNpemVUeXBlczogVmlld3BvcnRTaXplVHlwZUluZm9bXSxcblx0aXNTbWFsbGVyUHJlZmVycmVkOiBib29sZWFuLFxuKSB7XG5cdGNvbnN0IGZuID0gaXNTbWFsbGVyUHJlZmVycmVkID8gTWF0aC5jZWlsIDogTWF0aC5mbG9vcjtcblx0Ly8gZ2V0IGNsb3Nlc3QgYmV0d2VlbiBjdXJyIGFuZCBuZXh0XG5cdGNvbnN0IGRpZmZJbmRleCA9IGZuKChuZXh0RGF0YVNpemUudHlwZSAtIGRhdGFTaXplLnR5cGUgLSAxKSAvIDIpO1xuXHRjb25zdCBkaWZmTmV4dFNpemUgPSBzaXplVHlwZXNbZGF0YVNpemUudHlwZSArIGRpZmZJbmRleF07XG5cdHJldHVybiAoZGlmZk5leHRTaXplIHx8IGRhdGFTaXplKS53aWR0aFRocmVzaG9sZDtcbn1cbiJdfQ==
@@ -1,64 +0,0 @@
1
- import { Directive, Input, TemplateRef, ViewContainerRef, } from "@angular/core";
2
- import { combineLatest, ReplaySubject, Subject } from "rxjs";
3
- import { tap, map, takeUntil } from "rxjs/operators";
4
- import { ViewportService } from "./viewport.service";
5
- import { isViewportSizeMatcherExpression, isViewportSizeMatcherTupleExpression, isViewportConditionMatch } from "./viewport.util";
6
- const NAME_CAMEL = "ssvViewportMatcherVar";
7
- export class SsvViewportMatcherVarContext {
8
- constructor($implicit = false) {
9
- this.$implicit = $implicit;
10
- }
11
- }
12
- export class SsvViewportMatcherVarDirective {
13
- constructor(viewport, viewContainer, templateRef) {
14
- this.viewport = viewport;
15
- this.viewContainer = viewContainer;
16
- this.templateRef = templateRef;
17
- this._matchConditions = {};
18
- this._context = new SsvViewportMatcherVarContext();
19
- this._destroy$ = new Subject();
20
- this._update$ = new ReplaySubject(1);
21
- }
22
- set condition(value) {
23
- if (isViewportSizeMatcherExpression(value)) {
24
- this._matchConditions.expression = value;
25
- }
26
- else if (isViewportSizeMatcherTupleExpression(value)) {
27
- const [op, size] = value;
28
- this._matchConditions.expression = {
29
- operation: op,
30
- size
31
- };
32
- }
33
- else {
34
- this._matchConditions.sizeType = value;
35
- }
36
- this._update$.next();
37
- }
38
- ngOnInit() {
39
- this.updateView();
40
- combineLatest([this.viewport.sizeType$, this._update$]).pipe(map(([sizeType]) => isViewportConditionMatch(sizeType, this._matchConditions, this.viewport.sizeTypeMap)), tap(x => this._context.$implicit = x), tap(() => this._viewRef.markForCheck()), takeUntil(this._destroy$)).subscribe();
41
- }
42
- ngOnDestroy() {
43
- this._destroy$.next();
44
- this._destroy$.complete();
45
- }
46
- updateView() {
47
- this.viewContainer.clear();
48
- this._viewRef = this.viewContainer.createEmbeddedView(this.templateRef, this._context);
49
- }
50
- }
51
- SsvViewportMatcherVarDirective.decorators = [
52
- { type: Directive, args: [{
53
- selector: `[${NAME_CAMEL}]`,
54
- },] }
55
- ];
56
- SsvViewportMatcherVarDirective.ctorParameters = () => [
57
- { type: ViewportService },
58
- { type: ViewContainerRef },
59
- { type: TemplateRef }
60
- ];
61
- SsvViewportMatcherVarDirective.propDecorators = {
62
- condition: [{ type: Input, args: [`${NAME_CAMEL}When`,] }]
63
- };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtbWF0Y2hlci12YXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2NpcmNsZWNpL3JlcG8vc3JjLyIsInNvdXJjZXMiOlsidmlld3BvcnQvdmlld3BvcnQtbWF0Y2hlci12YXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTixTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsR0FFaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQ04sK0JBQStCLEVBQy9CLG9DQUFvQyxFQUNwQyx3QkFBd0IsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixNQUFNLFVBQVUsR0FBRyx1QkFBdUIsQ0FBQztBQUUzQyxNQUFNLE9BQU8sNEJBQTRCO0lBRXhDLFlBQ1EsWUFBWSxLQUFLO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFDckIsQ0FBQztDQUVMO0FBS0QsTUFBTSxPQUFPLDhCQUE4QjtJQXdCMUMsWUFDUyxRQUF5QixFQUN6QixhQUErQixFQUMvQixXQUFzRDtRQUZ0RCxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQTJDO1FBekJ2RCxxQkFBZ0IsR0FBNEIsRUFBRSxDQUFDO1FBQy9DLGFBQVEsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7UUFDckMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFPLENBQUMsQ0FBQyxDQUFDO0lBd0J2RCxDQUFDO0lBckJELElBQWdDLFNBQVMsQ0FBQyxLQUF3RDtRQUNqRyxJQUFJLCtCQUErQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pDO2FBQU0sSUFBSSxvQ0FBb0MsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2RCxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHO2dCQUNsQyxTQUFTLEVBQUUsRUFBRTtnQkFDYixJQUFJO2FBQ0osQ0FBQztTQUNGO2FBQU07WUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQVNELFFBQVE7UUFDUCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMzRCxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDekcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQ3ZDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQ3pCLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sVUFBVTtRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RixDQUFDOzs7WUFwREQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxJQUFJLFVBQVUsR0FBRzthQUMzQjs7O1lBcEJRLGVBQWU7WUFOdkIsZ0JBQWdCO1lBRGhCLFdBQVc7Ozt3QkFvQ1YsS0FBSyxTQUFDLEdBQUcsVUFBVSxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0T25Jbml0LFxuXHRPbkRlc3Ryb3ksXG5cdERpcmVjdGl2ZSxcblx0SW5wdXQsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxuXHRFbWJlZGRlZFZpZXdSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRhcCwgbWFwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgVmlld3BvcnRTZXJ2aWNlIH0gZnJvbSBcIi4vdmlld3BvcnQuc2VydmljZVwiO1xuaW1wb3J0IHtcblx0aXNWaWV3cG9ydFNpemVNYXRjaGVyRXhwcmVzc2lvbixcblx0aXNWaWV3cG9ydFNpemVNYXRjaGVyVHVwbGVFeHByZXNzaW9uLFxuXHRpc1ZpZXdwb3J0Q29uZGl0aW9uTWF0Y2hcbn0gZnJvbSBcIi4vdmlld3BvcnQudXRpbFwiO1xuaW1wb3J0IHsgVmlld3BvcnRNYXRjaENvbmRpdGlvbnMsIFZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uIH0gZnJvbSBcIi4vdmlld3BvcnQubW9kZWxcIjtcblxuY29uc3QgTkFNRV9DQU1FTCA9IFwic3N2Vmlld3BvcnRNYXRjaGVyVmFyXCI7XG5cbmV4cG9ydCBjbGFzcyBTc3ZWaWV3cG9ydE1hdGNoZXJWYXJDb250ZXh0IHtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwdWJsaWMgJGltcGxpY2l0ID0gZmFsc2UsXG5cdCkgeyB9XG5cbn1cblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiBgWyR7TkFNRV9DQU1FTH1dYCxcbn0pXG5leHBvcnQgY2xhc3MgU3N2Vmlld3BvcnRNYXRjaGVyVmFyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG5cdHByaXZhdGUgX21hdGNoQ29uZGl0aW9uczogVmlld3BvcnRNYXRjaENvbmRpdGlvbnMgPSB7fTtcblx0cHJpdmF0ZSBfY29udGV4dCA9IG5ldyBTc3ZWaWV3cG9ydE1hdGNoZXJWYXJDb250ZXh0KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfdXBkYXRlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuXHRwcml2YXRlIF92aWV3UmVmITogRW1iZWRkZWRWaWV3UmVmPFNzdlZpZXdwb3J0TWF0Y2hlclZhckNvbnRleHQ+O1xuXG5cdEBJbnB1dChgJHtOQU1FX0NBTUVMfVdoZW5gKSBzZXQgY29uZGl0aW9uKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IFZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uKSB7XG5cdFx0aWYgKGlzVmlld3BvcnRTaXplTWF0Y2hlckV4cHJlc3Npb24odmFsdWUpKSB7XG5cdFx0XHR0aGlzLl9tYXRjaENvbmRpdGlvbnMuZXhwcmVzc2lvbiA9IHZhbHVlO1xuXHRcdH0gZWxzZSBpZiAoaXNWaWV3cG9ydFNpemVNYXRjaGVyVHVwbGVFeHByZXNzaW9uKHZhbHVlKSkge1xuXHRcdFx0Y29uc3QgW29wLCBzaXplXSA9IHZhbHVlO1xuXHRcdFx0dGhpcy5fbWF0Y2hDb25kaXRpb25zLmV4cHJlc3Npb24gPSB7XG5cdFx0XHRcdG9wZXJhdGlvbjogb3AsXG5cdFx0XHRcdHNpemVcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX21hdGNoQ29uZGl0aW9ucy5zaXplVHlwZSA9IHZhbHVlO1xuXHRcdH1cblxuXHRcdHRoaXMuX3VwZGF0ZSQubmV4dCgpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSB2aWV3cG9ydDogVmlld3BvcnRTZXJ2aWNlLFxuXHRcdHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcblx0XHRwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxTc3ZWaWV3cG9ydE1hdGNoZXJWYXJDb250ZXh0Pixcblx0KSB7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLnVwZGF0ZVZpZXcoKTtcblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLnZpZXdwb3J0LnNpemVUeXBlJCwgdGhpcy5fdXBkYXRlJF0pLnBpcGUoXG5cdFx0XHRtYXAoKFtzaXplVHlwZV0pID0+IGlzVmlld3BvcnRDb25kaXRpb25NYXRjaChzaXplVHlwZSwgdGhpcy5fbWF0Y2hDb25kaXRpb25zLCB0aGlzLnZpZXdwb3J0LnNpemVUeXBlTWFwKSksXG5cdFx0XHR0YXAoeCA9PiB0aGlzLl9jb250ZXh0LiRpbXBsaWNpdCA9IHgpLFxuXHRcdFx0dGFwKCgpID0+IHRoaXMuX3ZpZXdSZWYubWFya0ZvckNoZWNrKCkpLFxuXHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcblx0XHQpLnN1YnNjcmliZSgpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fZGVzdHJveSQubmV4dCgpO1xuXHRcdHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZVZpZXcoKTogdm9pZCB7XG5cdFx0dGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG5cdFx0dGhpcy5fdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5fY29udGV4dCk7XG5cdH1cblxufVxuIl19
@@ -1,134 +0,0 @@
1
- import { Directive, Renderer2, ViewContainerRef, Input, TemplateRef, ChangeDetectorRef, } from "@angular/core";
2
- import { Subscription, Subject } from "rxjs";
3
- import { tap, filter, pairwise, startWith } from "rxjs/operators";
4
- import { ViewportService } from "./viewport.service";
5
- import { isViewportSizeMatcherExpression, isViewportSizeMatcherTupleExpression, isViewportConditionMatch } from "./viewport.util";
6
- export class SsvViewportMatcherContext {
7
- constructor() {
8
- this.sizeType = null;
9
- this.sizeTypeExclude = null;
10
- }
11
- }
12
- export class SsvViewportMatcherDirective {
13
- constructor(viewport, renderer, viewContainer, cdr, templateRef) {
14
- this.viewport = viewport;
15
- this.renderer = renderer;
16
- this.viewContainer = viewContainer;
17
- this.cdr = cdr;
18
- this._context = new SsvViewportMatcherContext();
19
- this._thenTemplateRef = null;
20
- this._elseTemplateRef = null;
21
- this._thenViewRef = null;
22
- this._elseViewRef = null;
23
- this.sizeType$$ = Subscription.EMPTY;
24
- this.cssClass$$ = Subscription.EMPTY;
25
- this._update$ = new Subject();
26
- this._thenTemplateRef = templateRef;
27
- }
28
- set ssvViewportMatcher(value) {
29
- if (isViewportSizeMatcherExpression(value)) {
30
- this._context.expression = value;
31
- }
32
- else if (isViewportSizeMatcherTupleExpression(value)) {
33
- const [op, size] = value;
34
- this._context.expression = {
35
- operation: op,
36
- size
37
- };
38
- }
39
- else {
40
- this._context.sizeType = value;
41
- }
42
- if (this.sizeInfo) {
43
- this._update$.next(this._context);
44
- }
45
- }
46
- set ssvViewportMatcherExclude(value) {
47
- this._context.sizeTypeExclude = value;
48
- if (this.sizeInfo) {
49
- this._update$.next(this._context);
50
- }
51
- }
52
- set ssvViewportMatcherElse(templateRef) {
53
- this._elseTemplateRef = templateRef;
54
- this._elseViewRef = null; // clear previous view if any.
55
- if (this.sizeInfo) {
56
- this._update$.next(this._context);
57
- }
58
- }
59
- ngOnInit() {
60
- // console.log("ssvViewportMatcher init");
61
- this._update$
62
- .pipe(
63
- // tap(x => console.log(">>> ssvViewportMatcher - update triggered", x)),
64
- filter(() => !!this.sizeInfo),
65
- // tap(x => console.log(">>> ssvViewportMatcher - updating...", x)),
66
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
67
- tap(() => this._updateView(this.sizeInfo)), tap(() => this.cdr.markForCheck()))
68
- .subscribe();
69
- this.sizeType$$ = this.viewport.sizeType$
70
- .pipe(
71
- // tap(x => console.log("ssvViewportMatcher - sizeType changed", x)),
72
- tap(x => this.sizeInfo = x), tap(() => this._update$.next(this._context)))
73
- .subscribe();
74
- this.cssClass$$ = this.viewport.sizeType$
75
- .pipe(startWith(undefined), filter(() => !!(this._thenViewRef || this._elseViewRef)), pairwise(), tap(([prev, curr]) => {
76
- var _a;
77
- const el = this._thenViewRef
78
- ? this._thenViewRef.rootNodes[0]
79
- : (_a = this._elseViewRef) === null || _a === void 0 ? void 0 : _a.rootNodes[0];
80
- if (!el.classList) {
81
- return;
82
- }
83
- if (prev) {
84
- this.renderer.removeClass(el, `ssv-vp-size--${prev.name}`);
85
- }
86
- this.renderer.addClass(el, `ssv-vp-size--${curr === null || curr === void 0 ? void 0 : curr.name}`);
87
- }))
88
- .subscribe();
89
- }
90
- ngOnDestroy() {
91
- this.cssClass$$.unsubscribe();
92
- this.sizeType$$.unsubscribe();
93
- this._update$.complete();
94
- }
95
- _updateView(sizeInfo) {
96
- if (isViewportConditionMatch(sizeInfo, this._context, this.viewport.sizeTypeMap)) {
97
- if (!this._thenViewRef) {
98
- this.viewContainer.clear();
99
- this._elseViewRef = null;
100
- if (this._thenTemplateRef) {
101
- this._thenViewRef = this.viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);
102
- }
103
- }
104
- }
105
- else {
106
- if (!this._elseViewRef) {
107
- this.viewContainer.clear();
108
- this._thenViewRef = null;
109
- if (this._elseTemplateRef) {
110
- this._elseViewRef = this.viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);
111
- }
112
- }
113
- }
114
- }
115
- }
116
- SsvViewportMatcherDirective.decorators = [
117
- { type: Directive, args: [{
118
- selector: "[ssvViewportMatcher]",
119
- exportAs: "ssvViewportMatcher",
120
- },] }
121
- ];
122
- SsvViewportMatcherDirective.ctorParameters = () => [
123
- { type: ViewportService },
124
- { type: Renderer2 },
125
- { type: ViewContainerRef },
126
- { type: ChangeDetectorRef },
127
- { type: TemplateRef }
128
- ];
129
- SsvViewportMatcherDirective.propDecorators = {
130
- ssvViewportMatcher: [{ type: Input }],
131
- ssvViewportMatcherExclude: [{ type: Input }],
132
- ssvViewportMatcherElse: [{ type: Input }]
133
- };
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtbWF0Y2hlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvY2lyY2xlY2kvcmVwby9zcmMvIiwic291cmNlcyI6WyJ2aWV3cG9ydC92aWV3cG9ydC1tYXRjaGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR04sU0FBUyxFQUNULFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsS0FBSyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQ04sK0JBQStCLEVBQy9CLG9DQUFvQyxFQUNwQyx3QkFBd0IsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixNQUFNLE9BQU8seUJBQXlCO0lBQXRDO1FBRUMsYUFBUSxHQUE2QixJQUFJLENBQUM7UUFDMUMsb0JBQWUsR0FBNkIsSUFBSSxDQUFDO0lBR2xELENBQUM7Q0FBQTtBQU1ELE1BQU0sT0FBTywyQkFBMkI7SUErQ3ZDLFlBQ1MsUUFBeUIsRUFDekIsUUFBbUIsRUFDbkIsYUFBK0IsRUFDL0IsR0FBc0IsRUFDOUIsV0FBbUQ7UUFKM0MsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQ3ZCLGFBQVEsR0FBOEIsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQ3RFLHFCQUFnQixHQUFrRCxJQUFJLENBQUM7UUFDdkUscUJBQWdCLEdBQWtELElBQUksQ0FBQztRQUN2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QUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFFekIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDeEQsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsUUFBUSxDQUNiLENBQUM7aUJBQ0Y7YUFDRDtTQUNEO2FBQU07WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBRXpCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQ3hELElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FDYixDQUFDO2lCQUNGO2FBQ0Q7U0FDRDtJQUNGLENBQUM7OztZQXpJRCxTQUFTLFNBQUM7Z0JBQ1YsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsUUFBUSxFQUFFLG9CQUFvQjthQUM5Qjs7O1lBbkJRLGVBQWU7WUFWdkIsU0FBUztZQUNULGdCQUFnQjtZQUloQixpQkFBaUI7WUFEakIsV0FBVzs7O2lDQXVDVixLQUFLO3dDQWtCTCxLQUFLO3FDQVFMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRPbkluaXQsXG5cdE9uRGVzdHJveSxcblx0RGlyZWN0aXZlLFxuXHRSZW5kZXJlcjIsXG5cdFZpZXdDb250YWluZXJSZWYsXG5cdElucHV0LFxuXHRFbWJlZGRlZFZpZXdSZWYsXG5cdFRlbXBsYXRlUmVmLFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YXAsIGZpbHRlciwgcGFpcndpc2UsIHN0YXJ0V2l0aCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tIFwiLi92aWV3cG9ydC5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuXHRpc1ZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uLFxuXHRpc1ZpZXdwb3J0U2l6ZU1hdGNoZXJUdXBsZUV4cHJlc3Npb24sXG5cdGlzVmlld3BvcnRDb25kaXRpb25NYXRjaFxufSBmcm9tIFwiLi92aWV3cG9ydC51dGlsXCI7XG5pbXBvcnQgeyBWaWV3cG9ydFNpemVUeXBlSW5mbywgVmlld3BvcnRNYXRjaENvbmRpdGlvbnMsIFZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uIH0gZnJvbSBcIi4vdmlld3BvcnQubW9kZWxcIjtcblxuZXhwb3J0IGNsYXNzIFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQgaW1wbGVtZW50cyBWaWV3cG9ydE1hdGNoQ29uZGl0aW9ucyB7XG5cblx0c2l6ZVR5cGU6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG5cdHNpemVUeXBlRXhjbHVkZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsID0gbnVsbDtcblx0ZXhwcmVzc2lvbj86IFZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uO1xuXG59XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogXCJbc3N2Vmlld3BvcnRNYXRjaGVyXVwiLFxuXHRleHBvcnRBczogXCJzc3ZWaWV3cG9ydE1hdGNoZXJcIixcbn0pXG5leHBvcnQgY2xhc3MgU3N2Vmlld3BvcnRNYXRjaGVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG5cdHNpemVJbmZvOiBWaWV3cG9ydFNpemVUeXBlSW5mbyB8IHVuZGVmaW5lZDtcblxuXHRwcml2YXRlIF9jb250ZXh0OiBTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0ID0gbmV3IFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQoKTtcblx0cHJpdmF0ZSBfdGhlblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0PiB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIF9lbHNlVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQ+IHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgX3RoZW5WaWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8U3N2Vmlld3BvcnRNYXRjaGVyQ29udGV4dD4gfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBfZWxzZVZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0PiB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHNpemVUeXBlJCQgPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cdHByaXZhdGUgY3NzQ2xhc3MkJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblx0cHJpdmF0ZSByZWFkb25seSBfdXBkYXRlJCA9IG5ldyBTdWJqZWN0PFNzdlZpZXdwb3J0TWF0Y2hlckNvbnRleHQ+KCk7XG5cblx0QElucHV0KCkgc2V0IHNzdlZpZXdwb3J0TWF0Y2hlcih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBWaWV3cG9ydFNpemVNYXRjaGVyRXhwcmVzc2lvbikge1xuXHRcdGlmIChpc1ZpZXdwb3J0U2l6ZU1hdGNoZXJFeHByZXNzaW9uKHZhbHVlKSkge1xuXHRcdFx0dGhpcy5fY29udGV4dC5leHByZXNzaW9uID0gdmFsdWU7XG5cdFx0fSBlbHNlIGlmIChpc1ZpZXdwb3J0U2l6ZU1hdGNoZXJUdXBsZUV4cHJlc3Npb24odmFsdWUpKSB7XG5cdFx0XHRjb25zdCBbb3AsIHNpemVdID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9jb250ZXh0LmV4cHJlc3Npb24gPSB7XG5cdFx0XHRcdG9wZXJhdGlvbjogb3AsXG5cdFx0XHRcdHNpemVcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX2NvbnRleHQuc2l6ZVR5cGUgPSB2YWx1ZTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5zaXplSW5mbykge1xuXHRcdFx0dGhpcy5fdXBkYXRlJC5uZXh0KHRoaXMuX2NvbnRleHQpO1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCgpIHNldCBzc3ZWaWV3cG9ydE1hdGNoZXJFeGNsdWRlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXHRcdHRoaXMuX2NvbnRleHQuc2l6ZVR5cGVFeGNsdWRlID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5zaXplSW5mbykge1xuXHRcdFx0dGhpcy5fdXBkYXRlJC5uZXh0KHRoaXMuX2NvbnRleHQpO1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCgpIHNldCBzc3ZWaWV3cG9ydE1hdGNoZXJFbHNlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0PiB8IG51bGwpIHtcblx0XHR0aGlzLl9lbHNlVGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcblx0XHR0aGlzLl9lbHNlVmlld1JlZiA9IG51bGw7IC8vIGNsZWFyIHByZXZpb3VzIHZpZXcgaWYgYW55LlxuXHRcdGlmICh0aGlzLnNpemVJbmZvKSB7XG5cdFx0XHR0aGlzLl91cGRhdGUkLm5leHQodGhpcy5fY29udGV4dCk7XG5cdFx0fVxuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSB2aWV3cG9ydDogVmlld3BvcnRTZXJ2aWNlLFxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG5cdFx0cHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxTc3ZWaWV3cG9ydE1hdGNoZXJDb250ZXh0Pixcblx0KSB7XG5cdFx0dGhpcy5fdGhlblRlbXBsYXRlUmVmID0gdGVtcGxhdGVSZWY7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHQvLyBjb25zb2xlLmxvZyhcInNzdlZpZXdwb3J0TWF0Y2hlciBpbml0XCIpO1xuXG5cdFx0dGhpcy5fdXBkYXRlJFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdC8vIHRhcCh4ID0+IGNvbnNvbGUubG9nKFwiPj4+IHNzdlZpZXdwb3J0TWF0Y2hlciAtIHVwZGF0ZSB0cmlnZ2VyZWRcIiwgeCkpLFxuXHRcdFx0XHRmaWx0ZXIoKCkgPT4gISF0aGlzLnNpemVJbmZvKSxcblx0XHRcdFx0Ly8gdGFwKHggPT4gY29uc29sZS5sb2coXCI+Pj4gc3N2Vmlld3BvcnRNYXRjaGVyIC0gdXBkYXRpbmcuLi5cIiwgeCkpLFxuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuXHRcdFx0XHR0YXAoKCkgPT4gdGhpcy5fdXBkYXRlVmlldyh0aGlzLnNpemVJbmZvISkpLFxuXHRcdFx0XHR0YXAoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cblx0XHR0aGlzLnNpemVUeXBlJCQgPSB0aGlzLnZpZXdwb3J0LnNpemVUeXBlJFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdC8vIHRhcCh4ID0+IGNvbnNvbGUubG9nKFwic3N2Vmlld3BvcnRNYXRjaGVyIC0gc2l6ZVR5cGUgY2hhbmdlZFwiLCB4KSksXG5cdFx0XHRcdHRhcCh4ID0+IHRoaXMuc2l6ZUluZm8gPSB4KSxcblx0XHRcdFx0dGFwKCgpID0+IHRoaXMuX3VwZGF0ZSQubmV4dCh0aGlzLl9jb250ZXh0KSksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cblx0XHR0aGlzLmNzc0NsYXNzJCQgPSB0aGlzLnZpZXdwb3J0LnNpemVUeXBlJFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdHN0YXJ0V2l0aDxWaWV3cG9ydFNpemVUeXBlSW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKSxcblx0XHRcdFx0ZmlsdGVyKCgpID0+ICEhKHRoaXMuX3RoZW5WaWV3UmVmIHx8IHRoaXMuX2Vsc2VWaWV3UmVmKSksXG5cdFx0XHRcdHBhaXJ3aXNlKCksXG5cdFx0XHRcdHRhcCgoW3ByZXYsIGN1cnJdKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgZWw6IEVsZW1lbnQgPSB0aGlzLl90aGVuVmlld1JlZlxuXHRcdFx0XHRcdFx0PyB0aGlzLl90aGVuVmlld1JlZi5yb290Tm9kZXNbMF1cblx0XHRcdFx0XHRcdDogdGhpcy5fZWxzZVZpZXdSZWY/LnJvb3ROb2Rlc1swXTtcblxuXHRcdFx0XHRcdGlmICghZWwuY2xhc3NMaXN0KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChwcmV2KSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGVsLCBgc3N2LXZwLXNpemUtLSR7cHJldi5uYW1lfWApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsLCBgc3N2LXZwLXNpemUtLSR7Y3Vycj8ubmFtZX1gKTtcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLmNzc0NsYXNzJCQudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLnNpemVUeXBlJCQudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLl91cGRhdGUkLmNvbXBsZXRlKCk7XG5cdH1cblxuXHRwcml2YXRlIF91cGRhdGVWaWV3KHNpemVJbmZvOiBWaWV3cG9ydFNpemVUeXBlSW5mbykge1xuXHRcdGlmIChpc1ZpZXdwb3J0Q29uZGl0aW9uTWF0Y2goc2l6ZUluZm8sIHRoaXMuX2NvbnRleHQsIHRoaXMudmlld3BvcnQuc2l6ZVR5cGVNYXApKSB7XG5cdFx0XHRpZiAoIXRoaXMuX3RoZW5WaWV3UmVmKSB7XG5cdFx0XHRcdHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuXHRcdFx0XHR0aGlzLl9lbHNlVmlld1JlZiA9IG51bGw7XG5cblx0XHRcdFx0aWYgKHRoaXMuX3RoZW5UZW1wbGF0ZVJlZikge1xuXHRcdFx0XHRcdHRoaXMuX3RoZW5WaWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyhcblx0XHRcdFx0XHRcdHRoaXMuX3RoZW5UZW1wbGF0ZVJlZixcblx0XHRcdFx0XHRcdHRoaXMuX2NvbnRleHQsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIXRoaXMuX2Vsc2VWaWV3UmVmKSB7XG5cdFx0XHRcdHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuXHRcdFx0XHR0aGlzLl90aGVuVmlld1JlZiA9IG51bGw7XG5cblx0XHRcdFx0aWYgKHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZikge1xuXHRcdFx0XHRcdHRoaXMuX2Vsc2VWaWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyhcblx0XHRcdFx0XHRcdHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZixcblx0XHRcdFx0XHRcdHRoaXMuX2NvbnRleHQsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG59XG4iXX0=
@@ -1,38 +0,0 @@
1
- import { Injectable, Inject, InjectionToken, Optional } from "@angular/core";
2
- import { DeviceType } from "./viewport.model";
3
- import * as i0 from "@angular/core";
4
- // todo: make this configurable
5
- /** Viewport size for SSR. */
6
- const viewportSizeSSR = {
7
- [DeviceType.desktop]: {
8
- width: 1366,
9
- height: 768,
10
- },
11
- [DeviceType.tablet]: {
12
- width: 768,
13
- height: 1024,
14
- },
15
- [DeviceType.mobile]: {
16
- width: 414,
17
- height: 736,
18
- },
19
- };
20
- export const UX_VIEWPORT_SSR_DEVICE = new InjectionToken("@ssv/ngx.ux-config/viewport/ssr-device");
21
- export class ViewportServerSizeService {
22
- constructor(deviceType) {
23
- this.deviceType = deviceType;
24
- }
25
- get() {
26
- return viewportSizeSSR[this.deviceType] || viewportSizeSSR[DeviceType.desktop];
27
- }
28
- }
29
- ViewportServerSizeService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ViewportServerSizeService_Factory() { return new ViewportServerSizeService(i0.ɵɵinject(UX_VIEWPORT_SSR_DEVICE, 8)); }, token: ViewportServerSizeService, providedIn: "root" });
30
- ViewportServerSizeService.decorators = [
31
- { type: Injectable, args: [{
32
- providedIn: "root",
33
- },] }
34
- ];
35
- ViewportServerSizeService.ctorParameters = () => [
36
- { type: DeviceType, decorators: [{ type: Optional }, { type: Inject, args: [UX_VIEWPORT_SSR_DEVICE,] }] }
37
- ];
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtc2VydmVyLXNpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9jaXJjbGVjaS9yZXBvL3NyYy8iLCJzb3VyY2VzIjpbInZpZXdwb3J0L3ZpZXdwb3J0LXNlcnZlci1zaXplLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RSxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLGtCQUFrQixDQUFDOztBQUc1RCwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLE1BQU0sZUFBZSxHQUE2QjtJQUNqRCxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNyQixLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxHQUFHO0tBQ1g7SUFDRCxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNwQixLQUFLLEVBQUUsR0FBRztRQUNWLE1BQU0sRUFBRSxJQUFJO0tBQ1o7SUFDRCxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNwQixLQUFLLEVBQUUsR0FBRztRQUNWLE1BQU0sRUFBRSxHQUFHO0tBQ1g7Q0FDRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQVksd0NBQXdDLENBQUMsQ0FBQztBQUs5RyxNQUFNLE9BQU8seUJBQXlCO0lBRXJDLFlBQ3FELFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFM0UsQ0FBQztJQUVELEdBQUc7UUFDRixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRixDQUFDOzs7O1lBWkQsVUFBVSxTQUFDO2dCQUNYLFVBQVUsRUFBRSxNQUFNO2FBQ2xCOzs7WUF4QlEsVUFBVSx1QkE0QmhCLFFBQVEsWUFBSSxNQUFNLFNBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSBcIi4uL2ludGVybmFsL2ludGVybmFsLm1vZGVsXCI7XG5pbXBvcnQgeyBEZXZpY2VUeXBlLCBWaWV3cG9ydFNpemUgfSBmcm9tIFwiLi92aWV3cG9ydC5tb2RlbFwiO1xuaW1wb3J0IHsgVXhPcHRpb25zIH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuXG4vLyB0b2RvOiBtYWtlIHRoaXMgY29uZmlndXJhYmxlXG4vKiogVmlld3BvcnQgc2l6ZSBmb3IgU1NSLiAqL1xuY29uc3Qgdmlld3BvcnRTaXplU1NSOiBEaWN0aW9uYXJ5PFZpZXdwb3J0U2l6ZT4gPSB7XG5cdFtEZXZpY2VUeXBlLmRlc2t0b3BdOiB7XG5cdFx0d2lkdGg6IDEzNjYsXG5cdFx0aGVpZ2h0OiA3NjgsXG5cdH0sXG5cdFtEZXZpY2VUeXBlLnRhYmxldF06IHtcblx0XHR3aWR0aDogNzY4LFxuXHRcdGhlaWdodDogMTAyNCxcblx0fSxcblx0W0RldmljZVR5cGUubW9iaWxlXToge1xuXHRcdHdpZHRoOiA0MTQsXG5cdFx0aGVpZ2h0OiA3MzYsXG5cdH0sXG59O1xuXG5leHBvcnQgY29uc3QgVVhfVklFV1BPUlRfU1NSX0RFVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxVeE9wdGlvbnM+KFwiQHNzdi9uZ3gudXgtY29uZmlnL3ZpZXdwb3J0L3Nzci1kZXZpY2VcIik7XG5cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdwb3J0U2VydmVyU2l6ZVNlcnZpY2Uge1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoVVhfVklFV1BPUlRfU1NSX0RFVklDRSkgcHJpdmF0ZSBkZXZpY2VUeXBlOiBEZXZpY2VUeXBlLFxuXHQpIHtcblx0fVxuXG5cdGdldCgpOiBWaWV3cG9ydFNpemUge1xuXHRcdHJldHVybiB2aWV3cG9ydFNpemVTU1JbdGhpcy5kZXZpY2VUeXBlXSB8fCB2aWV3cG9ydFNpemVTU1JbRGV2aWNlVHlwZS5kZXNrdG9wXTtcblx0fVxuXG59XG4iXX0=