@worktile/theia 13.0.1 → 13.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/components/color-select/color-select.component.scss +11 -8
  2. package/components/column-resize/column-resize.scss +6 -4
  3. package/components/inline-toolbar/inline-toolbar.component.scss +7 -4
  4. package/components/table-select/table-select.component.scss +7 -5
  5. package/components/toolbar/toolbar.component.d.ts +3 -2
  6. package/components/toolbar/toolbar.component.scss +17 -16
  7. package/components/toolbar-dropdown/toolbar-dropdown.component.scss +18 -27
  8. package/components/toolbar-group/toolbar-group.component.scss +5 -3
  9. package/editor.module.d.ts +58 -58
  10. package/esm2020/components/color-select/color-select.component.mjs +1 -1
  11. package/esm2020/components/contextmenu/contextmenu.component.mjs +5 -5
  12. package/esm2020/components/conversion-hint/conversion-hint.component.mjs +1 -1
  13. package/esm2020/components/toolbar/toolbar.component.mjs +30 -15
  14. package/esm2020/components/toolbar-dropdown/toolbar-dropdown.component.mjs +5 -5
  15. package/esm2020/components/toolbar-group/toolbar-group.component.mjs +4 -4
  16. package/esm2020/components/toolbar-item/toolbar-item.component.mjs +11 -9
  17. package/esm2020/core/toolbar-item/base-toolbar-item.mjs +2 -2
  18. package/esm2020/editor.module.mjs +12 -9
  19. package/esm2020/plugins/code/code.component.mjs +7 -7
  20. package/esm2020/plugins/color/color.editor.mjs +2 -2
  21. package/esm2020/plugins/color/toolbar-item.component.mjs +9 -9
  22. package/esm2020/plugins/image/image.component.mjs +7 -6
  23. package/esm2020/plugins/quick-insert/components/quick-insert.component.mjs +1 -1
  24. package/esm2020/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.mjs +4 -4
  25. package/esm2020/plugins/table/components/toolbar/table-options.component.mjs +15 -15
  26. package/esm2020/plugins/table/components/toolbar/table-toolbar.component.mjs +9 -7
  27. package/esm2020/plugins/table/toolbar-item.component.mjs +11 -9
  28. package/esm2020/plugins/vertical-align/toolbar-item.component.mjs +7 -7
  29. package/fesm2015/worktile-theia.mjs +114 -120
  30. package/fesm2015/worktile-theia.mjs.map +1 -1
  31. package/fesm2020/worktile-theia.mjs +114 -120
  32. package/fesm2020/worktile-theia.mjs.map +1 -1
  33. package/package.json +1 -1
  34. package/plugins/code/code.component.scss +16 -23
  35. package/plugins/font-size/toolbar-item.component.scss +1 -4
  36. package/plugins/image/image.component.scss +15 -13
  37. package/plugins/inline-code/inline-code.component.scss +4 -2
  38. package/plugins/link/link.component.scss +5 -3
  39. package/plugins/quick-insert/components/quick-insert.component.scss +4 -2
  40. package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.scss +4 -2
  41. package/plugins/table/components/table.component.scss +34 -42
  42. package/styles/editor.scss +15 -92
  43. package/styles/index.scss +29 -21
  44. package/styles/mixins.scss +76 -0
  45. package/styles/typo.scss +33 -54
  46. package/styles/variables.scss +21 -0
  47. package/components/nav-split-line/nav-split-line.component.d.ts +0 -13
  48. package/esm2020/components/nav-split-line/nav-split-line.component.mjs +0 -37
