@acorex/core 5.0.8 → 5.0.14

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 (39) hide show
  1. package/config/tailwind.config.js +146 -215
  2. package/{esm2015/acorex-core.js → esm2020/acorex-core.mjs} +0 -0
  3. package/{esm2015/lib/config/configs.js → esm2020/lib/config/configs.mjs} +0 -0
  4. package/{esm2015/lib/core.module.js → esm2020/lib/core.module.mjs} +4 -4
  5. package/{esm2015/lib/dateTime/datetime.class.js → esm2020/lib/dateTime/datetime.class.mjs} +0 -0
  6. package/{esm2015/lib/dateTime/datetime.module.js → esm2020/lib/dateTime/datetime.module.mjs} +4 -4
  7. package/{esm2015/lib/dateTime/datetime.pipe.js → esm2020/lib/dateTime/datetime.pipe.mjs} +3 -3
  8. package/{esm2015/lib/dateTime/georgian.calendar.js → esm2020/lib/dateTime/georgian.calendar.mjs} +0 -0
  9. package/{esm2015/lib/dateTime/index.js → esm2020/lib/dateTime/index.mjs} +0 -0
  10. package/{esm2015/lib/dateTime/jalali.calendar.js → esm2020/lib/dateTime/jalali.calendar.mjs} +0 -0
  11. package/esm2020/lib/hotkeys/hotkeys.service.mjs +37 -0
  12. package/esm2020/lib/hotkeys/index.mjs +2 -0
  13. package/{esm2015/lib/platform/index.js → esm2020/lib/platform/index.mjs} +0 -0
  14. package/{esm2015/lib/platform/platform.service.js → esm2020/lib/platform/platform.service.mjs} +12 -4
  15. package/{esm2015/lib/translation/index.js → esm2020/lib/translation/index.mjs} +0 -0
  16. package/{esm2015/lib/translation/translation.module.js → esm2020/lib/translation/translation.module.mjs} +4 -4
  17. package/{esm2015/lib/translation/translator.js → esm2020/lib/translation/translator.mjs} +0 -0
  18. package/{esm2015/lib/translation/translator.pipe.js → esm2020/lib/translation/translator.pipe.mjs} +3 -3
  19. package/{esm2015/lib/utils/drawing-util.js → esm2020/lib/utils/drawing-util.mjs} +0 -0
  20. package/{esm2015/lib/utils/index.js → esm2020/lib/utils/index.mjs} +2 -1
  21. package/{esm2015/lib/utils/object-util.js → esm2020/lib/utils/object-util.mjs} +0 -0
  22. package/{esm2015/lib/utils/safe.pipe.js → esm2020/lib/utils/safe.pipe.mjs} +3 -3
  23. package/esm2020/lib/utils/string-util.mjs +21 -0
  24. package/esm2020/public-api.mjs +12 -0
  25. package/fesm2015/acorex-core.mjs +1221 -0
  26. package/fesm2015/acorex-core.mjs.map +1 -0
  27. package/{fesm2015/acorex-core.js → fesm2020/acorex-core.mjs} +90 -27
  28. package/fesm2020/acorex-core.mjs.map +1 -0
  29. package/lib/hotkeys/hotkeys.service.d.ts +17 -0
  30. package/lib/hotkeys/index.d.ts +1 -0
  31. package/lib/platform/platform.service.d.ts +2 -0
  32. package/lib/utils/index.d.ts +1 -0
  33. package/lib/utils/string-util.d.ts +6 -0
  34. package/package.json +19 -6
  35. package/public-api.d.ts +1 -0
  36. package/bundles/acorex-core.umd.js +0 -1320
  37. package/bundles/acorex-core.umd.js.map +0 -1
  38. package/esm2015/public-api.js +0 -11
  39. package/fesm2015/acorex-core.js.map +0 -1
