@skyux/modals 6.0.0 → 6.0.1

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.
@@ -1644,7 +1644,7 @@
1644
1644
  "name": "Component"
1645
1645
  },
1646
1646
  "arguments": {
1647
- "obj": "{\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n animations: [skyAnimationModalState],\n providers: [\n SkyModalComponentAdapterService,\n SkyDockService,\n {\n provide: SkyMediaQueryService,\n useClass: SkyResizeObserverMediaQueryService,\n },\n ],\n}"
1647
+ "obj": "{\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n animations: [skyAnimationModalState],\n providers: [SkyModalComponentAdapterService, SkyDockService],\n}"
1648
1648
  }
1649
1649
  }
1650
1650
  ],
@@ -1658,7 +1658,7 @@
1658
1658
  "sources": [
1659
1659
  {
1660
1660
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
1661
- "line": 123,
1661
+ "line": 115,
1662
1662
  "character": 2
1663
1663
  }
1664
1664
  ],
@@ -1785,16 +1785,6 @@
1785
1785
  "name": "Optional"
1786
1786
  },
1787
1787
  "arguments": {}
1788
- },
1789
- {
1790
- "name": "Host",
1791
- "type": {
1792
- "type": "reference",
1793
- "qualifiedName": "HostDecorator",
1794
- "package": "@angular/core",
1795
- "name": "Host"
1796
- },
1797
- "arguments": {}
1798
1788
  }
1799
1789
  ],
1800
1790
  "type": {
@@ -1822,7 +1812,7 @@
1822
1812
  "sources": [
1823
1813
  {
1824
1814
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
1825
- "line": 112,
1815
+ "line": 104,
1826
1816
  "character": 9
1827
1817
  }
1828
1818
  ],
@@ -1843,7 +1833,7 @@
1843
1833
  "sources": [
1844
1834
  {
1845
1835
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
1846
- "line": 115,
1836
+ "line": 107,
1847
1837
  "character": 9
1848
1838
  }
1849
1839
  ],
@@ -1864,7 +1854,7 @@
1864
1854
  "sources": [
1865
1855
  {
1866
1856
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
1867
- "line": 110,
1857
+ "line": 102,
1868
1858
  "character": 9
1869
1859
  }
1870
1860
  ],
@@ -1885,7 +1875,7 @@
1885
1875
  "sources": [
1886
1876
  {
1887
1877
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
1888
- "line": 118,
1878
+ "line": 110,
1889
1879
  "character": 9
1890
1880
  }
1891
1881
  ],
@@ -1905,7 +1895,7 @@
1905
1895
  "sources": [
1906
1896
  {
1907
1897
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
1908
- "line": 98,
1898
+ "line": 90,
1909
1899
  "character": 13
1910
1900
  }
1911
1901
  ],
@@ -1934,7 +1924,7 @@
1934
1924
  "sources": [
1935
1925
  {
1936
1926
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
1937
- "line": 102,
1927
+ "line": 94,
1938
1928
  "character": 13
1939
1929
  }
1940
1930
  ],
@@ -1963,7 +1953,7 @@
1963
1953
  "sources": [
1964
1954
  {
1965
1955
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
1966
- "line": 106,
1956
+ "line": 98,
1967
1957
  "character": 13
1968
1958
  }
1969
1959
  ],
@@ -1992,7 +1982,7 @@
1992
1982
  "sources": [
1993
1983
  {
1994
1984
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
1995
- "line": 90,
1985
+ "line": 82,
1996
1986
  "character": 13
1997
1987
  }
1998
1988
  ],
@@ -2021,7 +2011,7 @@
2021
2011
  "sources": [
2022
2012
  {
2023
2013
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2024
- "line": 86,
2014
+ "line": 78,
2025
2015
  "character": 13
2026
2016
  }
2027
2017
  ],
@@ -2050,7 +2040,7 @@
2050
2040
  "sources": [
2051
2041
  {
2052
2042
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2053
- "line": 82,
2043
+ "line": 74,
2054
2044
  "character": 13
2055
2045
  }
2056
2046
  ],
@@ -2079,7 +2069,7 @@
2079
2069
  "sources": [
2080
2070
  {
2081
2071
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2082
- "line": 94,
2072
+ "line": 86,
2083
2073
  "character": 13
2084
2074
  }
2085
2075
  ],
@@ -2108,7 +2098,7 @@
2108
2098
  "sources": [
2109
2099
  {
2110
2100
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2111
- "line": 78,
2101
+ "line": 70,
2112
2102
  "character": 13
2113
2103
  }
2114
2104
  ],
@@ -2137,7 +2127,7 @@
2137
2127
  "sources": [
2138
2128
  {
2139
2129
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2140
- "line": 74,
2130
+ "line": 66,
2141
2131
  "character": 13
2142
2132
  }
2143
2133
  ],
@@ -2180,7 +2170,7 @@
2180
2170
  "sources": [
2181
2171
  {
2182
2172
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2183
- "line": 51,
2173
+ "line": 43,
2184
2174
  "character": 13
2185
2175
  }
2186
2176
  ],
@@ -2209,7 +2199,7 @@
2209
2199
  "sources": [
2210
2200
  {
2211
2201
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2212
- "line": 227,
2202
+ "line": 218,
2213
2203
  "character": 9
2214
2204
  }
2215
2205
  ],
@@ -2238,7 +2228,7 @@
2238
2228
  "sources": [
2239
2229
  {
2240
2230
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2241
- "line": 223,
2231
+ "line": 214,
2242
2232
  "character": 9
2243
2233
  }
2244
2234
  ],
@@ -2267,7 +2257,7 @@
2267
2257
  "sources": [
2268
2258
  {
2269
2259
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2270
- "line": 194,
2260
+ "line": 185,
2271
2261
  "character": 9
2272
2262
  }
2273
2263
  ],
@@ -2304,7 +2294,7 @@
2304
2294
  "sources": [
2305
2295
  {
2306
2296
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2307
- "line": 216,
2297
+ "line": 207,
2308
2298
  "character": 9
2309
2299
  }
2310
2300
  ],
@@ -2356,7 +2346,7 @@
2356
2346
  "sources": [
2357
2347
  {
2358
2348
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2359
- "line": 153,
2349
+ "line": 144,
2360
2350
  "character": 9
2361
2351
  }
2362
2352
  ],
@@ -2415,7 +2405,7 @@
2415
2405
  "sources": [
2416
2406
  {
2417
2407
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2418
- "line": 137,
2408
+ "line": 128,
2419
2409
  "character": 9
2420
2410
  }
2421
2411
  ],
@@ -2459,7 +2449,7 @@
2459
2449
  "sources": [
2460
2450
  {
2461
2451
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2462
- "line": 235,
2452
+ "line": 226,
2463
2453
  "character": 9
2464
2454
  }
2465
2455
  ],
@@ -2501,7 +2491,7 @@
2501
2491
  "sources": [
2502
2492
  {
2503
2493
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2504
- "line": 231,
2494
+ "line": 222,
2505
2495
  "character": 9
2506
2496
  }
2507
2497
  ],
@@ -2572,7 +2562,7 @@
2572
2562
  "sources": [
2573
2563
  {
2574
2564
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2575
- "line": 49,
2565
+ "line": 41,
2576
2566
  "character": 13
2577
2567
  }
2578
2568
  ],
@@ -1,5 +1,6 @@
1
1
  import { ChangeDetectorRef, Component, ComponentFactoryResolver, Injector, ViewChild, ViewContainerRef, } from '@angular/core';
2
2
  import { NavigationStart, Router } from '@angular/router';
3
+ import { SkyMediaQueryService, SkyResizeObserverMediaQueryService, } from '@skyux/core';
3
4
  import { takeWhile } from 'rxjs/operators';
4
5
  import { SkyModalAdapterService } from './modal-adapter.service';
5
6
  import { SkyModalConfiguration } from './modal-configuration';
@@ -41,6 +42,10 @@ export class SkyModalHostComponent {
41
42
  provide: SkyModalConfiguration,
42
43
  useValue: params,
43
44
  });
45
+ params.providers.push({
46
+ provide: SkyMediaQueryService,
47
+ useExisting: SkyResizeObserverMediaQueryService,
48
+ });
44
49
  adapter.setPageScroll(SkyModalHostService.openModalCount > 0);