package/styles/index.scss CHANGED
@@ -1,21 +1,29 @@
1
- @import 'ngx-tethys/styles/variables.scss';
2
- @import './typo.scss';
3
- @import './editor.scss';
4
- @import '../plugins/image/image.component.scss';
5
- @import '../plugins/todo-item/todo-item.component.scss';
6
- @import '../components/toolbar-dropdown/toolbar-dropdown.component.scss';
7
- @import '../components/toolbar-group/toolbar-group.component.scss';
8
- @import '../components/toolbar/toolbar.component.scss';
9
- @import '../components/color-select/color-select.component.scss';
10
- @import '../plugins/code/code.component.scss';
11
- @import '../plugins/link/link.component.scss';
12
- @import '../components/column-resize/column-resize.scss';
13
- @import '../plugins/table/components/table.component.scss';
14
- @import '../components/table-select/table-select.component.scss';
15
- @import '../components/conversion-hint/conversion-hint.component.scss';
16
- @import '../plugins/vertical-align/vertical-align.scss';
17
- @import '../components/inline-toolbar/inline-toolbar.component.scss';
18
- @import '../plugins/quick-insert/components/quick-insert.component.scss';
19
- @import '../plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.scss';
20
- @import '../plugins/font-size/toolbar-item.component.scss';
21
- @import '../plugins/inline-code/inline-code.component.scss';
1
+ @use 'ngx-tethys/styles/variables.scss';
2
+ @use './variables.scss' as theVariables;
3
+ @use './mixins.scss' as mixins;
4
+ @use 'ngx-tethys/styles/index.scss' as tethys;
5
+ @use 'ng-codemirror/index.scss' as codemirror;
6
+
7
+ @forward 'ngx-tethys/styles/variables.scss';
8
+ @forward 'ngx-tethys/styles/basic.scss';
9
+
10
+ @forward './typo.scss';
11
+ @forward './editor.scss';
12
+ @forward '../plugins/image/image.component.scss';
13
+ @forward '../plugins/todo-item/todo-item.component.scss';
14
+ @forward '../components/toolbar-dropdown/toolbar-dropdown.component.scss';
15
+ @forward '../components/toolbar-group/toolbar-group.component.scss';
16
+ @forward '../components/toolbar/toolbar.component.scss';
17
+ @forward '../components/color-select/color-select.component.scss';
18
+ @forward '../plugins/code/code.component.scss';
19
+ @forward '../plugins/link/link.component.scss';
20
+ @forward '../components/column-resize/column-resize.scss';
21
+ @forward '../plugins/table/components/table.component.scss';
22
+ @forward '../components/table-select/table-select.component.scss';
23
+ @forward '../components/conversion-hint/conversion-hint.component.scss';
24
+ @forward '../plugins/vertical-align/vertical-align.scss';
25
+ @forward '../components/inline-toolbar/inline-toolbar.component.scss';
26
+ @forward '../plugins/quick-insert/components/quick-insert.component.scss';
27
+ @forward '../plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.scss';
28
+ @forward '../plugins/font-size/toolbar-item.component.scss';
29
+ @forward '../plugins/inline-code/inline-code.component.scss';
@@ -0,0 +1,76 @@
1
+ @use 'ngx-tethys/styles/variables.scss';
2
+ @use './variables.scss' as theVariables;
3
+
4
+ @mixin remove-link-hover {
5
+ color: variables.$danger;
6
+ background: hsla(0,100%,73%,.1);
7
+ }
8
+
9
+ @mixin controlSelected {
10
+ background-color: rgba($color: variables.$primary, $alpha: 0.6);
11
+ border-color: variables.$primary;
12
+ }
13
+
14
+ @mixin controlDangerous {
15
+ background-color: rgba($color: variables.$danger, $alpha: 0.6);
16
+ border-color: variables.$danger;
17
+ }
18
+
19
+ @mixin the-custom-action() {
20
+ .thy-action {
21
+ position: relative;
22
+ cursor: pointer;
23
+
24
+ &:not(:last-child) {
25
+ margin-right: theVariables.$thy-action-margin-right;
26
+ }
27
+ }
28
+ }
29
+
30
+ @mixin the-action-disabled {
31
+ .thy-action {
32
+ &.disabled {
33
+ cursor: not-allowed;
34
+ color: variables.$gray-400;
35
+
36
+ &:hover {
37
+ background: transparent;
38
+ border-radius: unset;
39
+ }
40
+ }
41
+ }
42
+ }
43
+
44
+ @mixin the-toolbar-disabled {
45
+ &.disabled {
46
+ cursor: not-allowed;
47
+ opacity: 0.25;
48
+
49
+ .thy-action {
50
+ pointer-events: none;
51
+ }
52
+ }
53
+ }
54
+
55
+ @mixin the-toolbar-layout {
56
+ position: absolute;
57
+ padding: 5px 10px;
58
+ background: variables.$white;
59
+ box-shadow: variables.$box-shadow;
60
+ }
61
+
62
+ @mixin the-toolbar-active {
63
+ .thy-action.thy-popover-origin-active,
64
+ .the-toolbar-dropdown-container.thy-popover-origin-active .thy-action {
65
+ color: variables.$primary;
66
+ background: rgba(variables.$primary, 0.1);
67
+ border-radius: 0.25rem;
68
+ visibility: visible !important;
69
+ }
70
+ }
71
+
72
+ @mixin the-toolbar-divider-spacing {
73
+ & + .thy-divider {
74
+ margin-left: #{theVariables.$thy-action-margin-right} !important;
75
+ }
76
+ }
package/styles/typo.scss CHANGED
@@ -1,32 +1,11 @@
1
1
  @use 'sass:math';
