@datarailsshared/datarailsshared 1.6.75 → 1.6.79
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/datarailsshared-datarailsshared-1.6.79.tgz +0 -0
- package/esm2022/lib/dr-chat/chat.component.mjs +27 -12
- package/esm2022/lib/dr-gallery/dr-gallery.component.mjs +45 -10
- package/esm2022/lib/models/chat.mjs +2 -1
- package/fesm2022/datarailsshared-datarailsshared.mjs +82 -31
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/dr-chat/chat.component.d.ts +2 -1
- package/lib/dr-gallery/dr-gallery.component.d.ts +10 -3
- package/lib/models/chat.d.ts +1 -0
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.6.75.tgz +0 -0
|
Binary file
|
|
@@ -9,8 +9,9 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
import * as i1 from "@angular/common";
|
|
10
10
|
import * as i2 from "./dr-chat-suggestions/chat-suggestions.component";
|
|
11
11
|
const _c0 = ["drChatHeader"];
|
|
12
|
-
const _c1 = ["
|
|
13
|
-
const _c2 = ["
|
|
12
|
+
const _c1 = ["drChatLoader"];
|
|
13
|
+
const _c2 = ["drChatContent"];
|
|
14
|
+
const _c3 = ["messagesContainer"];
|
|
14
15
|
function DrChatComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
15
16
|
i0.ɵɵelementContainer(0, 8);
|
|
16
17
|
} if (rf & 2) {
|
|
@@ -32,10 +33,17 @@ function DrChatComponent_div_6_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
32
33
|
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
33
34
|
i0.ɵɵproperty("ngTemplateOutlet", ctx_r5.chatContent);
|
|
34
35
|
} }
|
|
36
|
+
function DrChatComponent_div_6_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
i0.ɵɵelementContainer(0, 8);
|
|
38
|
+
} if (rf & 2) {
|
|
39
|
+
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
40
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r6.chatLoader);
|
|
41
|
+
} }
|
|
35
42
|
function DrChatComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
36
43
|
i0.ɵɵelementStart(0, "div", 11)(1, "div", 12, 13);
|
|
37
44
|
i0.ɵɵprojection(3, 3);
|
|
38
45
|
i0.ɵɵtemplate(4, DrChatComponent_div_6_ng_container_4_Template, 1, 1, "ng-container", 2);
|
|
46
|
+
i0.ɵɵtemplate(5, DrChatComponent_div_6_ng_container_5_Template, 1, 1, "ng-container", 2);
|
|
39
47
|
i0.ɵɵelementEnd()();
|
|
40
48
|
} if (rf & 2) {
|
|
41
49
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -43,19 +51,21 @@ function DrChatComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
43
51
|
i0.ɵɵclassProp("chat__messages__container--scroll", ctx_r2.messagesContainerWithScroll);
|
|
44
52
|
i0.ɵɵadvance(3);
|
|
45
53
|
i0.ɵɵproperty("ngIf", ctx_r2.chatContent);
|
|
54
|
+
i0.ɵɵadvance(1);
|
|
55
|
+
i0.ɵɵproperty("ngIf", ctx_r2.chatLoader);
|
|
46
56
|
} }
|
|
47
57
|
function DrChatComponent_dr_chat_suggestions_7_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
-
const
|
|
58
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
49
59
|
i0.ɵɵelementStart(0, "dr-chat-suggestions", 14);
|
|
50
|
-
i0.ɵɵlistener("suggestionSelect", function DrChatComponent_dr_chat_suggestions_7_Template_dr_chat_suggestions_suggestionSelect_0_listener($event) { i0.ɵɵrestoreView(
|
|
60
|
+
i0.ɵɵlistener("suggestionSelect", function DrChatComponent_dr_chat_suggestions_7_Template_dr_chat_suggestions_suggestionSelect_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.suggestionSelect.emit($event)); });
|
|
51
61
|
i0.ɵɵelementEnd();
|
|
52
62
|
} if (rf & 2) {
|
|
53
63
|
const ctx_r3 = i0.ɵɵnextContext();
|
|
54
64
|
i0.ɵɵclassProp("chat__suggestions--full-height", ctx_r3.fullScreen && !(ctx_r3.messages == null ? null : ctx_r3.messages.length));
|
|
55
65
|
i0.ɵɵproperty("values", ctx_r3.suggestions)("fullScreen", ctx_r3.fullScreen)("waitForReply", ctx_r3.waitForReply)("buttonMode", !!(ctx_r3.messages == null ? null : ctx_r3.messages.length));
|
|
56
66
|
} }
|
|
57
|
-
const
|
|
58
|
-
const
|
|
67
|
+
const _c4 = [[["dr-chat-alert"]], [["dr-chat-form"]], [["dr-ai-search-input"]], [["dr-chat-message"]]];
|
|
68
|
+
const _c5 = ["dr-chat-alert", "dr-chat-form", "dr-ai-search-input", "dr-chat-message"];
|
|
59
69
|
export class DrChatComponent {
|
|
60
70
|
set contentUpdateSubject(value) {
|
|
61
71
|
if (value) {
|
|
@@ -137,29 +147,31 @@ export class DrChatComponent {
|
|
|
137
147
|
i0.ɵɵcontentQuery(dirIndex, DrChatFormComponent, 5);
|
|
138
148
|
i0.ɵɵcontentQuery(dirIndex, _c0, 5);
|
|
139
149
|
i0.ɵɵcontentQuery(dirIndex, _c1, 5);
|
|
150
|
+
i0.ɵɵcontentQuery(dirIndex, _c2, 5);
|
|
140
151
|
i0.ɵɵcontentQuery(dirIndex, DrChatMessageComponent, 4);
|
|
141
152
|
} if (rf & 2) {
|
|
142
153
|
let _t;
|
|
143
154
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chatForm = _t.first);
|
|
144
155
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chatHeader = _t.first);
|
|
156
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chatLoader = _t.first);
|
|
145
157
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chatContent = _t.first);
|
|
146
158
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.messages = _t);
|
|
147
159
|
} }, viewQuery: function DrChatComponent_Query(rf, ctx) { if (rf & 1) {
|
|
148
|
-
i0.ɵɵviewQuery(
|
|
160
|
+
i0.ɵɵviewQuery(_c3, 5);
|
|
149
161
|
i0.ɵɵviewQuery(DrChatSuggestionsComponent, 5);
|
|
150
162
|
} if (rf & 2) {
|
|
151
163
|
let _t;
|
|
152
164
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.messagesContainer = _t.first);
|
|
153
165
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._chatSuggestions = _t.first);
|
|
154
|
-
} }, inputs: { fullScreen: "fullScreen", noMessagesPlaceholder: "noMessagesPlaceholder", contentUpdateSubject: "contentUpdateSubject", scrollBottom: "scrollBottom", suggestions: "suggestions", reopen: "reopen", waitForReply: "waitForReply", scrollDelay: "scrollDelay" }, outputs: { suggestionSelect: "suggestionSelect" }, features: [i0.ɵɵProvidersFeature([DrChatCustomMessageService])], ngContentSelectors:
|
|
155
|
-
i0.ɵɵprojectionDef(
|
|
166
|
+
} }, inputs: { fullScreen: "fullScreen", noMessagesPlaceholder: "noMessagesPlaceholder", contentUpdateSubject: "contentUpdateSubject", scrollBottom: "scrollBottom", suggestions: "suggestions", reopen: "reopen", waitForReply: "waitForReply", scrollDelay: "scrollDelay" }, outputs: { suggestionSelect: "suggestionSelect" }, features: [i0.ɵɵProvidersFeature([DrChatCustomMessageService])], ngContentSelectors: _c5, decls: 11, vars: 6, consts: [[1, "chat"], [1, "chat__sticky-top"], [3, "ngTemplateOutlet", 4, "ngIf"], [1, "chat__alert"], ["class", "chat__empty-state", 4, "ngIf"], ["class", "chat__messages", 4, "ngIf"], ["class", "chat__suggestions", 3, "values", "fullScreen", "waitForReply", "chat__suggestions--full-height", "buttonMode", "suggestionSelect", 4, "ngIf"], [1, "form"], [3, "ngTemplateOutlet"], [1, "chat__empty-state"], [1, "chat__empty-state__text"], [1, "chat__messages"], [1, "chat__messages__container"], ["messagesContainer", ""], [1, "chat__suggestions", 3, "values", "fullScreen", "waitForReply", "buttonMode", "suggestionSelect"]], template: function DrChatComponent_Template(rf, ctx) { if (rf & 1) {
|
|
167
|
+
i0.ɵɵprojectionDef(_c4);
|
|
156
168
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
157
169
|
i0.ɵɵtemplate(2, DrChatComponent_ng_container_2_Template, 1, 1, "ng-container", 2);
|
|
158
170
|
i0.ɵɵelementStart(3, "div", 3);
|
|
159
171
|
i0.ɵɵprojection(4);
|
|
160
172
|
i0.ɵɵelementEnd()();
|
|
161
173
|
i0.ɵɵtemplate(5, DrChatComponent_div_5_Template, 3, 1, "div", 4);
|
|
162
|
-
i0.ɵɵtemplate(6, DrChatComponent_div_6_Template,
|
|
174
|
+
i0.ɵɵtemplate(6, DrChatComponent_div_6_Template, 6, 4, "div", 5);
|
|
163
175
|
i0.ɵɵtemplate(7, DrChatComponent_dr_chat_suggestions_7_Template, 1, 6, "dr-chat-suggestions", 6);
|
|
164
176
|
i0.ɵɵelementStart(8, "div", 7);
|
|
165
177
|
i0.ɵɵprojection(9, 1);
|
|
@@ -179,7 +191,7 @@ export class DrChatComponent {
|
|
|
179
191
|
}
|
|
180
192
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrChatComponent, [{
|
|
181
193
|
type: Component,
|
|
182
|
-
args: [{ selector: 'dr-chat', providers: [DrChatCustomMessageService], template: "<div class=\"chat\" [class.chat--in-full-screen]=\"fullScreen\">\n <div class=\"chat__sticky-top\">\n <ng-container *ngIf=\"chatHeader\" [ngTemplateOutlet]=\"chatHeader\"></ng-container>\n\n <div class=\"chat__alert\">\n <ng-content select=\"dr-chat-alert\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"!messages?.length\" class=\"chat__empty-state\">\n <span class=\"chat__empty-state__text\">{{ noMessagesPlaceholder }}</span>\n </div>\n\n <div *ngIf=\"messages?.length\" class=\"chat__messages\">\n <div\n #messagesContainer\n class=\"chat__messages__container\"\n [class.chat__messages__container--scroll]=\"messagesContainerWithScroll\">\n <ng-content select=\"dr-chat-message\"></ng-content>\n <ng-container *ngIf=\"chatContent\" [ngTemplateOutlet]=\"chatContent\"></ng-container>\n </div>\n </div>\n\n <dr-chat-suggestions\n *ngIf=\"suggestions?.length\"\n [values]=\"suggestions\"\n [fullScreen]=\"fullScreen\"\n [waitForReply]=\"waitForReply\"\n class=\"chat__suggestions\"\n [class.chat__suggestions--full-height]=\"fullScreen && !messages?.length\"\n [buttonMode]=\"!!messages?.length\"\n (suggestionSelect)=\"suggestionSelect.emit($event)\">\n </dr-chat-suggestions>\n\n <div class=\"form\">\n <ng-content select=\"dr-chat-form\"></ng-content>\n <ng-content select=\"dr-ai-search-input\"></ng-content>\n </div>\n</div>\n", styles: [":host{height:100%;width:100%;display:flex;flex-direction:column}.chat{position:relative;display:flex;flex-grow:1;flex-direction:column;height:100%;background-color:#fff;color:#4e566c;font-family:Poppins,sans-serif;font-size:14px;font-weight:400;line-height:22px;box-shadow:0 2px 36px #00000026}.chat__sticky-top{display:flex;flex-direction:column;box-shadow:0 1px 3px #0003;z-index:1}.chat__empty-state{display:flex;justify-content:center}.chat__empty-state__text{padding:44px 0;font-family:Poppins,sans-serif;font-size:18px;font-weight:400;line-height:28px;text-align:center;max-width:440px;color:#4646ce}.chat__messages{display:flex;flex-grow:1;overflow-x:hidden;overflow-y:auto;height:100%;width:100%}.chat__messages__container{overflow-y:auto;overflow-x:hidden;display:flex;flex-shrink:0;flex-direction:column;width:100%;padding-bottom:1px}.chat__messages__container--scroll::ng-deep dr-chat-message{padding-right:8px}.chat__suggestions{flex:1}.chat__suggestions ::ng-deep .chat-suggestions__container{padding:0}.chat__suggestions--full-height{flex-grow:1;height:1px;overflow:auto}.chat--in-full-screen .chat__header{padding-left:32px;padding-right:32px}.chat--in-full-screen .chat__empty-state__text{padding:77px 0;font-size:28px;line-height:46px;max-width:570px}.chat--in-full-screen .chat__messages::ng-deep dr-chat-message{justify-content:center}.chat--in-full-screen .chat__messages::ng-deep .message{max-width:912px}.chat--in-full-screen .chat__suggestions::ng-deep .chat-suggestions__items{padding-left:0;padding-right:0}.chat--in-full-screen .chat__suggestions::ng-deep .chat-suggestions__items__item{font-size:16px}\n"] }]
|
|
194
|
+
args: [{ selector: 'dr-chat', providers: [DrChatCustomMessageService], template: "<div class=\"chat\" [class.chat--in-full-screen]=\"fullScreen\">\n <div class=\"chat__sticky-top\">\n <ng-container *ngIf=\"chatHeader\" [ngTemplateOutlet]=\"chatHeader\"></ng-container>\n\n <div class=\"chat__alert\">\n <ng-content select=\"dr-chat-alert\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"!messages?.length\" class=\"chat__empty-state\">\n <span class=\"chat__empty-state__text\">{{ noMessagesPlaceholder }}</span>\n </div>\n\n <div *ngIf=\"messages?.length\" class=\"chat__messages\">\n <div\n #messagesContainer\n class=\"chat__messages__container\"\n [class.chat__messages__container--scroll]=\"messagesContainerWithScroll\">\n <ng-content select=\"dr-chat-message\"></ng-content>\n <ng-container *ngIf=\"chatContent\" [ngTemplateOutlet]=\"chatContent\"></ng-container>\n <ng-container *ngIf=\"chatLoader\" [ngTemplateOutlet]=\"chatLoader\"></ng-container>\n </div>\n </div>\n\n <dr-chat-suggestions\n *ngIf=\"suggestions?.length\"\n [values]=\"suggestions\"\n [fullScreen]=\"fullScreen\"\n [waitForReply]=\"waitForReply\"\n class=\"chat__suggestions\"\n [class.chat__suggestions--full-height]=\"fullScreen && !messages?.length\"\n [buttonMode]=\"!!messages?.length\"\n (suggestionSelect)=\"suggestionSelect.emit($event)\">\n </dr-chat-suggestions>\n\n <div class=\"form\">\n <ng-content select=\"dr-chat-form\"></ng-content>\n <ng-content select=\"dr-ai-search-input\"></ng-content>\n </div>\n</div>\n", styles: [":host{height:100%;width:100%;display:flex;flex-direction:column}.chat{position:relative;display:flex;flex-grow:1;flex-direction:column;height:100%;background-color:#fff;color:#4e566c;font-family:Poppins,sans-serif;font-size:14px;font-weight:400;line-height:22px;box-shadow:0 2px 36px #00000026}.chat__sticky-top{display:flex;flex-direction:column;box-shadow:0 1px 3px #0003;z-index:1}.chat__empty-state{display:flex;justify-content:center}.chat__empty-state__text{padding:44px 0;font-family:Poppins,sans-serif;font-size:18px;font-weight:400;line-height:28px;text-align:center;max-width:440px;color:#4646ce}.chat__messages{display:flex;flex-grow:1;overflow-x:hidden;overflow-y:auto;height:100%;width:100%}.chat__messages__container{overflow-y:auto;overflow-x:hidden;display:flex;flex-shrink:0;flex-direction:column;width:100%;padding-bottom:1px}.chat__messages__container--scroll::ng-deep dr-chat-message{padding-right:8px}.chat__suggestions{flex:1}.chat__suggestions ::ng-deep .chat-suggestions__container{padding:0}.chat__suggestions--full-height{flex-grow:1;height:1px;overflow:auto}.chat--in-full-screen .chat__header{padding-left:32px;padding-right:32px}.chat--in-full-screen .chat__empty-state__text{padding:77px 0;font-size:28px;line-height:46px;max-width:570px}.chat--in-full-screen .chat__messages::ng-deep dr-chat-message{justify-content:center}.chat--in-full-screen .chat__messages::ng-deep .message{max-width:912px}.chat--in-full-screen .chat__suggestions::ng-deep .chat-suggestions__items{padding-left:0;padding-right:0}.chat--in-full-screen .chat__suggestions::ng-deep .chat-suggestions__items__item{font-size:16px}\n"] }]
|
|
183
195
|
}], function () { return [{ type: i0.ChangeDetectorRef }]; }, { fullScreen: [{
|
|
184
196
|
type: Input
|
|
185
197
|
}], noMessagesPlaceholder: [{
|
|
@@ -208,6 +220,9 @@ export class DrChatComponent {
|
|
|
208
220
|
}], chatHeader: [{
|
|
209
221
|
type: ContentChild,
|
|
210
222
|
args: ['drChatHeader']
|
|
223
|
+
}], chatLoader: [{
|
|
224
|
+
type: ContentChild,
|
|
225
|
+
args: ['drChatLoader']
|
|
211
226
|
}], chatContent: [{
|
|
212
227
|
type: ContentChild,
|
|
213
228
|
args: ['drChatContent']
|
|
@@ -217,4 +232,4 @@ export class DrChatComponent {
|
|
|
217
232
|
type: ViewChild,
|
|
218
233
|
args: [DrChatSuggestionsComponent]
|
|
219
234
|
}] }); })();
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2NoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY2hhdC9jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsZUFBZSxFQUNmLFNBQVMsRUFFVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixZQUFZLEVBRVosV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7OztJQ25CdEYsMkJBQWdGOzs7SUFBL0Msb0RBQStCOzs7SUFPcEUsOEJBQXlELGVBQUE7SUFDZixZQUEyQjtJQUFBLGlCQUFPLEVBQUE7OztJQUFsQyxlQUEyQjtJQUEzQixrREFBMkI7OztJQVM3RCwyQkFBa0Y7OztJQUFoRCxxREFBZ0M7OztJQU4xRSwrQkFBcUQsa0JBQUE7SUFLN0MscUJBQWtEO0lBQ2xELHdGQUFrRjtJQUN0RixpQkFBTSxFQUFBOzs7SUFIRixlQUF1RTtJQUF2RSx1RkFBdUU7SUFFeEQsZUFBaUI7SUFBakIs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QUMsY0FBYztZQUNHLFdBQVc7a0JBQXpDLFlBQVk7bUJBQUMsZUFBZTtZQUNuQixnQkFBZ0I7a0JBQXpCLE1BQU07WUFDZ0MsZ0JBQWdCO2tCQUF0RCxTQUFTO21CQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEckNoYXRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9kci1jaGF0LWZvcm0vY2hhdC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEckNoYXRNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9kci1jaGF0LW1lc3NhZ2UvY2hhdC1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEckNoYXRDdXN0b21NZXNzYWdlU2VydmljZSB9IGZyb20gJy4vZHItY2hhdC1tZXNzYWdlL2RyLWNoYXQtbWVzc2FnZS1jdXN0b20vY2hhdC1jdXN0b20tbWVzc2FnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERyQ2hhdFN1Z2dlc3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9kci1jaGF0LXN1Z2dlc3Rpb25zL2NoYXQtc3VnZ2VzdGlvbnMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1jaGF0JyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGF0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdGVtcGxhdGVVcmw6ICdjaGF0LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtEckNoYXRDdXN0b21NZXNzYWdlU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIERyQ2hhdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBASW5wdXQoKSBmdWxsU2NyZWVuOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5vTWVzc2FnZXNQbGFjZWhvbGRlciA9ICdObyBtZXNzYWdlcyB5ZXQuJztcblxuICAgIEBJbnB1dCgpIHNldCBjb250ZW50VXBkYXRlU3ViamVjdCh2YWx1ZTogU3ViamVjdDxhbnk+KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNjcm9sbCBjaGF0IHRvIHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgd2hlbiBhIG5ldyBtZXNzYWdlIGFycml2ZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzY3JvbGxCb3R0b20oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxCb3R0b207XG4gICAgfVxuXG4gICAgc2V0IHNjcm9sbEJvdHRvbSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zY3JvbGxCb3R0b20gPSAhIXZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfc2Nyb2xsQm90dG9tID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpIHN1Z2dlc3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHJlb3BlbjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFBhcmFtZXRlciB0byBjaGVjayBpcyBzZW5kIG1lc3NhZ2UgZnVuY3Rpb24gYXZhaWxhYmxlXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBASW5wdXQoKSB3YWl0Rm9yUmVwbHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzY3JvbGxEZWxheSA9IDI1MDtcblxuICAgIEBWaWV3Q2hpbGQoJ21lc3NhZ2VzQ29udGFpbmVyJykgbWVzc2FnZXNDb250YWluZXI6IEVsZW1lbnRSZWY7XG4gICAgQENvbnRlbnRDaGlsZHJlbihEckNoYXRNZXNzYWdlQ29tcG9uZW50KSBtZXNzYWdlczogUXVlcnlMaXN0PERyQ2hhdE1lc3NhZ2VDb21wb25lbnQ+O1xuICAgIEBDb250ZW50Q2hpbGQoRHJDaGF0Rm9ybUNvbXBvbmVudCkgY2hhdEZvcm06IERyQ2hhdEZvcm1Db21wb25lbnQ7XG4gICAgQENvbnRlbnRDaGlsZCgnZHJDaGF0SGVhZGVyJykgY2hhdEhlYWRlcjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gICAgQENvbnRlbnRDaGlsZCgnZHJDaGF0Q29udGVudCcpIGNoYXRDb250ZW50OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgICBAT3V0cHV0KCkgc3VnZ2VzdGlvblNlbGVjdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAVmlld0NoaWxkKERyQ2hhdFN1Z2dlc3Rpb25zQ29tcG9uZW50KSBfY2hhdFN1Z2dlc3Rpb25zOiBEckNoYXRTdWdnZXN0aW9uc0NvbXBvbmVudDtcblxuICAgIHB1YmxpYyBnZXQgbWVzc2FnZXNDb250YWluZXJXaXRoU2Nyb2xsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0NvbnRhaW5lciAmJlxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCA+IHRoaXMubWVzc2FnZXNDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZXMuY2hhbmdlcy5zdWJzY3JpYmUoKG1lc3NhZ2VzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzID0gbWVzc2FnZXM7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmlldygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2Nyb2xsQm90dG9tKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbExpc3RCb3R0b20oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNjcm9sbExpc3RCb3R0b20oKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZXNDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxUb09wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB0aGlzLm1lc3NhZ2VzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucmVvcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvT3B0aW9ucy5iZWhhdmlvciA9ICdzbW9vdGgnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxUbyhzY3JvbGxUb09wdGlvbnMpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCB0aGlzLnNjcm9sbERlbGF5KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjbGVhckhpZGRlblN1Z2dlc3Rpb25zKCkge1xuICAgICAgICBpZiAodGhpcy5fY2hhdFN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGF0U3VnZ2VzdGlvbnMuY2xlYXJIaWRkZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZGVTdWdnZXN0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2NoYXRTdWdnZXN0aW9ucz8uaXNTdWdnZXN0ZWRNZW51T3Blbikge1xuICAgICAgICAgICAgdGhpcy5fY2hhdFN1Z2dlc3Rpb25zLnRvZ2dsZVN1Z2dlc3RlZE1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjaGF0XCIgW2NsYXNzLmNoYXQtLWluLWZ1bGwtc2NyZWVuXT1cImZ1bGxTY3JlZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hhdF9fc3RpY2t5LXRvcFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hhdEhlYWRlclwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoYXRIZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhdF9fYWxlcnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRyLWNoYXQtYWxlcnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFtZXNzYWdlcz8ubGVuZ3RoXCIgY2xhc3M9XCJjaGF0X19lbXB0eS1zdGF0ZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNoYXRfX2VtcHR5LXN0YXRlX190ZXh0XCI+e3sgbm9NZXNzYWdlc1BsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VzPy5sZW5ndGhcIiBjbGFzcz1cImNoYXRfX21lc3NhZ2VzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICNtZXNzYWdlc0NvbnRhaW5lclxuICAgICAgICAgICAgY2xhc3M9XCJjaGF0X19tZXNzYWdlc19fY29udGFpbmVyXCJcbiAgICAgICAgICAgIFtjbGFzcy5jaGF0X19tZXNzYWdlc19fY29udGFpbmVyLS1zY3JvbGxdPVwibWVzc2FnZXNDb250YWluZXJXaXRoU2Nyb2xsXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkci1jaGF0LW1lc3NhZ2VcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hhdENvbnRlbnRcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGF0Q29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkci1jaGF0LXN1Z2dlc3Rpb25zXG4gICAgICAgICpuZ0lmPVwic3VnZ2VzdGlvbnM/Lmxlbmd0aFwiXG4gICAgICAgIFt2YWx1ZXNdPVwic3VnZ2VzdGlvbnNcIlxuICAgICAgICBbZnVsbFNjcmVlbl09XCJmdWxsU2NyZWVuXCJcbiAgICAgICAgW3dhaXRGb3JSZXBseV09XCJ3YWl0Rm9yUmVwbHlcIlxuICAgICAgICBjbGFzcz1cImNoYXRfX3N1Z2dlc3Rpb25zXCJcbiAgICAgICAgW2NsYXNzLmNoYXRfX3N1Z2dlc3Rpb25zLS1mdWxsLWhlaWdodF09XCJmdWxsU2NyZWVuICYmICFtZXNzYWdlcz8ubGVuZ3RoXCJcbiAgICAgICAgW2J1dHRvbk1vZGVdPVwiISFtZXNzYWdlcz8ubGVuZ3RoXCJcbiAgICAgICAgKHN1Z2dlc3Rpb25TZWxlY3QpPVwic3VnZ2VzdGlvblNlbGVjdC5lbWl0KCRldmVudClcIj5cbiAgICA8L2RyLWNoYXQtc3VnZ2VzdGlvbnM+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkci1jaGF0LWZvcm1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRyLWFpLXNlYXJjaC1pbnB1dFwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2NoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY2hhdC9jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsZUFBZSxFQUNmLFNBQVMsRUFFVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixZQUFZLEVBRVosV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7Ozs7SUNuQnRGLDJCQUFnRjs7O0lBQS9DLG9EQUErQjs7O0lBT3BFLDhCQUF5RCxlQUFBO0lBQ2YsWUFBMkI7SUFBQSxpQkFBTyxFQUFBOzs7SUFBbEMsZUFBMkI7SUFBM0Isa0RBQTJCOzs7SUFTN0QsMkJBQWtGOzs7SUFBaEQscURBQWdDOzs7SUFDbEUsMkJBQWdGOzs7SUFBL0Msb0RBQStCOzs7SUFQeEUsK0JBQXFELGtCQUFBO0lBSzdDLHFCQUFrRDtJQUNsRCx3RkFBa0Y7SUFDbEYsd0ZBQWdGO0lBQ3BGLGlCQUFNLEVBQUE7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QUFDLHNCQUFzQjtZQUNKLFFBQVE7a0JBQTFDLFlBQVk7bUJBQUMsbUJBQW1CO1lBQ0gsVUFBVTtrQkFBdkMsWUFBWTttQkFBQyxjQUFjO1lBQ0UsVUFBVTtrQkFBdkMsWUFBWTttQkFBQyxjQUFjO1lBQ0csV0FBVztrQkFBekMsWUFBWTttQkFBQyxlQUFlO1lBQ25CLGdCQUFnQjtrQkFBekIsTUFBTTtZQUNnQyxnQkFBZ0I7a0JBQXRELFNBQVM7bUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE9uRGVzdHJveSxcbiAgICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERyQ2hhdEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2RyLWNoYXQtZm9ybS9jaGF0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERyQ2hhdE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2RyLWNoYXQtbWVzc2FnZS9jaGF0LW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IERyQ2hhdEN1c3RvbU1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9kci1jaGF0LW1lc3NhZ2UvZHItY2hhdC1tZXNzYWdlLWN1c3RvbS9jaGF0LWN1c3RvbS1tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRHJDaGF0U3VnZ2VzdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2RyLWNoYXQtc3VnZ2VzdGlvbnMvY2hhdC1zdWdnZXN0aW9ucy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWNoYXQnLFxuICAgIHN0eWxlVXJsczogWycuL2NoYXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJ2NoYXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW0RyQ2hhdEN1c3RvbU1lc3NhZ2VTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJDaGF0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIEBJbnB1dCgpIGZ1bGxTY3JlZW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgbm9NZXNzYWdlc1BsYWNlaG9sZGVyID0gJ05vIG1lc3NhZ2VzIHlldC4nO1xuXG4gICAgQElucHV0KCkgc2V0IGNvbnRlbnRVcGRhdGVTdWJqZWN0KHZhbHVlOiBTdWJqZWN0PGFueT4pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB2YWx1ZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2Nyb2xsIGNoYXQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCB3aGVuIGEgbmV3IG1lc3NhZ2UgYXJyaXZlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNjcm9sbEJvdHRvbSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbEJvdHRvbTtcbiAgICB9XG5cbiAgICBzZXQgc2Nyb2xsQm90dG9tKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Njcm9sbEJvdHRvbSA9ICEhdmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zY3JvbGxCb3R0b20gPSB0cnVlO1xuXG4gICAgQElucHV0KCkgc3VnZ2VzdGlvbnM6IHN0cmluZ1tdID0gW107XG4gICAgQElucHV0KCkgcmVvcGVuOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVyIHRvIGNoZWNrIGlzIHNlbmQgbWVzc2FnZSBmdW5jdGlvbiBhdmFpbGFibGVcbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHdhaXRGb3JSZXBseSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNjcm9sbERlbGF5ID0gMjUwO1xuXG4gICAgQFZpZXdDaGlsZCgnbWVzc2FnZXNDb250YWluZXInKSBtZXNzYWdlc0NvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgICBAQ29udGVudENoaWxkcmVuKERyQ2hhdE1lc3NhZ2VDb21wb25lbnQpIG1lc3NhZ2VzOiBRdWVyeUxpc3Q8RHJDaGF0TWVzc2FnZUNvbXBvbmVudD47XG4gICAgQENvbnRlbnRDaGlsZChEckNoYXRGb3JtQ29tcG9uZW50KSBjaGF0Rm9ybTogRHJDaGF0Rm9ybUNvbXBvbmVudDtcbiAgICBAQ29udGVudENoaWxkKCdkckNoYXRIZWFkZXInKSBjaGF0SGVhZGVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgICBAQ29udGVudENoaWxkKCdkckNoYXRMb2FkZXInKSBjaGF0TG9hZGVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgICBAQ29udGVudENoaWxkKCdkckNoYXRDb250ZW50JykgY2hhdENvbnRlbnQ6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICAgIEBPdXRwdXQoKSBzdWdnZXN0aW9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBWaWV3Q2hpbGQoRHJDaGF0U3VnZ2VzdGlvbnNDb21wb25lbnQpIF9jaGF0U3VnZ2VzdGlvbnM6IERyQ2hhdFN1Z2dlc3Rpb25zQ29tcG9uZW50O1xuXG4gICAgcHVibGljIGdldCBtZXNzYWdlc0NvbnRhaW5lcldpdGhTY3JvbGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzQ29udGFpbmVyICYmXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ID4gdGhpcy5tZXNzYWdlc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5jaGFuZ2VzLnN1YnNjcmliZSgobWVzc2FnZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXMgPSBtZXNzYWdlcztcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlldygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVWaWV3KCkge1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxCb3R0b20pIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsTGlzdEJvdHRvbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2Nyb2xsTGlzdEJvdHRvbSgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlc0NvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjcm9sbFRvT3B0aW9uczogYW55ID0ge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHRoaXMubWVzc2FnZXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5yZW9wZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yID0gJ3Ntb290aCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvKHNjcm9sbFRvT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRoaXMuc2Nyb2xsRGVsYXkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGNsZWFySGlkZGVuU3VnZ2VzdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLl9jaGF0U3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoYXRTdWdnZXN0aW9ucy5jbGVhckhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGlkZVN1Z2dlc3Rpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY2hhdFN1Z2dlc3Rpb25zPy5pc1N1Z2dlc3RlZE1lbnVPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGF0U3VnZ2VzdGlvbnMudG9nZ2xlU3VnZ2VzdGVkTWVudSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNoYXRcIiBbY2xhc3MuY2hhdC0taW4tZnVsbC1zY3JlZW5dPVwiZnVsbFNjcmVlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJjaGF0X19zdGlja3ktdG9wXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGF0SGVhZGVyXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hhdEhlYWRlclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGF0X19hbGVydFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZHItY2hhdC1hbGVydFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIW1lc3NhZ2VzPy5sZW5ndGhcIiBjbGFzcz1cImNoYXRfX2VtcHR5LXN0YXRlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2hhdF9fZW1wdHktc3RhdGVfX3RleHRcIj57eyBub01lc3NhZ2VzUGxhY2Vob2xkZXIgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwibWVzc2FnZXM/Lmxlbmd0aFwiIGNsYXNzPVwiY2hhdF9fbWVzc2FnZXNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI21lc3NhZ2VzQ29udGFpbmVyXG4gICAgICAgICAgICBjbGFzcz1cImNoYXRfX21lc3NhZ2VzX19jb250YWluZXJcIlxuICAgICAgICAgICAgW2NsYXNzLmNoYXRfX21lc3NhZ2VzX19jb250YWluZXItLXNjcm9sbF09XCJtZXNzYWdlc0NvbnRhaW5lcldpdGhTY3JvbGxcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRyLWNoYXQtbWVzc2FnZVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGF0Q29udGVudFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoYXRDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hhdExvYWRlclwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoYXRMb2FkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZHItY2hhdC1zdWdnZXN0aW9uc1xuICAgICAgICAqbmdJZj1cInN1Z2dlc3Rpb25zPy5sZW5ndGhcIlxuICAgICAgICBbdmFsdWVzXT1cInN1Z2dlc3Rpb25zXCJcbiAgICAgICAgW2Z1bGxTY3JlZW5dPVwiZnVsbFNjcmVlblwiXG4gICAgICAgIFt3YWl0Rm9yUmVwbHldPVwid2FpdEZvclJlcGx5XCJcbiAgICAgICAgY2xhc3M9XCJjaGF0X19zdWdnZXN0aW9uc1wiXG4gICAgICAgIFtjbGFzcy5jaGF0X19zdWdnZXN0aW9ucy0tZnVsbC1oZWlnaHRdPVwiZnVsbFNjcmVlbiAmJiAhbWVzc2FnZXM/Lmxlbmd0aFwiXG4gICAgICAgIFtidXR0b25Nb2RlXT1cIiEhbWVzc2FnZXM/Lmxlbmd0aFwiXG4gICAgICAgIChzdWdnZXN0aW9uU2VsZWN0KT1cInN1Z2dlc3Rpb25TZWxlY3QuZW1pdCgkZXZlbnQpXCI+XG4gICAgPC9kci1jaGF0LXN1Z2dlc3Rpb25zPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZHItY2hhdC1mb3JtXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkci1haS1zZWFyY2gtaW5wdXRcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -17,9 +17,8 @@ function DrGalleryComponent_dr_button_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
17
17
|
function DrGalleryComponent_div_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
18
18
|
i0.ɵɵelementContainer(0);
|
|
19
19
|
} }
|
|
20
|
-
const _c2 = function (
|
|
21
|
-
const _c3 = function () { return {}; };
|
|
22
|
-
const _c4 = function (a0) { return { $implicit: a0 }; };
|
|
20
|
+
const _c2 = function () { return {}; };
|
|
21
|
+
const _c3 = function (a0) { return { $implicit: a0 }; };
|
|
23
22
|
function DrGalleryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
24
23
|
i0.ɵɵelementStart(0, "div", 6, 7);
|
|
25
24
|
i0.ɵɵtemplate(2, DrGalleryComponent_div_4_ng_container_2_Template, 1, 0, "ng-container", 8);
|
|
@@ -29,9 +28,10 @@ function DrGalleryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
29
28
|
const i_r7 = ctx.index;
|
|
30
29
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
31
30
|
i0.ɵɵstyleProp("transition", ctx_r2.transition);
|
|
32
|
-
i0.ɵɵ
|
|
31
|
+
i0.ɵɵclassProp("dr-gallery-item_active", ctx_r2.centerIndex === i_r7)("dr-gallery-item_fadein", ctx_r2.fadeIn && ctx_r2.centerIndex === i_r7 + 1);
|
|
32
|
+
i0.ɵɵproperty("ngStyle", ctx_r2.modeType === "loop" ? ctx_r2.getStyle() : i0.ɵɵpureFunction0(9, _c2));
|
|
33
33
|
i0.ɵɵadvance(2);
|
|
34
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(
|
|
34
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(10, _c3, item_r6));
|
|
35
35
|
} }
|
|
36
36
|
function DrGalleryComponent_dr_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
37
37
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
@@ -72,6 +72,9 @@ export class DrGalleryComponent {
|
|
|
72
72
|
this.noTransition = '0ms';
|
|
73
73
|
this.modeType = 'loop';
|
|
74
74
|
this.isOutsideBtns = false;
|
|
75
|
+
this.fadeIn = false;
|
|
76
|
+
this.autoPlay = false;
|
|
77
|
+
this.autoplayInterval = 5000; //5 seconds
|
|
75
78
|
this.activeIndex = 0;
|
|
76
79
|
this.carouselItems = [];
|
|
77
80
|
this.transform = 'translateX(0%)';
|
|
@@ -84,8 +87,14 @@ export class DrGalleryComponent {
|
|
|
84
87
|
setTimeout(() => {
|
|
85
88
|
this.calculateItemOffsets();
|
|
86
89
|
this.updateTransform();
|
|
90
|
+
if (this.autoPlay) {
|
|
91
|
+
this.startAutoplay();
|
|
92
|
+
}
|
|
87
93
|
});
|
|
88
94
|
}
|
|
95
|
+
ngOnDestroy() {
|
|
96
|
+
this.clearAutoplay();
|
|
97
|
+
}
|
|
89
98
|
initializeCarousel() {
|
|
90
99
|
if (this.modeType === 'loop') {
|
|
91
100
|
this.carouselItems = [
|
|
@@ -154,11 +163,18 @@ export class DrGalleryComponent {
|
|
|
154
163
|
this.activeIndex++;
|
|
155
164
|
this.updateTransform();
|
|
156
165
|
}
|
|
166
|
+
else {
|
|
167
|
+
this.activeIndex = 0;
|
|
168
|
+
this.updateTransform();
|
|
169
|
+
}
|
|
157
170
|
}
|
|
158
171
|
}
|
|
159
172
|
navigate(index) {
|
|
160
173
|
this.activeIndex = index;
|
|
161
174
|
this.updateTransform();
|
|
175
|
+
if (this.autoPlay) {
|
|
176
|
+
this.startAutoplay();
|
|
177
|
+
}
|
|
162
178
|
}
|
|
163
179
|
get canGoPrev() {
|
|
164
180
|
if (this.modeType === 'loop')
|
|
@@ -195,6 +211,18 @@ export class DrGalleryComponent {
|
|
|
195
211
|
this.transition = this.defaultTransition;
|
|
196
212
|
this.cdr.markForCheck();
|
|
197
213
|
}
|
|
214
|
+
startAutoplay() {
|
|
215
|
+
this.clearAutoplay();
|
|
216
|
+
this.autoplayTimer = setInterval(() => {
|
|
217
|
+
this.next();
|
|
218
|
+
}, this.autoplayInterval);
|
|
219
|
+
}
|
|
220
|
+
clearAutoplay() {
|
|
221
|
+
if (this.autoplayTimer) {
|
|
222
|
+
clearInterval(this.autoplayTimer);
|
|
223
|
+
this.autoplayTimer = null;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
198
226
|
/** @nocollapse */ static { this.ɵfac = function DrGalleryComponent_Factory(t) { return new (t || DrGalleryComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
199
227
|
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrGalleryComponent, selectors: [["dr-gallery"]], contentQueries: function DrGalleryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
200
228
|
i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);
|
|
@@ -208,27 +236,28 @@ export class DrGalleryComponent {
|
|
|
208
236
|
let _t;
|
|
209
237
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerRef = _t.first);
|
|
210
238
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemElements = _t);
|
|
211
|
-
} }, inputs: { modeType: "modeType", isOutsideBtns: "isOutsideBtns", items: "items", itemsCount: "itemsCount" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars:
|
|
239
|
+
} }, inputs: { modeType: "modeType", isOutsideBtns: "isOutsideBtns", fadeIn: "fadeIn", autoPlay: "autoPlay", autoplayInterval: "autoplayInterval", items: "items", itemsCount: "itemsCount" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars: 12, consts: [["class", "dr-gallery-btn dr-gallery-btn_left", "theme", "icon", 3, "icon", "click", 4, "ngIf"], ["carouselContainer", ""], [1, "dr-gallery-items"], ["class", "dr-gallery-item", 3, "transition", "dr-gallery-item_active", "dr-gallery-item_fadein", "ngStyle", 4, "ngFor", "ngForOf"], ["class", "dr-gallery-btn dr-gallery-btn_right", "theme", "icon", 3, "iconSize", "icon", "click", 4, "ngIf"], ["theme", "icon", 1, "dr-gallery-btn", "dr-gallery-btn_left", 3, "icon", "click"], [1, "dr-gallery-item", 3, "ngStyle"], ["carouselItem", ""], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["theme", "icon", 1, "dr-gallery-btn", "dr-gallery-btn_right", 3, "iconSize", "icon", "click"]], template: function DrGalleryComponent_Template(rf, ctx) { if (rf & 1) {
|
|
212
240
|
i0.ɵɵtemplate(0, DrGalleryComponent_dr_button_0_Template, 1, 1, "dr-button", 0);
|
|
213
241
|
i0.ɵɵelementStart(1, "div", null, 1)(3, "div", 2);
|
|
214
|
-
i0.ɵɵtemplate(4, DrGalleryComponent_div_4_Template, 3,
|
|
242
|
+
i0.ɵɵtemplate(4, DrGalleryComponent_div_4_Template, 3, 12, "div", 3);
|
|
215
243
|
i0.ɵɵelementEnd()();
|
|
216
244
|
i0.ɵɵtemplate(5, DrGalleryComponent_dr_button_5_Template, 1, 2, "dr-button", 4);
|
|
217
245
|
} if (rf & 2) {
|
|
218
246
|
i0.ɵɵproperty("ngIf", !ctx.isOutsideBtns);
|
|
219
247
|
i0.ɵɵadvance(1);
|
|
220
248
|
i0.ɵɵclassMapInterpolate1("dr-gallery-caroousel dr-gallery-caroousel_", ctx.modeType, "");
|
|
249
|
+
i0.ɵɵclassProp("dr-gallery-caroousel_fadein", ctx.fadeIn);
|
|
221
250
|
i0.ɵɵadvance(2);
|
|
222
251
|
i0.ɵɵstyleProp("transition", ctx.transition)("transform", ctx.transform);
|
|
223
252
|
i0.ɵɵadvance(1);
|
|
224
253
|
i0.ɵɵproperty("ngForOf", ctx.carouselItems);
|
|
225
254
|
i0.ɵɵadvance(1);
|
|
226
255
|
i0.ɵɵproperty("ngIf", !ctx.isOutsideBtns);
|
|
227
|
-
} }, dependencies: [CommonModule, i1.
|
|
256
|
+
} }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, DrInputsModule, i2.DrButtonComponent], styles: [".dr-gallery-caroousel[_ngcontent-%COMP%]{display:block;position:relative;overflow:hidden}.dr-gallery-caroousel.dr-gallery-caroousel_loop[_ngcontent-%COMP%] .dr-gallery-item[_ngcontent-%COMP%]{width:100%;min-height:240px}.dr-gallery-caroousel.dr-gallery-caroousel_loop[_ngcontent-%COMP%] .dr-gallery-item_active[_ngcontent-%COMP%]{transform:scale(1.2)}.dr-gallery-caroousel.dr-gallery-caroousel_fadein[_ngcontent-%COMP%] .dr-gallery-item[_ngcontent-%COMP%]{opacity:0}.dr-gallery-items[_ngcontent-%COMP%]{display:flex;position:relative;align-items:flex-end;will-change:transform}.dr-gallery-item[_ngcontent-%COMP%]{box-sizing:border-box;position:relative;flex-grow:1;padding:42px 24px;margin-top:-8px}.dr-gallery-item_fadein[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeIn .3s ease-in .25s forwards}.dr-gallery-btn[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;box-shadow:0 4px 4px #00000040}.dr-gallery-btn[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:40px!important;height:40px!important}.dr-gallery-btn[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{border-radius:50%}.dr-gallery-btn_left[_ngcontent-%COMP%]{left:0}.dr-gallery-btn_right[_ngcontent-%COMP%]{right:0}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0}to{opacity:1}}"], changeDetection: 0 }); }
|
|
228
257
|
}
|
|
229
258
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrGalleryComponent, [{
|
|
230
259
|
type: Component,
|
|
231
|
-
args: [{ selector: 'dr-gallery', imports: [CommonModule, DrInputsModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<dr-button\n *ngIf=\"!isOutsideBtns\"\n class=\"dr-gallery-btn dr-gallery-btn_left\"\n (click)=\"prev()\"\n theme=\"icon\"\n [icon]=\"'dr-icon-arrow-left'\">\n</dr-button>\n\n<div
|
|
260
|
+
args: [{ selector: 'dr-gallery', imports: [CommonModule, DrInputsModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<dr-button\n *ngIf=\"!isOutsideBtns\"\n class=\"dr-gallery-btn dr-gallery-btn_left\"\n (click)=\"prev()\"\n theme=\"icon\"\n [icon]=\"'dr-icon-arrow-left'\">\n</dr-button>\n\n<div\n #carouselContainer\n class=\"dr-gallery-caroousel dr-gallery-caroousel_{{ modeType }}\"\n [class.dr-gallery-caroousel_fadein]=\"fadeIn\">\n <div class=\"dr-gallery-items\" [style.transition]=\"transition\" [style.transform]=\"transform\">\n <div\n #carouselItem\n *ngFor=\"let item of carouselItems; let i = index\"\n class=\"dr-gallery-item\"\n [style.transition]=\"transition\"\n [class.dr-gallery-item_active]=\"centerIndex === i\"\n [class.dr-gallery-item_fadein]=\"fadeIn && centerIndex === i + 1\"\n [ngStyle]=\"modeType === 'loop' ? getStyle() : {}\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: item }\"></ng-container>\n </div>\n </div>\n</div>\n\n<dr-button\n *ngIf=\"!isOutsideBtns\"\n class=\"dr-gallery-btn dr-gallery-btn_right\"\n (click)=\"next()\"\n [iconSize]=\"'24px'\"\n theme=\"icon\"\n [icon]=\"'dr-icon-arrow-right'\">\n</dr-button>\n", styles: [".dr-gallery-caroousel{display:block;position:relative;overflow:hidden}.dr-gallery-caroousel.dr-gallery-caroousel_loop .dr-gallery-item{width:100%;min-height:240px}.dr-gallery-caroousel.dr-gallery-caroousel_loop .dr-gallery-item_active{transform:scale(1.2)}.dr-gallery-caroousel.dr-gallery-caroousel_fadein .dr-gallery-item{opacity:0}.dr-gallery-items{display:flex;position:relative;align-items:flex-end;will-change:transform}.dr-gallery-item{box-sizing:border-box;position:relative;flex-grow:1;padding:42px 24px;margin-top:-8px}.dr-gallery-item_fadein{animation:fadeIn .3s ease-in .25s forwards}.dr-gallery-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;box-shadow:0 4px 4px #00000040}.dr-gallery-btn button{width:40px!important;height:40px!important}.dr-gallery-btn button:hover{border-radius:50%}.dr-gallery-btn_left{left:0}.dr-gallery-btn_right{right:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
232
261
|
}], function () { return [{ type: i0.ChangeDetectorRef }]; }, { template: [{
|
|
233
262
|
type: ContentChild,
|
|
234
263
|
args: [TemplateRef]
|
|
@@ -236,6 +265,12 @@ export class DrGalleryComponent {
|
|
|
236
265
|
type: Input
|
|
237
266
|
}], isOutsideBtns: [{
|
|
238
267
|
type: Input
|
|
268
|
+
}], fadeIn: [{
|
|
269
|
+
type: Input
|
|
270
|
+
}], autoPlay: [{
|
|
271
|
+
type: Input
|
|
272
|
+
}], autoplayInterval: [{
|
|
273
|
+
type: Input
|
|
239
274
|
}], items: [{
|
|
240
275
|
type: Input
|
|
241
276
|
}], itemsCount: [{
|
|
@@ -247,4 +282,4 @@ export class DrGalleryComponent {
|
|
|
247
282
|
type: ViewChildren,
|
|
248
283
|
args: ['carouselItem']
|
|
249
284
|
}] }); })();
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1nYWxsZXJ5L2RyLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZ2FsbGVyeS9kci1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7SUNkL0Qsb0NBS2tDO0lBRjlCLHdLQUFTLGVBQUEsYUFBTSxDQUFBLElBQUM7SUFHcEIsaUJBQVk7O0lBRFIsMkNBQTZCOzs7SUFZckIsd0JBQXdGOzs7Ozs7SUFQNUYsaUNBTXNEO0lBQ2xELDJGQUF3RjtJQUM1RixpQkFBTTs7Ozs7SUFKRiwrQ0FBK0I7SUFDL0IsaUZBQTJELHdGQUFBO0lBRTVDLGVBQTRCO0lBQTVCLGtEQUE0QixnRUFBQTs7OztJQUt2RCxvQ0FNbUM7SUFIL0IsMEtBQVMsZUFBQSxjQUFNLENBQUEsSUFBQztJQUlwQixpQkFBWTs7SUFIUixpQ0FBbUIsK0JBQUE7O0FESHZCLE1BQU0sT0FBTyxrQkFBa0I7SUFXM0IsSUFDSSxLQUFLLENBQUMsS0FBVTtRQUNoQixJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENB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QUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7c0dBaExRLGtCQUFrQjttR0FBbEIsa0JBQWtCO3dDQUNiLFdBQVc7Ozs7Ozs7Ozs7OztZQ3hCN0IsK0VBTVk7WUFFWixvQ0FBeUYsYUFBQTtZQUVqRixvRUFRTTtZQUNWLGlCQUFNLEVBQUE7WUFHViwrRUFPWTs7WUE1QlAseUNBQW9CO1lBT0QsZUFBZ0U7WUFBaEUseUZBQWdFO1lBQ3RELGVBQStCO1lBQS9CLDRDQUErQiw0QkFBQTtZQUdwQyxlQUFrQjtZQUFsQiwyQ0FBa0I7WUFXMUMsZUFBb0I7WUFBcEIseUNBQW9COzRCREpYLFlBQVksb0VBQUUsY0FBYzs7dUZBSTdCLGtCQUFrQjtjQVI5QixTQUFTOzJCQUNJLFlBQVksV0FHYixDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsY0FDM0IsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNO29FQUdwQixRQUFRO2tCQUFsQyxZQUFZO21CQUFDLFdBQVc7WUFPaEIsUUFBUTtrQkFBaEIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFHRixLQUFLO2tCQURSLEtBQUs7WUFTRixVQUFVO2tCQURiLEtBQUs7WUEyQjBCLFlBQVk7a0JBQTNDLFNBQVM7bUJBQUMsbUJBQW1CO1lBQ0EsWUFBWTtrQkFBekMsWUFBWTttQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgYXMgX3Rha2UsIHRha2VSaWdodCBhcyBfdGFrZVJpZ2h0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERySW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vZHItaW5wdXRzL2RyLWlucHV0cy5tb2R1bGUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1nYWxsZXJ5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERySW5wdXRzTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckdhbGxlcnlDb21wb25lbnQ8VCA9IGFueT4ge1xuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlITogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT47XG5cbiAgICBwcml2YXRlIF9pdGVtczogVFtdID0gW107XG4gICAgcHJpdmF0ZSBfaXRlbXNDb3VudCA9IDM7XG4gICAgcmVhZG9ubHkgZGVmYXVsdFRyYW5zaXRpb24gPSAnMjUwbXMgZWFzZS1pbi1vdXQnO1xuICAgIHJlYWRvbmx5IG5vVHJhbnNpdGlvbiA9ICcwbXMnO1xuXG4gICAgQElucHV0KCkgbW9kZVR5cGU6ICdsb29wJyB8ICdkeW5hbWljJyA9ICdsb29wJztcbiAgICBASW5wdXQoKSBpc091dHNpZGVCdG5zID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBpdGVtcyh2YWx1ZTogVFtdKSB7XG4gICAgICAgIGlmICh2YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplQ2Fyb3VzZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGl0ZW1zQ291bnQodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAoIXRoaXMuaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbXNDb3VudCA9IHZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXRlbXNDb3VudCA9IHZhbHVlID4gdGhpcy5pdGVtcy5sZW5ndGggLSAxID8gdGhpcy5pdGVtcy5sZW5ndGggOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaXRlbXMoKTogVFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICAgIH1cblxuICAgIGdldCBpdGVtc0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtc0NvdW50O1xuICAgIH1cblxuICAgIGdldCBjZW50ZXJJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNDb3VudCA+IDEgJiYgdGhpcy5pdGVtc0NvdW50ICUgMiAhPT0gMCA/IHRoaXMuYWN0aXZlSW5kZXggKyBNYXRoLmZsb29yKHRoaXMuaXRlbXNDb3VudCAvIDIpIDogbnVsbDtcbiAgICB9XG5cbiAgICBhY3RpdmVJbmRleCA9IDA7XG4gICAgY2Fyb3VzZWxJdGVtczogVFtdID0gW107XG4gICAgdHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoMCUpJztcbiAgICB0cmFuc2l0aW9uID0gdGhpcy5kZWZhdWx0VHJhbnNpdGlvbjtcblxuICAgIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsQ29udGFpbmVyJykgY29udGFpbmVyUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZHJlbignY2Fyb3VzZWxJdGVtJykgaXRlbUVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcbiAgICBwcml2YXRlIGl0ZW1PZmZzZXRzOiBudW1iZXJbXSA9IFtdO1xuICAgIHByaXZhdGUgaXRlbVdpZHRoczogbnVtYmVyW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgLy8gV2FpdCBmb3IgaW5pdGlhbCByZW5kZXJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUl0ZW1PZmZzZXRzKCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVDYXJvdXNlbCgpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZVR5cGUgPT09ICdsb29wJykge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbEl0ZW1zID0gW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2l0ZW1zLnNsaWNlKC10aGlzLml0ZW1zQ291bnQpLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2l0ZW1zLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2l0ZW1zLnNsaWNlKDAsIHRoaXMuaXRlbXNDb3VudCksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMuaXRlbXNDb3VudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWxJdGVtcyA9IFsuLi50aGlzLl9pdGVtc107XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVJdGVtT2Zmc2V0cygpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVJdGVtT2Zmc2V0cygpIHtcbiAgICAgICAgdGhpcy5pdGVtT2Zmc2V0cyA9IFtdO1xuICAgICAgICB0aGlzLml0ZW1XaWR0aHMgPSBbXTtcblxuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLml0ZW1FbGVtZW50cy50b0FycmF5KCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBlbCBvZiBlbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgdGhpcy5pdGVtT2Zmc2V0cy5wdXNoKG9mZnNldCk7XG4gICAgICAgICAgICB0aGlzLml0ZW1XaWR0aHMucHVzaCh3aWR0aCk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gd2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTdHlsZSgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcbiAgICAgICAgY29uc3QgcGVyY2VudCA9IGBjYWxjKCR7MTAwIC8gdGhpcy5pdGVtc0NvdW50fSUpYDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1pbldpZHRoOiBwZXJjZW50LFxuICAgICAgICAgICAgbWF4V2lkdGg6IHBlcmNlbnQsXG4gICAgICAgICAgICBmbGV4QmFzaXM6IHBlcmNlbnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJldigpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZVR5cGUgPT09ICdsb29wJykge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleC0tO1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5kZWZhdWx0VHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4IDw9IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0SW5kZXhBZnRlckRlbGF5KHRoaXMuY2Fyb3VzZWxJdGVtcy5sZW5ndGggLSB0aGlzLml0ZW1zLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4LS07XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5leHQoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXgrKztcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbiA9IHRoaXMuZGVmYXVsdFRyYW5zaXRpb247XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCArIHRoaXMuaXRlbXNDb3VudCA+IHRoaXMuY2Fyb3VzZWxJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEluZGV4QWZ0ZXJEZWxheSh0aGlzLml0ZW1zQ291bnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggKyAxIDwgdGhpcy5jYXJvdXNlbEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXgrKztcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmF2aWdhdGUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbkdvUHJldigpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZVR5cGUgPT09ICdsb29wJykgcmV0dXJuIHRydWU7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmFjdGl2ZUluZGV4ID4gMCk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbkdvTmV4dCgpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZVR5cGUgPT09ICdsb29wJykgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5jb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldFdpZHRoIHx8IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPZmZzZXQgPSB0aGlzLml0ZW1PZmZzZXRzW3RoaXMuYWN0aXZlSW5kZXhdIHx8IDA7XG4gICAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHRoaXMuaXRlbU9mZnNldHMubGVuZ3RoIC0gMTtcbiAgICAgICAgY29uc3QgdG90YWxDb250ZW50V2lkdGggPSB0aGlzLml0ZW1PZmZzZXRzW2xhc3RJbmRleF0gKyB0aGlzLml0ZW1XaWR0aHNbbGFzdEluZGV4XTtcblxuICAgICAgICByZXR1cm4gY3VycmVudE9mZnNldCArIGNvbnRhaW5lcldpZHRoIDwgdG90YWxDb250ZW50V2lkdGggLSAxO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRJbmRleEFmdGVyRGVsYXkobmV3SW5kZXg6IG51bWJlcikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbiA9IHRoaXMubm9UcmFuc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IG5ld0luZGV4O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0odHJ1ZSk7XG4gICAgICAgIH0sIDI1MCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUcmFuc2Zvcm0oc2tpcFRyYW5zaXRpb24gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKCR7LTEwMCAqICh0aGlzLmFjdGl2ZUluZGV4IC8gdGhpcy5pdGVtc0NvdW50KX0lKWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLml0ZW1PZmZzZXRzW3RoaXMuYWN0aXZlSW5kZXhdIHx8IDA7XG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKC0ke29mZnNldH1weClgO1xuICAgICAgICB9XG4gICAgICAgIGlmIChza2lwVHJhbnNpdGlvbikgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5ub1RyYW5zaXRpb247XG4gICAgICAgIGVsc2UgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5kZWZhdWx0VHJhbnNpdGlvbjtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPGRyLWJ1dHRvblxuICAgICpuZ0lmPVwiIWlzT3V0c2lkZUJ0bnNcIlxuICAgIGNsYXNzPVwiZHItZ2FsbGVyeS1idG4gZHItZ2FsbGVyeS1idG5fbGVmdFwiXG4gICAgKGNsaWNrKT1cInByZXYoKVwiXG4gICAgdGhlbWU9XCJpY29uXCJcbiAgICBbaWNvbl09XCInZHItaWNvbi1hcnJvdy1sZWZ0J1wiPlxuPC9kci1idXR0b24+XG5cbjxkaXYgI2Nhcm91c2VsQ29udGFpbmVyIGNsYXNzPVwiZHItZ2FsbGVyeS1jYXJvb3VzZWwgZHItZ2FsbGVyeS1jYXJvb3VzZWxfe3sgbW9kZVR5cGUgfX1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZ2FsbGVyeS1pdGVtc1wiIFtzdHlsZS50cmFuc2l0aW9uXT1cInRyYW5zaXRpb25cIiBbc3R5bGUudHJhbnNmb3JtXT1cInRyYW5zZm9ybVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjY2Fyb3VzZWxJdGVtXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYXJvdXNlbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHItZ2FsbGVyeS1pdGVtXCJcbiAgICAgICAgICAgIFtzdHlsZS50cmFuc2l0aW9uXT1cInRyYW5zaXRpb25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZHItZ2FsbGVyeS1pdGVtX2FjdGl2ZSc6IGNlbnRlckluZGV4ID09PSBpIH1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwibW9kZVR5cGUgPT09ICdsb29wJyA/IGdldFN0eWxlKCkgOiB7fVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkci1idXR0b25cbiAgICAqbmdJZj1cIiFpc091dHNpZGVCdG5zXCJcbiAgICBjbGFzcz1cImRyLWdhbGxlcnktYnRuIGRyLWdhbGxlcnktYnRuX3JpZ2h0XCJcbiAgICAoY2xpY2spPVwibmV4dCgpXCJcbiAgICBbaWNvblNpemVdPVwiJzI0cHgnXCJcbiAgICB0aGVtZT1cImljb25cIlxuICAgIFtpY29uXT1cIidkci1pY29uLWFycm93LXJpZ2h0J1wiPlxuPC9kci1idXR0b24+XG4iXX0=
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1nYWxsZXJ5L2RyLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZ2FsbGVyeS9kci1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7SUNoQi9ELG9DQUtrQztJQUY5Qix3S0FBUyxlQUFBLGFBQU0sQ0FBQSxJQUFDO0lBR3BCLGlCQUFZOztJQURSLDJDQUE2Qjs7O0lBZ0JyQix3QkFBd0Y7Ozs7O0lBUjVGLGlDQU9zRDtJQUNsRCwyRkFBd0Y7SUFDNUYsaUJBQU07Ozs7O0lBTEYsK0NBQStCO0lBQy9CLHFFQUFrRCw0RUFBQTtJQUVsRCxxR0FBaUQ7SUFDbEMsZUFBNEI7SUFBNUIsa0RBQTRCLGlFQUFBOzs7O0lBS3ZELG9DQU1tQztJQUgvQiwwS0FBUyxlQUFBLGNBQU0sQ0FBQSxJQUFDO0lBSXBCLGlCQUFZOztJQUhSLGlDQUFtQiwrQkFBQTs7QURMdkIsTUFBTSxPQUFPLGtCQUFrQjtJQWUzQixJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2hCLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFD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QUFBO1lBR3BDLGVBQWtCO1lBQWxCLDJDQUFrQjtZQVkxQyxlQUFvQjtZQUFwQix5Q0FBb0I7NEJETlgsWUFBWSx3REFBRSxjQUFjOzt1RkFJN0Isa0JBQWtCO2NBUjlCLFNBQVM7MkJBQ0ksWUFBWSxXQUdiLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxjQUMzQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU07b0VBR3BCLFFBQVE7a0JBQWxDLFlBQVk7bUJBQUMsV0FBVztZQVFoQixRQUFRO2tCQUFoQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFHRixLQUFLO2tCQURSLEtBQUs7WUFTRixVQUFVO2tCQURiLEtBQUs7WUEyQjBCLFlBQVk7a0JBQTNDLFNBQVM7bUJBQUMsbUJBQW1CO1lBQ0EsWUFBWTtrQkFBekMsWUFBWTttQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgYXMgX3Rha2UsIHRha2VSaWdodCBhcyBfdGFrZVJpZ2h0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERySW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vZHItaW5wdXRzL2RyLWlucHV0cy5tb2R1bGUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1nYWxsZXJ5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERySW5wdXRzTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckdhbGxlcnlDb21wb25lbnQ8VCA9IGFueT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlITogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT47XG5cbiAgICBwcml2YXRlIF9pdGVtczogVFtdID0gW107XG4gICAgcHJpdmF0ZSBfaXRlbXNDb3VudCA9IDM7XG4gICAgcHJpdmF0ZSBhdXRvcGxheVRpbWVyOiBhbnk7XG4gICAgcmVhZG9ubHkgZGVmYXVsdFRyYW5zaXRpb24gPSAnMjUwbXMgZWFzZS1pbi1vdXQnO1xuICAgIHJlYWRvbmx5IG5vVHJhbnNpdGlvbiA9ICcwbXMnO1xuXG4gICAgQElucHV0KCkgbW9kZVR5cGU6ICdsb29wJyB8ICdkeW5hbWljJyA9ICdsb29wJztcbiAgICBASW5wdXQoKSBpc091dHNpZGVCdG5zID0gZmFsc2U7XG4gICAgQElucHV0KCkgZmFkZUluID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXV0b1BsYXkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhdXRvcGxheUludGVydmFsID0gNTAwMDsgLy81IHNlY29uZHNcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGl0ZW1zKHZhbHVlOiBUW10pIHtcbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVDYXJvdXNlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgaXRlbXNDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICghdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtc0NvdW50ID0gdmFsdWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pdGVtc0NvdW50ID0gdmFsdWUgPiB0aGlzLml0ZW1zLmxlbmd0aCAtIDEgPyB0aGlzLml0ZW1zLmxlbmd0aCA6IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpdGVtcygpOiBUW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gICAgfVxuXG4gICAgZ2V0IGl0ZW1zQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zQ291bnQ7XG4gICAgfVxuXG4gICAgZ2V0IGNlbnRlckluZGV4KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtc0NvdW50ID4gMSAmJiB0aGlzLml0ZW1zQ291bnQgJSAyICE9PSAwID8gdGhpcy5hY3RpdmVJbmRleCArIE1hdGguZmxvb3IodGhpcy5pdGVtc0NvdW50IC8gMikgOiBudWxsO1xuICAgIH1cblxuICAgIGFjdGl2ZUluZGV4ID0gMDtcbiAgICBjYXJvdXNlbEl0ZW1zOiBUW10gPSBbXTtcbiAgICB0cmFuc2Zvcm0gPSAndHJhbnNsYXRlWCgwJSknO1xuICAgIHRyYW5zaXRpb24gPSB0aGlzLmRlZmF1bHRUcmFuc2l0aW9uO1xuXG4gICAgQFZpZXdDaGlsZCgnY2Fyb3VzZWxDb250YWluZXInKSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkcmVuKCdjYXJvdXNlbEl0ZW0nKSBpdGVtRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICAgIHByaXZhdGUgaXRlbU9mZnNldHM6IG51bWJlcltdID0gW107XG4gICAgcHJpdmF0ZSBpdGVtV2lkdGhzOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBXYWl0IGZvciBpbml0aWFsIHJlbmRlclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSXRlbU9mZnNldHMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvUGxheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdXRvcGxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhckF1dG9wbGF5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplQ2Fyb3VzZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWxJdGVtcyA9IFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9pdGVtcy5zbGljZSgtdGhpcy5pdGVtc0NvdW50KSxcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9pdGVtcyxcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9pdGVtcy5zbGljZSgwLCB0aGlzLml0ZW1zQ291bnQpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0aGlzLml0ZW1zQ291bnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsSXRlbXMgPSBbLi4udGhpcy5faXRlbXNdO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSXRlbU9mZnNldHMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlSXRlbU9mZnNldHMoKSB7XG4gICAgICAgIHRoaXMuaXRlbU9mZnNldHMgPSBbXTtcbiAgICAgICAgdGhpcy5pdGVtV2lkdGhzID0gW107XG5cbiAgICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5pdGVtRWxlbWVudHMudG9BcnJheSgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIHRoaXMuaXRlbU9mZnNldHMucHVzaChvZmZzZXQpO1xuICAgICAgICAgICAgdGhpcy5pdGVtV2lkdGhzLnB1c2god2lkdGgpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0U3R5bGUoKTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnQgPSBgY2FsYygkezEwMCAvIHRoaXMuaXRlbXNDb3VudH0lKWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtaW5XaWR0aDogcGVyY2VudCxcbiAgICAgICAgICAgIG1heFdpZHRoOiBwZXJjZW50LFxuICAgICAgICAgICAgZmxleEJhc2lzOiBwZXJjZW50LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByZXYoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXgtLTtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbiA9IHRoaXMuZGVmYXVsdFRyYW5zaXRpb247XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEluZGV4QWZ0ZXJEZWxheSh0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoIC0gdGhpcy5pdGVtcy5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleC0tO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0KCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLmRlZmF1bHRUcmFuc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggKyB0aGlzLml0ZW1zQ291bnQgPiB0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbmRleEFmdGVyRGVsYXkodGhpcy5pdGVtc0NvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4ICsgMSA8IHRoaXMuY2Fyb3VzZWxJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hdmlnYXRlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuICAgICAgICBpZiAodGhpcy5hdXRvUGxheSkge1xuICAgICAgICAgICAgdGhpcy5zdGFydEF1dG9wbGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgY2FuR29QcmV2KCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuYWN0aXZlSW5kZXggPiAwKTtcbiAgICB9XG5cbiAgICBnZXQgY2FuR29OZXh0KCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmNvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGggfHwgMDtcbiAgICAgICAgY29uc3QgY3VycmVudE9mZnNldCA9IHRoaXMuaXRlbU9mZnNldHNbdGhpcy5hY3RpdmVJbmRleF0gfHwgMDtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gdGhpcy5pdGVtT2Zmc2V0cy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCB0b3RhbENvbnRlbnRXaWR0aCA9IHRoaXMuaXRlbU9mZnNldHNbbGFzdEluZGV4XSArIHRoaXMuaXRlbVdpZHRoc1tsYXN0SW5kZXhdO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW50T2Zmc2V0ICsgY29udGFpbmVyV2lkdGggPCB0b3RhbENvbnRlbnRXaWR0aCAtIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEluZGV4QWZ0ZXJEZWxheShuZXdJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5ub1RyYW5zaXRpb247XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSh0cnVlKTtcbiAgICAgICAgfSwgMjUwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRyYW5zZm9ybShza2lwVHJhbnNpdGlvbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHstMTAwICogKHRoaXMuYWN0aXZlSW5kZXggLyB0aGlzLml0ZW1zQ291bnQpfSUpYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuaXRlbU9mZnNldHNbdGhpcy5hY3RpdmVJbmRleF0gfHwgMDtcbiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoLSR7b2Zmc2V0fXB4KWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNraXBUcmFuc2l0aW9uKSB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLm5vVHJhbnNpdGlvbjtcbiAgICAgICAgZWxzZSB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLmRlZmF1bHRUcmFuc2l0aW9uO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0QXV0b3BsYXkoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJBdXRvcGxheSgpO1xuICAgICAgICB0aGlzLmF1dG9wbGF5VGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgICAgfSwgdGhpcy5hdXRvcGxheUludGVydmFsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyQXV0b3BsYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9wbGF5VGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvcGxheVRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMuYXV0b3BsYXlUaW1lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZHItYnV0dG9uXG4gICAgKm5nSWY9XCIhaXNPdXRzaWRlQnRuc1wiXG4gICAgY2xhc3M9XCJkci1nYWxsZXJ5LWJ0biBkci1nYWxsZXJ5LWJ0bl9sZWZ0XCJcbiAgICAoY2xpY2spPVwicHJldigpXCJcbiAgICB0aGVtZT1cImljb25cIlxuICAgIFtpY29uXT1cIidkci1pY29uLWFycm93LWxlZnQnXCI+XG48L2RyLWJ1dHRvbj5cblxuPGRpdlxuICAgICNjYXJvdXNlbENvbnRhaW5lclxuICAgIGNsYXNzPVwiZHItZ2FsbGVyeS1jYXJvb3VzZWwgZHItZ2FsbGVyeS1jYXJvb3VzZWxfe3sgbW9kZVR5cGUgfX1cIlxuICAgIFtjbGFzcy5kci1nYWxsZXJ5LWNhcm9vdXNlbF9mYWRlaW5dPVwiZmFkZUluXCI+XG4gICAgPGRpdiBjbGFzcz1cImRyLWdhbGxlcnktaXRlbXNcIiBbc3R5bGUudHJhbnNpdGlvbl09XCJ0cmFuc2l0aW9uXCIgW3N0eWxlLnRyYW5zZm9ybV09XCJ0cmFuc2Zvcm1cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2Nhcm91c2VsSXRlbVxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2Fyb3VzZWxJdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cImRyLWdhbGxlcnktaXRlbVwiXG4gICAgICAgICAgICBbc3R5bGUudHJhbnNpdGlvbl09XCJ0cmFuc2l0aW9uXCJcbiAgICAgICAgICAgIFtjbGFzcy5kci1nYWxsZXJ5LWl0ZW1fYWN0aXZlXT1cImNlbnRlckluZGV4ID09PSBpXCJcbiAgICAgICAgICAgIFtjbGFzcy5kci1nYWxsZXJ5LWl0ZW1fZmFkZWluXT1cImZhZGVJbiAmJiBjZW50ZXJJbmRleCA9PT0gaSArIDFcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwibW9kZVR5cGUgPT09ICdsb29wJyA/IGdldFN0eWxlKCkgOiB7fVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkci1idXR0b25cbiAgICAqbmdJZj1cIiFpc091dHNpZGVCdG5zXCJcbiAgICBjbGFzcz1cImRyLWdhbGxlcnktYnRuIGRyLWdhbGxlcnktYnRuX3JpZ2h0XCJcbiAgICAoY2xpY2spPVwibmV4dCgpXCJcbiAgICBbaWNvblNpemVdPVwiJzI0cHgnXCJcbiAgICB0aGVtZT1cImljb25cIlxuICAgIFtpY29uXT1cIidkci1pY29uLWFycm93LXJpZ2h0J1wiPlxuPC9kci1idXR0b24+XG4iXX0=
|
|
@@ -34,6 +34,7 @@ export class ChatMessage {
|
|
|
34
34
|
this.user = obj?.user;
|
|
35
35
|
this.files = obj?.files;
|
|
36
36
|
this.suggestions = obj?.suggestions;
|
|
37
|
+
this.cards = obj?.cards;
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL21vZGVscy9jaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFPcEUsTUFBTSxDQUFOLElBQVksaUJBVVg7QUFWRCxXQUFZLGlCQUFpQjtJQUN6QixrQ0FBYSxDQUFBO0lBQ2IsNENBQXVCLENBQUE7SUFDdkIsb0NBQWUsQ0FBQTtJQUNmLG9EQUErQixDQUFBO0lBQy9CLHNDQUFpQixDQUFBO0lBQ2pCLG9DQUFlLENBQUE7SUFDZixvQ0FBZSxDQUFBO0lBQ2Ysa0NBQWEsQ0FBQTtJQUNiLG9DQUFlLENBQUE7QUFDbkIsQ0FBQyxFQVZXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFVNUI7QUFFRCxNQUFNLENBQU4sSUFBWSxRQUdYO0FBSEQsV0FBWSxRQUFRO0lBQ2hCLHlCQUFhLENBQUE7SUFDYixtQ0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFxREQsTUFBTSxPQUFPLFdBQVc7SUFvQnBCLFlBQVksR0FBUTtRQUNoQixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUM7SUFDNUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZlZWRiYWNrIH0gZnJvbSAnLi9mZWVkYmFjayc7XG5cbmV4cG9ydCBjb25zdCBJTUFHRV9UWVBFUyA9IFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvZ2lmJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZJbGUgZXh0ZW5kcyBQYXJ0aWFsPEZpbGU+IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBkYXRhOiBzdHJpbmc7IC8vYmFzZTY0O1xufVxuXG5leHBvcnQgZW51bSBDSEFUX01FU1NBR0VfVFlQRSB7XG4gICAgVEVYVCA9ICd0ZXh0JyxcbiAgICBSSUNIX1RFWFQgPSAncmljaC10ZXh0JyxcbiAgICBJTUFHRSA9ICdpbWFnZScsXG4gICAgRE9XTkxPQURfRklMRSA9ICdkb3dubG9hZC1maWxlJyxcbiAgICBNQUlMVE8gPSAnbWFpbHRvJyxcbiAgICBFTUJFRCA9ICdlbWJlZCcsXG4gICAgSU5QVVQgPSAnaW5wdXQnLFxuICAgIENPREUgPSAnY29kZScsXG4gICAgRVJST1IgPSAnZXJyb3InLFxufVxuXG5leHBvcnQgZW51bSBDaGF0Um9sZSB7XG4gICAgVVNFUiA9ICd1c2VyJyxcbiAgICBBU1NJU1RBTlQgPSAnYXNzaXN0YW50Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdE1lc3NhZ2VSZWYge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc2VxOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBJQ2hhdE5ld01lc3NhZ2Uge1xuICAgIGtpbmQ6IENIQVRfTUVTU0FHRV9UWVBFO1xuICAgIHJvbGU6IENoYXRSb2xlO1xuICAgIGJvZHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdE1lc3NhZ2VCYXNlIGV4dGVuZHMgSUNoYXRNZXNzYWdlUmVmIHtcbiAgICBraW5kOiBzdHJpbmcgfCBDSEFUX01FU1NBR0VfVFlQRTtcbiAgICByZXBseTogYm9vbGVhbjtcbiAgICByb2xlOiBDaGF0Um9sZTtcbiAgICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gICAgdXNlcj86IGFueTtcbiAgICBzdWJqZWN0SWQ/OiBzdHJpbmc7XG4gICAgZmlsZXM/OiBBcnJheTxJRklsZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXRUZXh0TWVzc2FnZSBleHRlbmRzIElDaGF0TWVzc2FnZUJhc2Uge1xuICAgIGtpbmQ6IHN0cmluZyB8IENIQVRfTUVTU0FHRV9UWVBFLlRFWFQ7XG4gICAgdGV4dD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdEltYWdlTWVzc2FnZSBleHRlbmRzIElDaGF0TWVzc2FnZUJhc2Uge1xuICAgIGtpbmQ6IHN0cmluZyB8IENIQVRfTUVTU0FHRV9UWVBFLklNQUdFO1xuICAgIHVybD86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXREb3dubG9hZEZpbGVNZXNzYWdlIGV4dGVuZHMgSUNoYXRNZXNzYWdlQmFzZSB7XG4gICAga2luZDogc3RyaW5nIHwgQ0hBVF9NRVNTQUdFX1RZUEUuRE9XTkxPQURfRklMRTtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIElDaGF0TWVzc2FnZSA9IElDaGF0TWVzc2FnZUJhc2UgJiBJQ2hhdFRleHRNZXNzYWdlICYgSUNoYXRJbWFnZU1lc3NhZ2UgJiBJQ2hhdERvd25sb2FkRmlsZU1lc3NhZ2U7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXRNZXNzYWdlRmlsZUljb25QcmV2aWV3IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBpY29uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXRNZXNzYWdlRmlsZUltYWdlUHJldmlldyB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBJQ2hhdE1lc3NhZ2VGaWxlID0gSUNoYXRNZXNzYWdlRmlsZUljb25QcmV2aWV3IHwgSUNoYXRNZXNzYWdlRmlsZUltYWdlUHJldmlldztcblxuZXhwb3J0IGNsYXNzIENoYXRNZXNzYWdlIGltcGxlbWVudHMgSUNoYXRNZXNzYWdlQmFzZSwgSUNoYXRUZXh0TWVzc2FnZSwgSUNoYXRJbWFnZU1lc3NhZ2UsIElDaGF0RG93bmxvYWRGaWxlTWVzc2FnZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBraW5kOiBzdHJpbmcgfCBDSEFUX01FU1NBR0VfVFlQRTtcbiAgICBzZXE6IG51bWJlcjtcbiAgICByb2xlOiBDaGF0Um9sZTtcbiAgICByZXBseTogYm9vbGVhbjtcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIHBhcmFtZXRlcnM/OiBhbnk7XG4gICAgZGF0YT86IGFueTtcbiAgICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gICAgdXNlcj86IGFueTtcbiAgICBmZWVkYmFjaz86IElGZWVkYmFjaztcbiAgICBzdWJqZWN0SWQ/OiBzdHJpbmc7XG4gICAgZmlsZXM/OiBBcnJheTxhbnk+O1xuICAgIHN1Z2dlc3Rpb25zPzogQXJyYXk8c3RyaW5nPjtcbiAgICBjYXJkcz86IEFycmF5PGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihvYmo6IGFueSkge1xuICAgICAgICB0aGlzLmlkID0gb2JqPy5pZDtcbiAgICAgICAgdGhpcy5zdWJqZWN0SWQgPSBvYmo/LnN1YmplY3RJZDtcbiAgICAgICAgdGhpcy5mZWVkYmFjayA9IG9iaj8uZmVlZGJhY2s7XG4gICAgICAgIHRoaXMua2luZCA9IG9iaj8ua2luZDtcbiAgICAgICAgdGhpcy5zZXEgPSBvYmo/LnNlcTtcbiAgICAgICAgdGhpcy5yb2xlID0gb2JqPy5yb2xlO1xuICAgICAgICB0aGlzLnJlcGx5ID0gb2JqPy5yb2xlICE9PSBDaGF0Um9sZS5VU0VSO1xuICAgICAgICB0aGlzLnRleHQgPSBvYmo/LnRleHQgfHwgb2JqLmJvZHk7XG4gICAgICAgIHRoaXMudXJsID0gb2JqPy51cmw7XG4gICAgICAgIHRoaXMubGFiZWwgPSBvYmo/LmxhYmVsO1xuICAgICAgICB0aGlzLmJvZHkgPSBvYmo/LmJvZHk7XG4gICAgICAgIHRoaXMucGFyYW1ldGVycyA9IG9iaj8ucGFyYW1ldGVycztcbiAgICAgICAgdGhpcy5hdmF0YXJVcmwgPSBvYmo/LmF2YXRhclVybCB8fCBudWxsO1xuICAgICAgICB0aGlzLnVzZXIgPSBvYmo/LnVzZXI7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBvYmo/LmZpbGVzO1xuICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zID0gb2JqPy5zdWdnZXN0aW9ucztcbiAgICAgICAgdGhpcy5jYXJkcyA9IG9iaj8uY2FyZHM7XG4gICAgfVxufVxuIl19
|