@@ -1,220 +1,150 @@
1
- const { colors } = require("tailwindcss/defaultTheme");
2
- const plugin = require('tailwindcss/plugin')
1
+ const { colors, maxWidth } = require("tailwindcss/defaultTheme");
2
+ const plugin = require('tailwindcss/plugin');
3
+
4
+
5
+ function withOpacityValue(variable) {
6
+ return ({ opacityValue }) => {
7
+ if (opacityValue === undefined) {
8
+ return `rgb(var(${variable}))`
9
+ }
10
+ return `rgb(var(${variable}) / ${opacityValue})`
11
+ }
12
+ }
13
+
3
14
  module.exports = {
4
15
  prefix: 'ax-',
5
- // mode: 'jit',
6
- purge: {
7
- enabled: process.env.WEBPACK_DEV_SERVER === 'true' && process.argv.join(' ').indexOf('build') !== -1,
8
- content: [
9
- "./src/**/*.{html,ts}",
10
- "./projects/**/*.{html,ts}",
11
- "./dist/acorex/**/*.{html,ts}",
12
- ],
13
- safelist: [
14
- /^ax-sm/,
15
- /^ax-md/,
16
- /^ax-lg/,
17
- /^ax-full/,
18
- /^ax-bg-/,
19
- /^ax-text-/,
20
- /^ax-border-/,
21
- /^ax-primary-/,
22
- /^ax-secondary-/,
23
- /^ax-success-/,
24
- /^ax-warning-/,
25
- /^ax-danger-/,
26
- /^ax-info-/,
27
- /^ax-light-/,
28
- /^ax-dark-/,
29
- /^ax-primary/,
30
- /^ax-secondary/,
31
- /^ax-success/,
32
- /^ax-warning/,
33
- /^ax-danger/,
34
- /^ax-info/,
35
- /^ax-light/,
36
- /^ax-dark/,
37
- /^ax-sm/,
38
- /^ax-lg/,
39
- /^ax-full/,
40
- ]
41
- // safelist: [
42
- // 'ax-primary',
43
- // 'ax-primary-fore',
44
- // 'ax-primary-outline',
45
- // 'ax-primary-twotone',
46
- // 'ax-primary-blank',
47
- // 'ax-primary-link',
48
- // 'ax-secondary',
49
- // 'ax-secondary-fore',
50
- // 'ax-secondary-outline',
51
- // 'ax-secondary-twotone',
52
- // 'ax-secondary-blank',
53
- // 'ax-secondary-link',
54
- // 'ax-success',
55
- // 'ax-success-fore',
56
- // 'ax-success-outline',
57
- // 'ax-success-twotone',
58
- // 'ax-success-blank',
59
- // 'ax-success-link',
60
- // 'ax-warning',
61
- // 'ax-warning-fore',
62
- // 'ax-warning-outline',
63
- // 'ax-warning-twotone',
64
- // 'ax-warning-blank',
65
- // 'ax-warning-link',
66
- // 'ax-danger',
67
- // 'ax-danger-fore',
68
- // 'ax-danger-outline',
69
- // 'ax-danger-twotone',
70
- // 'ax-danger-blank',
71
- // 'ax-danger-link',
72
- // 'ax-info',
73
- // 'ax-info-fore',
74
- // 'ax-info-outline',
75
- // 'ax-info-twotone',
76
- // 'ax-info-blank',
77
- // 'ax-info-link',
78
- // 'ax-light',
79
- // 'ax-light-fore',
80
- // 'ax-light-outline',
81
- // 'ax-light-twotone',
82
- // 'ax-light-blank',
83
- // 'ax-light-link',
84
- // 'ax-dark',
85
- // 'ax-dark-fore',
86
- // 'ax-dark-outline',
87
- // 'ax-dark-twotone',
88
- // 'ax-dark-blank',
89
- // 'ax-dark-link',
90
- // 'ax-sm',
91
- // 'ax-lg',
92
- // 'ax-full'
93
- // ]
94
- },
95
- darkMode: "media", // or 'media' or 'class'
16
+ darkMode: 'class',
17
+ //mode: "jit",
18
+ content: [
19
+ "./src/**/*.{html,ts,scss}",
20
+ "./projects/**/*.{html,ts,scss}",
21
+ "./dist/acorex/**/*.{html,ts,scss}",
22
+ ],
23
+ darkMode: "class", // or 'media' or 'class'
96
24
  theme: {
97
- colors: {
98
- transparent: 'transparent',
99
- current: 'currentColor',
100
- black: colors.black,
101
- white: colors.white,
102
- gray: colors.gray,
103
- "primary": {
104
- "DEFAULT": "rgb(var(--ax-color-primary-500))",
105
- "fore": "rgb(var(--ax-color-primary-fore))",
106
- "50": "rgb(var(--ax-color-primary-50))",
107
- "100": "rgb(var(--ax-color-primary-100))",
108
- "200": "rgb(var(--ax-color-primary-200))",
109
- "300": "rgb(var(--ax-color-primary-300))",
110
- "400": "rgb(var(--ax-color-primary-400))",
111
- "500": "rgb(var(--ax-color-primary-500))",
112
- "600": "rgb(var(--ax-color-primary-600))",
113
- "700": "rgb(var(--ax-color-primary-700))",
114
- "800": "rgb(var(--ax-color-primary-800))",
115
- "900": "rgb(var(--ax-color-primary-900))",
116
- },
117
- "secondary": {
118
- "DEFAULT": "rgb(var(--ax-color-secondary-500))",
119
- "fore": "rgb(var(--ax-color-secondary-fore))",
120
- "50": "rgb(var(--ax-color-secondary-50))",
121
- "100": "rgb(var(--ax-color-secondary-100))",
122
- "200": "rgb(var(--ax-color-secondary-200))",
123
- "300": "rgb(var(--ax-color-secondary-300))",
124
- "400": "rgb(var(--ax-color-secondary-400))",
125
- "500": "rgb(var(--ax-color-secondary-500))",
126
- "600": "rgb(var(--ax-color-secondary-600))",
127
- "700": "rgb(var(--ax-color-secondary-700))",
128
- "800": "rgb(var(--ax-color-secondary-800))",
129
- "900": "rgb(var(--ax-color-secondary-900))",
130
- },
131
- "success": {
132
- "DEFAULT": "rgb(var(--ax-color-success-500))",
133
- "fore": "rgb(var(--ax-color-success-fore))",
134
- "50": "rgb(var(--ax-color-success-50))",
135
- "100": "rgb(var(--ax-color-success-100))",
136
- "200": "rgb(var(--ax-color-success-200))",
137
- "300": "rgb(var(--ax-color-success-300))",
138
- "400": "rgb(var(--ax-color-success-400))",
139
- "500": "rgb(var(--ax-color-success-500))",
140
- "600": "rgb(var(--ax-color-success-600))",
141
- "700": "rgb(var(--ax-color-success-700))",
142
- "800": "rgb(var(--ax-color-success-800))",
143
- "900": "rgb(var(--ax-color-success-900))",
144
- },
145
- "danger": {
146
- "DEFAULT": "rgb(var(--ax-color-danger-500))",
147
- "fore": "rgb(var(--ax-color-danger-fore))",
148
- "50": "rgb(var(--ax-color-danger-50))",
149
- "100": "rgb(var(--ax-color-danger-100))",
150
- "200": "rgb(var(--ax-color-danger-200))",
151
- "300": "rgb(var(--ax-color-danger-300))",
152
- "400": "rgb(var(--ax-color-danger-400))",
153
- "500": "rgb(var(--ax-color-danger-500))",
154
- "600": "rgb(var(--ax-color-danger-600))",
155
- "700": "rgb(var(--ax-color-danger-700))",
156
- "800": "rgb(var(--ax-color-danger-800))",
157
- "900": "rgb(var(--ax-color-danger-900))",
158
- },
159
- "warning": {
160
- "DEFAULT": "rgb(var(--ax-color-warning-500))",
161
- "fore": "rgb(var(--ax-color-warning-fore))",
162
- "50": "rgb(var(--ax-color-warning-50))",
163
- "100": "rgb(var(--ax-color-warning-100))",
164
- "200": "rgb(var(--ax-color-warning-200))",
165
- "300": "rgb(var(--ax-color-warning-300))",
166
- "400": "rgb(var(--ax-color-warning-400))",
167
- "500": "rgb(var(--ax-color-warning-500))",
168
- "600": "rgb(var(--ax-color-warning-600))",
169
- "700": "rgb(var(--ax-color-warning-700))",
170
- "800": "rgb(var(--ax-color-warning-800))",
171
- "900": "rgb(var(--ax-color-warning-900))",
172
- },
173
- "info": {
174
- "DEFAULT": "rgb(var(--ax-color-info-500))",
175
- "fore": "rgb(var(--ax-color-info-fore))",
176
- "50": "rgb(var(--ax-color-info-50))",
177
- "100": "rgb(var(--ax-color-info-100))",
178
- "200": "rgb(var(--ax-color-info-200))",
179
- "300": "rgb(var(--ax-color-info-300))",
180
- "400": "rgb(var(--ax-color-info-400))",
181
- "500": "rgb(var(--ax-color-info-500))",
182
- "600": "rgb(var(--ax-color-info-600))",
183
- "700": "rgb(var(--ax-color-info-700))",
184
- "800": "rgb(var(--ax-color-info-800))",
185
- "900": "rgb(var(--ax-color-info-900))",
186
- },
187
- "light": {
188
- "DEFAULT": "rgb(var(--ax-color-light-500))",
189
- "fore": "rgb(var(--ax-color-light-fore))",
190
- "50": "rgb(var(--ax-color-light-50))",
191
- "100": "rgb(var(--ax-color-light-100))",
192
- "200": "rgb(var(--ax-color-light-200))",
193
- "300": "rgb(var(--ax-color-light-300))",
194
- "400": "rgb(var(--ax-color-light-400))",
195
- "500": "rgb(var(--ax-color-light-500))",
196
- "600": "rgb(var(--ax-color-light-600))",
197
- "700": "rgb(var(--ax-color-light-700))",
198
- "800": "rgb(var(--ax-color-light-800))",
199
- "900": "rgb(var(--ax-color-light-900))",
25
+ extend: {
26
+ colors: {
27
+ black: withOpacityValue('--ax-color-black'),
28
+ white: withOpacityValue('--ax-color-white'),
29
+ "default-background": withOpacityValue('--ax-color-default-background'),
30
+ "default-color": withOpacityValue('--ax-color-default-color'),
31
+ "primary": {
32
+ "DEFAULT": withOpacityValue('--ax-color-primary-500'),
33
+ "fore": withOpacityValue('--ax-color-primary-fore'),
34
+ "50": withOpacityValue('--ax-color-primary-50'),
35
+ "100": withOpacityValue('--ax-color-primary-100'),
36
+ "200": withOpacityValue('--ax-color-primary-200'),
37
+ "300": withOpacityValue('--ax-color-primary-300'),
38
+ "400": withOpacityValue('--ax-color-primary-400'),
39
+ "500": withOpacityValue('--ax-color-primary-500'),
40
+ "600": withOpacityValue('--ax-color-primary-600'),
41
+ "700": withOpacityValue('--ax-color-primary-700'),
42
+ "800": withOpacityValue('--ax-color-primary-800'),
43
+ "900": withOpacityValue('--ax-color-primary-900'),
44
+ },
45
+ "secondary": {
46
+ "DEFAULT": withOpacityValue('--ax-color-secondary-500'),
47
+ "fore": withOpacityValue('--ax-color-secondary-fore'),
48
+ "50": withOpacityValue('--ax-color-secondary-50'),
49
+ "100": withOpacityValue('--ax-color-secondary-100'),
50
+ "200": withOpacityValue('--ax-color-secondary-200'),
51
+ "300": withOpacityValue('--ax-color-secondary-300'),
52
+ "400": withOpacityValue('--ax-color-secondary-400'),
53
+ "500": withOpacityValue('--ax-color-secondary-500'),
54
+ "600": withOpacityValue('--ax-color-secondary-600'),
55
+ "700": withOpacityValue('--ax-color-secondary-700'),
56
+ "800": withOpacityValue('--ax-color-secondary-800'),
57
+ "900": withOpacityValue('--ax-color-secondary-900'),
58
+ },
59
+ "success": {
60
+ "DEFAULT": withOpacityValue('--ax-color-success-500'),
61
+ "fore": withOpacityValue('--ax-color-success-fore'),
62
+ "50": withOpacityValue('--ax-color-success-50'),
63
+ "100": withOpacityValue('--ax-color-success-100'),
64
+ "200": withOpacityValue('--ax-color-success-200'),
65
+ "300": withOpacityValue('--ax-color-success-300'),
66
+ "400": withOpacityValue('--ax-color-success-400'),
67
+ "500": withOpacityValue('--ax-color-success-500'),
68
+ "600": withOpacityValue('--ax-color-success-600'),
69
+ "700": withOpacityValue('--ax-color-success-700'),
70
+ "800": withOpacityValue('--ax-color-success-800'),
71
+ "900": withOpacityValue('--ax-color-success-900'),
72
+ },
73
+ "danger": {
74
+ "DEFAULT": withOpacityValue('--ax-color-danger-500'),
75
+ "fore": withOpacityValue('--ax-color-danger-fore'),
76
+ "50": withOpacityValue('--ax-color-danger-50'),
77
+ "100": withOpacityValue('--ax-color-danger-100'),
78
+ "200": withOpacityValue('--ax-color-danger-200'),
79
+ "300": withOpacityValue('--ax-color-danger-300'),
80
+ "400": withOpacityValue('--ax-color-danger-400'),
81
+ "500": withOpacityValue('--ax-color-danger-500'),
82
+ "600": withOpacityValue('--ax-color-danger-600'),
83
+ "700": withOpacityValue('--ax-color-danger-700'),
84
+ "800": withOpacityValue('--ax-color-danger-800'),
85
+ "900": withOpacityValue('--ax-color-danger-900'),
86
+ },
87
+ "warning": {
88
+ "DEFAULT": withOpacityValue('--ax-color-warning-500'),
89
+ "fore": withOpacityValue('--ax-color-warning-fore'),
90
+ "50": withOpacityValue('--ax-color-warning-50'),
91
+ "100": withOpacityValue('--ax-color-warning-100'),
92
+ "200": withOpacityValue('--ax-color-warning-200'),
93
+ "300": withOpacityValue('--ax-color-warning-300'),
94
+ "400": withOpacityValue('--ax-color-warning-400'),
95
+ "500": withOpacityValue('--ax-color-warning-500'),
96
+ "600": withOpacityValue('--ax-color-warning-600'),
97
+ "700": withOpacityValue('--ax-color-warning-700'),
98
+ "800": withOpacityValue('--ax-color-warning-800'),
99
+ "900": withOpacityValue('--ax-color-warning-900'),
100
+ },
101
+ "info": {
102
+ "DEFAULT": withOpacityValue('--ax-color-info-500'),
103
+ "fore": withOpacityValue('--ax-color-info-fore'),
104
+ "50": withOpacityValue('--ax-color-info-50'),
105
+ "100": withOpacityValue('--ax-color-info-100'),
106
+ "200": withOpacityValue('--ax-color-info-200'),
107
+ "300": withOpacityValue('--ax-color-info-300'),
108
+ "400": withOpacityValue('--ax-color-info-400'),
109
+ "500": withOpacityValue('--ax-color-info-500'),
110
+ "600": withOpacityValue('--ax-color-info-600'),
111
+ "700": withOpacityValue('--ax-color-info-700'),
112
+ "800": withOpacityValue('--ax-color-info-800'),
113
+ "900": withOpacityValue('--ax-color-info-900'),
114
+ },
115
+ "light": {
116
+ "DEFAULT": withOpacityValue('--ax-color-light-500'),
117
+ "fore": withOpacityValue('--ax-color-light-fore'),
118
+ "50": withOpacityValue('--ax-color-light-50'),
119
+ "100": withOpacityValue('--ax-color-light-100'),
120
+ "200": withOpacityValue('--ax-color-light-200'),
121
+ "300": withOpacityValue('--ax-color-light-300'),
122
+ "400": withOpacityValue('--ax-color-light-400'),
123
+ "500": withOpacityValue('--ax-color-light-500'),
124
+ "600": withOpacityValue('--ax-color-light-600'),
125
+ "700": withOpacityValue('--ax-color-light-700'),
126
+ "800": withOpacityValue('--ax-color-light-800'),
127
+ "900": withOpacityValue('--ax-color-light-900'),
128
+ },
129
+ "dark": {
130
+ "DEFAULT": withOpacityValue('--ax-color-dark-500'),
131
+ "fore": withOpacityValue('--ax-color-dark-fore'),
132
+ "50": withOpacityValue('--ax-color-dark-50'),
133
+ "100": withOpacityValue('--ax-color-dark-100'),
134
+ "200": withOpacityValue('--ax-color-dark-200'),
135
+ "300": withOpacityValue('--ax-color-dark-300'),
136
+ "400": withOpacityValue('--ax-color-dark-400'),
137
+ "500": withOpacityValue('--ax-color-dark-500'),
138
+ "600": withOpacityValue('--ax-color-dark-600'),
139
+ "700": withOpacityValue('--ax-color-dark-700'),
140
+ "800": withOpacityValue('--ax-color-dark-800'),
141
+ "900": withOpacityValue('--ax-color-dark-900'),
142
+ },
143
+
200
144
  },
201
- "dark": {
202
- "DEFAULT": "rgb(var(--ax-color-dark-500))",
203
- "fore": "rgb(var(--ax-color-dark-fore))",
204
- "50": "rgb(var(--ax-color-dark-50))",
205
- "100": "rgb(var(--ax-color-dark-100))",
206
- "200": "rgb(var(--ax-color-dark-200))",
207
- "300": "rgb(var(--ax-color-dark-300))",
208
- "400": "rgb(var(--ax-color-dark-400))",
209
- "500": "rgb(var(--ax-color-dark-500))",
210
- "600": "rgb(var(--ax-color-dark-600))",
211
- "700": "rgb(var(--ax-color-dark-700))",
212
- "800": "rgb(var(--ax-color-dark-800))",
213
- "900": "rgb(var(--ax-color-dark-900))",
145
+ maxWidth: {
146
+ '8xl': '90rem',
214
147
  },
215
-
216
- },
217
- extend: {
218
148
  keyframes: {
219
149
  fadeIn: {
220
150
  "0%": { opacity: 0 },
@@ -237,9 +167,6 @@ module.exports = {
237
167
  plugins: [
238
168
  plugin(function ({ addUtilities }) {
239
169
  const acorexClasses = {
240
- '.border-default': {
241
- borderColor: " rgb(var(--ax-color-border))"
242
- },
243
170
  '.animate-fast': {
244
171
  animationDuration: '800ms'
245
172
  },
@@ -250,6 +177,10 @@ module.exports = {
250
177
  addUtilities(acorexClasses, ['responsive', 'hover', 'focus'])
251
178
  }),
252
179
  require('tailwind-rtl-utilities'),
180
+ require('tailwindcss/nesting'),
181
+ require('tailwindcss'),
182
+ require('postcss-import'),
183
+ require('autoprefixer')
253
184
  // require('@tailwindcss/aspect-ratio'),
254
185
  // require('@tailwindcss/forms'),
255
186
  // require('@tailwindcss/line-clamp'),
@@ -3,10 +3,10 @@ import { AXSafePipe } from "./utils";
3
3
  import * as i0 from "@angular/core";
4
4
  export class AXCoreModule {
5
5
  }
6
- AXCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- AXCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, declarations: [AXSafePipe], exports: [AXSafePipe] });
8
- AXCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, providers: [], imports: [[]] });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, decorators: [{
6
+ AXCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ AXCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXCoreModule, declarations: [AXSafePipe], exports: [AXSafePipe] });
8
+ AXCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXCoreModule, providers: [], imports: [[]] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXCoreModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [],
@@ -16,10 +16,10 @@ export class AXDateTimeModule {
16
16
  });
17
17
  }
18
18
  }
19
- AXDateTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
- AXDateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], exports: [AXDateTimePipe] });
21
- AXDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, providers: [], imports: [[]] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, decorators: [{
19
+ AXDateTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ AXDateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], exports: [AXDateTimePipe] });
21
+ AXDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimeModule, providers: [], imports: [[]] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimeModule, decorators: [{
23
23
  type: NgModule,
24
24
  args: [{
25
25
  imports: [],
@@ -16,9 +16,9 @@ export class AXDateTimePipe {
16
16
  }
17
17
  }
18
18
  }
19
- AXDateTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
20
- AXDateTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimePipe, name: "axDate" });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimePipe, decorators: [{
19
+ AXDateTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
20
+ AXDateTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimePipe, name: "axDate" });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimePipe, decorators: [{
22
22
  type: Pipe,
23
23
  args: [{ name: 'axDate' }]
24
24
  }], ctorParameters: function () { return []; } });
