@osovitny/anatoly 2.1.14 → 2.14.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.
- package/assets/styles/alerts.less +182 -0
- package/assets/styles/spinner.less +64 -0
- package/assets/styles/toastr.less +192 -0
- package/esm2020/lib/core/core.module.mjs +72 -0
- package/esm2020/lib/core/go/base-go.service.mjs +41 -0
- package/esm2020/lib/core/interceptors/httpInterceptor.mjs +108 -0
- package/esm2020/lib/core/localization/localization.module.mjs +47 -0
- package/esm2020/lib/core/localization/localization.service.mjs +185 -0
- package/esm2020/lib/core/localization/localizationSettings.module.mjs +88 -0
- package/esm2020/lib/core/localization/localize.pipe.mjs +78 -0
- package/esm2020/lib/core/logging/globalErrorHandler.mjs +44 -0
- package/esm2020/lib/core/logging/logging.service.mjs +39 -0
- package/esm2020/lib/core/notifications/services/notification-service.mjs +228 -0
- package/esm2020/lib/core/services/appcontext.service.mjs +118 -0
- package/esm2020/lib/core/services/dm.service.mjs +72 -0
- package/esm2020/lib/core/services/google-analytics.service.mjs +54 -0
- package/{esm2015/lib/core/services/idle.service.js → esm2020/lib/core/services/idle.service.mjs} +9 -7
- package/{esm2015/lib/core/services/loading.service.js → esm2020/lib/core/services/loading.service.mjs} +9 -8
- package/esm2020/lib/core/services/web-storage.service.mjs +69 -0
- package/esm2020/lib/core/utils.mjs +82 -0
- package/esm2020/lib/data/base/base-api.service.mjs +89 -0
- package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +77 -0
- package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +62 -0
- package/esm2020/lib/data/data.module.mjs +51 -0
- package/esm2020/lib/data/services/billing-api.service.mjs +65 -0
- package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +43 -0
- package/esm2020/lib/ui/components/base-edit.component.mjs +143 -0
- package/esm2020/lib/ui/components/base.component.mjs +47 -0
- package/esm2020/lib/ui/components/base.dialog.mjs +49 -0
- package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +69 -0
- package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +63 -0
- package/esm2020/lib/ui/components/billing/upgrade-plan-button.component.mjs +53 -0
- package/esm2020/lib/ui/components/content-header/content-header.component.mjs +37 -0
- package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +111 -0
- package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +48 -0
- package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +52 -0
- package/esm2020/lib/ui/components/identity/signin-button.component.mjs +32 -0
- package/esm2020/lib/ui/components/identity/signout-button.component.mjs +32 -0
- package/esm2020/lib/ui/components/identity/signup-button.component.mjs +31 -0
- package/esm2020/lib/ui/components/loading/loading.component.mjs +48 -0
- package/esm2020/lib/ui/components/spinner/spinner.component.mjs +74 -0
- package/esm2020/lib/ui/directives/native-element.directive.mjs +41 -0
- package/esm2020/lib/ui/pipes/filesize.pipe.mjs +45 -0
- package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +40 -0
- package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +37 -0
- package/esm2020/lib/ui/ui.module.mjs +155 -0
- package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +66 -0
- package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +39 -0
- package/esm2020/lib/ui/validation/validation-summary.component.mjs +128 -0
- package/fesm2015/{osovitny-anatoly.js → osovitny-anatoly.mjs} +771 -717
- package/fesm2015/osovitny-anatoly.mjs.map +1 -0
- package/fesm2020/osovitny-anatoly.mjs +3496 -0
- package/fesm2020/osovitny-anatoly.mjs.map +1 -0
- package/{osovitny-anatoly.d.ts → index.d.ts} +1 -0
- package/lib/core/core.module.d.ts +5 -0
- package/lib/core/go/base-go.service.d.ts +3 -0
- package/lib/core/interceptors/httpInterceptor.d.ts +3 -0
- package/lib/core/localization/localization.module.d.ts +6 -0
- package/lib/core/localization/localization.service.d.ts +3 -0
- package/lib/core/localization/localizationSettings.module.d.ts +5 -0
- package/lib/core/localization/localize.pipe.d.ts +3 -0
- package/lib/core/logging/globalErrorHandler.d.ts +3 -0
- package/lib/core/logging/logging.service.d.ts +3 -0
- package/lib/core/notifications/services/notification-service.d.ts +3 -0
- package/lib/core/services/appcontext.service.d.ts +3 -0
- package/lib/core/services/dm.service.d.ts +3 -0
- package/lib/core/services/google-analytics.service.d.ts +3 -0
- package/lib/core/services/idle.service.d.ts +3 -0
- package/lib/core/services/loading.service.d.ts +3 -0
- package/lib/core/services/web-storage.service.d.ts +5 -0
- package/lib/data/base/base-api.service.d.ts +3 -0
- package/lib/data/base/grid/base-grid-edit.service.d.ts +3 -0
- package/lib/data/base/grid/base-grid-read.service.d.ts +3 -0
- package/lib/data/data.module.d.ts +5 -0
- package/lib/data/services/billing-api.service.d.ts +3 -0
- package/lib/data/services/notifications/notifications-api-service.d.ts +3 -0
- package/lib/ui/components/base-edit.component.d.ts +5 -2
- package/lib/ui/components/base.component.d.ts +3 -0
- package/lib/ui/components/base.dialog.d.ts +3 -0
- package/lib/ui/components/billing/buyaccess-button.component.d.ts +3 -0
- package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +3 -0
- package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +3 -0
- package/lib/ui/components/content-header/content-header.component.d.ts +3 -0
- package/lib/ui/components/html-editor/base-html-editor.component.d.ts +3 -0
- package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +3 -0
- package/lib/ui/components/html-editor/html-editor.component.d.ts +3 -0
- package/lib/ui/components/identity/signin-button.component.d.ts +3 -0
- package/lib/ui/components/identity/signout-button.component.d.ts +3 -0
- package/lib/ui/components/identity/signup-button.component.d.ts +3 -0
- package/lib/ui/components/loading/loading.component.d.ts +3 -0
- package/lib/ui/components/spinner/spinner.component.d.ts +3 -0
- package/lib/ui/directives/native-element.directive.d.ts +3 -0
- package/lib/ui/pipes/filesize.pipe.d.ts +3 -0
- package/lib/ui/pipes/replace-text.pipe.d.ts +3 -0
- package/lib/ui/pipes/safeHtml.pipe.d.ts +3 -0
- package/lib/ui/ui.module.d.ts +24 -0
- package/lib/ui/validation/form-validation-summary.component.d.ts +3 -0
- package/lib/ui/validation/item-validation-summary.component.d.ts +3 -0
- package/lib/ui/validation/validation-summary.component.d.ts +3 -0
- package/package.json +23 -11
- package/bundles/osovitny-anatoly.umd.js +0 -3700
- package/bundles/osovitny-anatoly.umd.js.map +0 -1
- package/esm2015/lib/core/core.module.js +0 -58
- package/esm2015/lib/core/go/base-go.service.js +0 -42
- package/esm2015/lib/core/interceptors/httpInterceptor.js +0 -109
- package/esm2015/lib/core/localization/localization.module.js +0 -41
- package/esm2015/lib/core/localization/localization.service.js +0 -187
- package/esm2015/lib/core/localization/localizationSettings.module.js +0 -78
- package/esm2015/lib/core/localization/localize.pipe.js +0 -78
- package/esm2015/lib/core/logging/globalErrorHandler.js +0 -44
- package/esm2015/lib/core/logging/logging.service.js +0 -38
- package/esm2015/lib/core/notifications/services/notification-service.js +0 -230
- package/esm2015/lib/core/services/appcontext.service.js +0 -119
- package/esm2015/lib/core/services/dm.service.js +0 -74
- package/esm2015/lib/core/services/google-analytics.service.js +0 -53
- package/esm2015/lib/core/services/web-storage.service.js +0 -66
- package/esm2015/lib/core/utils.js +0 -81
- package/esm2015/lib/data/base/base-api.service.js +0 -89
- package/esm2015/lib/data/base/grid/base-grid-edit.service.js +0 -77
- package/esm2015/lib/data/base/grid/base-grid-read.service.js +0 -62
- package/esm2015/lib/data/data.module.js +0 -43
- package/esm2015/lib/data/services/billing-api.service.js +0 -65
- package/esm2015/lib/data/services/notifications/notifications-api-service.js +0 -45
- package/esm2015/lib/ui/components/base-edit.component.js +0 -142
- package/esm2015/lib/ui/components/base.component.js +0 -43
- package/esm2015/lib/ui/components/base.dialog.js +0 -47
- package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +0 -71
- package/esm2015/lib/ui/components/billing/subscribe-plan-button.component.js +0 -63
- package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +0 -54
- package/esm2015/lib/ui/components/content-header/content-header.component.js +0 -37
- package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +0 -108
- package/esm2015/lib/ui/components/html-editor/forms-html-editor.component.js +0 -44
- package/esm2015/lib/ui/components/html-editor/html-editor.component.js +0 -51
- package/esm2015/lib/ui/components/identity/signin-button.component.js +0 -33
- package/esm2015/lib/ui/components/identity/signout-button.component.js +0 -33
- package/esm2015/lib/ui/components/identity/signup-button.component.js +0 -31
- package/esm2015/lib/ui/components/loading/loading.component.js +0 -49
- package/esm2015/lib/ui/components/spinner/spinner.component.js +0 -73
- package/esm2015/lib/ui/directives/native-element.directive.js +0 -41
- package/esm2015/lib/ui/pipes/filesize.pipe.js +0 -41
- package/esm2015/lib/ui/pipes/replace-text.pipe.js +0 -36
- package/esm2015/lib/ui/pipes/safeHtml.pipe.js +0 -36
- package/esm2015/lib/ui/ui.module.js +0 -105
- package/esm2015/lib/ui/validation/form-validation-summary.component.js +0 -64
- package/esm2015/lib/ui/validation/item-validation-summary.component.js +0 -38
- package/esm2015/lib/ui/validation/validation-summary.component.js +0 -126
- package/fesm2015/osovitny-anatoly.js.map +0 -1
- package/osovitny-anatoly.metadata.json +0 -1
- /package/{esm2015/lib/core/consts/settings.js → esm2020/lib/core/consts/settings.mjs} +0 -0
- /package/{esm2015/lib/core/consts/urls.js → esm2020/lib/core/consts/urls.mjs} +0 -0
- /package/{esm2015/lib/core/convert.js → esm2020/lib/core/convert.mjs} +0 -0
- /package/{esm2015/lib/core/guards/once-import.guard.js → esm2020/lib/core/guards/once-import.guard.mjs} +0 -0
- /package/{esm2015/lib/core/guid.js → esm2020/lib/core/guid.mjs} +0 -0
- /package/{esm2015/lib/core/localization/utils.js → esm2020/lib/core/localization/utils.mjs} +0 -0
- /package/{esm2015/lib/core/notifications/alerts.js → esm2020/lib/core/notifications/alerts.mjs} +0 -0
- /package/{esm2015/lib/core/notifications/interfaces/notification.js → esm2020/lib/core/notifications/interfaces/notification.mjs} +0 -0
- /package/{esm2015/lib/core/subs.js → esm2020/lib/core/subs.mjs} +0 -0
- /package/{esm2015/lib/data/consts.js → esm2020/lib/data/consts.mjs} +0 -0
- /package/{esm2015/lib/ui/components/html-editor/html-editor.defaultoptions.js → esm2020/lib/ui/components/html-editor/html-editor.defaultoptions.mjs} +0 -0
- /package/{esm2015/osovitny-anatoly.js → esm2020/osovitny-anatoly.mjs} +0 -0
- /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
body.swal2-toast-shown {
|
|
2
|
+
.swal2-container.swal2-top-end {
|
|
3
|
+
|
|
4
|
+
.swal2-popup.swal2-toast {
|
|
5
|
+
flex-direction: row;
|
|
6
|
+
align-items: center;
|
|
7
|
+
width: auto;
|
|
8
|
+
padding: 1.5em;
|
|
9
|
+
overflow-y: hidden;
|
|
10
|
+
background: #fff;
|
|
11
|
+
box-shadow: 0 0 0.625em #d9d9d9;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.swal2-header {
|
|
15
|
+
.swal2-icon {
|
|
16
|
+
position: absolute;
|
|
17
|
+
margin: 0;
|
|
18
|
+
width: 2em;
|
|
19
|
+
height: 2em;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.swal2-title {
|
|
23
|
+
font-size:18px;
|
|
24
|
+
margin: 0 0 0 50px;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.swal2-content {
|
|
29
|
+
margin: 0 0 0 35px;
|
|
30
|
+
font-size: 1.2em;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.swal2-container {
|
|
36
|
+
|
|
37
|
+
.swal2-popup {
|
|
38
|
+
background: #fff;
|
|
39
|
+
position: relative;
|
|
40
|
+
padding: 15px;
|
|
41
|
+
text-align: left;
|
|
42
|
+
border-radius: 0;
|
|
43
|
+
|
|
44
|
+
.swal2-toast {
|
|
45
|
+
flex-direction: row;
|
|
46
|
+
align-items: center;
|
|
47
|
+
width: auto;
|
|
48
|
+
padding: 1.2em;
|
|
49
|
+
overflow-y: hidden;
|
|
50
|
+
background: #fff;
|
|
51
|
+
box-shadow: 0 0 0.625em #d9d9d9;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.swal2-header {
|
|
55
|
+
display: block;
|
|
56
|
+
|
|
57
|
+
.swal2-icon {
|
|
58
|
+
position: absolute;
|
|
59
|
+
margin: 45px 10px;
|
|
60
|
+
width: 2em;
|
|
61
|
+
height: 2em;
|
|
62
|
+
|
|
63
|
+
&.swal2-success [class^=swal2-success-line][class$=long] {
|
|
64
|
+
top: 1em;
|
|
65
|
+
right: .1em;
|
|
66
|
+
width: 1.2em;
|
|
67
|
+
transform: rotate(-45deg);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&.swal2-success [class^=swal2-success-circular-line] {
|
|
71
|
+
position: absolute;
|
|
72
|
+
width: 1.75em;
|
|
73
|
+
height: 1.5em;
|
|
74
|
+
transform: rotate(45deg);
|
|
75
|
+
border-radius: 50%;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&.swal2-success {
|
|
79
|
+
border-color: #a5dc86;
|
|
80
|
+
color: #a5dc86;
|
|
81
|
+
|
|
82
|
+
&.swal2-success [class^=swal2-success-line][class$=tip] {
|
|
83
|
+
top: 1em;
|
|
84
|
+
left: 0.2em;
|
|
85
|
+
width: 1em;
|
|
86
|
+
transform: rotate(45deg);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.swal2-success-circular-line-left {
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.swal2-success-line-tip {
|
|
93
|
+
top: 1em;
|
|
94
|
+
left: 0.2em;
|
|
95
|
+
width: 1em;
|
|
96
|
+
transform: rotate(45deg);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.swal2-success-line-long {
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.swal2-success-ring {
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.swal2-success-fix {
|
|
106
|
+
position: absolute;
|
|
107
|
+
z-index: 1;
|
|
108
|
+
top: 1em;
|
|
109
|
+
left: -0.9em;
|
|
110
|
+
width: 1.1375em;
|
|
111
|
+
height: 2.625em;
|
|
112
|
+
transform: rotate(-45deg);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
.swal2-success-circular-line-right {
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
&.swal2-error [class^=swal2-x-mark-line] {
|
|
122
|
+
display: block;
|
|
123
|
+
position: absolute;
|
|
124
|
+
top: 0.85em;
|
|
125
|
+
width: 1.6575em;
|
|
126
|
+
height: .3125em;
|
|
127
|
+
border-radius: .125em;
|
|
128
|
+
background-color: #f27474;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
&.swal2-error {
|
|
132
|
+
border-color: #f27474;
|
|
133
|
+
color: #f27474;
|
|
134
|
+
top: .85em;
|
|
135
|
+
|
|
136
|
+
.swal2-x-mark {
|
|
137
|
+
.swal2-x-mark-line-left {
|
|
138
|
+
left: 0.2em;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.swal2-x-mark-line-right {
|
|
142
|
+
right: 0.2em;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.swal2-icon-content {
|
|
148
|
+
display: flex;
|
|
149
|
+
align-items: center;
|
|
150
|
+
font-size: 2em;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.swal2-title {
|
|
155
|
+
font-size: 18px;
|
|
156
|
+
margin-bottom: 16px;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.swal2-content {
|
|
161
|
+
text-align: left;
|
|
162
|
+
margin: 0 0 0 65px;
|
|
163
|
+
color: #000;
|
|
164
|
+
font-size: 14px;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.swal2-actions {
|
|
168
|
+
display: flex;
|
|
169
|
+
z-index: 1;
|
|
170
|
+
flex-wrap: wrap;
|
|
171
|
+
align-items: center;
|
|
172
|
+
justify-content: flex-end;
|
|
173
|
+
width: 100%;
|
|
174
|
+
|
|
175
|
+
button {
|
|
176
|
+
padding: 5px 20px;
|
|
177
|
+
border-radius: 0;
|
|
178
|
+
font-size: 1em;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#spinner-loader {
|
|
2
|
+
top: 0;
|
|
3
|
+
left: 0;
|
|
4
|
+
height: 100%;
|
|
5
|
+
width: 100%;
|
|
6
|
+
position: fixed;
|
|
7
|
+
z-index: 9999;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
.loader-bg {
|
|
11
|
+
height: 100%;
|
|
12
|
+
width: 100%;
|
|
13
|
+
position: absolute;
|
|
14
|
+
filter: alpha(opacity=70);
|
|
15
|
+
opacity: .7;
|
|
16
|
+
background-color: #002776;
|
|
17
|
+
|
|
18
|
+
.line-material {
|
|
19
|
+
top: 0;
|
|
20
|
+
position: relative;
|
|
21
|
+
margin: auto;
|
|
22
|
+
width: 100%;
|
|
23
|
+
|
|
24
|
+
&.colored-parent, .colored > div {
|
|
25
|
+
background-color: #333;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.mice-child {
|
|
29
|
+
width: 100%;
|
|
30
|
+
height: 4px;
|
|
31
|
+
position: absolute;
|
|
32
|
+
top: 0;
|
|
33
|
+
display: inline-block;
|
|
34
|
+
transform-origin: 0% 0%;
|
|
35
|
+
-webkit-animation: line-material 2s ease-in-out 0s infinite both;
|
|
36
|
+
animation: line-material 2s ease-in-out 0s infinite both;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
@-webkit-keyframes line-material {
|
|
42
|
+
0%, 80%, 100% {
|
|
43
|
+
-webkit-transform: scaleX(0);
|
|
44
|
+
transform: scaleX(0);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
40% {
|
|
48
|
+
-webkit-transform: scaleX(1);
|
|
49
|
+
transform: scaleX(1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@keyframes line-material {
|
|
54
|
+
0% {
|
|
55
|
+
-webkit-transform: scaleX(0);
|
|
56
|
+
transform: scaleX(0);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
100% {
|
|
60
|
+
-webkit-transform: scaleX(1);
|
|
61
|
+
transform: scaleX(1);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/* based on angular-toastr css https://github.com/Foxandxss/angular-toastr/blob/cb508fe6801d6b288d3afc525bb40fee1b101650/dist/angular-toastr.css */
|
|
2
|
+
|
|
3
|
+
/* position */
|
|
4
|
+
.toast-center-center {
|
|
5
|
+
top: 50%;
|
|
6
|
+
left: 50%;
|
|
7
|
+
transform: translate(-50%, -50%);
|
|
8
|
+
}
|
|
9
|
+
.toast-top-center {
|
|
10
|
+
top: 0;
|
|
11
|
+
right: 0;
|
|
12
|
+
width: 100%;
|
|
13
|
+
}
|
|
14
|
+
.toast-bottom-center {
|
|
15
|
+
bottom: 0;
|
|
16
|
+
right: 0;
|
|
17
|
+
width: 100%;
|
|
18
|
+
}
|
|
19
|
+
.toast-top-full-width {
|
|
20
|
+
top: 0;
|
|
21
|
+
right: 0;
|
|
22
|
+
width: 100%;
|
|
23
|
+
}
|
|
24
|
+
.toast-bottom-full-width {
|
|
25
|
+
bottom: 0;
|
|
26
|
+
right: 0;
|
|
27
|
+
width: 100%;
|
|
28
|
+
}
|
|
29
|
+
.toast-top-left {
|
|
30
|
+
top: 12px;
|
|
31
|
+
left: 12px;
|
|
32
|
+
}
|
|
33
|
+
.toast-top-right {
|
|
34
|
+
top: 12px;
|
|
35
|
+
right: 12px;
|
|
36
|
+
}
|
|
37
|
+
.toast-bottom-right {
|
|
38
|
+
right: 12px;
|
|
39
|
+
bottom: 12px;
|
|
40
|
+
}
|
|
41
|
+
.toast-bottom-left {
|
|
42
|
+
bottom: 12px;
|
|
43
|
+
left: 12px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* toast styles */
|
|
47
|
+
.toast-title {
|
|
48
|
+
font-weight: bold;
|
|
49
|
+
}
|
|
50
|
+
.toast-message {
|
|
51
|
+
word-wrap: break-word;
|
|
52
|
+
}
|
|
53
|
+
.toast-message a,
|
|
54
|
+
.toast-message label {
|
|
55
|
+
color: #FFFFFF;
|
|
56
|
+
}
|
|
57
|
+
.toast-message a:hover {
|
|
58
|
+
color: #CCCCCC;
|
|
59
|
+
text-decoration: none;
|
|
60
|
+
}
|
|
61
|
+
.toast-close-button {
|
|
62
|
+
position: relative;
|
|
63
|
+
right: -0.3em;
|
|
64
|
+
top: -0.3em;
|
|
65
|
+
float: right;
|
|
66
|
+
font-size: 20px;
|
|
67
|
+
font-weight: bold;
|
|
68
|
+
color: #FFFFFF;
|
|
69
|
+
text-shadow: 0 1px 0 #ffffff;
|
|
70
|
+
/* opacity: 0.8; */
|
|
71
|
+
}
|
|
72
|
+
.toast-close-button:hover,
|
|
73
|
+
.toast-close-button:focus {
|
|
74
|
+
color: #000000;
|
|
75
|
+
text-decoration: none;
|
|
76
|
+
cursor: pointer;
|
|
77
|
+
opacity: 0.4;
|
|
78
|
+
}
|
|
79
|
+
/*Additional properties for button version
|
|
80
|
+
iOS requires the button element instead of an anchor tag.
|
|
81
|
+
If you want the anchor version, it requires `href="#"`.*/
|
|
82
|
+
button.toast-close-button {
|
|
83
|
+
padding: 0;
|
|
84
|
+
cursor: pointer;
|
|
85
|
+
background: transparent;
|
|
86
|
+
border: 0;
|
|
87
|
+
}
|
|
88
|
+
.toast-container {
|
|
89
|
+
pointer-events: none;
|
|
90
|
+
position: fixed;
|
|
91
|
+
z-index: 999999;
|
|
92
|
+
}
|
|
93
|
+
.toast-container * {
|
|
94
|
+
box-sizing: border-box;
|
|
95
|
+
}
|
|
96
|
+
.toast-container .ngx-toastr {
|
|
97
|
+
position: relative;
|
|
98
|
+
overflow: hidden;
|
|
99
|
+
margin: 0 0 6px;
|
|
100
|
+
padding: 15px 15px 15px 50px;
|
|
101
|
+
width: 300px;
|
|
102
|
+
border-radius: 3px 3px 3px 3px;
|
|
103
|
+
background-position: 15px center;
|
|
104
|
+
background-repeat: no-repeat;
|
|
105
|
+
background-size: 24px;
|
|
106
|
+
box-shadow: 0 0 12px #999999;
|
|
107
|
+
color: #FFFFFF;
|
|
108
|
+
}
|
|
109
|
+
.toast-container .ngx-toastr:hover {
|
|
110
|
+
box-shadow: 0 0 12px #000000;
|
|
111
|
+
opacity: 1;
|
|
112
|
+
cursor: pointer;
|
|
113
|
+
}
|
|
114
|
+
/* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/info-circle.svg */
|
|
115
|
+
.toast-info {
|
|
116
|
+
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E");
|
|
117
|
+
}
|
|
118
|
+
/* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/times-circle.svg */
|
|
119
|
+
.toast-error {
|
|
120
|
+
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E");
|
|
121
|
+
}
|
|
122
|
+
/* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/check.svg */
|
|
123
|
+
.toast-success {
|
|
124
|
+
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");
|
|
125
|
+
}
|
|
126
|
+
/* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/exclamation-triangle.svg */
|
|
127
|
+
.toast-warning {
|
|
128
|
+
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");
|
|
129
|
+
}
|
|
130
|
+
.toast-container.toast-top-center .ngx-toastr,
|
|
131
|
+
.toast-container.toast-bottom-center .ngx-toastr {
|
|
132
|
+
width: 300px;
|
|
133
|
+
margin-left: auto;
|
|
134
|
+
margin-right: auto;
|
|
135
|
+
}
|
|
136
|
+
.toast-container.toast-top-full-width .ngx-toastr,
|
|
137
|
+
.toast-container.toast-bottom-full-width .ngx-toastr {
|
|
138
|
+
width: 96%;
|
|
139
|
+
margin-left: auto;
|
|
140
|
+
margin-right: auto;
|
|
141
|
+
}
|
|
142
|
+
.ngx-toastr {
|
|
143
|
+
background-color: #030303;
|
|
144
|
+
pointer-events: auto;
|
|
145
|
+
}
|
|
146
|
+
.toast-success {
|
|
147
|
+
background-color: #51A351;
|
|
148
|
+
}
|
|
149
|
+
.toast-error {
|
|
150
|
+
background-color: #BD362F;
|
|
151
|
+
}
|
|
152
|
+
.toast-info {
|
|
153
|
+
background-color: #2F96B4;
|
|
154
|
+
}
|
|
155
|
+
.toast-warning {
|
|
156
|
+
background-color: #F89406;
|
|
157
|
+
}
|
|
158
|
+
.toast-progress {
|
|
159
|
+
position: absolute;
|
|
160
|
+
left: 0;
|
|
161
|
+
bottom: 0;
|
|
162
|
+
height: 4px;
|
|
163
|
+
background-color: #000000;
|
|
164
|
+
opacity: 0.4;
|
|
165
|
+
}
|
|
166
|
+
/* Responsive Design */
|
|
167
|
+
@media all and (max-width: 240px) {
|
|
168
|
+
.toast-container .ngx-toastr.div {
|
|
169
|
+
padding: 8px 8px 8px 50px;
|
|
170
|
+
width: 11em;
|
|
171
|
+
}
|
|
172
|
+
.toast-container .toast-close-button {
|
|
173
|
+
right: -0.2em;
|
|
174
|
+
top: -0.2em;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
@media all and (min-width: 241px) and (max-width: 480px) {
|
|
178
|
+
.toast-container .ngx-toastr.div {
|
|
179
|
+
padding: 8px 8px 8px 50px;
|
|
180
|
+
width: 18em;
|
|
181
|
+
}
|
|
182
|
+
.toast-container .toast-close-button {
|
|
183
|
+
right: -0.2em;
|
|
184
|
+
top: -0.2em;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
@media all and (min-width: 481px) and (max-width: 768px) {
|
|
188
|
+
.toast-container .ngx-toastr.div {
|
|
189
|
+
padding: 15px 15px 15px 50px;
|
|
190
|
+
width: 25em;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
29 June 2020
|
|
12
|
+
|
|
13
|
+
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
14
|
+
</file>
|
|
15
|
+
*/
|
|
16
|
+
import { NgModule, Optional, SkipSelf } from '@angular/core';
|
|
17
|
+
import { CommonModule } from '@angular/common';
|
|
18
|
+
//Logging
|
|
19
|
+
import { LoggingService } from './logging/logging.service';
|
|
20
|
+
//Services
|
|
21
|
+
import { AppContextService } from './services/appcontext.service';
|
|
22
|
+
import { LoadingService } from './services/loading.service';
|
|
23
|
+
import { DigitalMarketingService } from './services/dm.service';
|
|
24
|
+
import { GoogleAnalyticsService } from './services/google-analytics.service';
|
|
25
|
+
import { LocalStorageService, SessionStorageService } from './services/web-storage.service';
|
|
26
|
+
//notifications
|
|
27
|
+
import { NotificationService } from './notifications/services/notification-service';
|
|
28
|
+
//Guards
|
|
29
|
+
import { throwIfAlreadyLoaded } from './guards/once-import.guard';
|
|
30
|
+
import * as i0 from "@angular/core";
|
|
31
|
+
export let InjectorInstance;
|
|
32
|
+
export class AnatolyCoreModule {
|
|
33
|
+
constructor(injector, parentModule) {
|
|
34
|
+
this.injector = injector;
|
|
35
|
+
throwIfAlreadyLoaded(parentModule, 'AnatolyCoreModule');
|
|
36
|
+
InjectorInstance = this.injector;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
AnatolyCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: AnatolyCoreModule, deps: [{ token: i0.Injector }, { token: AnatolyCoreModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
40
|
+
AnatolyCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: AnatolyCoreModule, imports: [CommonModule] });
|
|
41
|
+
AnatolyCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: AnatolyCoreModule, providers: [
|
|
42
|
+
LoggingService,
|
|
43
|
+
NotificationService,
|
|
44
|
+
AppContextService,
|
|
45
|
+
LoadingService,
|
|
46
|
+
DigitalMarketingService,
|
|
47
|
+
GoogleAnalyticsService,
|
|
48
|
+
LocalStorageService,
|
|
49
|
+
SessionStorageService
|
|
50
|
+
], imports: [CommonModule] });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: AnatolyCoreModule, decorators: [{
|
|
52
|
+
type: NgModule,
|
|
53
|
+
args: [{
|
|
54
|
+
imports: [CommonModule],
|
|
55
|
+
exports: [],
|
|
56
|
+
providers: [
|
|
57
|
+
LoggingService,
|
|
58
|
+
NotificationService,
|
|
59
|
+
AppContextService,
|
|
60
|
+
LoadingService,
|
|
61
|
+
DigitalMarketingService,
|
|
62
|
+
GoogleAnalyticsService,
|
|
63
|
+
LocalStorageService,
|
|
64
|
+
SessionStorageService
|
|
65
|
+
],
|
|
66
|
+
}]
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: AnatolyCoreModule, decorators: [{
|
|
68
|
+
type: Optional
|
|
69
|
+
}, {
|
|
70
|
+
type: SkipSelf
|
|
71
|
+
}] }]; } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBVyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsU0FBUztBQUNULE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxVQUFVO0FBQ1YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTVGLGVBQWU7QUFDZixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUVsRixRQUFRO0FBQ1IsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7O0FBRWhFLE1BQU0sQ0FBQyxJQUFJLGdCQUEwQixDQUFDO0FBZ0J0QyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLFFBQWtCLEVBQTBCLFlBQStCO1FBQTNFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFeEQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDOzs4R0FMVSxpQkFBaUIsMENBQ2tELGlCQUFpQjsrR0FEcEYsaUJBQWlCLFlBYmxCLFlBQVk7K0dBYVgsaUJBQWlCLGFBWGpCO1FBQ1QsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsY0FBYztRQUNkLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLHFCQUFxQjtLQUN0QixZQVhTLFlBQVk7MkZBYVgsaUJBQWlCO2tCQWQ3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsU0FBUyxFQUFFO3dCQUNULGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3FCQUN0QjtpQkFDRjtpRkFFK0UsaUJBQWlCOzBCQUF0RCxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjkgSnVuZSAyMDIwXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuaW1wb3J0IHtJbmplY3RvciwgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuLy9Mb2dnaW5nXHJcbmltcG9ydCB7TG9nZ2luZ1NlcnZpY2V9IGZyb20gJy4vbG9nZ2luZy9sb2dnaW5nLnNlcnZpY2UnO1xyXG5cclxuLy9TZXJ2aWNlc1xyXG5pbXBvcnQgeyBBcHBDb250ZXh0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IERpZ2l0YWxNYXJrZXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR29vZ2xlQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSwgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93ZWItc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbi8vbm90aWZpY2F0aW9uc1xyXG5pbXBvcnQge05vdGlmaWNhdGlvblNlcnZpY2V9IGZyb20gJy4vbm90aWZpY2F0aW9ucy9zZXJ2aWNlcy9ub3RpZmljYXRpb24tc2VydmljZSc7XHJcblxyXG4vL0d1YXJkc1xyXG5pbXBvcnQge3Rocm93SWZBbHJlYWR5TG9hZGVkfSBmcm9tICcuL2d1YXJkcy9vbmNlLWltcG9ydC5ndWFyZCc7XHJcblxyXG5leHBvcnQgbGV0IEluamVjdG9ySW5zdGFuY2U6IEluamVjdG9yO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIExvZ2dpbmdTZXJ2aWNlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIEFwcENvbnRleHRTZXJ2aWNlLFxyXG4gICAgTG9hZGluZ1NlcnZpY2UsXHJcbiAgICBEaWdpdGFsTWFya2V0aW5nU2VydmljZSxcclxuICAgIEdvb2dsZUFuYWx5dGljc1NlcnZpY2UsXHJcbiAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuYXRvbHlDb3JlTW9kdWxlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50TW9kdWxlOiBBbmF0b2x5Q29yZU1vZHVsZSkge1xyXG4gICAgdGhyb3dJZkFscmVhZHlMb2FkZWQocGFyZW50TW9kdWxlLCAnQW5hdG9seUNvcmVNb2R1bGUnKTtcclxuXHJcbiAgICBJbmplY3Rvckluc3RhbmNlID0gdGhpcy5pbmplY3RvcjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
17 Jun 2018
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
import { Injectable } from '@angular/core';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
import * as i1 from "@angular/router";
|
|
22
|
+
export class BaseGoService {
|
|
23
|
+
constructor(route, router) {
|
|
24
|
+
this.route = route;
|
|
25
|
+
this.router = router;
|
|
26
|
+
this.route = route;
|
|
27
|
+
this.router = router;
|
|
28
|
+
}
|
|
29
|
+
locationReload() {
|
|
30
|
+
window.location.reload();
|
|
31
|
+
}
|
|
32
|
+
homeReload() {
|
|
33
|
+
window.location.href = "/";
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
BaseGoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BaseGoService, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
|
+
BaseGoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BaseGoService });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BaseGoService, decorators: [{
|
|
39
|
+
type: Injectable
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }]; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1nby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvZ28vYmFzZS1nby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQUl6QyxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFzQixLQUFxQixFQUFZLE1BQWM7UUFBL0MsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ25FLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxjQUFjO1FBQ1gsTUFBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVTtRQUNQLE1BQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUN0QyxDQUFDOzswR0FaVSxhQUFhOzhHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDE3IEp1biAyMDE4XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCYXNlR29TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIHRoaXMucm91dGUgPSByb3V0ZTtcclxuICAgIHRoaXMucm91dGVyID0gcm91dGVyO1xyXG4gIH1cclxuXHJcbiAgbG9jYXRpb25SZWxvYWQoKSB7XHJcbiAgICAod2luZG93IGFzIGFueSkubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgfVxyXG5cclxuICBob21lUmVsb2FkKCkge1xyXG4gICAgKHdpbmRvdyBhcyBhbnkpLmxvY2F0aW9uLmhyZWYgPSBcIi9cIjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
25 March 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { HttpResponse } from '@angular/common/http';
|
|
21
|
+
import { Injectable } from '@angular/core';
|
|
22
|
+
// RxJS
|
|
23
|
+
import { tap } from 'rxjs/operators';
|
|
24
|
+
// App
|
|
25
|
+
import { AppCoreSettings } from '../consts/settings';
|
|
26
|
+
import * as i0 from "@angular/core";
|
|
27
|
+
import * as i1 from "../services/loading.service";
|
|
28
|
+
import * as i2 from "../logging/logging.service";
|
|
29
|
+
export class AnatolyHttpInterceptor {
|
|
30
|
+
constructor(loadingService, loggingService) {
|
|
31
|
+
this.loadingService = loadingService;
|
|
32
|
+
this.loggingService = loggingService;
|
|
33
|
+
this.longRunningExceptionsList = [];
|
|
34
|
+
this.autoCDNSASTokenUrls = ['chunks', 'resources'];
|
|
35
|
+
this.externalSiteUrls = ['azurewebsites.net'];
|
|
36
|
+
}
|
|
37
|
+
intercept(req, next) {
|
|
38
|
+
const isCDNEnabled = AppCoreSettings.IsCDNEnabled;
|
|
39
|
+
const cdnSasToken = AppCoreSettings.CDNSASToken;
|
|
40
|
+
const isLoadingFreezed = this.loadingService.isFreezed;
|
|
41
|
+
const authorizationTokenRequired = true;
|
|
42
|
+
const url = req.url.toLowerCase();
|
|
43
|
+
const originalUrl = req.url;
|
|
44
|
+
let isExternalSite = false;
|
|
45
|
+
let loadingRequired = !isLoadingFreezed;
|
|
46
|
+
if (!isLoadingFreezed) {
|
|
47
|
+
for (const i of this.longRunningExceptionsList) {
|
|
48
|
+
if (url.indexOf(this.longRunningExceptionsList[i]) >= 0) {
|
|
49
|
+
loadingRequired = false;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (isCDNEnabled) {
|
|
55
|
+
for (const i of this.autoCDNSASTokenUrls) {
|
|
56
|
+
if (url.indexOf(this.autoCDNSASTokenUrls[i]) >= 0) {
|
|
57
|
+
req = req.clone({ url: originalUrl + cdnSasToken });
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
for (const i of this.externalSiteUrls) {
|
|
63
|
+
if (url.indexOf(this.externalSiteUrls[i]) >= 0) {
|
|
64
|
+
isExternalSite = true;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// VadimOS: IE11-fix
|
|
69
|
+
if (url.indexOf('/api/') > -1) {
|
|
70
|
+
let newUrl = '';
|
|
71
|
+
const t = new Date().getTime().toString();
|
|
72
|
+
if (url.indexOf('?') > -1) {
|
|
73
|
+
newUrl = originalUrl + '&t=' + t;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
newUrl = originalUrl + '?t=' + t;
|
|
77
|
+
}
|
|
78
|
+
req = req.clone({ url: newUrl });
|
|
79
|
+
}
|
|
80
|
+
req = req.clone({ headers: req.headers.set('Accept', 'application/json') });
|
|
81
|
+
req = req.clone({ headers: req.headers.set('Accept', 'application/text') });
|
|
82
|
+
this.onRequestStart(loadingRequired);
|
|
83
|
+
return next.handle(req).pipe(tap((event) => {
|
|
84
|
+
if (event instanceof HttpResponse) {
|
|
85
|
+
this.onRequestEnd(loadingRequired);
|
|
86
|
+
}
|
|
87
|
+
}, (err) => {
|
|
88
|
+
this.onRequestEnd(loadingRequired);
|
|
89
|
+
this.loggingService.logError(err);
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
onRequestStart(loadingRequired) {
|
|
93
|
+
if (loadingRequired) {
|
|
94
|
+
this.loadingService.show();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
onRequestEnd(loadingRequired) {
|
|
98
|
+
if (loadingRequired) {
|
|
99
|
+
this.loadingService.hide();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
AnatolyHttpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: AnatolyHttpInterceptor, deps: [{ token: i1.LoadingService }, { token: i2.LoggingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
104
|
+
AnatolyHttpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: AnatolyHttpInterceptor });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: AnatolyHttpInterceptor, decorators: [{
|
|
106
|
+
type: Injectable
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i1.LoadingService }, { type: i2.LoggingService }]; } });
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2h0dHBJbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixPQUFPO0FBQ1AsT0FBTyxFQUF1RCxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU87QUFDUCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsTUFBTTtBQUNOLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUtuRCxNQUFNLE9BQU8sc0JBQXNCO0lBS2pDLFlBQXNCLGNBQThCLEVBQVksY0FBOEI7UUFBeEUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSnBGLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQix3QkFBbUIsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFHbkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ2hELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFDbEQsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUVoRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQ3ZELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMs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QUMsZUFBd0I7UUFDckMsSUFBSSxlQUFlLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsZUFBd0I7UUFDbkMsSUFBSSxlQUFlLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7O21IQXhGVSxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjUgTWFyY2ggMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQge0h0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy8gUnhKU1xyXG5pbXBvcnQge3RhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7QXBwQ29yZVNldHRpbmdzfSBmcm9tICcuLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5pbXBvcnQge0xvYWRpbmdTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2FkaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xvZ2dpbmdTZXJ2aWNlfSBmcm9tICcuLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBbmF0b2x5SHR0cEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBwcm90ZWN0ZWQgbG9uZ1J1bm5pbmdFeGNlcHRpb25zTGlzdCA9IFtdO1xyXG4gIHByb3RlY3RlZCBhdXRvQ0ROU0FTVG9rZW5VcmxzID0gWydjaHVua3MnLCAncmVzb3VyY2VzJ107XHJcbiAgcHJvdGVjdGVkIGV4dGVybmFsU2l0ZVVybHMgPSBbJ2F6dXJld2Vic2l0ZXMubmV0J107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2UsIHByb3RlY3RlZCBsb2dnaW5nU2VydmljZTogTG9nZ2luZ1NlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgY29uc3QgaXNDRE5FbmFibGVkID0gQXBwQ29yZVNldHRpbmdzLklzQ0RORW5hYmxlZDtcclxuICAgIGNvbnN0IGNkblNhc1Rva2VuID0gQXBwQ29yZVNldHRpbmdzLkNETlNBU1Rva2VuO1xyXG5cclxuICAgIGNvbnN0IGlzTG9hZGluZ0ZyZWV6ZWQgPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLmlzRnJlZXplZDsgICBcclxuICAgIGNvbnN0IGF1dGhvcml6YXRpb25Ub2tlblJlcXVpcmVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IHVybCA9IHJlcS51cmwudG9Mb3dlckNhc2UoKTtcclxuICAgIGNvbnN0IG9yaWdpbmFsVXJsID0gcmVxLnVybDtcclxuICAgIGxldCBpc0V4dGVybmFsU2l0ZSA9IGZhbHNlO1xyXG4gICAgbGV0IGxvYWRpbmdSZXF1aXJlZCA9ICFpc0xvYWRpbmdGcmVlemVkO1xyXG5cclxuICAgIGlmICghaXNMb2FkaW5nRnJlZXplZCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5sb25nUnVubmluZ0V4Y2VwdGlvbnNMaXN0KSB7XHJcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKHRoaXMubG9uZ1J1bm5pbmdFeGNlcHRpb25zTGlzdFtpXSkgPj0gMCkge1xyXG4gICAgICAgICAgbG9hZGluZ1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNDRE5FbmFibGVkKSB7XHJcbiAgICAgIGZvciAoY29uc3QgaSBvZiB0aGlzLmF1dG9DRE5TQVNUb2tlblVybHMpIHtcclxuICAgICAgICBpZiAodXJsLmluZGV4T2YodGhpcy5hdXRvQ0ROU0FTVG9rZW5VcmxzW2ldKSA+PSAwKSB7XHJcbiAgICAgICAgICByZXEgPSByZXEuY2xvbmUoeyB1cmw6IG9yaWdpbmFsVXJsICsgY2RuU2FzVG9rZW4gfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5leHRlcm5hbFNpdGVVcmxzKSB7XHJcbiAgICAgIGlmICh1cmwuaW5kZXhPZih0aGlzLmV4dGVybmFsU2l0ZVVybHNbaV0pID49IDApIHtcclxuICAgICAgICBpc0V4dGVybmFsU2l0ZSA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWRpbU9TOiBJRTExLWZpeFxyXG4gICAgaWYgKHVybC5pbmRleE9mKCcvYXBpLycpID4gLTEpIHtcclxuICAgICAgbGV0IG5ld1VybCA9ICcnO1xyXG4gICAgICBjb25zdCB0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgIGlmICh1cmwuaW5kZXhPZignPycpID4gLTEpIHtcclxuICAgICAgICBuZXdVcmwgPSBvcmlnaW5hbFVybCArICcmdD0nICsgdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdVcmwgPSBvcmlnaW5hbFVybCArICc/dD0nICsgdDtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmVxID0gcmVxLmNsb25lKHsgdXJsOiBuZXdVcmwgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpIH0pO1xyXG4gICAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vdGV4dCcpIH0pO1xyXG5cclxuICAgIHRoaXMub25SZXF1ZXN0U3RhcnQobG9hZGluZ1JlcXVpcmVkKTtcclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxyXG4gICAgICB0YXAoXHJcbiAgICAgICAgKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25SZXF1ZXN0RW5kKGxvYWRpbmdSZXF1aXJlZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMub25SZXF1ZXN0RW5kKGxvYWRpbmdSZXF1aXJlZCk7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dpbmdTZXJ2aWNlLmxvZ0Vycm9yKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25SZXF1ZXN0U3RhcnQobG9hZGluZ1JlcXVpcmVkOiBib29sZWFuKSB7XHJcbiAgICBpZiAobG9hZGluZ1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2hvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25SZXF1ZXN0RW5kKGxvYWRpbmdSZXF1aXJlZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGxvYWRpbmdSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|