45
50
  adapter.toggleFullPageModalClass(SkyModalHostService.fullPageModalCount > 0);
46
51
  const providers = params.providers || /* istanbul ignore next */ [];
@@ -93,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
93
98
  static: true,
94
99
  }]
95
100
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1ob3N0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWhvc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQUkzRDs7R0FFRztBQU9ILE1BQU0sT0FBTyxxQkFBcUI7SUFxQmhDLFlBQ1UsUUFBa0MsRUFDbEMsT0FBK0IsRUFDL0IsUUFBa0IsRUFDbEIsTUFBYyxFQUNkLGNBQWlDO1FBSmpDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtJQUN4QyxDQUFDO0lBMUJKLElBQVcsU0FBUztRQUNsQixPQUFPLG1CQUFtQixD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WUFBWSxlQUFlLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDZixVQUFVLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBRUgscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQzs7a0hBN0dVLHFCQUFxQjtzR0FBckIscUJBQXFCLG1JQWdCeEIsZ0JBQWdCLDJDQzNDMUIsMEpBUUEsa05EaUJpQixDQUFDLHNCQUFzQixDQUFDOzJGQUU1QixxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLGlCQUdYLENBQUMsc0JBQXNCLENBQUM7Z09BcUJoQyxNQUFNO3NCQUpaLFNBQVM7dUJBQUMsUUFBUSxFQUFFO3dCQUNuQixJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixNQUFNLEVBQUUsSUFBSTtxQkFDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgSW5qZWN0b3IsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TW9kYWxBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vbW9kYWwtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vbW9kYWwtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBTa3lNb2RhbEhvc3RTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSB9IGZyb20gJy4vbW9kYWwtaW5zdGFuY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi9tb2RhbC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktbW9kYWwtaG9zdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1ob3N0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtaG9zdC5jb21wb25lbnQuc2NzcyddLFxuICB2aWV3UHJvdmlkZXJzOiBbU2t5TW9kYWxBZGFwdGVyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsSG9zdENvbXBvbmVudCB7XG4gIHB1YmxpYyBnZXQgbW9kYWxPcGVuKCkge1xuICAgIHJldHVybiBTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYmFja2Ryb3BaSW5kZXgoKSB7XG4gICAgcmV0dXJuIFNreU1vZGFsSG9zdFNlcnZpY2UuYmFja2Ryb3BaSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGBhbnlgIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSB3aXRoIEFuZ3VsYXIgNC03LlxuICAgKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzMwNjU0XG4gICAqIFRPRE86IFJlbW92ZSB0aGUgYGFueWAgaW4gYSBicmVha2luZyBjaGFuZ2UuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQFZpZXdDaGlsZCgndGFyZ2V0Jywge1xuICAgIHJlYWQ6IFZpZXdDb250YWluZXJSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9IGFzIGFueSlcbiAgcHVibGljIHRhcmdldDogVmlld0NvbnRhaW5lclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBTa3lNb2RhbEFkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBvcGVuKFxuICAgIG1vZGFsSW5zdGFuY2U6IFNreU1vZGFsSW5zdGFuY2UsXG4gICAgY29tcG9uZW50OiBhbnksXG4gICAgY29uZmlnPzogU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlXG4gICkge1xuICAgIGNvbnN0IHBhcmFtczogU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlID0gT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnKTtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuXG4gICAgY29uc3QgaG9zdFNlcnZpY2UgPSBuZXcgU2t5TW9kYWxIb3N0U2VydmljZSgpO1xuICAgIGhvc3RTZXJ2aWNlLmZ1bGxQYWdlID0gISFwYXJhbXMuZnVsbFBhZ2U7XG5cbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcy5hZGFwdGVyO1xuICAgIGNvbnN0IG1vZGFsT3BlbmVyOiBIVE1MRWxlbWVudCA9IGFkYXB0ZXIuZ2V0TW9kYWxPcGVuZXIoKTtcblxuICAgIGxldCBpc09wZW4gPSB0cnVlO1xuXG4gICAgcGFyYW1zLnByb3ZpZGVycy5wdXNoKHtcbiAgICAgIHByb3ZpZGU6IFNreU1vZGFsSG9zdFNlcnZpY2UsXG4gICAgICB1c2VWYWx1ZTogaG9zdFNlcnZpY2UsXG4gICAgfSk7XG4gICAgcGFyYW1zLnByb3ZpZGVycy5wdXNoKHtcbiAgICAgIHByb3ZpZGU6IFNreU1vZGFsQ29uZmlndXJhdGlvbixcbiAgICAgIHVzZVZhbHVlOiBwYXJhbXMsXG4gICAgfSk7XG5cbiAgICBhZGFwdGVyLnNldFBhZ2VTY3JvbGwoU2t5TW9kYWxIb3N0U2VydmljZS5vcGVuTW9kYWxDb3VudCA+IDApO1xuICAgIGFkYXB0ZXIudG9nZ2xlRnVsbFBhZ2VNb2RhbENsYXNzKFxuICAgICAgU2t5TW9kYWxIb3N0U2VydmljZS5mdWxsUGFnZU1vZGFsQ291bnQgPiAwXG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVycyA9IHBhcmFtcy5wcm92aWRlcnMgfHwgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gW107XG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzLFxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbW9kYWxDb21wb25lbnRSZWYgPSB0aGlzLnRhcmdldC5jcmVhdGVDb21wb25lbnQoXG4gICAgICBmYWN0b3J5LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaW5qZWN0b3JcbiAgICApO1xuXG4gICAgbW9kYWxJbnN0YW5jZS5jb21wb25lbnRJbnN0YW5jZSA9IG1vZGFsQ29tcG9uZW50UmVmLmluc3RhbmNlO1xuXG4gICAgZnVuY3Rpb24gY2xvc2VNb2RhbCgpIHtcbiAgICAgIGhvc3RTZXJ2aWNlLmRlc3Ryb3koKTtcbiAgICAgIGFkYXB0ZXIuc2V0UGFnZVNjcm9sbChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCk7XG4gICAgICBhZGFwdGVyLnRvZ2dsZUZ1bGxQYWdlTW9kYWxDbGFzcyhcbiAgICAgICAgU2t5TW9kYWxIb3N0U2VydmljZS5mdWxsUGFnZU1vZGFsQ291bnQgPiAwXG4gICAgICApO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgaWYgKG1vZGFsT3BlbmVyICYmIG1vZGFsT3BlbmVyLmZvY3VzKSB7XG4gICAgICAgIG1vZGFsT3BlbmVyLmZvY3VzKCk7XG4gICAgICB9XG4gICAgICBtb2RhbENvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaG9zdFNlcnZpY2Uub3BlbkhlbHAuc3Vic2NyaWJlKChoZWxwS2V5Pzogc3RyaW5nKSA9PiB7XG4gICAgICBtb2RhbEluc3RhbmNlLm9wZW5IZWxwKGhlbHBLZXkpO1xuICAgIH0pO1xuXG4gICAgaG9zdFNlcnZpY2UuY2xvc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIG1vZGFsSW5zdGFuY2UuY2xvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKHRha2VXaGlsZSgoKSA9PiBpc09wZW4pKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgIG1vZGFsSW5zdGFuY2UuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIG1vZGFsSW5zdGFuY2UuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpc09wZW4gPSBmYWxzZTtcbiAgICAgIGNsb3NlTW9kYWwoKTtcbiAgICB9KTtcblxuICAgIC8vIE5lY2Vzc2FyeSBpZiB0aGUgaG9zdCB3YXMgY3JlYXRlZCB2aWEgYSBjb25zdW1lcidzIGxpZmVjeWNsZSBob29rIHN1Y2ggYXMgbmdPbkluaXRcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1tb2RhbC1ob3N0LWJhY2tkcm9wXCJcbiAgW2hpZGRlbl09XCIhbW9kYWxPcGVuXCJcbiAgW25nU3R5bGVdPVwie1xuICAgIHpJbmRleDogYmFja2Ryb3BaSW5kZXhcbiAgfVwiXG4+PC9kaXY+XG48ZGl2ICN0YXJnZXQ+PC9kaXY+XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1ob3N0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWhvc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixrQ0FBa0MsR0FDbkMsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQUkzRDs7R0FFRztBQU9ILE1BQU0sT0FBTyxxQkFBcUI7SUFxQmhDLFlBQ1UsUUFBa0MsRUFDbEMsT0FBK0IsRUFDL0IsUUFBa0IsRUFDbEIsTUFBYyxFQUNkLGNBQWlDO1FBSmpDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQs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Q0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuRSwwQkFBMEI7WUFDMUIsSUFBSSxLQUFLLFlBQVksZUFBZSxFQUFFO2dCQUNwQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDdkI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ2YsVUFBVSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQUVILHFGQUFxRjtRQUNyRixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7O2tIQWpIVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixtSUFnQnhCLGdCQUFnQiwyQ0MvQzFCLDBKQVFBLGtORHFCaUIsQ0FBQyxzQkFBc0IsQ0FBQzsyRkFFNUIscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLGdCQUFnQixpQkFHWCxDQUFDLHNCQUFzQixDQUFDO2dPQXFCaEMsTUFBTTtzQkFKWixTQUFTO3VCQUFDLFFBQVEsRUFBRTt3QkFDbkIsSUFBSSxFQUFFLGdCQUFnQjt3QkFDdEIsTUFBTSxFQUFFLElBQUk7cUJBQ04iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdG9yLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gIFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9tb2RhbC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFNreU1vZGFsSG9zdFNlcnZpY2UgfSBmcm9tICcuL21vZGFsLWhvc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTa3lNb2RhbEluc3RhbmNlIH0gZnJvbSAnLi9tb2RhbC1pbnN0YW5jZSc7XG5pbXBvcnQgeyBTa3lNb2RhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2UgfSBmcm9tICcuL21vZGFsLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1tb2RhbC1ob3N0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWhvc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC1ob3N0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFtTa3lNb2RhbEFkYXB0ZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxIb3N0Q29tcG9uZW50IHtcbiAgcHVibGljIGdldCBtb2RhbE9wZW4oKSB7XG4gICAgcmV0dXJuIFNreU1vZGFsSG9zdFNlcnZpY2Uub3Blbk1vZGFsQ291bnQgPiAwO1xuICB9XG5cbiAgcHVibGljIGdldCBiYWNrZHJvcFpJbmRleCgpIHtcbiAgICByZXR1cm4gU2t5TW9kYWxIb3N0U2VydmljZS5iYWNrZHJvcFpJbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgYGFueWAgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHdpdGggQW5ndWxhciA0LTcuXG4gICAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMzA2NTRcbiAgICogVE9ETzogUmVtb3ZlIHRoZSBgYW55YCBpbiBhIGJyZWFraW5nIGNoYW5nZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBAVmlld0NoaWxkKCd0YXJnZXQnLCB7XG4gICAgcmVhZDogVmlld0NvbnRhaW5lclJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0gYXMgYW55KVxuICBwdWJsaWMgdGFyZ2V0OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGFkYXB0ZXI6IFNreU1vZGFsQWRhcHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG9wZW4oXG4gICAgbW9kYWxJbnN0YW5jZTogU2t5TW9kYWxJbnN0YW5jZSxcbiAgICBjb21wb25lbnQ6IGFueSxcbiAgICBjb25maWc/OiBTa3lNb2RhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2VcbiAgKSB7XG4gICAgY29uc3QgcGFyYW1zOiBTa3lNb2RhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2UgPSBPYmplY3QuYXNzaWduKHt9LCBjb25maWcpO1xuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCk7XG5cbiAgICBjb25zdCBob3N0U2VydmljZSA9IG5ldyBTa3lNb2RhbEhvc3RTZXJ2aWNlKCk7XG4gICAgaG9zdFNlcnZpY2UuZnVsbFBhZ2UgPSAhIXBhcmFtcy5mdWxsUGFnZTtcblxuICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLmFkYXB0ZXI7XG4gICAgY29uc3QgbW9kYWxPcGVuZXI6IEhUTUxFbGVtZW50ID0gYWRhcHRlci5nZXRNb2RhbE9wZW5lcigpO1xuXG4gICAgbGV0IGlzT3BlbiA9IHRydWU7XG5cbiAgICBwYXJhbXMucHJvdmlkZXJzLnB1c2goe1xuICAgICAgcHJvdmlkZTogU2t5TW9kYWxIb3N0U2VydmljZSxcbiAgICAgIHVzZVZhbHVlOiBob3N0U2VydmljZSxcbiAgICB9KTtcbiAgICBwYXJhbXMucHJvdmlkZXJzLnB1c2goe1xuICAgICAgcHJvdmlkZTogU2t5TW9kYWxDb25maWd1cmF0aW9uLFxuICAgICAgdXNlVmFsdWU6IHBhcmFtcyxcbiAgICB9KTtcbiAgICBwYXJhbXMucHJvdmlkZXJzLnB1c2goe1xuICAgICAgcHJvdmlkZTogU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gICAgICB1c2VFeGlzdGluZzogU2t5UmVzaXplT2JzZXJ2ZXJNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICB9KTtcblxuICAgIGFkYXB0ZXIuc2V0UGFnZVNjcm9sbChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCk7XG4gICAgYWRhcHRlci50b2dnbGVGdWxsUGFnZU1vZGFsQ2xhc3MoXG4gICAgICBTa3lNb2RhbEhvc3RTZXJ2aWNlLmZ1bGxQYWdlTW9kYWxDb3VudCA+IDBcbiAgICApO1xuXG4gICAgY29uc3QgcHJvdmlkZXJzID0gcGFyYW1zLnByb3ZpZGVycyB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBbXTtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnMsXG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtb2RhbENvbXBvbmVudFJlZiA9IHRoaXMudGFyZ2V0LmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIGZhY3RvcnksXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBpbmplY3RvclxuICAgICk7XG5cbiAgICBtb2RhbEluc3RhbmNlLmNvbXBvbmVudEluc3RhbmNlID0gbW9kYWxDb21wb25lbnRSZWYuaW5zdGFuY2U7XG5cbiAgICBmdW5jdGlvbiBjbG9zZU1vZGFsKCkge1xuICAgICAgaG9zdFNlcnZpY2UuZGVzdHJveSgpO1xuICAgICAgYWRhcHRlci5zZXRQYWdlU2Nyb2xsKFNreU1vZGFsSG9zdFNlcnZpY2Uub3Blbk1vZGFsQ291bnQgPiAwKTtcbiAgICAgIGFkYXB0ZXIudG9nZ2xlRnVsbFBhZ2VNb2RhbENsYXNzKFxuICAgICAgICBTa3lNb2RhbEhvc3RTZXJ2aWNlLmZ1bGxQYWdlTW9kYWxDb3VudCA+IDBcbiAgICAgICk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICBpZiAobW9kYWxPcGVuZXIgJiYgbW9kYWxPcGVuZXIuZm9jdXMpIHtcbiAgICAgICAgbW9kYWxPcGVuZXIuZm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIG1vZGFsQ29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBob3N0U2VydmljZS5vcGVuSGVscC5zdWJzY3JpYmUoKGhlbHBLZXk/OiBzdHJpbmcpID0+IHtcbiAgICAgIG1vZGFsSW5zdGFuY2Uub3BlbkhlbHAoaGVscEtleSk7XG4gICAgfSk7XG5cbiAgICBob3N0U2VydmljZS5jbG9zZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgbW9kYWxJbnN0YW5jZS5jbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVdoaWxlKCgpID0+IGlzT3BlbikpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgbW9kYWxJbnN0YW5jZS5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbW9kYWxJbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlzT3BlbiA9IGZhbHNlO1xuICAgICAgY2xvc2VNb2RhbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGlmIHRoZSBob3N0IHdhcyBjcmVhdGVkIHZpYSBhIGNvbnN1bWVyJ3MgbGlmZWN5Y2xlIGhvb2sgc3VjaCBhcyBuZ09uSW5pdFxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LW1vZGFsLWhvc3QtYmFja2Ryb3BcIlxuICBbaGlkZGVuXT1cIiFtb2RhbE9wZW5cIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgekluZGV4OiBiYWNrZHJvcFpJbmRleFxuICB9XCJcbj48L2Rpdj5cbjxkaXYgI3RhcmdldD48L2Rpdj5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Component, ElementRef, Host, HostBinding, HostListener, Input, Optional, ViewChild, } from '@angular/core';
2
- import { SkyAppWindowRef, SkyCoreAdapterService, SkyDockLocation, SkyDockService, SkyMediaQueryService, SkyResizeObserverMediaQueryService, } from '@skyux/core';
2
+ import { SkyAppWindowRef, SkyCoreAdapterService, SkyDockLocation, SkyDockService, SkyResizeObserverMediaQueryService, } from '@skyux/core';
3
3
  import { SkyModalComponentAdapterService } from './modal-component-adapter.service';