@@ -0,0 +1,37 @@
1
+ import { DOCUMENT } from "@angular/common";
2
+ import { Inject, Injectable } from "@angular/core";
3
+ import { Observable } from "rxjs/internal/Observable";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/platform-browser";
6
+ export class AXHotkeysService {
7
+ constructor(eventManager, document) {
8
+ this.eventManager = eventManager;
9
+ this.document = document;
10
+ this.defaults = {
11
+ element: this.document
12
+ };
13
+ }
14
+ addShortcut(options) {
15
+ const merged = { ...this.defaults, ...options };
16
+ const event = `keydown.${merged.keys}`;
17
+ return new Observable(observer => {
18
+ const handler = (e) => {
19
+ e.preventDefault();
20
+ observer.next(e);
21
+ };
22
+ const dispose = this.eventManager.addEventListener(merged.element, event, handler);
23
+ return () => {
24
+ dispose();
25
+ };
26
+ });
27
+ }
28
+ }
29
+ AXHotkeysService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXHotkeysService, deps: [{ token: i1.EventManager }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
30
+ AXHotkeysService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXHotkeysService });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXHotkeysService, decorators: [{
32
+ type: Injectable
33
+ }], ctorParameters: function () { return [{ type: i1.EventManager }, { type: Document, decorators: [{
34
+ type: Inject,
35
+ args: [DOCUMENT]
36
+ }] }]; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90a2V5cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi9ob3RrZXlzL2hvdGtleXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFRdEQsTUFBTSxPQUFPLGdCQUFnQjtJQUt6QixZQUFvQixZQUEwQixFQUNoQixRQUFrQjtRQUQ1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTGhELGFBQVEsR0FBcUI7WUFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3pCLENBQUE7SUFJRCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXlCO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDaEQsTUFBTSxLQUFLLEdBQUcsV0FBVyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdkMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNsQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUE7Z0JBQ2xCLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDO1lBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDOUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUNqQyxDQUFDO1lBRUYsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7OzZHQTNCUSxnQkFBZ0IsOENBTWIsUUFBUTtpSEFOWCxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTtxRkFPaUMsUUFBUTswQkFBM0MsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEV2ZW50TWFuYWdlciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9PYnNlcnZhYmxlXCI7XHJcblxyXG50eXBlIE9wdGlvbnMgPSB7XHJcbiAgICBlbGVtZW50OiBhbnk7XHJcbiAgICBrZXlzOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFYSG90a2V5c1NlcnZpY2Uge1xyXG4gICAgZGVmYXVsdHM6IFBhcnRpYWw8T3B0aW9ucz4gPSB7XHJcbiAgICAgICAgZWxlbWVudDogdGhpcy5kb2N1bWVudFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXZlbnRNYW5hZ2VyOiBFdmVudE1hbmFnZXIsXHJcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQpIHtcclxuICAgIH1cclxuXHJcbiAgICBhZGRTaG9ydGN1dChvcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+KSB7XHJcbiAgICAgICAgY29uc3QgbWVyZ2VkID0geyAuLi50aGlzLmRlZmF1bHRzLCAuLi5vcHRpb25zIH07XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBga2V5ZG93bi4ke21lcmdlZC5rZXlzfWA7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGUpO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZGlzcG9zZSA9IHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXHJcbiAgICAgICAgICAgICAgICBtZXJnZWQuZWxlbWVudCwgZXZlbnQsIGhhbmRsZXJcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwb3NlKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './hotkeys.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL2hvdGtleXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaG90a2V5cy5zZXJ2aWNlJyJdfQ==
@@ -107,13 +107,21 @@ export class AXPlatform {
107
107
  is(name) {
108
108
  return PLATFORMS_MAP[name](window) || false;
109
109
  }
110
+ switchDarkMode() {
111
+ const _html = document.getElementsByTagName("html")[0];
112
+ _html.classList.add('ax-dark');
113
+ }
114
+ switchLightMode() {
115
+ const _html = document.getElementsByTagName("html")[0];
116
+ _html.classList.remove('ax-dark');
117
+ }
110
118
  }
111
- AXPlatform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXPlatform, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
112
- AXPlatform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXPlatform, providedIn: 'platform' });
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXPlatform, decorators: [{
119
+ AXPlatform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPlatform, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
120
+ AXPlatform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPlatform, providedIn: 'platform' });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPlatform, decorators: [{
114
122
  type: Injectable,
115
123
  args: [{
116
124
  providedIn: 'platform',
117
125
  }]
118
126
  }], ctorParameters: function () { return []; } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvcGxhdGZvcm0vcGxhdGZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBVS9CLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBVyxFQUFXLEVBQUUsQ0FDdEMsYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUVsQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3ZDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFbkMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFXLEVBQVcsRUFBRSxDQUNwQyxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRWhDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBVyxFQUFXLEVBQUUsQ0FDdEMsYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUVsQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3JDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUUvRCxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3BDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUdsRSxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3pDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FB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LEdBQUcsSUFBSSxLQUFLLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztJQUN6RyxDQUFDO0lBR0QsV0FBVztRQUNQLE9BQU8sTUFBTSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUM5QixDQUFDO0lBRUQsRUFBRSxDQUFDLElBQStDO1FBQzlDLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNoRCxDQUFDOzt1R0FwQlEsVUFBVTsyR0FBVixVQUFVLGNBRlAsVUFBVTsyRkFFYixVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxVQUFVO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcblxyXG5leHBvcnQgdHlwZSBBWFBsYXRmb3JtcyA9ICdBbmRyb2lkJyB8ICdEZXNrdG9wJyB8ICdpT1MnIHwgJ01vYmlsZSc7XHJcbmV4cG9ydCB0eXBlIEFYQnJvd3NlcnMgPSAnQ2hyb21lJyB8ICdTYWZhcmknIHwgJ0VkZ2UnIHwgJ0ZpcmVmb3gnIHwgJ09wZXJhJyB8ICdNU0lFJztcclxuZXhwb3J0IHR5cGUgQVhUZWNobm9sb2dpZXMgPSAnUFdBJyB8ICdIeWJyaWQnIHwgJ0VsZWN0cm9uJztcclxuXHJcblxyXG5cclxuXHJcbmNvbnN0IGlzQ2hyb21lID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PlxyXG4gICAgdGVzdFVzZXJBZ2VudCh3aW4sIC9DaHJvbWUvaSk7XHJcblxyXG5jb25zdCBpc0ZpcmVmb3ggPSAod2luOiBXaW5kb3cpOiBib29sZWFuID0+XHJcbiAgICB0ZXN0VXNlckFnZW50KHdpbiwgL0ZpcmVmb3gvaSk7XHJcblxyXG5jb25zdCBpc0VkZ2UgPSAod2luOiBXaW5kb3cpOiBib29sZWFuID0+XHJcbiAgICB0ZXN0VXNlckFnZW50KHdpbiwgL0VkZ2UvaSk7XHJcblxyXG5jb25zdCBpc1NhZmFyaSA9ICh3aW46IFdpbmRvdyk6IGJvb2xlYW4gPT5cclxuICAgIHRlc3RVc2VyQWdlbnQod2luLCAvU2FmYXJpL2kpO1xyXG5cclxuY29uc3QgaXNPcGVyYSA9ICh3aW46IFdpbmRvdyk6IGJvb2xlYW4gPT5cclxuICAgIHRlc3RVc2VyQWdlbnQod2luLCAvT3BlcmEvaSkgfHwgdGVzdFVzZXJBZ2VudCh3aW4sIC9PUFIvaSk7XHJcblxyXG5jb25zdCBpc01TSUUgPSAod2luOiBXaW5kb3cpOiBib29sZWFuID0+XHJcbiAgICB0ZXN0VXNlckFnZW50KHdpbiwgL01TSUUvaSkgfHwgdGVzdFVzZXJBZ2VudCh3aW4sIC9UcmlkZW50L2kpO1xyXG5cclxuXHJcbmNvbnN0IGlzTW9iaWxlV2ViID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PlxyXG4gICAgaXNNb2JpbGUod2luKSAmJiAhaXNIeWJyaWQod2luKTtcclxuXHJcbmNvbnN0IGlzSXBhZCA9ICh3aW46IFdpbmRvdykgPT4ge1xyXG4gICAgLy8gaU9TIDEyIGFuZCBiZWxvd1xyXG4gICAgaWYgKHRlc3RVc2VyQWdlbnQod2luLCAvaVBhZC9pKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlPUyAxMytcclxuICAgIGlmICh0ZXN0VXNlckFnZW50KHdpbiwgL01hY2ludG9zaC9pKSAmJiBpc01vYmlsZSh3aW4pKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5cclxuY29uc3QgaXNJcGhvbmUgPSAod2luOiBXaW5kb3cpID0+XHJcbiAgICB0ZXN0VXNlckFnZW50KHdpbiwgL2lQaG9uZS9pKTtcclxuXHJcbmNvbnN0IGlzSU9TID0gKHdpbjogV2luZG93KSA9PlxyXG4gICAgdGVzdFVzZXJBZ2VudCh3aW4sIC9pUGhvbmV8aVBvZC9pKSB8fCBpc0lwYWQod2luKTtcclxuXHJcbmNvbnN0IGlzQW5kcm9pZCA9ICh3aW46IFdpbmRvdykgPT5cclxuICAgIHRlc3RVc2VyQWdlbnQod2luLCAvYW5kcm9pZHxzaW5rL2kpO1xyXG5cclxuY29uc3QgaXNBbmRyb2lkVGFibGV0ID0gKHdpbjogV2luZG93KSA9PiB7XHJcbiAgICByZXR1cm4gaXNBbmRyb2lkKHdpbikgJiYgIXRlc3RVc2VyQWdlbnQod2luLCAvbW9iaWxlL2kpO1xyXG59O1xyXG5cclxuY29uc3QgaXNQaGFibGV0ID0gKHdpbjogV2luZG93KSA9PiB7XHJcbiAgICBjb25zdCB3aWR0aCA9IHdpbi5pbm5lcldpZHRoO1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gd2luLmlubmVySGVpZ2h0O1xyXG4gICAgY29uc3Qgc21hbGxlc3QgPSBNYXRoLm1pbih3aWR0aCwgaGVpZ2h0KTtcclxuICAgIGNvbnN0IGxhcmdlc3QgPSBNYXRoLm1heCh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICByZXR1cm4gKHNtYWxsZXN0ID4gMzkwICYmIHNtYWxsZXN0IDwgNTIwKSAmJlxyXG4gICAgICAgIChsYXJnZXN0ID4gNjIwICYmIGxhcmdlc3QgPCA4MDApO1xyXG59O1xyXG5cclxuY29uc3QgaXNUYWJsZXQgPSAod2luOiBXaW5kb3cpID0+IHtcclxuICAgIGNvbnN0IHdpZHRoID0gd2luLmlubmVyV2lkdGg7XHJcbiAgICBjb25zdCBoZWlnaHQgPSB3aW4uaW5uZXJIZWlnaHQ7XHJcbiAgICBjb25zdCBzbWFsbGVzdCA9IE1hdGgubWluKHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgY29uc3QgbGFyZ2VzdCA9IE1hdGgubWF4KHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgaXNJcGFkKHdpbikgfHxcclxuICAgICAgICBpc0FuZHJvaWRUYWJsZXQod2luKSB8fFxyXG4gICAgICAgIChcclxuICAgICAgICAgICAgKHNtYWxsZXN0ID4gNDYwICYmIHNtYWxsZXN0IDwgODIwKSAmJlxyXG4gICAgICAgICAgICAobGFyZ2VzdCA+IDc4MCAmJiBsYXJnZXN0IDwgMTQwMClcclxuICAgICAgICApXHJcbiAgICApO1xyXG59O1xyXG5cclxuY29uc3QgaXNNb2JpbGUgPSAod2luOiBXaW5kb3cpID0+XHJcbiAgICBtYXRjaE1lZGlhKHdpbiwgJyhhbnktcG9pbnRlcjpjb2Fyc2UpJyk7XHJcblxyXG5jb25zdCBpc0Rlc2t0b3AgPSAod2luOiBXaW5kb3cpID0+XHJcbiAgICAhaXNNb2JpbGUod2luKTtcclxuXHJcbmNvbnN0IGlzSHlicmlkID0gKHdpbjogV2luZG93KSA9PlxyXG4gICAgaXNDb3Jkb3ZhKHdpbikgfHwgaXNDYXBhY2l0b3JOYXRpdmUod2luKTtcclxuXHJcbmNvbnN0IGlzQ29yZG92YSA9ICh3aW46IGFueSk6IGJvb2xlYW4gPT5cclxuICAgICEhKHdpblsnY29yZG92YSddIHx8IHdpblsncGhvbmVnYXAnXSB8fCB3aW5bJ1Bob25lR2FwJ10pO1xyXG5cclxuY29uc3QgaXNDYXBhY2l0b3JOYXRpdmUgPSAod2luOiBhbnkpOiBib29sZWFuID0+IHtcclxuICAgIGNvbnN0IGNhcGFjaXRvciA9IHdpblsnQ2FwYWNpdG9yJ107XHJcbiAgICByZXR1cm4gISEoY2FwYWNpdG9yICYmIGNhcGFjaXRvci5pc05hdGl2ZSk7XHJcbn07XHJcblxyXG5jb25zdCBpc0VsZWN0cm9uID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PlxyXG4gICAgdGVzdFVzZXJBZ2VudCh3aW4sIC9lbGVjdHJvbi9pKTtcclxuXHJcbmNvbnN0IGlzUFdBID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PlxyXG4gICAgISEod2luLm1hdGNoTWVkaWEoJyhkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpJykubWF0Y2hlcyB8fCAod2luLm5hdmlnYXRvciBhcyBhbnkpLnN0YW5kYWxvbmUpO1xyXG5cclxuZXhwb3J0IGNvbnN0IHRlc3RVc2VyQWdlbnQgPSAod2luOiBXaW5kb3csIGV4cHI6IFJlZ0V4cCkgPT5cclxuICAgIGV4cHIudGVzdCh3aW4ubmF2aWdhdG9yLnVzZXJBZ2VudCk7XHJcblxyXG5jb25zdCBtYXRjaE1lZGlhID0gKHdpbjogV2luZG93LCBxdWVyeTogc3RyaW5nKTogYm9vbGVhbiA9PlxyXG4gICAgd2luLm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7XHJcblxyXG5cclxuY29uc3QgUExBVEZPUk1TX01BUCA9IHtcclxuICAgICdBbmRyb2lkJzogaXNBbmRyb2lkLFxyXG4gICAgJ2lPUyc6IGlzSU9TLFxyXG4gICAgJ0Rlc2t0b3AnOiBpc0Rlc2t0b3AsXHJcbiAgICAnTW9iaWxlJzogaXNNb2JpbGUsXHJcbiAgICAnQ2hyb21lJzogaXNDaHJvbWUsXHJcbiAgICAnRmlyZWZveCc6IGlzRmlyZWZveCxcclxuICAgICdTYWZhcmknOiBpc1NhZmFyaSxcclxuICAgICdFZGdlJzogaXNFZGdlLFxyXG4gICAgJ09wZXJhJzogaXNPcGVyYSxcclxuICAgICdIeWJyaWQnOiBpc0h5YnJpZCxcclxuICAgICdQV0EnOiBpc1BXQSxcclxuICAgICdFbGVjdHJvbic6IGlzRWxlY3Ryb24sXHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFYUGxhdGZvcm1FdmVudCB7XHJcbiAgICBuYXRpdmVFdmVudDogVUlFdmVudCB8IEV2ZW50O1xyXG4gICAgc291cmNlOiBBWFBsYXRmb3JtXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdwbGF0Zm9ybScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBsYXRmb3JtIHtcclxuICAgIHJlc2l6ZTogU3ViamVjdDxBWFBsYXRmb3JtRXZlbnQ+ID0gbmV3IFN1YmplY3Q8QVhQbGF0Zm9ybUV2ZW50PigpO1xyXG4gICAgY2xpY2s6IFN1YmplY3Q8QVhQbGF0Zm9ybUV2ZW50PiA9IG5ldyBTdWJqZWN0PEFYUGxhdGZvcm1FdmVudD4oKVxyXG4gICAgc2Nyb2xsOiBTdWJqZWN0PEFYUGxhdGZvcm1FdmVudD4gPSBuZXcgU3ViamVjdDxBWFBsYXRmb3JtRXZlbnQ+KClcclxuXHJcbiAgICBpc1J0bCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZG9jdW1lbnQuZGlyID09ICdydGwnIHx8IGRvY3VtZW50LmJvZHkuZGlyID09ICdydGwnIHx8IGRvY3VtZW50LmJvZHkuc3R5bGUuZGlyZWN0aW9uID09ICdydGwnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpc0xhbmRzY2FwZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IDwgd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgaXNQb3J0cmF0ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNMYW5kc2NhcGUoKVxyXG4gICAgfVxyXG5cclxuICAgIGlzKG5hbWU6IEFYUGxhdGZvcm1zIHwgQVhCcm93c2VycyB8IEFYVGVjaG5vbG9naWVzKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIFBMQVRGT1JNU19NQVBbbmFtZV0od2luZG93KSB8fCBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZXNpemUubmV4dCh7XHJcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudDogZSxcclxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpc1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpY2submV4dCh7XHJcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudDogZSxcclxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpc1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LCB0cnVlKVxyXG5cclxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbC5uZXh0KHtcclxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBlLFxyXG4gICAgICAgICAgICAgICAgc291cmNlOiB0aGlzXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIHRydWUpXHJcbiAgICB9XHJcbn0iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvcGxhdGZvcm0vcGxhdGZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBVS9CLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBVyxFQUFXLEVBQUUsQ0FDdEMsYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUVsQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3ZDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFbkMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFXLEVBQVcsRUFBRSxDQUNwQyxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRWhDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBVyxFQUFXLEVBQUUsQ0FDdEMsYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUVsQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3JDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUUvRCxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3BDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUdsRSxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3pDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FB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LEdBQUcsSUFBSSxLQUFLLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztJQUN6RyxDQUFDO0lBR0QsV0FBVztRQUNQLE9BQU8sTUFBTSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUM5QixDQUFDO0lBRUQsRUFBRSxDQUFDLElBQStDO1FBQzlDLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBR0QsY0FBYztRQUNWLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUVsQyxDQUFDO0lBRUQsZUFBZTtRQUNYLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNyQyxDQUFDOzt1R0FoQ1EsVUFBVTsyR0FBVixVQUFVLGNBRlAsVUFBVTsyRkFFYixVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxVQUFVO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcblxyXG5leHBvcnQgdHlwZSBBWFBsYXRmb3JtcyA9ICdBbmRyb2lkJyB8ICdEZXNrdG9wJyB8ICdpT1MnIHwgJ01vYmlsZSc7XHJcbmV4cG9ydCB0eXBlIEFYQnJvd3NlcnMgPSAnQ2hyb21lJyB8ICdTYWZhcmknIHwgJ0VkZ2UnIHwgJ0ZpcmVmb3gnIHwgJ09wZXJhJyB8ICdNU0lFJztcclxuZXhwb3J0IHR5cGUgQVhUZWNobm9sb2dpZXMgPSAnUFdBJyB8ICdIeWJyaWQnIHwgJ0VsZWN0cm9uJztcclxuXHJcblxyXG5cclxuXHJcbmNvbnN0IGlzQ2hyb21lID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PlxyXG4gICAgdGVzdFVzZXJBZ2VudCh3aW4sIC9DaHJvbWUvaSk7XHJcblxyXG5jb25zdCBpc0ZpcmVmb3ggPSAod2luOiBXaW5kb3cpOiBib29sZWFuID0+XHJcbiAgICB0ZXN0VXNlckFnZW50KHdpbiwgL0ZpcmVmb3gvaSk7XHJcblxyXG5jb25zdCBpc0VkZ2UgPSAod2luOiBXaW5kb3cpOiBib29sZWFuID0+XHJcbiAgICB0ZXN0VXNlckFnZW50KHdpbiwgL0VkZ2UvaSk7XHJcblxyXG5jb25zdCBpc1NhZmFyaSA9ICh3aW46IFdpbmRvdyk6IGJvb2xlYW4gPT5cclxuICAgIHRlc3RVc2VyQWdlbnQod2luLCAvU2FmYXJpL2kpO1xyXG5cclxuY29uc3QgaXNPcGVyYSA9ICh3aW46IFdpbmRvdyk6IGJvb2xlYW4gPT5cclxuICAgIHRlc3RVc2VyQWdlbnQod2luLCAvT3BlcmEvaSkgfHwgdGVzdFVzZXJBZ2VudCh3aW4sIC9PUFIvaSk7XHJcblxyXG5jb25zdCBpc01TSUUgPSAod2luOiBXaW5kb3cpOiBib29sZWFuID0+XHJcbiAgICB0ZXN0VXNlckFnZW50KHdpbiwgL01TSUUvaSkgfHwgdGVzdFVzZXJBZ2VudCh3aW4sIC9UcmlkZW50L2kpO1xyXG5cclxuXHJcbmNvbnN0IGlzTW9iaWxlV2ViID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PlxyXG4gICAgaXNNb2JpbGUod2luKSAmJiAhaXNIeWJyaWQod2luKTtcclxuXHJcbmNvbnN0IGlzSXBhZCA9ICh3aW46IFdpbmRvdykgPT4ge1xyXG4gICAgLy8gaU9TIDEyIGFuZCBiZWxvd1xyXG4gICAgaWYgKHRlc3RVc2VyQWdlbnQod2luLCAvaVBhZC9pKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlPUyAxMytcclxuICAgIGlmICh0ZXN0VXNlckFnZW50KHdpbiwgL01hY2ludG9zaC9pKSAmJiBpc01vYmlsZSh3aW4pKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5cclxuY29uc3QgaXNJcGhvbmUgPSAod2luOiBXaW5kb3cpID0+XHJcbiAgICB0ZXN0VXNlckFnZW50KHdpbiwgL2lQaG9uZS9pKTtcclxuXHJcbmNvbnN0IGlzSU9TID0gKHdpbjogV2luZG93KSA9PlxyXG4gICAgdGVzdFVzZXJBZ2VudCh3aW4sIC9pUGhvbmV8aVBvZC9pKSB8fCBpc0lwYWQod2luKTtcclxuXHJcbmNvbnN0IGlzQW5kcm9pZCA9ICh3aW46IFdpbmRvdykgPT5cclxuICAgIHRlc3RVc2VyQWdlbnQod2luLCAvYW5kcm9pZHxzaW5rL2kpO1xyXG5cclxuY29uc3QgaXNBbmRyb2lkVGFibGV0ID0gKHdpbjogV2luZG93KSA9PiB7XHJcbiAgICByZXR1cm4gaXNBbmRyb2lkKHdpbikgJiYgIXRlc3RVc2VyQWdlbnQod2luLCAvbW9iaWxlL2kpO1xyXG59O1xyXG5cclxuY29uc3QgaXNQaGFibGV0ID0gKHdpbjogV2luZG93KSA9PiB7XHJcbiAgICBjb25zdCB3aWR0aCA9IHdpbi5pbm5lcldpZHRoO1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gd2luLmlubmVySGVpZ2h0O1xyXG4gICAgY29uc3Qgc21hbGxlc3QgPSBNYXRoLm1pbih3aWR0aCwgaGVpZ2h0KTtcclxuICAgIGNvbnN0IGxhcmdlc3QgPSBNYXRoLm1heCh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICByZXR1cm4gKHNtYWxsZXN0ID4gMzkwICYmIHNtYWxsZXN0IDwgNTIwKSAmJlxyXG4gICAgICAgIChsYXJnZXN0ID4gNjIwICYmIGxhcmdlc3QgPCA4MDApO1xyXG59O1xyXG5cclxuY29uc3QgaXNUYWJsZXQgPSAod2luOiBXaW5kb3cpID0+IHtcclxuICAgIGNvbnN0IHdpZHRoID0gd2luLmlubmVyV2lkdGg7XHJcbiAgICBjb25zdCBoZWlnaHQgPSB3aW4uaW5uZXJIZWlnaHQ7XHJcbiAgICBjb25zdCBzbWFsbGVzdCA9IE1hdGgubWluKHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgY29uc3QgbGFyZ2VzdCA9IE1hdGgubWF4KHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgaXNJcGFkKHdpbikgfHxcclxuICAgICAgICBpc0FuZHJvaWRUYWJsZXQod2luKSB8fFxyXG4gICAgICAgIChcclxuICAgICAgICAgICAgKHNtYWxsZXN0ID4gNDYwICYmIHNtYWxsZXN0IDwgODIwKSAmJlxyXG4gICAgICAgICAgICAobGFyZ2VzdCA+IDc4MCAmJiBsYXJnZXN0IDwgMTQwMClcclxuICAgICAgICApXHJcbiAgICApO1xyXG59O1xyXG5cclxuY29uc3QgaXNNb2JpbGUgPSAod2luOiBXaW5kb3cpID0+XHJcbiAgICBtYXRjaE1lZGlhKHdpbiwgJyhhbnktcG9pbnRlcjpjb2Fyc2UpJyk7XHJcblxyXG5jb25zdCBpc0Rlc2t0b3AgPSAod2luOiBXaW5kb3cpID0+XHJcbiAgICAhaXNNb2JpbGUod2luKTtcclxuXHJcbmNvbnN0IGlzSHlicmlkID0gKHdpbjogV2luZG93KSA9PlxyXG4gICAgaXNDb3Jkb3ZhKHdpbikgfHwgaXNDYXBhY2l0b3JOYXRpdmUod2luKTtcclxuXHJcbmNvbnN0IGlzQ29yZG92YSA9ICh3aW46IGFueSk6IGJvb2xlYW4gPT5cclxuICAgICEhKHdpblsnY29yZG92YSddIHx8IHdpblsncGhvbmVnYXAnXSB8fCB3aW5bJ1Bob25lR2FwJ10pO1xyXG5cclxuY29uc3QgaXNDYXBhY2l0b3JOYXRpdmUgPSAod2luOiBhbnkpOiBib29sZWFuID0+IHtcclxuICAgIGNvbnN0IGNhcGFjaXRvciA9IHdpblsnQ2FwYWNpdG9yJ107XHJcbiAgICByZXR1cm4gISEoY2FwYWNpdG9yICYmIGNhcGFjaXRvci5pc05hdGl2ZSk7XHJcbn07XHJcblxyXG5jb25zdCBpc0VsZWN0cm9uID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PlxyXG4gICAgdGVzdFVzZXJBZ2VudCh3aW4sIC9lbGVjdHJvbi9pKTtcclxuXHJcbmNvbnN0IGlzUFdBID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PlxyXG4gICAgISEod2luLm1hdGNoTWVkaWEoJyhkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpJykubWF0Y2hlcyB8fCAod2luLm5hdmlnYXRvciBhcyBhbnkpLnN0YW5kYWxvbmUpO1xyXG5cclxuZXhwb3J0IGNvbnN0IHRlc3RVc2VyQWdlbnQgPSAod2luOiBXaW5kb3csIGV4cHI6IFJlZ0V4cCkgPT5cclxuICAgIGV4cHIudGVzdCh3aW4ubmF2aWdhdG9yLnVzZXJBZ2VudCk7XHJcblxyXG5jb25zdCBtYXRjaE1lZGlhID0gKHdpbjogV2luZG93LCBxdWVyeTogc3RyaW5nKTogYm9vbGVhbiA9PlxyXG4gICAgd2luLm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7XHJcblxyXG5cclxuY29uc3QgUExBVEZPUk1TX01BUCA9IHtcclxuICAgICdBbmRyb2lkJzogaXNBbmRyb2lkLFxyXG4gICAgJ2lPUyc6IGlzSU9TLFxyXG4gICAgJ0Rlc2t0b3AnOiBpc0Rlc2t0b3AsXHJcbiAgICAnTW9iaWxlJzogaXNNb2JpbGUsXHJcbiAgICAnQ2hyb21lJzogaXNDaHJvbWUsXHJcbiAgICAnRmlyZWZveCc6IGlzRmlyZWZveCxcclxuICAgICdTYWZhcmknOiBpc1NhZmFyaSxcclxuICAgICdFZGdlJzogaXNFZGdlLFxyXG4gICAgJ09wZXJhJzogaXNPcGVyYSxcclxuICAgICdIeWJyaWQnOiBpc0h5YnJpZCxcclxuICAgICdQV0EnOiBpc1BXQSxcclxuICAgICdFbGVjdHJvbic6IGlzRWxlY3Ryb24sXHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFYUGxhdGZvcm1FdmVudCB7XHJcbiAgICBuYXRpdmVFdmVudDogVUlFdmVudCB8IEV2ZW50O1xyXG4gICAgc291cmNlOiBBWFBsYXRmb3JtXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdwbGF0Zm9ybScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBsYXRmb3JtIHtcclxuICAgIHJlc2l6ZTogU3ViamVjdDxBWFBsYXRmb3JtRXZlbnQ+ID0gbmV3IFN1YmplY3Q8QVhQbGF0Zm9ybUV2ZW50PigpO1xyXG4gICAgY2xpY2s6IFN1YmplY3Q8QVhQbGF0Zm9ybUV2ZW50PiA9IG5ldyBTdWJqZWN0PEFYUGxhdGZvcm1FdmVudD4oKVxyXG4gICAgc2Nyb2xsOiBTdWJqZWN0PEFYUGxhdGZvcm1FdmVudD4gPSBuZXcgU3ViamVjdDxBWFBsYXRmb3JtRXZlbnQ+KClcclxuXHJcbiAgICBpc1J0bCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZG9jdW1lbnQuZGlyID09ICdydGwnIHx8IGRvY3VtZW50LmJvZHkuZGlyID09ICdydGwnIHx8IGRvY3VtZW50LmJvZHkuc3R5bGUuZGlyZWN0aW9uID09ICdydGwnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpc0xhbmRzY2FwZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IDwgd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgaXNQb3J0cmF0ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNMYW5kc2NhcGUoKVxyXG4gICAgfVxyXG5cclxuICAgIGlzKG5hbWU6IEFYUGxhdGZvcm1zIHwgQVhCcm93c2VycyB8IEFYVGVjaG5vbG9naWVzKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIFBMQVRGT1JNU19NQVBbbmFtZV0od2luZG93KSB8fCBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3dpdGNoRGFya01vZGUoKSB7XHJcbiAgICAgICAgY29uc3QgX2h0bWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImh0bWxcIilbMF07XHJcbiAgICAgICAgX2h0bWwuY2xhc3NMaXN0LmFkZCgnYXgtZGFyaycpXHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaExpZ2h0TW9kZSgpIHtcclxuICAgICAgICBjb25zdCBfaHRtbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaHRtbFwiKVswXTtcclxuICAgICAgICBfaHRtbC5jbGFzc0xpc3QucmVtb3ZlKCdheC1kYXJrJylcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZXNpemUubmV4dCh7XHJcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudDogZSxcclxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpc1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpY2submV4dCh7XHJcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudDogZSxcclxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpc1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LCB0cnVlKVxyXG5cclxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbC5uZXh0KHtcclxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBlLFxyXG4gICAgICAgICAgICAgICAgc291cmNlOiB0aGlzXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIHRydWUpXHJcbiAgICB9XHJcbn0iXX0=