@ssv/ngx.ux 2.0.1-dev198 → 2.0.2

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