4
4
  import { SkyModalConfiguration } from './modal-configuration';
5
5
  import { SkyModalHostService } from './modal-host.service';
@@ -161,31 +161,15 @@ export class SkyModalComponent {
161
161
  return actualSize && actualSize.toLowerCase() === size;
162
162
  }
163
163
  }
164
- SkyModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyModalComponent, deps: [{ token: i1.SkyModalHostService }, { token: i2.SkyModalConfiguration }, { token: i0.ElementRef }, { token: i3.SkyAppWindowRef }, { token: i4.SkyModalComponentAdapterService }, { token: i3.SkyCoreAdapterService }, { token: i3.SkyDockService, host: true }, { token: i3.SkyResizeObserverMediaQueryService, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
165
- SkyModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyModalComponent, selector: "sky-modal", inputs: { ariaRole: "ariaRole", tiledBody: "tiledBody" }, host: { listeners: { "document:keyup": "onDocumentKeyUp($event)", "document:keydown": "onDocumentKeyDown($event)" }, properties: { "class": "this.wrapperClass" } }, providers: [
166
- SkyModalComponentAdapterService,
167
- SkyDockService,
168
- {
169
- provide: SkyMediaQueryService,
170
- useClass: SkyResizeObserverMediaQueryService,
171
- },
172
- ], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<!--\n Animations are broken in Chrome v52. Angular 2 RC5 will fix it.\n https://github.com/angular/angular/issues/10245\n-->\n<!--<div @modalState=\"modalState\">-->\n\n<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-full-page': modalFullPage,\n 'sky-modal-small': isSmallSize,\n 'sky-modal-medium': isMediumSize,\n 'sky-modal-large': isLargeSize,\n 'sky-modal-tiled': isTiledBody\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length &lt; 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n [attr.id]=\"modalHeaderId\"\n [ngClass]=\"{\n 'sky-section-heading': modalFullPage\n }\"\n #headerContent\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"modalHeaderId\"\n [attr.id]=\"modalContentId\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#686c73;font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-footer ::ng-deep sky-tabset-nav-button+sky-tabset-nav-button{margin-left:10px}.sky-modal-footer ::ng-deep sky-tabset-nav-button+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-header-buttons sky-icon[icon=close]{font-size:20px}.sky-modal-full-page .sky-modal-content{flex-grow:1}:host ::ng-deep .sky-sectioned-form{min-height:460px;margin:-15px}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent}\n"], components: [{ type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SkyModalScrollShadowDirective, selector: "[skyModalScrollShadow]", outputs: ["skyModalScrollShadow"] }], pipes: { "skyLibResources": i8.SkyLibResourcesPipe }, animations: [skyAnimationModalState] });
164
+ SkyModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyModalComponent, deps: [{ token: i1.SkyModalHostService }, { token: i2.SkyModalConfiguration }, { token: i0.ElementRef }, { token: i3.SkyAppWindowRef }, { token: i4.SkyModalComponentAdapterService }, { token: i3.SkyCoreAdapterService }, { token: i3.SkyDockService, host: true }, { token: i3.SkyResizeObserverMediaQueryService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
165
+ SkyModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyModalComponent, selector: "sky-modal", inputs: { ariaRole: "ariaRole", tiledBody: "tiledBody" }, host: { listeners: { "document:keyup": "onDocumentKeyUp($event)", "document:keydown": "onDocumentKeyDown($event)" }, properties: { "class": "this.wrapperClass" } }, providers: [SkyModalComponentAdapterService, SkyDockService], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<!--\n Animations are broken in Chrome v52. Angular 2 RC5 will fix it.\n https://github.com/angular/angular/issues/10245\n-->\n<!--<div @modalState=\"modalState\">-->\n\n<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-full-page': modalFullPage,\n 'sky-modal-small': isSmallSize,\n 'sky-modal-medium': isMediumSize,\n 'sky-modal-large': isLargeSize,\n 'sky-modal-tiled': isTiledBody\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length &lt; 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n [attr.id]=\"modalHeaderId\"\n [ngClass]=\"{\n 'sky-section-heading': modalFullPage\n }\"\n #headerContent\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"modalHeaderId\"\n [attr.id]=\"modalContentId\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#686c73;font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-footer ::ng-deep sky-tabset-nav-button+sky-tabset-nav-button{margin-left:10px}.sky-modal-footer ::ng-deep sky-tabset-nav-button+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-header-buttons sky-icon[icon=close]{font-size:20px}.sky-modal-full-page .sky-modal-content{flex-grow:1}:host ::ng-deep .sky-sectioned-form{min-height:460px;margin:-15px}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent}\n"], components: [{ type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SkyModalScrollShadowDirective, selector: "[skyModalScrollShadow]", outputs: ["skyModalScrollShadow"] }], pipes: { "skyLibResources": i8.SkyLibResourcesPipe }, animations: [skyAnimationModalState] });
173
166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyModalComponent, decorators: [{
174
167
  type: Component,
175
- args: [{ selector: 'sky-modal', animations: [skyAnimationModalState], providers: [
176
- SkyModalComponentAdapterService,
177
- SkyDockService,
178
- {
179
- provide: SkyMediaQueryService,
180
- useClass: SkyResizeObserverMediaQueryService,
181
- },
182
- ], template: "<!--\n Animations are broken in Chrome v52. Angular 2 RC5 will fix it.\n https://github.com/angular/angular/issues/10245\n-->\n<!--<div @modalState=\"modalState\">-->\n\n<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-full-page': modalFullPage,\n 'sky-modal-small': isSmallSize,\n 'sky-modal-medium': isMediumSize,\n 'sky-modal-large': isLargeSize,\n 'sky-modal-tiled': isTiledBody\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length &lt; 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n [attr.id]=\"modalHeaderId\"\n [ngClass]=\"{\n 'sky-section-heading': modalFullPage\n }\"\n #headerContent\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"modalHeaderId\"\n [attr.id]=\"modalContentId\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#686c73;font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-footer ::ng-deep sky-tabset-nav-button+sky-tabset-nav-button{margin-left:10px}.sky-modal-footer ::ng-deep sky-tabset-nav-button+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-header-buttons sky-icon[icon=close]{font-size:20px}.sky-modal-full-page .sky-modal-content{flex-grow:1}:host ::ng-deep .sky-sectioned-form{min-height:460px;margin:-15px}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent}\n"] }]
168
+ args: [{ selector: 'sky-modal', animations: [skyAnimationModalState], providers: [SkyModalComponentAdapterService, SkyDockService], template: "<!--\n Animations are broken in Chrome v52. Angular 2 RC5 will fix it.\n https://github.com/angular/angular/issues/10245\n-->\n<!--<div @modalState=\"modalState\">-->\n\n<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-full-page': modalFullPage,\n 'sky-modal-small': isSmallSize,\n 'sky-modal-medium': isMediumSize,\n 'sky-modal-large': isLargeSize,\n 'sky-modal-tiled': isTiledBody\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length &lt; 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n [attr.id]=\"modalHeaderId\"\n [ngClass]=\"{\n 'sky-section-heading': modalFullPage\n }\"\n #headerContent\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"modalHeaderId\"\n [attr.id]=\"modalContentId\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#686c73;font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-footer ::ng-deep sky-tabset-nav-button+sky-tabset-nav-button{margin-left:10px}.sky-modal-footer ::ng-deep sky-tabset-nav-button+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-header-buttons sky-icon[icon=close]{font-size:20px}.sky-modal-full-page .sky-modal-content{flex-grow:1}:host ::ng-deep .sky-sectioned-form{min-height:460px;margin:-15px}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent}\n"] }]
183
169
  }], ctorParameters: function () { return [{ type: i1.SkyModalHostService }, { type: i2.SkyModalConfiguration }, { type: i0.ElementRef }, { type: i3.SkyAppWindowRef }, { type: i4.SkyModalComponentAdapterService }, { type: i3.SkyCoreAdapterService }, { type: i3.SkyDockService, decorators: [{
184
170
  type: Host
185
171
  }] }, { type: i3.SkyResizeObserverMediaQueryService, decorators: [{
186
172
  type: Optional
187
- }, {
188
- type: Host
189
173
  }] }]; }, propDecorators: { wrapperClass: [{
190
174
  type: HostBinding,
191
175
  args: ['class']
@@ -203,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
203
187
  type: HostListener,
204
188
  args: ['document:keydown', ['$event']]
205
189
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsa0NBQWtDLEdBQ25DLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7O0FBRWpFLElBQUksd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBRWpDOzs7O0dBSUc7QUFlSCxNQUFNLE9BQU8saUJBQWlCO0lBMEU1QixZQUNVLFdBQWdDLEVBQ2hDLE1BQTZCLEVBQzdCLEtBQWlCLEVBQ2pCLFNBQTBCLEVBQzFCLGdCQUFpRCxFQUNqRCxXQUFrQyxFQUMxQixXQUEyQixFQUduQyxpQkFBc0Q7UUFUdEQsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQXVC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TSxrQkFBa0IsQ0FBQyxJQUFtQztRQUMzRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU8sV0FBVyxDQUFDLFVBQWtCLEVBQUUsSUFBWTtRQUNsRCxPQUFPLFVBQVUsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDO0lBQ3pELENBQUM7OzhHQWhNVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixtUUFUakI7UUFDVCwrQkFBK0I7UUFDL0IsY0FBYztRQUNkO1lBQ0UsT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixRQUFRLEVBQUUsa0NBQWtDO1NBQzdDO0tBQ0Ysd0lBeUV5QyxVQUFVLDZCQ3ZIdEQseWlGQXdGQSxvMklEbERjLENBQUMsc0JBQXNCLENBQUM7MkZBVXpCLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFDRSxXQUFXLGNBR1QsQ0FBQyxzQkFBc0IsQ0FBQyxhQUN6Qjt3QkFDVCwrQkFBK0I7d0JBQy9CLGNBQWM7d0JBQ2Q7NEJBQ0UsT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsUUFBUSxFQUFFLGtDQUFrQzt5QkFDN0M7cUJBQ0Y7OzBCQW1GRSxJQUFJOzswQkFDSixRQUFROzswQkFDUixJQUFJOzRDQWpGSSxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLE9BQU87Z0JBU1QsUUFBUTtzQkFEbEIsS0FBSztnQkFZSyxTQUFTO3NCQURuQixLQUFLO2dCQW9ERSwwQkFBMEI7c0JBRGpDLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQWlCL0MsZUFBZTtzQkFEckIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQm5DLGlCQUFpQjtzQkFEdkIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lBcHBXaW5kb3dSZWYsXG4gIFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgU2t5RG9ja0xvY2F0aW9uLFxuICBTa3lEb2NrU2VydmljZSxcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gIFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU2t5TW9kYWxDb21wb25lbnRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vbW9kYWwtY29tcG9uZW50LWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lNb2RhbENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL21vZGFsLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgU2t5TW9kYWxIb3N0U2VydmljZSB9IGZyb20gJy4vbW9kYWwtaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsU2Nyb2xsU2hhZG93RXZlbnRBcmdzIH0gZnJvbSAnLi9tb2RhbC1zY3JvbGwtc2hhZG93LWV2ZW50LWFyZ3MnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uTW9kYWxTdGF0ZSB9IGZyb20gJy4vbW9kYWwtc3RhdGUtYW5pbWF0aW9uJztcblxubGV0IHNreU1vZGFsVW5pcXVlSWRlbnRpZmllciA9IDA7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBjb21tb24gbG9vay1hbmQtZmVlbCBmb3IgbW9kYWwgY29udGVudCB3aXRoIG9wdGlvbnMgdG8gZGlzcGxheVxuICogYSBjb21tb24gbW9kYWwgaGVhZGVyLCBzcGVjaWZ5IGJvZHkgY29udGVudCwgYW5kIGRpc3BsYXkgYSBjb21tb24gbW9kYWwgZm9vdGVyXG4gKiBhbmQgYnV0dG9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW3NreUFuaW1hdGlvbk1vZGFsU3RhdGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlLFxuICAgIFNreURvY2tTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNreU1lZGlhUXVlcnlTZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2UsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHVibGljIGdldCB3cmFwcGVyQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcud3JhcHBlckNsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBhcmlhUm9sZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuYXJpYVJvbGUgfHwgJ2RpYWxvZyc7XG4gIH1cbiAgcHVibGljIHNldCBhcmlhUm9sZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maWcuYXJpYVJvbGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGlsZWRCb2R5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jb25maWcudGlsZWRCb2R5ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZGFsWkluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLmhvc3RTZXJ2aWNlLmdldE1vZGFsWkluZGV4KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZGFsRnVsbFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmZ1bGxQYWdlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1NtYWxsU2l6ZSgpIHtcbiAgICByZXR1cm4gIXRoaXMubW9kYWxGdWxsUGFnZSAmJiB0aGlzLmlzU2l6ZUVxdWFsKHRoaXMuY29uZmlnLnNpemUsICdzbWFsbCcpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc01lZGl1bVNpemUoKSB7XG4gICAgcmV0dXJuICF0aGlzLm1vZGFsRnVsbFBhZ2UgJiYgISh0aGlzLmlzU21hbGxTaXplIHx8IHRoaXMuaXNMYXJnZVNpemUpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0xhcmdlU2l6ZSgpIHtcbiAgICByZXR1cm4gIXRoaXMubW9kYWxGdWxsUGFnZSAmJiB0aGlzLmlzU2l6ZUVxdWFsKHRoaXMuY29uZmlnLnNpemUsICdsYXJnZScpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1RpbGVkQm9keSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcudGlsZWRCb2R5O1xuICB9XG5cbiAgcHVibGljIGdldCBhcmlhRGVzY3JpYmVkQnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmFyaWFEZXNjcmliZWRCeSB8fCB0aGlzLm1vZGFsQ29udGVudElkO1xuICB9XG5cbiAgcHVibGljIGdldCBhcmlhTGFiZWxsZWRCeSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuYXJpYUxhYmVsbGVkQnkgfHwgdGhpcy5tb2RhbEhlYWRlcklkO1xuICB9XG5cbiAgcHVibGljIGdldCBoZWxwS2V5KCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5oZWxwS2V5O1xuICB9XG5cbiAgcHVibGljIG1vZGFsU3RhdGUgPSAnaW4nO1xuXG4gIHB1YmxpYyBtb2RhbENvbnRlbnRJZDogc3RyaW5nID1cbiAgICAnc2t5LW1vZGFsLWNvbnRlbnQtaWQtJyArIHNreU1vZGFsVW5pcXVlSWRlbnRpZmllci50b1N0cmluZygpO1xuXG4gIHB1YmxpYyBtb2RhbEhlYWRlcklkOiBzdHJpbmcgPVxuICAgICdza3ktbW9kYWwtaGVhZGVyLWlkLScgKyBza3lNb2RhbFVuaXF1ZUlkZW50aWZpZXIudG9TdHJpbmcoKTtcblxuICBwdWJsaWMgc2Nyb2xsU2hhZG93OiBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncztcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnRXcmFwcGVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByaXZhdGUgbW9kYWxDb250ZW50V3JhcHBlckVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBob3N0U2VydmljZTogU2t5TW9kYWxIb3N0U2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogU2t5TW9kYWxDb25maWd1cmF0aW9uLFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB3aW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZixcbiAgICBwcml2YXRlIGNvbXBvbmVudEFkYXB0ZXI6IFNreU1vZGFsQ29tcG9uZW50QWRhcHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb3JlQWRhcHRlcjogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLFxuICAgIEBIb3N0KCkgcHJpdmF0ZSBkb2NrU2VydmljZTogU2t5RG9ja1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASG9zdCgpXG4gICAgcHJpdmF0ZSBtZWRpYVF1ZXJ5U2VydmljZT86IFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2VcbiAgKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRG9jdW1lbnRLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKFNreU1vZGFsSG9zdFNlcnZpY2Uub3Blbk1vZGFsQ291bnQgPiAwKSB7XG4gICAgICBjb25zdCB0b3BNb2RhbCA9IFNreU1vZGFsSG9zdFNlcnZpY2UudG9wTW9kYWw7XG4gICAgICBpZiAodG9wTW9kYWwgJiYgdG9wTW9kYWwgPT09IHRoaXMuaG9zdFNlcnZpY2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09PSAyNykge1xuICAgICAgICAgIC8vIEVzY2FwZSBrZXkgdXBcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMuY2xvc2VCdXR0b25DbGljaygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRvY3VtZW50S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKFNreU1vZGFsSG9zdFNlcnZpY2Uub3Blbk1vZGFsQ291bnQgPiAwKSB7XG4gICAgICBjb25zdCB0b3BNb2RhbCA9IFNreU1vZGFsSG9zdFNlcnZpY2UudG9wTW9kYWw7XG4gICAgICBpZiAodG9wTW9kYWwgJiYgdG9wTW9kYWwgPT09IHRoaXMuaG9zdFNlcnZpY2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09PSA5KSB7XG4gICAgICAgICAgLy8gVGFiIHByZXNzZWRcbiAgICAgICAgICBsZXQgZm9jdXNDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBmb2N1c0VsZW1lbnRMaXN0ID0gdGhpcy5jb3JlQWRhcHRlci5nZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC5zaGlmdEtleSAmJlxuICAgICAgICAgICAgKHRoaXMuY29tcG9uZW50QWRhcHRlci5pc0ZvY3VzSW5GaXJzdEl0ZW0oXG4gICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICBmb2N1c0VsZW1lbnRMaXN0XG4gICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50QWRhcHRlci5pc01vZGFsRm9jdXNlZChldmVudCwgdGhpcy5lbFJlZikpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmb2N1c0NoYW5nZWQgPVxuICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEFkYXB0ZXIuZm9jdXNMYXN0RWxlbWVudChmb2N1c0VsZW1lbnRMaXN0KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgIWV2ZW50LnNoaWZ0S2V5ICYmXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudEFkYXB0ZXIuaXNGb2N1c0luTGFzdEl0ZW0oZXZlbnQsIGZvY3VzRWxlbWVudExpc3QpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmb2N1c0NoYW5nZWQgPVxuICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEFkYXB0ZXIuZm9jdXNGaXJzdEVsZW1lbnQoZm9jdXNFbGVtZW50TGlzdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZvY3VzQ2hhbmdlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2t5TW9kYWxVbmlxdWVJZGVudGlmaWVyKys7XG4gICAgdGhpcy5jb21wb25lbnRBZGFwdGVyLmhhbmRsZVdpbmRvd0NoYW5nZSh0aGlzLmVsUmVmKTtcblxuICAgIC8vIEFkZGluZyBhIHRpbWVvdXQgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvci5cbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MDU2Mjg0NVxuICAgIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50QWRhcHRlci5tb2RhbE9wZW5lZCh0aGlzLmVsUmVmKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZG9ja1NlcnZpY2Uuc2V0RG9ja09wdGlvbnMoe1xuICAgICAgbG9jYXRpb246IFNreURvY2tMb2NhdGlvbi5FbGVtZW50Qm90dG9tLFxuICAgICAgcmVmZXJlbmNlRWw6IHRoaXMubW9kYWxDb250ZW50V3JhcHBlckVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIHpJbmRleDogNSxcbiAgICB9KTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMubWVkaWFRdWVyeVNlcnZpY2UpIHtcbiAgICAgIHRoaXMubWVkaWFRdWVyeVNlcnZpY2Uub2JzZXJ2ZSh0aGlzLm1vZGFsQ29udGVudFdyYXBwZXJFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodGhpcy5tZWRpYVF1ZXJ5U2VydmljZSkge1xuICAgICAgdGhpcy5tZWRpYVF1ZXJ5U2VydmljZS51bm9ic2VydmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGVscEJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMuaG9zdFNlcnZpY2Uub25PcGVuSGVscCh0aGlzLmhlbHBLZXkpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlQnV0dG9uQ2xpY2soKSB7XG4gICAgdGhpcy5ob3N0U2VydmljZS5vbkNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgd2luZG93UmVzaXplKCkge1xuICAgIHRoaXMuY29tcG9uZW50QWRhcHRlci5oYW5kbGVXaW5kb3dDaGFuZ2UodGhpcy5lbFJlZik7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsU2hhZG93Q2hhbmdlKGFyZ3M6IFNreU1vZGFsU2Nyb2xsU2hhZG93RXZlbnRBcmdzKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxTaGFkb3cgPSBhcmdzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NpemVFcXVhbChhY3R1YWxTaXplOiBzdHJpbmcsIHNpemU6IHN0cmluZykge1xuICAgIHJldHVybiBhY3R1YWxTaXplICYmIGFjdHVhbFNpemUudG9Mb3dlckNhc2UoKSA9PT0gc2l6ZTtcbiAgfVxufVxuIiwiPCEtLVxuICBBbmltYXRpb25zIGFyZSBicm9rZW4gaW4gQ2hyb21lIHY1Mi4gQW5ndWxhciAyIFJDNSB3aWxsIGZpeCBpdC5cbiAgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTAyNDVcbi0tPlxuPCEtLTxkaXYgQG1vZGFsU3RhdGU9XCJtb2RhbFN0YXRlXCI+LS0+XG5cbjxkaXZcbiAgY2xhc3M9XCJza3ktbW9kYWwtZGlhbG9nXCJcbiAgYXJpYS1tb2RhbD1cInRydWVcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gIFthdHRyLnJvbGVdPVwiYXJpYVJvbGVcIlxuICAod2luZG93OnJlc2l6ZSk9XCJ3aW5kb3dSZXNpemUoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1tb2RhbCBza3ktc2hhZG93IHNreS1ib3ggc2t5LWVsZXZhdGlvbi0xNlwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1tb2RhbC1mdWxsLXBhZ2UnOiBtb2RhbEZ1bGxQYWdlLFxuICAgICAgJ3NreS1tb2RhbC1zbWFsbCc6IGlzU21hbGxTaXplLFxuICAgICAgJ3NreS1tb2RhbC1tZWRpdW0nOiBpc01lZGl1bVNpemUsXG4gICAgICAnc2t5LW1vZGFsLWxhcmdlJzogaXNMYXJnZVNpemUsXG4gICAgICAnc2t5LW1vZGFsLXRpbGVkJzogaXNUaWxlZEJvZHlcbiAgICB9XCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICB6SW5kZXg6IG1vZGFsWkluZGV4XG4gICAgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1tb2RhbC1oZWFkZXJcIlxuICAgICAgW2hpZGRlbl09XCIhaGVhZGVyQ29udGVudCB8fCAhaGVhZGVyQ29udGVudC5jaGlsZHJlbiB8fCBoZWFkZXJDb250ZW50LmNoaWxkcmVuLmxlbmd0aCAmbHQ7IDFcIlxuICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAnYm94LXNoYWRvdyc6IHNjcm9sbFNoYWRvdz8udG9wU2hhZG93XG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2t5LW1vZGFsLWhlYWRlci1jb250ZW50XCJcbiAgICAgICAgW2F0dHIuaWRdPVwibW9kYWxIZWFkZXJJZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LXNlY3Rpb24taGVhZGluZyc6IG1vZGFsRnVsbFBhZ2VcbiAgICAgICAgfVwiXG4gICAgICAgICNoZWFkZXJDb250ZW50XG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1tb2RhbC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktbW9kYWwtaGVhZGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiaGVscEtleVwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1tb2RhbC1idG4taGVscFwiXG4gICAgICAgICAgbmFtZT1cImhlbHAtYnV0dG9uXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9tb2RhbF9vcGVuX2hlbHAnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGVscEJ1dHRvbkNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJxdWVzdGlvbi1jaXJjbGVcIj48L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1tb2RhbC1idG4tY2xvc2VcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X21vZGFsX2Nsb3NlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlQnV0dG9uQ2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImNsb3NlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1tb2RhbC1jb250ZW50IHNreS1wYWRkaW5nLWV2ZW4tbGFyZ2VcIlxuICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIm1vZGFsSGVhZGVySWRcIlxuICAgICAgW2F0dHIuaWRdPVwibW9kYWxDb250ZW50SWRcIlxuICAgICAgKHNreU1vZGFsU2Nyb2xsU2hhZG93KT1cInNjcm9sbFNoYWRvd0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICNtb2RhbENvbnRlbnRXcmFwcGVyXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LW1vZGFsLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktbW9kYWwtZm9vdGVyXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JveC1zaGFkb3cnOiBzY3JvbGxTaGFkb3c/LmJvdHRvbVNoYWRvd1xuICAgICAgfVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LW1vZGFsLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLGNBQWMsRUFDZCxrQ0FBa0MsR0FDbkMsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7QUFFakUsSUFBSSx3QkFBd0IsR0FBRyxDQUFDLENBQUM7QUFFakM7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyxpQkFBaUI7SUEwRTVCLFlBQ1UsV0FBZ0MsRUFDaEMsTUFBNkIsRUFDN0IsS0FBaUIsRUFDakIsU0FBMEIsRUFDMUIsZ0JBQWlELEVBQ2pELFdBQWtDLEVBQzFCLFdBQTJCLEVBRW5DLGlCQUFzRDtRQVJ0RCxnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUFDN0IsVUFBSyxH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LElBQW1DO1FBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTyxXQUFXLENBQUMsVUFBa0IsRUFBRSxJQUFZO1FBQ2xELE9BQU8sVUFBVSxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUM7SUFDekQsQ0FBQzs7OEdBL0xVLGlCQUFpQjtrR0FBakIsaUJBQWlCLG1RQUZqQixDQUFDLCtCQUErQixFQUFFLGNBQWMsQ0FBQyx3SUF5RWxCLFVBQVUsNkJDL0d0RCx5aUZBd0ZBLG8ySURuRGMsQ0FBQyxzQkFBc0IsQ0FBQzsyRkFHekIsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNFLFdBQVcsY0FHVCxDQUFDLHNCQUFzQixDQUFDLGFBQ3pCLENBQUMsK0JBQStCLEVBQUUsY0FBYyxDQUFDOzswQkFtRnpELElBQUk7OzBCQUNKLFFBQVE7NENBaEZBLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTztnQkFTVCxRQUFRO3NCQURsQixLQUFLO2dCQVlLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBb0RFLDBCQUEwQjtzQkFEakMsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBZ0IvQyxlQUFlO3NCQURyQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCbkMsaUJBQWlCO3NCQUR2QixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUFwcFdpbmRvd1JlZixcbiAgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLFxuICBTa3lEb2NrTG9jYXRpb24sXG4gIFNreURvY2tTZXJ2aWNlLFxuICBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFNreU1vZGFsQ29tcG9uZW50QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL21vZGFsLWNvbXBvbmVudC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9tb2RhbC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFNreU1vZGFsSG9zdFNlcnZpY2UgfSBmcm9tICcuL21vZGFsLWhvc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyB9IGZyb20gJy4vbW9kYWwtc2Nyb2xsLXNoYWRvdy1ldmVudC1hcmdzJztcbmltcG9ydCB7IHNreUFuaW1hdGlvbk1vZGFsU3RhdGUgfSBmcm9tICcuL21vZGFsLXN0YXRlLWFuaW1hdGlvbic7XG5cbmxldCBza3lNb2RhbFVuaXF1ZUlkZW50aWZpZXIgPSAwO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgY29tbW9uIGxvb2stYW5kLWZlZWwgZm9yIG1vZGFsIGNvbnRlbnQgd2l0aCBvcHRpb25zIHRvIGRpc3BsYXlcbiAqIGEgY29tbW9uIG1vZGFsIGhlYWRlciwgc3BlY2lmeSBib2R5IGNvbnRlbnQsIGFuZCBkaXNwbGF5IGEgY29tbW9uIG1vZGFsIGZvb3RlclxuICogYW5kIGJ1dHRvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtza3lBbmltYXRpb25Nb2RhbFN0YXRlXSxcbiAgcHJvdmlkZXJzOiBbU2t5TW9kYWxDb21wb25lbnRBZGFwdGVyU2VydmljZSwgU2t5RG9ja1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwdWJsaWMgZ2V0IHdyYXBwZXJDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy53cmFwcGVyQ2xhc3M7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGFyaWFSb2xlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5hcmlhUm9sZSB8fCAnZGlhbG9nJztcbiAgfVxuICBwdWJsaWMgc2V0IGFyaWFSb2xlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpZy5hcmlhUm9sZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0aWxlZEJvZHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbmZpZy50aWxlZEJvZHkgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kYWxaSW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdFNlcnZpY2UuZ2V0TW9kYWxaSW5kZXgoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kYWxGdWxsUGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZnVsbFBhZ2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU21hbGxTaXplKCkge1xuICAgIHJldHVybiAhdGhpcy5tb2RhbEZ1bGxQYWdlICYmIHRoaXMuaXNTaXplRXF1YWwodGhpcy5jb25maWcuc2l6ZSwgJ3NtYWxsJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTWVkaXVtU2l6ZSgpIHtcbiAgICByZXR1cm4gIXRoaXMubW9kYWxGdWxsUGFnZSAmJiAhKHRoaXMuaXNTbWFsbFNpemUgfHwgdGhpcy5pc0xhcmdlU2l6ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTGFyZ2VTaXplKCkge1xuICAgIHJldHVybiAhdGhpcy5tb2RhbEZ1bGxQYWdlICYmIHRoaXMuaXNTaXplRXF1YWwodGhpcy5jb25maWcuc2l6ZSwgJ2xhcmdlJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVGlsZWRCb2R5KCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy50aWxlZEJvZHk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFyaWFEZXNjcmliZWRCeSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuYXJpYURlc2NyaWJlZEJ5IHx8IHRoaXMubW9kYWxDb250ZW50SWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFyaWFMYWJlbGxlZEJ5KCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5hcmlhTGFiZWxsZWRCeSB8fCB0aGlzLm1vZGFsSGVhZGVySWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhlbHBLZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmhlbHBLZXk7XG4gIH1cblxuICBwdWJsaWMgbW9kYWxTdGF0ZSA9ICdpbic7XG5cbiAgcHVibGljIG1vZGFsQ29udGVudElkOiBzdHJpbmcgPVxuICAgICdza3ktbW9kYWwtY29udGVudC1pZC0nICsgc2t5TW9kYWxVbmlxdWVJZGVudGlmaWVyLnRvU3RyaW5nKCk7XG5cbiAgcHVibGljIG1vZGFsSGVhZGVySWQ6IHN0cmluZyA9XG4gICAgJ3NreS1tb2RhbC1oZWFkZXItaWQtJyArIHNreU1vZGFsVW5pcXVlSWRlbnRpZmllci50b1N0cmluZygpO1xuXG4gIHB1YmxpYyBzY3JvbGxTaGFkb3c6IFNreU1vZGFsU2Nyb2xsU2hhZG93RXZlbnRBcmdzO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudFdyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJpdmF0ZSBtb2RhbENvbnRlbnRXcmFwcGVyRWxlbWVudDogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhvc3RTZXJ2aWNlOiBTa3lNb2RhbEhvc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBTa3lNb2RhbENvbmZpZ3VyYXRpb24sXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmLFxuICAgIHByaXZhdGUgY29tcG9uZW50QWRhcHRlcjogU2t5TW9kYWxDb21wb25lbnRBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNvcmVBZGFwdGVyOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgQEhvc3QoKSBwcml2YXRlIGRvY2tTZXJ2aWNlOiBTa3lEb2NrU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIHByaXZhdGUgbWVkaWFRdWVyeVNlcnZpY2U/OiBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRvY3VtZW50S2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCkge1xuICAgICAgY29uc3QgdG9wTW9kYWwgPSBTa3lNb2RhbEhvc3RTZXJ2aWNlLnRvcE1vZGFsO1xuICAgICAgaWYgKHRvcE1vZGFsICYmIHRvcE1vZGFsID09PSB0aGlzLmhvc3RTZXJ2aWNlKSB7XG4gICAgICAgIGlmIChldmVudC53aGljaCA9PT0gMjcpIHtcbiAgICAgICAgICAvLyBFc2NhcGUga2V5IHVwXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uQ2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Eb2N1bWVudEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCkge1xuICAgICAgY29uc3QgdG9wTW9kYWwgPSBTa3lNb2RhbEhvc3RTZXJ2aWNlLnRvcE1vZGFsO1xuICAgICAgaWYgKHRvcE1vZGFsICYmIHRvcE1vZGFsID09PSB0aGlzLmhvc3RTZXJ2aWNlKSB7XG4gICAgICAgIGlmIChldmVudC53aGljaCA9PT0gOSkge1xuICAgICAgICAgIC8vIFRhYiBwcmVzc2VkXG4gICAgICAgICAgbGV0IGZvY3VzQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgZm9jdXNFbGVtZW50TGlzdCA9IHRoaXMuY29yZUFkYXB0ZXIuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgJiZcbiAgICAgICAgICAgICh0aGlzLmNvbXBvbmVudEFkYXB0ZXIuaXNGb2N1c0luRmlyc3RJdGVtKFxuICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgZm9jdXNFbGVtZW50TGlzdFxuICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEFkYXB0ZXIuaXNNb2RhbEZvY3VzZWQoZXZlbnQsIHRoaXMuZWxSZWYpKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZm9jdXNDaGFuZ2VkID1cbiAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRBZGFwdGVyLmZvY3VzTGFzdEVsZW1lbnQoZm9jdXNFbGVtZW50TGlzdCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICFldmVudC5zaGlmdEtleSAmJlxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRBZGFwdGVyLmlzRm9jdXNJbkxhc3RJdGVtKGV2ZW50LCBmb2N1c0VsZW1lbnRMaXN0KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZm9jdXNDaGFuZ2VkID1cbiAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRBZGFwdGVyLmZvY3VzRmlyc3RFbGVtZW50KGZvY3VzRWxlbWVudExpc3QpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmb2N1c0NoYW5nZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNreU1vZGFsVW5pcXVlSWRlbnRpZmllcisrO1xuICAgIHRoaXMuY29tcG9uZW50QWRhcHRlci5oYW5kbGVXaW5kb3dDaGFuZ2UodGhpcy5lbFJlZik7XG5cbiAgICAvLyBBZGRpbmcgYSB0aW1lb3V0IHRvIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDA1NjI4NDVcbiAgICB0aGlzLndpbmRvd1JlZi5uYXRpdmVXaW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbXBvbmVudEFkYXB0ZXIubW9kYWxPcGVuZWQodGhpcy5lbFJlZik7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRvY2tTZXJ2aWNlLnNldERvY2tPcHRpb25zKHtcbiAgICAgIGxvY2F0aW9uOiBTa3lEb2NrTG9jYXRpb24uRWxlbWVudEJvdHRvbSxcbiAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLm1vZGFsQ29udGVudFdyYXBwZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICB6SW5kZXg6IDUsXG4gICAgfSk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICh0aGlzLm1lZGlhUXVlcnlTZXJ2aWNlKSB7XG4gICAgICB0aGlzLm1lZGlhUXVlcnlTZXJ2aWNlLm9ic2VydmUodGhpcy5tb2RhbENvbnRlbnRXcmFwcGVyRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMubWVkaWFRdWVyeVNlcnZpY2UpIHtcbiAgICAgIHRoaXMubWVkaWFRdWVyeVNlcnZpY2UudW5vYnNlcnZlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhlbHBCdXR0b25DbGljaygpIHtcbiAgICB0aGlzLmhvc3RTZXJ2aWNlLm9uT3BlbkhlbHAodGhpcy5oZWxwS2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMuaG9zdFNlcnZpY2Uub25DbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIHdpbmRvd1Jlc2l6ZSgpIHtcbiAgICB0aGlzLmNvbXBvbmVudEFkYXB0ZXIuaGFuZGxlV2luZG93Q2hhbmdlKHRoaXMuZWxSZWYpO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbFNoYWRvd0NoYW5nZShhcmdzOiBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU2hhZG93ID0gYXJncztcbiAgfVxuXG4gIHByaXZhdGUgaXNTaXplRXF1YWwoYWN0dWFsU2l6ZTogc3RyaW5nLCBzaXplOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYWN0dWFsU2l6ZSAmJiBhY3R1YWxTaXplLnRvTG93ZXJDYXNlKCkgPT09IHNpemU7XG4gIH1cbn1cbiIsIjwhLS1cbiAgQW5pbWF0aW9ucyBhcmUgYnJva2VuIGluIENocm9tZSB2NTIuIEFuZ3VsYXIgMiBSQzUgd2lsbCBmaXggaXQuXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEwMjQ1XG4tLT5cbjwhLS08ZGl2IEBtb2RhbFN0YXRlPVwibW9kYWxTdGF0ZVwiPi0tPlxuXG48ZGl2XG4gIGNsYXNzPVwic2t5LW1vZGFsLWRpYWxvZ1wiXG4gIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnlcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICBbYXR0ci5yb2xlXT1cImFyaWFSb2xlXCJcbiAgKHdpbmRvdzpyZXNpemUpPVwid2luZG93UmVzaXplKClcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktbW9kYWwgc2t5LXNoYWRvdyBza3ktYm94IHNreS1lbGV2YXRpb24tMTZcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktbW9kYWwtZnVsbC1wYWdlJzogbW9kYWxGdWxsUGFnZSxcbiAgICAgICdza3ktbW9kYWwtc21hbGwnOiBpc1NtYWxsU2l6ZSxcbiAgICAgICdza3ktbW9kYWwtbWVkaXVtJzogaXNNZWRpdW1TaXplLFxuICAgICAgJ3NreS1tb2RhbC1sYXJnZSc6IGlzTGFyZ2VTaXplLFxuICAgICAgJ3NreS1tb2RhbC10aWxlZCc6IGlzVGlsZWRCb2R5XG4gICAgfVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgekluZGV4OiBtb2RhbFpJbmRleFxuICAgIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktbW9kYWwtaGVhZGVyXCJcbiAgICAgIFtoaWRkZW5dPVwiIWhlYWRlckNvbnRlbnQgfHwgIWhlYWRlckNvbnRlbnQuY2hpbGRyZW4gfHwgaGVhZGVyQ29udGVudC5jaGlsZHJlbi5sZW5ndGggJmx0OyAxXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JveC1zaGFkb3cnOiBzY3JvbGxTaGFkb3c/LnRvcFNoYWRvd1xuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1tb2RhbC1oZWFkZXItY29udGVudFwiXG4gICAgICAgIFthdHRyLmlkXT1cIm1vZGFsSGVhZGVySWRcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1zZWN0aW9uLWhlYWRpbmcnOiBtb2RhbEZ1bGxQYWdlXG4gICAgICAgIH1cIlxuICAgICAgICAjaGVhZGVyQ29udGVudFxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktbW9kYWwtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LW1vZGFsLWhlYWRlci1idXR0b25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cImhlbHBLZXlcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktbW9kYWwtYnRuLWhlbHBcIlxuICAgICAgICAgIG5hbWU9XCJoZWxwLWJ1dHRvblwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfbW9kYWxfb3Blbl9oZWxwJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImhlbHBCdXR0b25DbGljaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicXVlc3Rpb24tY2lyY2xlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktbW9kYWwtYnRuLWNsb3NlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9tb2RhbF9jbG9zZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZUJ1dHRvbkNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJjbG9zZVwiPjwvc2t5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktbW9kYWwtY29udGVudCBza3ktcGFkZGluZy1ldmVuLWxhcmdlXCJcbiAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJtb2RhbEhlYWRlcklkXCJcbiAgICAgIFthdHRyLmlkXT1cIm1vZGFsQ29udGVudElkXCJcbiAgICAgIChza3lNb2RhbFNjcm9sbFNoYWRvdyk9XCJzY3JvbGxTaGFkb3dDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAjbW9kYWxDb250ZW50V3JhcHBlclxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1tb2RhbC1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LW1vZGFsLWZvb3RlclwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICdib3gtc2hhZG93Jzogc2Nyb2xsU2hhZG93Py5ib3R0b21TaGFkb3dcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1tb2RhbC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=