2
-
3
- $default-text-space: 10px; // text white space 18(distance between paragrahp) - 8(block margin)
4
- $headline-one-size: 28px;
5
- $headline-two-size: 24px;
6
- $headline-three-size: 20px;
7
- $headline-four-size: 18px;
8
- $headline-five-size: 16px;
9
- $headline-one-lineHeight: 40px;
10
- $headline-two-lineHeight: 38px;
11
- $headline-three-lineHeight: 34px;
12
- $headline-four-lineHeight: 30px;
13
- $headline-five-lineHeight: 28px;
14
- $headline-six-lineHeight: 26px;
15
- $the-font-size-base: 14px;
16
- $block-mb: 8px;
17
- $block-line-heith: 24px;
18
- $nav-item-margin: 5px;
19
- $selection-background: rgba($color: $primary, $alpha: 0.3);
20
- $font-size-line-height: 1.5;
21
-
22
- @mixin remove-link-hover {
23
- color: $danger;
24
- background: hsla(0,100%,73%,.1);
25
- }
2
+ @use 'ngx-tethys/styles/variables.scss';
3
+ @use './variables.scss' as theVariables;
4
+ @use './mixins.scss' as mixins;
26
5
 
27
6
  .the-editor-typo {
28
7
  display: flow-root;
29
- font-size: $the-font-size-base;
8
+ font-size: theVariables.$the-font-size-base;
30
9
  min-height: 250px;
31
10
  padding: 28px 30px;
32
11
  word-break: break-all;
@@ -40,28 +19,28 @@ $font-size-line-height: 1.5;
40
19
  font-weight: bold;
41
20
  }
42
21
  h1 {
43
- line-height: $headline-one-lineHeight;
44
- font-size: $headline-one-size;
22
+ line-height: theVariables.$headline-one-lineHeight;
23
+ font-size: theVariables.$headline-one-size;
45
24
  }
46
25
  h2 {
47
- line-height: $headline-two-lineHeight;
48
- font-size: $headline-two-size;
26
+ line-height: theVariables.$headline-two-lineHeight;
27
+ font-size: theVariables.$headline-two-size;
49
28
  }
50
29
  h3 {
51
- line-height: $headline-three-lineHeight;
52
- font-size: $headline-three-size;
30
+ line-height: theVariables.$headline-three-lineHeight;
31
+ font-size: theVariables.$headline-three-size;
53
32
  }
54
33
  h4 {
55
- line-height: $headline-four-lineHeight;
56
- font-size: $headline-four-size;
34
+ line-height: theVariables.$headline-four-lineHeight;
35
+ font-size: theVariables.$headline-four-size;
57
36
  }
58
37
  h5 {
59
- line-height: $headline-five-lineHeight;
60
- font-size: $headline-five-size;
38
+ line-height: theVariables.$headline-five-lineHeight;
39
+ font-size: theVariables.$headline-five-size;
61
40
  }
62
41
  h6 {
63
- line-height: $headline-six-lineHeight;
64
- font-size: $the-font-size-base;
42
+ line-height: theVariables.$headline-six-lineHeight;
43
+ font-size: theVariables.$the-font-size-base;
65
44
  }
66
45
  // margin
67
46
  ul,
@@ -71,7 +50,7 @@ $font-size-line-height: 1.5;
71
50
  padding: 0;
