@rlucan/ui 14.2.5 → 14.2.6
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.
- package/{esm2020 → esm2022}/lib/action-button/action-button.component.mjs +99 -99
- package/esm2022/lib/action-icon/action-icon.component.mjs +37 -0
- package/esm2022/lib/autocomplete/autocomplete.component.mjs +391 -0
- package/esm2022/lib/avatar/avatar.component.mjs +34 -0
- package/esm2022/lib/button/button.component.mjs +57 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/checkbox-group/checkbox-group.component.mjs +91 -91
- package/esm2022/lib/currency/currency.component.mjs +151 -0
- package/esm2022/lib/date/date.component.mjs +68 -0
- package/{esm2020 → esm2022}/lib/dialog/dialog.component.mjs +37 -37
- package/esm2022/lib/directives/force-visibility/force-visibility.directive.mjs +104 -0
- package/esm2022/lib/editor/editor.component.mjs +119 -0
- package/{esm2020 → esm2022}/lib/elements/burger/burger.component.mjs +21 -21
- package/{esm2020 → esm2022}/lib/elements/expander/expander.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/elements/validation-message/validation-message.component.mjs +47 -47
- package/esm2022/lib/file/file.component.mjs +145 -0
- package/esm2022/lib/file-uploader/ui-file-uploader.component.mjs +405 -0
- package/esm2022/lib/input/input.component.mjs +265 -0
- package/esm2022/lib/input-autocomplete/input-autocomplete.component.mjs +277 -0
- package/esm2022/lib/layouts/base/ui-base-layout.component.mjs +22 -0
- package/esm2022/lib/layouts/base/ui-base.component.mjs +74 -0
- package/esm2022/lib/layouts/simple/ui-simple-layout.component.mjs +18 -0
- package/esm2022/lib/layouts/simple/ui-simple.component.mjs +166 -0
- package/{esm2020 → esm2022}/lib/radio/radio.component.mjs +21 -21
- package/esm2022/lib/radio-group/radio-group.component.mjs +53 -0
- package/esm2022/lib/select/select.component.mjs +115 -0
- package/{esm2020 → esm2022}/lib/services/message-box.service.mjs +112 -112
- package/{esm2020 → esm2022}/lib/services/toast.service.mjs +23 -23
- package/{esm2020 → esm2022}/lib/services/ui-file.service.mjs +71 -71
- package/{esm2020 → esm2022}/lib/services/ui-translate.service.mjs +32 -32
- package/{esm2020 → esm2022}/lib/submit-button/submit-button.component.mjs +72 -72
- package/esm2022/lib/table/table.component.mjs +97 -0
- package/esm2022/lib/text-area/text-area.component.mjs +46 -0
- package/{esm2020 → esm2022}/lib/ui.model.mjs +1 -1
- package/esm2022/lib/ui.module.mjs +269 -0
- package/esm2022/public-api.mjs +35 -0
- package/{esm2020 → esm2022}/rlucan-ui.mjs +4 -4
- package/fesm2022/rlucan-ui.mjs +3442 -0
- package/fesm2022/rlucan-ui.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/action-button/action-button.component.d.ts +32 -32
- package/lib/action-icon/action-icon.component.d.ts +15 -15
- package/lib/autocomplete/autocomplete.component.d.ts +57 -57
- package/lib/avatar/avatar.component.d.ts +14 -14
- package/lib/button/button.component.d.ts +18 -18
- package/lib/checkbox/checkbox.component.d.ts +15 -15
- package/lib/checkbox-group/checkbox-group.component.d.ts +18 -18
- package/lib/currency/currency.component.d.ts +31 -30
- package/lib/date/date.component.d.ts +24 -24
- package/lib/dialog/dialog.component.d.ts +13 -13
- package/lib/directives/force-visibility/force-visibility.directive.d.ts +22 -20
- package/lib/editor/editor.component.d.ts +24 -0
- package/lib/elements/burger/burger.component.d.ts +9 -9
- package/lib/elements/expander/expander.component.d.ts +10 -10
- package/lib/elements/validation-message/validation-message.component.d.ts +12 -12
- package/lib/file/file.component.d.ts +35 -35
- package/lib/file-uploader/ui-file-uploader.component.d.ts +102 -102
- package/lib/input/input.component.d.ts +42 -41
- package/lib/input-autocomplete/input-autocomplete.component.d.ts +44 -0
- package/lib/{base → layouts/base}/ui-base-layout.component.d.ts +8 -8
- package/lib/{base → layouts/base}/ui-base.component.d.ts +23 -23
- package/lib/{simple → layouts/simple}/ui-simple-layout.component.d.ts +8 -7
- package/lib/{simple → layouts/simple}/ui-simple.component.d.ts +40 -39
- package/lib/radio/radio.component.d.ts +8 -8
- package/lib/radio-group/radio-group.component.d.ts +18 -18
- package/lib/select/select.component.d.ts +35 -33
- package/lib/services/message-box.service.d.ts +58 -58
- package/lib/services/toast.service.d.ts +13 -13
- package/lib/services/ui-file.service.d.ts +33 -33
- package/lib/services/ui-translate.service.d.ts +11 -11
- package/lib/submit-button/submit-button.component.d.ts +21 -21
- package/lib/table/table.component.d.ts +36 -36
- package/lib/text-area/text-area.component.d.ts +18 -18
- package/lib/ui.model.d.ts +2 -2
- package/lib/ui.module.d.ts +59 -56
- package/package.json +22 -24
- package/public-api.d.ts +29 -27
- package/scss/ui-defaults.scss +1 -1
- package/src/js/editorjs.mjs +9634 -0
- package/ui.scss +41 -14
- package/esm2020/lib/action-icon/action-icon.component.mjs +0 -37
- package/esm2020/lib/autocomplete/autocomplete.component.mjs +0 -391
- package/esm2020/lib/avatar/avatar.component.mjs +0 -34
- package/esm2020/lib/base/ui-base-layout.component.mjs +0 -22
- package/esm2020/lib/base/ui-base.component.mjs +0 -74
- package/esm2020/lib/button/button.component.mjs +0 -57
- package/esm2020/lib/checkbox/checkbox.component.mjs +0 -39
- package/esm2020/lib/currency/currency.component.mjs +0 -148
- package/esm2020/lib/date/date.component.mjs +0 -68
- package/esm2020/lib/directives/force-visibility/force-visibility.directive.mjs +0 -96
- package/esm2020/lib/file/file.component.mjs +0 -145
- package/esm2020/lib/file-uploader/ui-file-uploader.component.mjs +0 -394
- package/esm2020/lib/input/input.component.mjs +0 -258
- package/esm2020/lib/radio-group/radio-group.component.mjs +0 -53
- package/esm2020/lib/select/select.component.mjs +0 -91
- package/esm2020/lib/simple/ui-simple-layout.component.mjs +0 -15
- package/esm2020/lib/simple/ui-simple.component.mjs +0 -154
- package/esm2020/lib/table/table.component.mjs +0 -97
- package/esm2020/lib/text-area/text-area.component.mjs +0 -46
- package/esm2020/lib/ui.module.mjs +0 -255
- package/esm2020/public-api.mjs +0 -33
- package/fesm2015/rlucan-ui.mjs +0 -3017
- package/fesm2015/rlucan-ui.mjs.map +0 -1
- package/fesm2020/rlucan-ui.mjs +0 -2982
- package/fesm2020/rlucan-ui.mjs.map +0 -1
package/ui.scss
CHANGED
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
@return $result;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
@mixin ui-dark($uiColors, $uiGeometry
|
|
42
|
+
@mixin ui-dark($matTheme, $uiColors: (), $uiGeometry: ()) {
|
|
43
43
|
@include ui(deep-map-merge(uiDefaultDarkColors($matTheme), $uiColors), map-merge($uiDefaultGeometry, $uiGeometry)/*, map-merge($uiDefaultTypography, $uiTypography)*/);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
@mixin ui-light($uiColors, $uiGeometry
|
|
46
|
+
@mixin ui-light($matTheme, $uiColors: (), $uiGeometry: ()) {
|
|
47
47
|
@include ui(deep-map-merge(uiDefaultLightColors($matTheme), $uiColors), map-merge($uiDefaultGeometry, $uiGeometry)/*, map-merge($uiDefaultTypography, $uiTypography)*/);
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -86,12 +86,12 @@
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
ui-date input, ui-input input, ui-text-area textarea, ui-select .mat-mdc-select-trigger, ui-file-uploader .files-container {
|
|
89
|
+
ui-date input, ui-input input, ui-input-autocomplete input, ui-text-area textarea, ui-select .mat-mdc-select-trigger, ui-file-uploader .files-container, ui-editor .editor-wrapper {
|
|
90
90
|
background-color: uiGetColor($colors, "input.background-color");
|
|
91
91
|
color: uiGetColor($colors, "input.color");
|
|
92
92
|
border-color: uiGetColor($colors, "input.border-color") !important;
|
|
93
93
|
|
|
94
|
-
&:focus {
|
|
94
|
+
&:focus, &.focus {
|
|
95
95
|
border-color: uiGetColor($colors, "input.focus.border-color") !important;
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
-
ui-input, ui-date {
|
|
127
|
+
ui-input, ui-date, ui-input-autocomplete {
|
|
128
128
|
.control-container {
|
|
129
129
|
.xxxclear-icon {
|
|
130
130
|
color: uiGetColor($colors, "input.clear-icon.color");
|
|
@@ -715,7 +715,7 @@
|
|
|
715
715
|
/********************************* geometry ****************************/
|
|
716
716
|
$control-radius: map-get($geometry, control-radius);
|
|
717
717
|
|
|
718
|
-
ui-input input, ui-date input, ui-text-area textarea, ui-file-uploader .files-container, ui-select .mat-select-trigger, ui-select .mat-mdc-select-trigger, ui-button button {
|
|
718
|
+
ui-input input, ui-input-autocomplete input, ui-date input, ui-text-area textarea, ui-file-uploader .files-container, ui-select .mat-select-trigger, ui-select .mat-mdc-select-trigger, ui-button button, ui-editor .editor-wrapper {
|
|
719
719
|
border-width: map-get($geometry, input-border-width);
|
|
720
720
|
padding: map-get($geometry, control-padding);
|
|
721
721
|
}
|
|
@@ -746,8 +746,8 @@
|
|
|
746
746
|
}
|
|
747
747
|
}
|
|
748
748
|
|
|
749
|
-
ui-input, ui-date, ui-text-area/*, ui-file-uploader*/ {
|
|
750
|
-
input, textarea/*, .file-container*/ {
|
|
749
|
+
ui-input, ui-input-autocomplete, ui-date, ui-text-area, ui-editor/*, ui-file-uploader*/ {
|
|
750
|
+
input, textarea, .editor-wrapper /*, .file-container*/ {
|
|
751
751
|
border-radius: $control-radius;
|
|
752
752
|
}
|
|
753
753
|
}
|
|
@@ -780,7 +780,7 @@
|
|
|
780
780
|
}
|
|
781
781
|
|
|
782
782
|
|
|
783
|
-
ui-button, ui-action-button, ui-input, ui-date, ui-text-area, ui-select, ui-radio-group, ui-checkbox, ui-currency, .mat-mdc-radio-button, .mat-mdc-checkbox {
|
|
783
|
+
ui-button, ui-action-button, ui-input, ui-input-autocomplete, ui-date, ui-text-area, ui-select, ui-radio-group, ui-checkbox, ui-currency, .mat-mdc-radio-button, .mat-mdc-checkbox {
|
|
784
784
|
&.large {
|
|
785
785
|
font-size: 1.5em;
|
|
786
786
|
.mat-mdc-select-arrow-wrapper {
|
|
@@ -832,11 +832,13 @@ ui-button, ui-action-button, ui-input, ui-date, ui-text-area, ui-select, ui-radi
|
|
|
832
832
|
margin: calc(-1 * 2.5em / 4) !important;
|
|
833
833
|
}
|
|
834
834
|
.mdc-checkbox__background {
|
|
835
|
-
|
|
836
|
-
|
|
835
|
+
top: calc((var(--mdc-checkbox-state-layer-size, 40px) - 16px) / 2) !important;
|
|
836
|
+
left: calc((var(--mdc-checkbox-state-layer-size, 40px) - 16px) / 2) !important;
|
|
837
|
+
height: calc(2.5em / 2 - 2px);
|
|
838
|
+
width: calc(2.5em / 2 - 2px);
|
|
837
839
|
&::before {
|
|
838
|
-
left: calc(-2.5em / 4) !important;
|
|
839
|
-
top: calc(-2.5em / 4) !important;
|
|
840
|
+
left: calc(-2.5em / 4 - 1px) !important;
|
|
841
|
+
top: calc(-2.5em / 4 - 1px) !important;
|
|
840
842
|
}
|
|
841
843
|
}
|
|
842
844
|
.mdc-checkbox__native-control {
|
|
@@ -895,6 +897,18 @@ ui-button, ui-action-button, ui-input, ui-date, ui-text-area, ui-select, ui-radi
|
|
|
895
897
|
|
|
896
898
|
|
|
897
899
|
/**************** angular material css overrides ****************************/
|
|
900
|
+
* {
|
|
901
|
+
margin: 0;
|
|
902
|
+
padding: 0;
|
|
903
|
+
box-sizing: border-box;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
.mat-typography {
|
|
907
|
+
font-size: unset;
|
|
908
|
+
line-height: unset;
|
|
909
|
+
letter-spacing: 0;
|
|
910
|
+
}
|
|
911
|
+
|
|
898
912
|
.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element {
|
|
899
913
|
opacity: 0 !important;
|
|
900
914
|
}
|
|
@@ -932,7 +946,9 @@ ui-button, ui-action-button, ui-input, ui-date, ui-text-area, ui-select, ui-radi
|
|
|
932
946
|
font-weight: 500;
|
|
933
947
|
}
|
|
934
948
|
|
|
935
|
-
|
|
949
|
+
.mat-mdc-select-panel.ui-currency {
|
|
950
|
+
min-width: 6em;
|
|
951
|
+
}
|
|
936
952
|
|
|
937
953
|
|
|
938
954
|
:root {
|
|
@@ -945,4 +961,15 @@ ui-button, ui-action-button, ui-input, ui-date, ui-text-area, ui-select, ui-radi
|
|
|
945
961
|
--mdc-typography-button-letter-spacing: 0;
|
|
946
962
|
--mdc-typography-button-font-size: 1em;
|
|
947
963
|
--mdc-typography-button-font-weight: 400;
|
|
964
|
+
--mat-select-trigger-text-line-height: 1.2em;
|
|
965
|
+
--mat-select-trigger-text-tracking: 0;
|
|
966
|
+
--mat-select-trigger-text-size: 1em;
|
|
967
|
+
--mat-option-label-text-line-height: 1.2em;
|
|
968
|
+
--mat-option-label-text-size: 1em;
|
|
969
|
+
--mat-option-label-text-tracking: 0;
|
|
970
|
+
--mdc-dialog-subhead-tracking: 0;
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
.mat-mdc-tab-header {
|
|
974
|
+
--mat-tab-header-label-text-tracking: 0;
|
|
948
975
|
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/material/icon";
|
|
4
|
-
export class ActionIconComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.size = 'normal';
|
|
7
|
-
this.color = 'primary';
|
|
8
|
-
this.disabled = false;
|
|
9
|
-
this.busy = false;
|
|
10
|
-
this.matIcon = 'close';
|
|
11
|
-
}
|
|
12
|
-
get class() {
|
|
13
|
-
return `${this.size} ${this.color}${this.disabled ? ' disabled' : ''}${this.busy ? ' busy' : ''}`;
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
ActionIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: ActionIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
-
ActionIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: ActionIconComponent, selector: "ui-action-icon", inputs: { size: "size", color: "color", disabled: "disabled", busy: "busy", matIcon: "matIcon" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<mat-icon>{{matIcon}}</mat-icon>\r\n", styles: [":host{display:flex}:host:not(.disabled){cursor:pointer}:host mat-icon{width:1em;height:1em;transition:color .25s}:host.small mat-icon{font-size:1em}:host.smaller mat-icon{font-size:1.25em}:host.normal mat-icon{font-size:1.5em}:host.larger mat-icon{font-size:1.75em}:host.large mat-icon{font-size:2em}\n"], dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: ActionIconComponent, decorators: [{
|
|
21
|
-
type: Component,
|
|
22
|
-
args: [{ selector: 'ui-action-icon', template: "<mat-icon>{{matIcon}}</mat-icon>\r\n", styles: [":host{display:flex}:host:not(.disabled){cursor:pointer}:host mat-icon{width:1em;height:1em;transition:color .25s}:host.small mat-icon{font-size:1em}:host.smaller mat-icon{font-size:1.25em}:host.normal mat-icon{font-size:1.5em}:host.larger mat-icon{font-size:1.75em}:host.large mat-icon{font-size:2em}\n"] }]
|
|
23
|
-
}], ctorParameters: function () { return []; }, propDecorators: { size: [{
|
|
24
|
-
type: Input
|
|
25
|
-
}], color: [{
|
|
26
|
-
type: Input
|
|
27
|
-
}], disabled: [{
|
|
28
|
-
type: Input
|
|
29
|
-
}], busy: [{
|
|
30
|
-
type: Input
|
|
31
|
-
}], matIcon: [{
|
|
32
|
-
type: Input
|
|
33
|
-
}], class: [{
|
|
34
|
-
type: HostBinding,
|
|
35
|
-
args: ['class']
|
|
36
|
-
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9hY3Rpb24taWNvbi9hY3Rpb24taWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2FjdGlvbi1pY29uL2FjdGlvbi1pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBUXRFLE1BQU0sT0FBTyxtQkFBbUI7SUFpQjlCO1FBZlMsU0FBSSxHQUFnQixRQUFRLENBQUM7UUFFN0IsVUFBSyxHQUFpQixTQUFTLENBQUM7UUFFaEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWIsWUFBTyxHQUFHLE9BQU8sQ0FBQztJQU9YLENBQUM7SUFMakIsSUFDSSxLQUFLO1FBQ1AsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ25HLENBQUM7SUFJRCxRQUFRO0lBQ1IsQ0FBQzs7Z0hBcEJVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHlNQ1JoQyxzQ0FDQTsyRkRPYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCOzBFQU1qQixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFHRixLQUFLO3NCQURSLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbENvbG9yLCBDb250cm9sU2l6ZSB9IGZyb20gJy4uL3VpLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktYWN0aW9uLWljb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24taWNvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLWljb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uSWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHNpemU6IENvbnRyb2xTaXplID0gJ25vcm1hbCc7XHJcblxyXG4gIEBJbnB1dCgpIGNvbG9yOiBDb250cm9sQ29sb3IgPSAncHJpbWFyeSc7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgbWF0SWNvbiA9ICdjbG9zZSc7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGdldCBjbGFzcygpIHtcclxuICAgIHJldHVybiBgJHt0aGlzLnNpemV9ICR7dGhpcy5jb2xvcn0ke3RoaXMuZGlzYWJsZWQgPyAnIGRpc2FibGVkJzogJyd9JHt0aGlzLmJ1c3kgPyAnIGJ1c3knIDogJyd9YDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG1hdC1pY29uPnt7bWF0SWNvbn19PC9tYXQtaWNvbj5cclxuIl19
|