72
51
  li {
73
52
  margin-left: 2em;
74
- margin-bottom: math.div($block-mb, 2);
53
+ margin-bottom: math.div(theVariables.$block-mb, 2);
75
54
  &:last-child {
76
55
  margin-bottom: 0;
77
56
  }
@@ -80,9 +59,9 @@ $font-size-line-height: 1.5;
80
59
  blockquote {
81
60
  margin-left: 0;
82
61
  margin-right: 0;
83
- color: $gray-600;
62
+ color: variables.$gray-600;
84
63
  padding-left: 10px !important;
85
- border-left: 4px solid $gray-200;
64
+ border-left: 4px solid variables.$gray-200;
86
65
  }
87
66
  .the-hr {
88
67
  border: 1px solid transparent;
@@ -92,7 +71,7 @@ $font-size-line-height: 1.5;
92
71
  hr {
93
72
  box-sizing: border-box;
94
73
  width: 100%;
95
- border-top: 1px solid $gray-200;
74
+ border-top: 1px solid variables.$gray-200;
96
75
  padding: 0;
97
76
  margin: 0;
98
77
  }
@@ -108,7 +87,7 @@ $font-size-line-height: 1.5;
108
87
  code {
109
88
  margin: 0 4px;
110
89
  padding: 2px 3px;
111
- border: 1px solid $gray-300;
90
+ border: 1px solid variables.$gray-300;
112
91
  border-radius: 2px;
113
92
  font-family: monospace;
114
93
  font-size: inherit;
@@ -116,7 +95,7 @@ $font-size-line-height: 1.5;
116
95
  line-height: inherit;
117
96
  word-wrap: break-word;
118
97
  text-indent: 0;
119
- color: $gray-700;
98
+ color: variables.$gray-700;
120
99
  }
121
100
  .slate-element-hr{
122
101
  display: block;
@@ -125,12 +104,12 @@ $font-size-line-height: 1.5;
125
104
  .slate-element-code,
126
105
  .slate-element-image,
127
106
  .slate-element-block-quote {
128
- padding: math.div($default-text-space, 2) 0;
107
+ padding: math.div(theVariables.$default-text-space, 2) 0;
129
108
  }
130
109
  .slate-block-card {
131
110
  .card-left,
132
111
  .card-right {
133
- bottom: math.div($default-text-space, 2);
112
+ bottom: math.div(theVariables.$default-text-space, 2);
134
113
  line-height: 17px; // cursor default height
135
114
  }
136
115
  &.slate-block-card-table {
@@ -148,30 +127,30 @@ $font-size-line-height: 1.5;
148
127
  }
149
128
  .slate-element-table-content,
150
129
  .slate-element-paragraph {
151
- line-height: $block-line-heith;
130
+ line-height: theVariables.$block-line-heith;
152
131
  }
153
132
  & .slate-block:not(:last-child),
154
133
  & .slate-block-card:not(:last-child) {
155
- margin-bottom: $block-mb;
134
+ margin-bottom: theVariables.$block-mb;
156
135
  }
157
136
  .CodeMirror-focused .CodeMirror-selected {
158
- background: $selection-background;
137
+ background: theVariables.$selection-background;
159
138
  }
160
139
  ::-moz-selection {
161
140
  /* Code for Firefox */
162
- background: $selection-background;
141
+ background: theVariables.$selection-background;
163
142
  }
164
143
  ::selection {
165
- background: $selection-background;
144
+ background: theVariables.$selection-background;
166
145
  }
167
- .thy-icon-nav .thy-icon-nav-link {
168
- margin-right: 5px;
146
+ .thy-action {
147
+ margin-right: theVariables.$thy-action-margin-right;
169
148
  &:last-child {
170
149
  margin-right: 0;
171
150
  }
172
151
  }
173
- .remove-link.thy-icon-nav-link:hover {
174
- @include remove-link-hover();
152
+ .remove-link.thy-action:hover {
153
+ @include mixins.remove-link-hover();
175
154
  }
176
155
 
177
156
  // 处理 block-card 图文混排
@@ -0,0 +1,21 @@
1
+ @use 'ngx-tethys/styles/variables.scss';
2
+
3
+ $default-text-space: 10px; // text white space 18(distance between paragrahp) - 8(block margin)
4
+ $headline-one-size: 28px;
5
+ $headline-two-size: 24px;
6
+ $headline-three-size: 20px;
7
+ $headline-four-size: 18px;
8
+ $headline-five-size: 16px;
9
+ $headline-one-lineHeight: 40px;
10
+ $headline-two-lineHeight: 38px;
11
+ $headline-three-lineHeight: 34px;
12
+ $headline-four-lineHeight: 30px;
13
+ $headline-five-lineHeight: 28px;
14
+ $headline-six-lineHeight: 26px;
15
+ $the-font-size-base: 14px;
16
+ $block-mb: 8px;
17
+ $block-line-heith: 24px;
18
+ $nav-item-margin: 5px;
19
+ $selection-background: rgba($color: variables.$primary, $alpha: 0.3);
20
+ $font-size-line-height: 1.5;
21
+ $thy-action-margin-right: 4px;
@@ -1,13 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { ToolbarItemMode } from '../../constants/toolbar';
3
- import * as i0 from "@angular/core";
4
- export declare class NavSplitLineComponent implements OnInit {
5
- mode: ToolbarItemMode;
6
- theNavSplitLine: boolean;
7
- get horizontal(): boolean;
8
- get vertical(): boolean;
9
- constructor();
10
- ngOnInit(): void;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<NavSplitLineComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<NavSplitLineComponent, "nav-split-line", never, { "mode": "mode"; }, {}, never, never>;
13
- }
@@ -1,37 +0,0 @@
1
- import { Component, HostBinding, Input } from '@angular/core';
2
- import { ToolbarItemMode } from '../../constants/toolbar';
3
- import * as i0 from "@angular/core";
4
- export class NavSplitLineComponent {
5
- constructor() {
6
- this.mode = ToolbarItemMode.vertical;
7
- this.theNavSplitLine = true;
8
- }
9
- get horizontal() {
10
- return this.mode === ToolbarItemMode.horizontal;
11
- }
12
- get vertical() {
13
- return this.mode === ToolbarItemMode.vertical;
14
- }
15
- ngOnInit() { }
16
- }
17
- NavSplitLineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NavSplitLineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- NavSplitLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: NavSplitLineComponent, selector: "nav-split-line", inputs: { mode: "mode" }, host: { properties: { "class.the-nav-split-line": "this.theNavSplitLine", "class.horizontal": "this.horizontal", "class.vertical": "this.vertical" } }, ngImport: i0, template: '', isInline: true });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NavSplitLineComponent, decorators: [{
20
- type: Component,
21
- args: [{
22
- selector: 'nav-split-line',
23
- template: ''
24
- }]
25
- }], ctorParameters: function () { return []; }, propDecorators: { mode: [{
26
- type: Input
27
- }], theNavSplitLine: [{
28
- type: HostBinding,
29
- args: ['class.the-nav-split-line']
30
- }], horizontal: [{
31
- type: HostBinding,
32
- args: ['class.horizontal']
33
- }], vertical: [{
34
- type: HostBinding,
35
- args: ['class.vertical']
36
- }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNwbGl0LWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvbmF2LXNwbGl0LWxpbmUvbmF2LXNwbGl0LWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTTFELE1BQU0sT0FBTyxxQkFBcUI7SUFjOUI7UUFiUyxTQUFJLEdBQW9CLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFHMUQsb0JBQWUsR0FBRyxJQUFJLENBQUM7SUFVUixDQUFDO0lBUmhCLElBQXFDLFVBQVU7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQW1DLFFBQVE7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUlELFFBQVEsS0FBVSxDQUFDOztrSEFoQlYscUJBQXFCO3NHQUFyQixxQkFBcUIsd09BRnBCLEVBQUU7MkZBRUgscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzBFQUVZLElBQUk7c0JBQVosS0FBSztnQkFHTixlQUFlO3NCQURkLFdBQVc7dUJBQUMsMEJBQTBCO2dCQUdGLFVBQVU7c0JBQTlDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUlJLFFBQVE7c0JBQTFDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbGJhckl0ZW1Nb2RlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3Rvb2xiYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdi1zcGxpdC1saW5lJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgTmF2U3BsaXRMaW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBtb2RlOiBUb29sYmFySXRlbU1vZGUgPSBUb29sYmFySXRlbU1vZGUudmVydGljYWw7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoZS1uYXYtc3BsaXQtbGluZScpXG4gICAgdGhlTmF2U3BsaXRMaW5lID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaG9yaXpvbnRhbCcpIGdldCBob3Jpem9udGFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSBUb29sYmFySXRlbU1vZGUuaG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZlcnRpY2FsJykgZ2V0IHZlcnRpY2FsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSBUb29sYmFySXRlbU1vZGUudmVydGljYWw7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxufVxuIl19