botframework-webchat 4.16.1-main.20240110.d642b89 → 4.16.1-main.20240119.3d09177
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/dist/webchat-es5.js +1 -1
- package/dist/webchat-minimal.js +1 -1
- package/dist/webchat.js +1 -1
- package/lib/AddFullBundle.js +9 -18
- package/lib/FullComposer.js +1 -13
- package/lib/FullReactWebChat.js +1 -12
- package/lib/adaptiveCards/AdaptiveCardsComposer.js +3 -13
- package/lib/adaptiveCards/AdaptiveCardsContext.js +1 -3
- package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.js +2 -8
- package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.js +1 -17
- package/lib/adaptiveCards/Attachment/AdaptiveCardContent.js +5 -20
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/closest.js +1 -5
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/findDOMNodeOwner.js +2 -7
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useAdaptiveCardModEffect.js +6 -28
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useLazyRef.js +1 -6
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/usePrevious.js +2 -3
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useValueRef.js +1 -3
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionSetShouldNotBeMenuBarModEffect.js +1 -7
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionShouldBePushButtonModEffect.js +7 -21
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActiveElementModEffect.js +4 -12
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useDisabledModEffect.js +4 -12
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/usePersistValuesModEffect.js +5 -16
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useRoleModEffect.js +3 -7
- package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.js +82 -116
- package/lib/adaptiveCards/Attachment/AnimationCardAttachment.js +2 -8
- package/lib/adaptiveCards/Attachment/AnimationCardContent.js +10 -21
- package/lib/adaptiveCards/Attachment/AudioCardAttachment.js +3 -8
- package/lib/adaptiveCards/Attachment/AudioCardContent.js +13 -24
- package/lib/adaptiveCards/Attachment/CommonCard.js +9 -28
- package/lib/adaptiveCards/Attachment/HeroCardAttachment.js +2 -8
- package/lib/adaptiveCards/Attachment/HeroCardContent.js +9 -29
- package/lib/adaptiveCards/Attachment/OAuthCardAttachment.js +2 -8
- package/lib/adaptiveCards/Attachment/OAuthCardContent.js +9 -28
- package/lib/adaptiveCards/Attachment/ReceiptCardAttachment.js +2 -8
- package/lib/adaptiveCards/Attachment/ReceiptCardContent.js +37 -70
- package/lib/adaptiveCards/Attachment/SignInCardAttachment.js +2 -8
- package/lib/adaptiveCards/Attachment/SignInCardContent.js +5 -15
- package/lib/adaptiveCards/Attachment/ThumbnailCardAttachment.js +2 -8
- package/lib/adaptiveCards/Attachment/ThumbnailCardContent.js +22 -44
- package/lib/adaptiveCards/Attachment/VideoCardAttachment.js +3 -8
- package/lib/adaptiveCards/Attachment/VideoCardContent.js +9 -20
- package/lib/adaptiveCards/Attachment/private/renderAdaptiveCard.js +11 -21
- package/lib/adaptiveCards/AttachmentForScreenReader/AdaptiveCardAttachment.js +18 -37
- package/lib/adaptiveCards/AttachmentForScreenReader/RichCardAttachment.js +19 -25
- package/lib/adaptiveCards/DOMManipulationWithUndo/addEventListenerWithUndo.js +1 -5
- package/lib/adaptiveCards/DOMManipulationWithUndo/bunchUndos.js +1 -4
- package/lib/adaptiveCards/DOMManipulationWithUndo/durableAddClassWithUndo.js +3 -7
- package/lib/adaptiveCards/DOMManipulationWithUndo/durableDisableInputElementAccessiblyWithUndo.js +5 -18
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/addClass.js +2 -3
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/getAttributeOrFalse.js +1 -2
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/noOp.js +1 -3
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/setOrRemoveAttributeIfFalse.js +1 -2
- package/lib/adaptiveCards/DOMManipulationWithUndo/setOrRemoveAttributeIfFalseWithUndo.js +1 -9
- package/lib/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.js +6 -6
- package/lib/adaptiveCards/Styles/StyleSet/AnimationCardAttachment.js +2 -2
- package/lib/adaptiveCards/Styles/StyleSet/AudioCardAttachment.js +3 -3
- package/lib/adaptiveCards/Styles/adaptiveCardHostConfig.js +7 -14
- package/lib/adaptiveCards/Styles/createAdaptiveCardsStyleSet.js +2 -12
- package/lib/adaptiveCards/createAdaptiveCardsAttachmentForScreenReaderMiddleware.js +3 -10
- package/lib/adaptiveCards/createAdaptiveCardsAttachmentMiddleware.js +1 -14
- package/lib/adaptiveCards/defaultStyleOptions.js +1 -1
- package/lib/adaptiveCards/hooks/internal/useAdaptiveCardsContext.js +1 -7
- package/lib/adaptiveCards/hooks/internal/useParseAdaptiveCardJSON.js +13 -33
- package/lib/adaptiveCards/hooks/internal/useUniqueId.js +2 -5
- package/lib/adaptiveCards/hooks/useAdaptiveCardsHostConfig.js +4 -13
- package/lib/adaptiveCards/hooks/useAdaptiveCardsPackage.js +2 -6
- package/lib/adaptiveCards/normalizeStyleOptions.js +1 -7
- package/lib/addVersion.js +4 -9
- package/lib/createBrowserWebSpeechPonyfillFactory.js +1 -4
- package/lib/createCognitiveServicesSpeechServicesPonyfillFactory.js +24 -34
- package/lib/createDirectLine.js +14 -16
- package/lib/createDirectLineAppServiceExtension.js +4 -6
- package/lib/createDirectLineSpeechAdapters.js +16 -23
- package/lib/createFullStyleSet.js +2 -8
- package/lib/fullBundleDefaultStyleOptions.js +1 -9
- package/lib/hooks/useStyleOptions.js +3 -8
- package/lib/hooks/useStyleSet.js +3 -9
- package/lib/index-es5.js +3 -17
- package/lib/index-minimal.js +2 -22
- package/lib/index.js +2 -43
- package/lib/markdown/markdownItPlugins/ariaLabel.js +15 -18
- package/lib/markdown/markdownItPlugins/betterLink.js +15 -32
- package/lib/markdown/markdownItPlugins/respectCRLF.js +3 -4
- package/lib/markdown/private/iterateLinkDefinitions.js +1 -25
- package/lib/markdown/renderMarkdown.js +9 -25
- package/lib/polyfill.js +1 -22
- package/lib/renderWebChat.js +1 -5
- package/lib/speech/CustomAudioInputStream.js +65 -104
- package/lib/speech/bytesPerSample.js +1 -2
- package/lib/speech/createAudioConfig.js +11 -30
- package/lib/speech/createAudioContext.js +6 -5
- package/lib/speech/createMicrophoneAudioConfigAndAudioContext.js +25 -37
- package/lib/speech/getUserMedia.js +5 -8
- package/lib/useComposerProps.js +7 -14
- package/package.json +32 -19
- package/src/adaptiveCards/createAdaptiveCardsAttachmentForScreenReaderMiddleware.tsx +2 -2
- package/src/__tests__/createDirectLine.spec.js +0 -32
- package/src/__tests__/versionTag.es5.spec.js +0 -16
- package/src/__tests__/versionTag.full.spec.js +0 -16
- package/src/__tests__/versionTag.minimal.spec.js +0 -16
- package/src/adaptiveCards/Styles/createAdaptiveCardsStyleSet.spec.js +0 -13
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = usePersistValuesModEffect;
|
|
9
|
-
|
|
10
8
|
var _react = require("react");
|
|
11
|
-
|
|
12
9
|
var _useAdaptiveCardModEffect = _interopRequireDefault(require("./private/useAdaptiveCardModEffect"));
|
|
13
|
-
|
|
14
10
|
var _usePrevious = _interopRequireDefault(require("./private/usePrevious"));
|
|
15
|
-
|
|
16
11
|
/**
|
|
17
12
|
* Gets all user-inputted values under a DOM node.
|
|
18
13
|
*
|
|
@@ -22,11 +17,9 @@ function getUserValues(element) {
|
|
|
22
17
|
if (!element) {
|
|
23
18
|
return new Set();
|
|
24
19
|
}
|
|
25
|
-
|
|
26
20
|
return Array.from(element.querySelectorAll('input, option, textarea')).reduce(function (values, element) {
|
|
27
21
|
if (element instanceof HTMLInputElement) {
|
|
28
22
|
var type = element.type;
|
|
29
|
-
|
|
30
23
|
if (type === 'checkbox' || type === 'radio') {
|
|
31
24
|
element.checked && values.add(element.value);
|
|
32
25
|
} else {
|
|
@@ -41,28 +34,25 @@ function getUserValues(element) {
|
|
|
41
34
|
values.clear();
|
|
42
35
|
values.add(element.value);
|
|
43
36
|
}
|
|
44
|
-
|
|
45
37
|
return values;
|
|
46
38
|
}, new Set());
|
|
47
39
|
}
|
|
40
|
+
|
|
48
41
|
/**
|
|
49
42
|
* Set multiple user-inputted values under a DOM node.
|
|
50
43
|
*
|
|
51
44
|
* This function must be paired with `getUserValues`.
|
|
52
45
|
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
46
|
function setUserValues(element, values) {
|
|
56
47
|
if (!element) {
|
|
57
48
|
return;
|
|
58
|
-
}
|
|
59
|
-
|
|
49
|
+
}
|
|
60
50
|
|
|
51
|
+
// If the element does not support multiple choices, say <input type="text"> or <textarea>, then, use the first value.
|
|
61
52
|
var defaultValue = Array.from(values)[0] || '';
|
|
62
53
|
element.querySelectorAll('input, option, textarea').forEach(function (element) {
|
|
63
54
|
if (element instanceof HTMLInputElement) {
|
|
64
55
|
var type = element.type;
|
|
65
|
-
|
|
66
56
|
if (type === 'checkbox' || type === 'radio') {
|
|
67
57
|
element.checked = values.has(element.value);
|
|
68
58
|
} else {
|
|
@@ -75,11 +65,10 @@ function setUserValues(element, values) {
|
|
|
75
65
|
}
|
|
76
66
|
});
|
|
77
67
|
}
|
|
68
|
+
|
|
78
69
|
/**
|
|
79
70
|
* Re-rendering: Current user-inputted values must be saved and restored on re-render.
|
|
80
71
|
*/
|
|
81
|
-
|
|
82
|
-
|
|
83
72
|
function usePersistValuesModEffect(adaptiveCard) {
|
|
84
73
|
var prevAdaptiveCard = (0, _usePrevious.default)(adaptiveCard);
|
|
85
74
|
var valuesMapRef = (0, _react.useRef)(new Map());
|
|
@@ -100,4 +89,4 @@ function usePersistValuesModEffect(adaptiveCard) {
|
|
|
100
89
|
}, [valuesMapRef]);
|
|
101
90
|
return (0, _useAdaptiveCardModEffect.default)(modder, adaptiveCard);
|
|
102
91
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZUFkYXB0aXZlQ2FyZE1vZEVmZmVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlUHJldmlvdXMiLCJnZXRVc2VyVmFsdWVzIiwiZWxlbWVudCIsIlNldCIsIkFycmF5IiwiZnJvbSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJyZWR1Y2UiLCJ2YWx1ZXMiLCJIVE1MSW5wdXRFbGVtZW50IiwidHlwZSIsImNoZWNrZWQiLCJhZGQiLCJ2YWx1ZSIsImNsZWFyIiwiSFRNTE9wdGlvbkVsZW1lbnQiLCJzZWxlY3RlZCIsInNldFVzZXJWYWx1ZXMiLCJkZWZhdWx0VmFsdWUiLCJmb3JFYWNoIiwiaGFzIiwidXNlUGVyc2lzdFZhbHVlc01vZEVmZmVjdCIsImFkYXB0aXZlQ2FyZCIsInByZXZBZGFwdGl2ZUNhcmQiLCJ1c2VQcmV2aW91cyIsInZhbHVlc01hcFJlZiIsInVzZVJlZiIsIk1hcCIsImN1cnJlbnQiLCJtb2RkZXIiLCJ1c2VNZW1vIiwidmFsdWVzTWFwIiwiZ2V0QWxsSW5wdXRzIiwiY2FyZE9iamVjdCIsInJlbmRlcmVkRWxlbWVudCIsImdldCIsInNldCIsInVzZUFkYXB0aXZlQ2FyZE1vZEVmZmVjdCJdLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FkYXB0aXZlQ2FyZHMvQXR0YWNobWVudC9BZGFwdGl2ZUNhcmRIYWNrcy91c2VQZXJzaXN0VmFsdWVzTW9kRWZmZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHVzZUFkYXB0aXZlQ2FyZE1vZEVmZmVjdCBmcm9tICcuL3ByaXZhdGUvdXNlQWRhcHRpdmVDYXJkTW9kRWZmZWN0JztcbmltcG9ydCB1c2VQcmV2aW91cyBmcm9tICcuL3ByaXZhdGUvdXNlUHJldmlvdXMnO1xuXG5pbXBvcnQgdHlwZSB7IEFkYXB0aXZlQ2FyZCwgQ2FyZE9iamVjdCB9IGZyb20gJ2FkYXB0aXZlY2FyZHMnO1xuXG4vKipcbiAqIEdldHMgYWxsIHVzZXItaW5wdXR0ZWQgdmFsdWVzIHVuZGVyIGEgRE9NIG5vZGUuXG4gKlxuICogV2UgYXNzdW1lIHZhbHVlcyBhcmUgSUQtZWQuIElmIG5vdCBJRC1lZCAoc3VjaCBhcyBgPHRleHRhcmVhPmApLCB0aGVyZSB3aWxsIGJlIG9ubHkgYSBzaW5nbGUgaW5zdGFuY2UgKG5vIHR3byBgPHRleHRhcmVhPmApLlxuICovXG5mdW5jdGlvbiBnZXRVc2VyVmFsdWVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkKTogU2V0PHN0cmluZz4ge1xuICBpZiAoIWVsZW1lbnQpIHtcbiAgICByZXR1cm4gbmV3IFNldCgpO1xuICB9XG5cbiAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgb3B0aW9uLCB0ZXh0YXJlYScpIGFzIE5vZGVMaXN0T2Y8XG4gICAgICBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTE9wdGlvbkVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50XG4gICAgPlxuICApLnJlZHVjZTxTZXQ8c3RyaW5nPj4oKHZhbHVlcywgZWxlbWVudCkgPT4ge1xuICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkge1xuICAgICAgY29uc3QgeyB0eXBlIH0gPSBlbGVtZW50O1xuXG4gICAgICBpZiAodHlwZSA9PT0gJ2NoZWNrYm94JyB8fCB0eXBlID09PSAncmFkaW8nKSB7XG4gICAgICAgIGVsZW1lbnQuY2hlY2tlZCAmJiB2YWx1ZXMuYWRkKGVsZW1lbnQudmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQVNTVU1QVElPTjogV2UgZXhwZWN0IENhcmRPYmplY3Qgd2lsbCBOT1QgbWl4IDxpbnB1dCB0eXBlPVwidGV4dFwiPiB3aXRoIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj4uXG4gICAgICAgIHZhbHVlcy5jbGVhcigpO1xuICAgICAgICB2YWx1ZXMuYWRkKGVsZW1lbnQudmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxPcHRpb25FbGVtZW50KSB7XG4gICAgICBlbGVtZW50LnNlbGVjdGVkICYmIHZhbHVlcy5hZGQoZWxlbWVudC52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFTU1VNUFRJT046IFdlIGV4cGVjdCBDYXJkT2JqZWN0IHdpbGwgTk9UIG1peCA8dGV4dGFyZWE+IHdpdGggPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPi5cbiAgICAgIHZhbHVlcy5jbGVhcigpO1xuICAgICAgdmFsdWVzLmFkZChlbGVtZW50LnZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9LCBuZXcgU2V0KCkpO1xufVxuXG4vKipcbiAqIFNldCBtdWx0aXBsZSB1c2VyLWlucHV0dGVkIHZhbHVlcyB1bmRlciBhIERPTSBub2RlLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBwYWlyZWQgd2l0aCBgZ2V0VXNlclZhbHVlc2AuXG4gKi9cbmZ1bmN0aW9uIHNldFVzZXJWYWx1ZXMoZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQsIHZhbHVlczogU2V0PHN0cmluZz4pOiB2b2lkIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gSWYgdGhlIGVsZW1lbnQgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSBjaG9pY2VzLCBzYXkgPGlucHV0IHR5cGU9XCJ0ZXh0XCI+IG9yIDx0ZXh0YXJlYT4sIHRoZW4sIHVzZSB0aGUgZmlyc3QgdmFsdWUuXG4gIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IEFycmF5LmZyb20odmFsdWVzKVswXSB8fCAnJztcblxuICAoXG4gICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgb3B0aW9uLCB0ZXh0YXJlYScpIGFzIE5vZGVMaXN0T2Y8XG4gICAgICBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTE9wdGlvbkVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50XG4gICAgPlxuICApLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICBjb25zdCB7IHR5cGUgfSA9IGVsZW1lbnQ7XG5cbiAgICAgIGlmICh0eXBlID09PSAnY2hlY2tib3gnIHx8IHR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdmFsdWVzLmhhcyhlbGVtZW50LnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsZW1lbnQudmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgSFRNTE9wdGlvbkVsZW1lbnQpIHtcbiAgICAgIGVsZW1lbnQuc2VsZWN0ZWQgPSB2YWx1ZXMuaGFzKGVsZW1lbnQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50LnZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUmUtcmVuZGVyaW5nOiBDdXJyZW50IHVzZXItaW5wdXR0ZWQgdmFsdWVzIG11c3QgYmUgc2F2ZWQgYW5kIHJlc3RvcmVkIG9uIHJlLXJlbmRlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlUGVyc2lzdFZhbHVlc01vZEVmZmVjdChhZGFwdGl2ZUNhcmQ6IEFkYXB0aXZlQ2FyZCkge1xuICBjb25zdCBwcmV2QWRhcHRpdmVDYXJkID0gdXNlUHJldmlvdXMoYWRhcHRpdmVDYXJkKTtcbiAgY29uc3QgdmFsdWVzTWFwUmVmID0gdXNlUmVmPE1hcDxDYXJkT2JqZWN0LCBTZXQ8c3RyaW5nPj4+KG5ldyBNYXAoKSk7XG5cbiAgcHJldkFkYXB0aXZlQ2FyZCA9PT0gYWRhcHRpdmVDYXJkIHx8IHZhbHVlc01hcFJlZi5jdXJyZW50LmNsZWFyKCk7XG5cbiAgY29uc3QgbW9kZGVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoYWRhcHRpdmVDYXJkOiBBZGFwdGl2ZUNhcmQpID0+IHtcbiAgICAgIGNvbnN0IHsgY3VycmVudDogdmFsdWVzTWFwIH0gPSB2YWx1ZXNNYXBSZWY7XG5cbiAgICAgIGFkYXB0aXZlQ2FyZC5nZXRBbGxJbnB1dHMoKS5mb3JFYWNoKGNhcmRPYmplY3QgPT4ge1xuICAgICAgICB2YWx1ZXNNYXAuaGFzKGNhcmRPYmplY3QpICYmIHNldFVzZXJWYWx1ZXMoY2FyZE9iamVjdC5yZW5kZXJlZEVsZW1lbnQsIHZhbHVlc01hcC5nZXQoY2FyZE9iamVjdCkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHZhbHVlc01hcFJlZi5jdXJyZW50ID0gYWRhcHRpdmVDYXJkXG4gICAgICAgICAgLmdldEFsbElucHV0cygpXG4gICAgICAgICAgLnJlZHVjZTxNYXA8Q2FyZE9iamVjdCwgU2V0PHN0cmluZz4+PigodmFsdWVzTWFwLCBjYXJkT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdldFVzZXJWYWx1ZXMoY2FyZE9iamVjdC5yZW5kZXJlZEVsZW1lbnQpO1xuXG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyA/IHZhbHVlc01hcC5zZXQoY2FyZE9iamVjdCwgdmFsdWUpIDogdmFsdWVzTWFwO1xuICAgICAgICAgIH0sIG5ldyBNYXAoKSk7XG4gICAgICB9O1xuICAgIH0sXG4gICAgW3ZhbHVlc01hcFJlZl1cbiAgKTtcblxuICByZXR1cm4gdXNlQWRhcHRpdmVDYXJkTW9kRWZmZWN0KG1vZGRlciwgYWRhcHRpdmVDYXJkKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLHlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFB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
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = useRoleModEffect;
|
|
9
|
-
|
|
10
8
|
var _react = require("react");
|
|
11
|
-
|
|
12
9
|
var _setOrRemoveAttributeIfFalseWithUndo = _interopRequireDefault(require("../../DOMManipulationWithUndo/setOrRemoveAttributeIfFalseWithUndo"));
|
|
13
|
-
|
|
14
10
|
var _useAdaptiveCardModEffect = _interopRequireDefault(require("./private/useAdaptiveCardModEffect"));
|
|
15
|
-
|
|
16
11
|
/**
|
|
17
12
|
* Accessibility: "role" attribute must be set if "aria-label" is set.
|
|
18
13
|
*
|
|
@@ -41,10 +36,11 @@ var _useAdaptiveCardModEffect = _interopRequireDefault(require("./private/useAda
|
|
|
41
36
|
function useRoleModEffect(adaptiveCard) {
|
|
42
37
|
var modder = (0, _react.useMemo)(function () {
|
|
43
38
|
return function (_, cardElement) {
|
|
44
|
-
return (0, _setOrRemoveAttributeIfFalseWithUndo.default)(cardElement, 'role',
|
|
39
|
+
return (0, _setOrRemoveAttributeIfFalseWithUndo.default)(cardElement, 'role',
|
|
40
|
+
// "form" role requires either "aria-label", "aria-labelledby", or "title".
|
|
45
41
|
cardElement.querySelector('button, input, select, textarea') && cardElement.getAttribute('aria-label') || cardElement.getAttribute('aria-labelledby') || cardElement.getAttribute('title') ? 'form' : 'figure');
|
|
46
42
|
};
|
|
47
43
|
}, []);
|
|
48
44
|
return (0, _useAdaptiveCardModEffect.default)(modder, adaptiveCard);
|
|
49
45
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3NldE9yUmVtb3ZlQXR0cmlidXRlSWZGYWxzZVdpdGhVbmRvIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VBZGFwdGl2ZUNhcmRNb2RFZmZlY3QiLCJ1c2VSb2xlTW9kRWZmZWN0IiwiYWRhcHRpdmVDYXJkIiwibW9kZGVyIiwidXNlTWVtbyIsIl8iLCJjYXJkRWxlbWVudCIsInNldE9yUmVtb3ZlQXR0cmlidXRlSWZGYWxzZVdpdGhVbmRvIiwicXVlcnlTZWxlY3RvciIsImdldEF0dHJpYnV0ZSIsInVzZUFkYXB0aXZlQ2FyZE1vZEVmZmVjdCJdLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FkYXB0aXZlQ2FyZHMvQXR0YWNobWVudC9BZGFwdGl2ZUNhcmRIYWNrcy91c2VSb2xlTW9kRWZmZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBzZXRPclJlbW92ZUF0dHJpYnV0ZUlmRmFsc2VXaXRoVW5kbyBmcm9tICcuLi8uLi9ET01NYW5pcHVsYXRpb25XaXRoVW5kby9zZXRPclJlbW92ZUF0dHJpYnV0ZUlmRmFsc2VXaXRoVW5kbyc7XG5pbXBvcnQgdXNlQWRhcHRpdmVDYXJkTW9kRWZmZWN0IGZyb20gJy4vcHJpdmF0ZS91c2VBZGFwdGl2ZUNhcmRNb2RFZmZlY3QnO1xuXG5pbXBvcnQgdHlwZSB7IEFkYXB0aXZlQ2FyZCB9IGZyb20gJ2FkYXB0aXZlY2FyZHMnO1xuXG4vKipcbiAqIEFjY2Vzc2liaWxpdHk6IFwicm9sZVwiIGF0dHJpYnV0ZSBtdXN0IGJlIHNldCBpZiBcImFyaWEtbGFiZWxcIiBpcyBzZXQuXG4gKlxuICogSXQgaXMgcG9zc2libGUgdG8gcmVuZGVyIGFuIEFkYXB0aXZlIENhcmQgd2l0aCBlbXB0eSBjb250ZW50IGJ1dCBcImFyaWEtbGFiZWxcIiBhdHRyaWJ1dGUuIFRoZSBBZGFwdGl2ZSBDYXJkcyBKU09OIGxvb2tzIGxpa2U6XG4gKlxuICogYGBganNvblxuICoge1xuICogICBcInR5cGVcIjogXCJBZGFwdGl2ZUNhcmRcIixcbiAqICAgXCJzcGVha1wiOiBcIkhlbGxvLCBXb3JsZCFcIixcbiAqICAgXCJib2R5XCI6IFtdLFxuICogICBcIiRzY2hlbWFcIjogXCJodHRwOi8vYWRhcHRpdmVjYXJkcy5pby9zY2hlbWFzL2FkYXB0aXZlLWNhcmQuanNvblwiLFxuICogICBcInZlcnNpb25cIjogXCIxLjVcIlxuICogfVxuICogYGBgXG4gKlxuICogVGhlIEhUTUwgb3V0cHV0IHdpbGwgYmU6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBjbGFzcz1cImFjLWFkYXB0aXZlQ2FyZFwiIGFyaWEtbGFiZWw9XCJIZWxsbywgV29ybGQhXCI+PC9kaXY+XG4gKiBgYGBcbiAqXG4gKiBUaGlzIHZpb2xhdGVzIFdBSS1BUklBIGJlY2F1c2UgXCJhcmlhLWxhYmVsXCIgbXVzdCBub3QgYmUgc2V0IG9uIGFuIGVsZW1lbnQgd2l0aG91dCBhIFwicm9sZVwiLlxuICpcbiAqIFdlIG5lZWQgdG8gc2V0IFwicm9sZVwiIGF0dHJpYnV0ZSB0byBcImZvcm1cIiBpZiB0aGUgY2FyZCBoYXMgYW55IGlucHV0IGZpZWxkcyBhbmQgaXMgdmFsaWQgYXMgYSBcImZvcm1cIiByb2xlLCBvdGhlcndpc2UsIFwiZmlndXJlXCIuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVJvbGVNb2RFZmZlY3QoXG4gIGFkYXB0aXZlQ2FyZDogQWRhcHRpdmVDYXJkXG4pOiByZWFkb25seSBbKGNhcmRFbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gdm9pZCwgKCkgPT4gdm9pZF0ge1xuICBjb25zdCBtb2RkZXIgPSB1c2VNZW1vKFxuICAgICgpID0+IChfLCBjYXJkRWxlbWVudDogSFRNTEVsZW1lbnQpID0+XG4gICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZUlmRmFsc2VXaXRoVW5kbyhcbiAgICAgICAgY2FyZEVsZW1lbnQsXG4gICAgICAgICdyb2xlJyxcbiAgICAgICAgLy8gXCJmb3JtXCIgcm9sZSByZXF1aXJlcyBlaXRoZXIgXCJhcmlhLWxhYmVsXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCIsIG9yIFwidGl0bGVcIi5cbiAgICAgICAgKGNhcmRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEnKSAmJiBjYXJkRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSkgfHxcbiAgICAgICAgICBjYXJkRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpIHx8XG4gICAgICAgICAgY2FyZEVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0aXRsZScpXG4gICAgICAgICAgPyAnZm9ybSdcbiAgICAgICAgICA6ICdmaWd1cmUnXG4gICAgICApLFxuICAgIFtdXG4gICk7XG5cbiAgcmV0dXJuIHVzZUFkYXB0aXZlQ2FyZE1vZEVmZmVjdChtb2RkZXIsIGFkYXB0aXZlQ2FyZCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxvQ0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcseUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsU0FBU0ksZ0JBQWdCQSxDQUN0Q0MsWUFBMEIsRUFDaUM7RUFDM0QsSUFBTUMsTUFBTSxHQUFHLElBQUFDLGNBQU8sRUFDcEI7SUFBQSxPQUFNLFVBQUNDLENBQUMsRUFBRUMsV0FBd0I7TUFBQSxPQUNoQyxJQUFBQyw0Q0FBbUMsRUFDakNELFdBQVcsRUFDWCxNQUFNO01BQ047TUFDQ0EsV0FBVyxDQUFDRSxhQUFhLENBQUMsaUNBQWlDLENBQUMsSUFBSUYsV0FBVyxDQUFDRyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQ3JHSCxXQUFXLENBQUNHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUMzQ0gsV0FBVyxDQUFDRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQy9CLE1BQU0sR0FDTixRQUNOLENBQUM7SUFBQTtFQUFBLEdBQ0gsRUFDRixDQUFDO0VBRUQsT0FBTyxJQUFBQyxpQ0FBd0IsRUFBQ1AsTUFBTSxFQUFFRCxZQUFZLENBQUM7QUFDdkQifQ==
|
|
@@ -1,83 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.default = void 0;
|
|
11
|
-
|
|
12
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
|
|
14
10
|
var _botframeworkWebchatComponent = require("botframework-webchat-component");
|
|
15
|
-
|
|
16
11
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
-
|
|
20
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
-
|
|
22
14
|
var _renderAdaptiveCard = _interopRequireDefault(require("./private/renderAdaptiveCard"));
|
|
23
|
-
|
|
24
15
|
var _useActionSetShouldNotBeMenuBarModEffect = _interopRequireDefault(require("./AdaptiveCardHacks/useActionSetShouldNotBeMenuBarModEffect"));
|
|
25
|
-
|
|
26
16
|
var _useActionShouldBePushButtonModEffect = _interopRequireDefault(require("./AdaptiveCardHacks/useActionShouldBePushButtonModEffect"));
|
|
27
|
-
|
|
28
17
|
var _useActiveElementModEffect = _interopRequireDefault(require("./AdaptiveCardHacks/useActiveElementModEffect"));
|
|
29
|
-
|
|
30
18
|
var _useAdaptiveCardsHostConfig = _interopRequireDefault(require("../hooks/useAdaptiveCardsHostConfig"));
|
|
31
|
-
|
|
32
19
|
var _useAdaptiveCardsPackage = _interopRequireDefault(require("../hooks/useAdaptiveCardsPackage"));
|
|
33
|
-
|
|
34
20
|
var _useDisabledModEffect3 = _interopRequireDefault(require("./AdaptiveCardHacks/useDisabledModEffect"));
|
|
35
|
-
|
|
36
21
|
var _usePersistValuesModEffect = _interopRequireDefault(require("./AdaptiveCardHacks/usePersistValuesModEffect"));
|
|
37
|
-
|
|
38
22
|
var _useRoleModEffect3 = _interopRequireDefault(require("./AdaptiveCardHacks/useRoleModEffect"));
|
|
39
|
-
|
|
40
23
|
var _useStyleSet3 = _interopRequireDefault(require("../../hooks/useStyleSet"));
|
|
41
|
-
|
|
42
24
|
var _useValueRef = _interopRequireDefault(require("./AdaptiveCardHacks/private/useValueRef"));
|
|
43
|
-
|
|
44
25
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
45
|
-
|
|
46
26
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
47
|
-
|
|
48
27
|
/* eslint no-magic-numbers: ["error", { "ignore": [-1, 0, 2] }] */
|
|
28
|
+
|
|
49
29
|
var ErrorBox = _botframeworkWebchatComponent.Components.ErrorBox;
|
|
50
30
|
var useDisabled = _botframeworkWebchatComponent.hooks.useDisabled,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
31
|
+
useLocalizer = _botframeworkWebchatComponent.hooks.useLocalizer,
|
|
32
|
+
usePerformCardAction = _botframeworkWebchatComponent.hooks.usePerformCardAction,
|
|
33
|
+
useRenderMarkdownAsHTML = _botframeworkWebchatComponent.hooks.useRenderMarkdownAsHTML,
|
|
34
|
+
useScrollToEnd = _botframeworkWebchatComponent.hooks.useScrollToEnd;
|
|
55
35
|
var node_env = undefined || "production";
|
|
56
|
-
|
|
57
36
|
var AdaptiveCardRenderer = function AdaptiveCardRenderer(_ref) {
|
|
58
37
|
var actionPerformedClassName = _ref.actionPerformedClassName,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
38
|
+
adaptiveCard = _ref.adaptiveCard,
|
|
39
|
+
disabledFromProps = _ref.disabled,
|
|
40
|
+
tapAction = _ref.tapAction;
|
|
63
41
|
var _useStyleSet = (0, _useStyleSet3.default)(),
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
42
|
+
_useStyleSet2 = (0, _slicedToArray2.default)(_useStyleSet, 1),
|
|
43
|
+
adaptiveCardRendererStyleSet = _useStyleSet2[0].adaptiveCardRenderer;
|
|
67
44
|
var _useAdaptiveCardsPack = (0, _useAdaptiveCardsPackage.default)(),
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
45
|
+
_useAdaptiveCardsPack2 = (0, _slicedToArray2.default)(_useAdaptiveCardsPack, 1),
|
|
46
|
+
_useAdaptiveCardsPack3 = _useAdaptiveCardsPack2[0],
|
|
47
|
+
GlobalSettings = _useAdaptiveCardsPack3.GlobalSettings,
|
|
48
|
+
HostConfig = _useAdaptiveCardsPack3.HostConfig;
|
|
73
49
|
var _useAdaptiveCardsHost = (0, _useAdaptiveCardsHostConfig.default)(),
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
50
|
+
_useAdaptiveCardsHost2 = (0, _slicedToArray2.default)(_useAdaptiveCardsHost, 1),
|
|
51
|
+
adaptiveCardsHostConfig = _useAdaptiveCardsHost2[0];
|
|
77
52
|
var _useDisabled = useDisabled(),
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
53
|
+
_useDisabled2 = (0, _slicedToArray2.default)(_useDisabled, 1),
|
|
54
|
+
disabledFromComposer = _useDisabled2[0];
|
|
81
55
|
var contentRef = (0, _react.useRef)();
|
|
82
56
|
var localize = useLocalizer();
|
|
83
57
|
var performCardAction = usePerformCardAction();
|
|
@@ -85,62 +59,63 @@ var AdaptiveCardRenderer = function AdaptiveCardRenderer(_ref) {
|
|
|
85
59
|
var scrollToEnd = useScrollToEnd();
|
|
86
60
|
var disabled = disabledFromComposer || disabledFromProps;
|
|
87
61
|
var tapActionRef = (0, _useValueRef.default)(tapAction);
|
|
88
|
-
var disabledRef = (0, _useValueRef.default)(disabled);
|
|
89
|
-
// The null check for "tapAction" is in "handleClickAndKeyPressForTapAction".
|
|
62
|
+
var disabledRef = (0, _useValueRef.default)(disabled);
|
|
90
63
|
|
|
64
|
+
// TODO: [P2] #3199 We should consider using `adaptiveCard.selectAction` instead.
|
|
65
|
+
// The null check for "tapAction" is in "handleClickAndKeyPressForTapAction".
|
|
91
66
|
var handleClickAndKeyPress = (0, _react.useCallback)(function (event) {
|
|
92
67
|
var _ref2 = event,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var target = event.target;
|
|
68
|
+
key = _ref2.key,
|
|
69
|
+
type = _ref2.type;
|
|
70
|
+
var target = event.target;
|
|
96
71
|
|
|
72
|
+
// Some items, e.g. tappable text, cannot be disabled thru DOM attributes
|
|
97
73
|
var current = contentRef.current;
|
|
98
74
|
var adaptiveCardRoot = current.querySelector('.ac-adaptiveCard[tabindex="0"]');
|
|
99
|
-
|
|
100
75
|
if (!adaptiveCardRoot) {
|
|
101
76
|
return console.warn('botframework-webchat: No Adaptive Card root container can be found; the card is probably on an unsupported Adaptive Card version.');
|
|
102
|
-
}
|
|
103
|
-
|
|
77
|
+
}
|
|
104
78
|
|
|
79
|
+
// For "keypress" event, we only listen to ENTER and SPACEBAR key.
|
|
105
80
|
if (type === 'keypress') {
|
|
106
81
|
if (key !== 'Enter' && key !== ' ') {
|
|
107
82
|
return;
|
|
108
83
|
}
|
|
109
|
-
|
|
110
84
|
event.preventDefault();
|
|
111
|
-
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// We will call performCardAction if either:
|
|
112
88
|
// 1. We are on the target, or
|
|
113
89
|
// 2. The event-dispatching element is not interactive
|
|
114
|
-
|
|
115
|
-
|
|
116
90
|
if (target !== adaptiveCardRoot) {
|
|
117
|
-
var tabIndex = (0, _botframeworkWebchatComponent.getTabIndex)(target);
|
|
118
|
-
// E.g. a hero card can be tappable, and image and buttons inside the hero card can also be tappable.
|
|
91
|
+
var tabIndex = (0, _botframeworkWebchatComponent.getTabIndex)(target);
|
|
119
92
|
|
|
93
|
+
// If the user is clicking on something that is already clickable, do not allow them to click the card.
|
|
94
|
+
// E.g. a hero card can be tappable, and image and buttons inside the hero card can also be tappable.
|
|
120
95
|
if (typeof tabIndex === 'number' && tabIndex >= 0) {
|
|
121
96
|
return;
|
|
122
97
|
}
|
|
123
98
|
}
|
|
124
|
-
|
|
125
99
|
performCardAction(tapActionRef.current);
|
|
126
100
|
scrollToEnd();
|
|
127
|
-
}, [contentRef, performCardAction, scrollToEnd, tapActionRef]);
|
|
101
|
+
}, [contentRef, performCardAction, scrollToEnd, tapActionRef]);
|
|
128
102
|
|
|
103
|
+
// Only listen to event if it is not disabled and have "tapAction" prop.
|
|
129
104
|
var handleClickAndKeyPressForTapAction = !disabled && tapAction ? handleClickAndKeyPress : undefined;
|
|
130
105
|
var handleExecuteAction = (0, _react.useCallback)(function (action) {
|
|
131
106
|
// Some items, e.g. tappable image, cannot be disabled thru DOM attributes
|
|
132
107
|
if (disabledRef.current) {
|
|
133
108
|
return;
|
|
134
109
|
}
|
|
135
|
-
|
|
136
110
|
var actionTypeName = action.getJsonTypeName();
|
|
137
111
|
var image = action.iconUrl,
|
|
138
|
-
|
|
139
|
-
// We need to check using "getJsonTypeName()" instead.
|
|
112
|
+
title = action.title;
|
|
140
113
|
|
|
114
|
+
// We cannot use "instanceof" check here, because web devs may bring their own version of Adaptive Cards package.
|
|
115
|
+
// We need to check using "getJsonTypeName()" instead.
|
|
141
116
|
if (actionTypeName === 'Action.OpenUrl') {
|
|
142
117
|
var _ref3 = action,
|
|
143
|
-
|
|
118
|
+
value = _ref3.url;
|
|
144
119
|
performCardAction({
|
|
145
120
|
image: image,
|
|
146
121
|
title: title,
|
|
@@ -149,8 +124,7 @@ var AdaptiveCardRenderer = function AdaptiveCardRenderer(_ref) {
|
|
|
149
124
|
});
|
|
150
125
|
} else if (actionTypeName === 'Action.Submit') {
|
|
151
126
|
var _ref4 = action,
|
|
152
|
-
|
|
153
|
-
|
|
127
|
+
data = _ref4.data;
|
|
154
128
|
if (typeof data !== 'undefined') {
|
|
155
129
|
if (typeof data === 'string') {
|
|
156
130
|
performCardAction({
|
|
@@ -170,66 +144,58 @@ var AdaptiveCardRenderer = function AdaptiveCardRenderer(_ref) {
|
|
|
170
144
|
});
|
|
171
145
|
}
|
|
172
146
|
}
|
|
173
|
-
|
|
174
147
|
scrollToEnd();
|
|
175
148
|
} else {
|
|
176
149
|
console.error("Web Chat: received unknown action from Adaptive Cards");
|
|
177
150
|
console.error(action);
|
|
178
151
|
}
|
|
179
|
-
}, [disabledRef, performCardAction, scrollToEnd]);
|
|
152
|
+
}, [disabledRef, performCardAction, scrollToEnd]);
|
|
180
153
|
|
|
154
|
+
// For accessibility issue #1340, `tabindex="0"` must not be set for the root container if it is not interactive.
|
|
181
155
|
var setTabIndexAtCardRoot = !!tapAction;
|
|
182
|
-
|
|
183
156
|
var _useActionShouldBePus = (0, _useActionShouldBePushButtonModEffect.default)(adaptiveCard),
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
157
|
+
_useActionShouldBePus2 = (0, _slicedToArray2.default)(_useActionShouldBePus, 2),
|
|
158
|
+
applyActionShouldBePushButtonMod = _useActionShouldBePus2[0],
|
|
159
|
+
undoActionShouldBePushButtonMod = _useActionShouldBePus2[1];
|
|
188
160
|
var _useActionSetShouldNo = (0, _useActionSetShouldNotBeMenuBarModEffect.default)(adaptiveCard),
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
161
|
+
_useActionSetShouldNo2 = (0, _slicedToArray2.default)(_useActionSetShouldNo, 2),
|
|
162
|
+
applyActionSetShouldNotBeMenuBarMod = _useActionSetShouldNo2[0],
|
|
163
|
+
undoActionSetShouldNotBeMenuBarMod = _useActionSetShouldNo2[1];
|
|
193
164
|
var _useActiveElementModE = (0, _useActiveElementModEffect.default)(adaptiveCard),
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
165
|
+
_useActiveElementModE2 = (0, _slicedToArray2.default)(_useActiveElementModE, 2),
|
|
166
|
+
applyActiveElementMod = _useActiveElementModE2[0],
|
|
167
|
+
undoActiveElementMod = _useActiveElementModE2[1];
|
|
198
168
|
var _useDisabledModEffect = (0, _useDisabledModEffect3.default)(adaptiveCard),
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
169
|
+
_useDisabledModEffect2 = (0, _slicedToArray2.default)(_useDisabledModEffect, 2),
|
|
170
|
+
applyDisabledMod = _useDisabledModEffect2[0],
|
|
171
|
+
undoDisabledMod = _useDisabledModEffect2[1];
|
|
203
172
|
var _usePersistValuesModE = (0, _usePersistValuesModEffect.default)(adaptiveCard),
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
173
|
+
_usePersistValuesModE2 = (0, _slicedToArray2.default)(_usePersistValuesModE, 2),
|
|
174
|
+
applyPersistValuesMod = _usePersistValuesModE2[0],
|
|
175
|
+
undoPersistValuesMod = _usePersistValuesModE2[1];
|
|
208
176
|
var _useRoleModEffect = (0, _useRoleModEffect3.default)(adaptiveCard),
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
177
|
+
_useRoleModEffect2 = (0, _slicedToArray2.default)(_useRoleModEffect, 2),
|
|
178
|
+
applyRoleMod = _useRoleModEffect2[0],
|
|
179
|
+
undoRoleMod = _useRoleModEffect2[1];
|
|
213
180
|
var _useMemo = (0, _react.useMemo)(function () {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
181
|
+
undoActionShouldBePushButtonMod();
|
|
182
|
+
undoActionSetShouldNotBeMenuBarMod();
|
|
183
|
+
undoActiveElementMod();
|
|
184
|
+
undoDisabledMod();
|
|
185
|
+
undoPersistValuesMod();
|
|
186
|
+
undoRoleMod();
|
|
187
|
+
return (0, _renderAdaptiveCard.default)(adaptiveCard, {
|
|
188
|
+
adaptiveCardsHostConfig: adaptiveCardsHostConfig,
|
|
189
|
+
adaptiveCardsPackage: {
|
|
190
|
+
GlobalSettings: GlobalSettings,
|
|
191
|
+
HostConfig: HostConfig
|
|
192
|
+
},
|
|
193
|
+
renderMarkdownAsHTML: renderMarkdownAsHTML,
|
|
194
|
+
setTabIndexAtCardRoot: setTabIndexAtCardRoot
|
|
195
|
+
});
|
|
196
|
+
}, [adaptiveCard, adaptiveCardsHostConfig, GlobalSettings, HostConfig, renderMarkdownAsHTML, setTabIndexAtCardRoot, undoActionShouldBePushButtonMod, undoActionSetShouldNotBeMenuBarMod, undoActiveElementMod, undoDisabledMod, undoPersistValuesMod, undoRoleMod]),
|
|
197
|
+
element = _useMemo.element,
|
|
198
|
+
errors = _useMemo.errors;
|
|
233
199
|
(0, _react.useMemo)(function () {
|
|
234
200
|
adaptiveCard.onExecuteAction = handleExecuteAction;
|
|
235
201
|
}, [adaptiveCard, handleExecuteAction]);
|
|
@@ -239,9 +205,10 @@ var AdaptiveCardRenderer = function AdaptiveCardRenderer(_ref) {
|
|
|
239
205
|
return function () {
|
|
240
206
|
current === null || current === void 0 ? void 0 : current.removeChild(element);
|
|
241
207
|
};
|
|
242
|
-
}, [contentRef, element]);
|
|
243
|
-
// This is because we have undoed mods when we call the `useXXXModEffect` hook.
|
|
208
|
+
}, [contentRef, element]);
|
|
244
209
|
|
|
210
|
+
// Apply all mods regardless whether the element changed or not.
|
|
211
|
+
// This is because we have undoed mods when we call the `useXXXModEffect` hook.
|
|
245
212
|
(0, _react.useLayoutEffect)(function () {
|
|
246
213
|
if (element) {
|
|
247
214
|
applyActionShouldBePushButtonMod(element, actionPerformedClassName);
|
|
@@ -263,7 +230,6 @@ var AdaptiveCardRenderer = function AdaptiveCardRenderer(_ref) {
|
|
|
263
230
|
ref: contentRef
|
|
264
231
|
});
|
|
265
232
|
};
|
|
266
|
-
|
|
267
233
|
AdaptiveCardRenderer.defaultProps = {
|
|
268
234
|
actionPerformedClassName: '',
|
|
269
235
|
disabled: undefined,
|
|
@@ -284,4 +250,4 @@ AdaptiveCardRenderer.propTypes = {
|
|
|
284
250
|
};
|
|
285
251
|
var _default = AdaptiveCardRenderer;
|
|
286
252
|
exports.default = _default;
|
|
287
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFcnJvckJveCIsIkNvbXBvbmVudHMiLCJ1c2VEaXNhYmxlZCIsImhvb2tzIiwidXNlTG9jYWxpemVyIiwidXNlUGVyZm9ybUNhcmRBY3Rpb24iLCJ1c2VSZW5kZXJNYXJrZG93bkFzSFRNTCIsInVzZVNjcm9sbFRvRW5kIiwibm9kZV9lbnYiLCJBZGFwdGl2ZUNhcmRSZW5kZXJlciIsImFjdGlvblBlcmZvcm1lZENsYXNzTmFtZSIsImFkYXB0aXZlQ2FyZCIsImRpc2FibGVkRnJvbVByb3BzIiwiZGlzYWJsZWQiLCJ0YXBBY3Rpb24iLCJ1c2VTdHlsZVNldCIsImFkYXB0aXZlQ2FyZFJlbmRlcmVyU3R5bGVTZXQiLCJhZGFwdGl2ZUNhcmRSZW5kZXJlciIsInVzZUFkYXB0aXZlQ2FyZHNQYWNrYWdlIiwiR2xvYmFsU2V0dGluZ3MiLCJIb3N0Q29uZmlnIiwidXNlQWRhcHRpdmVDYXJkc0hvc3RDb25maWciLCJhZGFwdGl2ZUNhcmRzSG9zdENvbmZpZyIsImRpc2FibGVkRnJvbUNvbXBvc2VyIiwiY29udGVudFJlZiIsInVzZVJlZiIsImxvY2FsaXplIiwicGVyZm9ybUNhcmRBY3Rpb24iLCJyZW5kZXJNYXJrZG93bkFzSFRNTCIsInNjcm9sbFRvRW5kIiwidGFwQWN0aW9uUmVmIiwidXNlVmFsdWVSZWYiLCJkaXNhYmxlZFJlZiIsImhhbmRsZUNsaWNrQW5kS2V5UHJlc3MiLCJ1c2VDYWxsYmFjayIsImV2ZW50Iiwia2V5IiwidHlwZSIsInRhcmdldCIsImN1cnJlbnQiLCJhZGFwdGl2ZUNhcmRSb290IiwicXVlcnlTZWxlY3RvciIsImNvbnNvbGUiLCJ3YXJuIiwicHJldmVudERlZmF1bHQiLCJ0YWJJbmRleCIsImdldFRhYkluZGV4IiwiaGFuZGxlQ2xpY2tBbmRLZXlQcmVzc0ZvclRhcEFjdGlvbiIsInVuZGVmaW5lZCIsImhhbmRsZUV4ZWN1dGVBY3Rpb24iLCJhY3Rpb24iLCJhY3Rpb25UeXBlTmFtZSIsImdldEpzb25UeXBlTmFtZSIsImltYWdlIiwiaWNvblVybCIsInRpdGxlIiwidmFsdWUiLCJ1cmwiLCJkYXRhIiwiX19pc0JvdEZyYW1ld29ya0NhcmRBY3Rpb24iLCJjYXJkQWN0aW9uIiwiZXJyb3IiLCJzZXRUYWJJbmRleEF0Q2FyZFJvb3QiLCJ1c2VBY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2RFZmZlY3QiLCJhcHBseUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZCIsInVuZG9BY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2QiLCJ1c2VBY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2RFZmZlY3QiLCJhcHBseUFjdGlvblNldFNob3VsZE5vdEJlTWVudUJhck1vZCIsInVuZG9BY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2QiLCJ1c2VBY3RpdmVFbGVtZW50TW9kRWZmZWN0IiwiYXBwbHlBY3RpdmVFbGVtZW50TW9kIiwidW5kb0FjdGl2ZUVsZW1lbnRNb2QiLCJ1c2VEaXNhYmxlZE1vZEVmZmVjdCIsImFwcGx5RGlzYWJsZWRNb2QiLCJ1bmRvRGlzYWJsZWRNb2QiLCJ1c2VQZXJzaXN0VmFsdWVzTW9kRWZmZWN0IiwiYXBwbHlQZXJzaXN0VmFsdWVzTW9kIiwidW5kb1BlcnNpc3RWYWx1ZXNNb2QiLCJ1c2VSb2xlTW9kRWZmZWN0IiwiYXBwbHlSb2xlTW9kIiwidW5kb1JvbGVNb2QiLCJ1c2VNZW1vIiwicmVuZGVyQWRhcHRpdmVDYXJkIiwiYWRhcHRpdmVDYXJkc1BhY2thZ2UiLCJlbGVtZW50IiwiZXJyb3JzIiwib25FeGVjdXRlQWN0aW9uIiwidXNlTGF5b3V0RWZmZWN0IiwiYXBwZW5kQ2hpbGQiLCJyZW1vdmVDaGlsZCIsImxlbmd0aCIsImNsYXNzTmFtZXMiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJhbnkiLCJpc1JlcXVpcmVkIiwiYm9vbCIsInNoYXBlIl0sInNvdXJjZVJvb3QiOiJidW5kbGU6Ly8vIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRpdmVDYXJkcy9BdHRhY2htZW50L0FkYXB0aXZlQ2FyZFJlbmRlcmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tbWFnaWMtbnVtYmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbLTEsIDAsIDJdIH1dICovXG5cbmltcG9ydCB7IEFjdGlvbiBhcyBBZGFwdGl2ZUNhcmRBY3Rpb24sIEFkYXB0aXZlQ2FyZCwgT3BlblVybEFjdGlvbiwgU3VibWl0QWN0aW9uIH0gZnJvbSAnYWRhcHRpdmVjYXJkcyc7XG5pbXBvcnQgeyBDb21wb25lbnRzLCBnZXRUYWJJbmRleCwgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb21wb25lbnQnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7XG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50SGFuZGxlcixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICBWRkNcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3RMaW5lQ2FyZEFjdGlvbiB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvcmUnO1xuXG5pbXBvcnQgeyBCb3RGcmFtZXdvcmtDYXJkQWN0aW9uIH0gZnJvbSAnLi9BZGFwdGl2ZUNhcmRCdWlsZGVyJztcbmltcG9ydCByZW5kZXJBZGFwdGl2ZUNhcmQgZnJvbSAnLi9wcml2YXRlL3JlbmRlckFkYXB0aXZlQ2FyZCc7XG5pbXBvcnQgdXNlQWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kRWZmZWN0IGZyb20gJy4vQWRhcHRpdmVDYXJkSGFja3MvdXNlQWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kRWZmZWN0JztcbmltcG9ydCB1c2VBY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2RFZmZlY3QgZnJvbSAnLi9BZGFwdGl2ZUNhcmRIYWNrcy91c2VBY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2RFZmZlY3QnO1xuaW1wb3J0IHVzZUFjdGl2ZUVsZW1lbnRNb2RFZmZlY3QgZnJvbSAnLi9BZGFwdGl2ZUNhcmRIYWNrcy91c2VBY3RpdmVFbGVtZW50TW9kRWZmZWN0JztcbmltcG9ydCB1c2VBZGFwdGl2ZUNhcmRzSG9zdENvbmZpZyBmcm9tICcuLi9ob29rcy91c2VBZGFwdGl2ZUNhcmRzSG9zdENvbmZpZyc7XG5pbXBvcnQgdXNlQWRhcHRpdmVDYXJkc1BhY2thZ2UgZnJvbSAnLi4vaG9va3MvdXNlQWRhcHRpdmVDYXJkc1BhY2thZ2UnO1xuaW1wb3J0IHVzZURpc2FibGVkTW9kRWZmZWN0IGZyb20gJy4vQWRhcHRpdmVDYXJkSGFja3MvdXNlRGlzYWJsZWRNb2RFZmZlY3QnO1xuaW1wb3J0IHVzZVBlcnNpc3RWYWx1ZXNNb2RFZmZlY3QgZnJvbSAnLi9BZGFwdGl2ZUNhcmRIYWNrcy91c2VQZXJzaXN0VmFsdWVzTW9kRWZmZWN0JztcbmltcG9ydCB1c2VSb2xlTW9kRWZmZWN0IGZyb20gJy4vQWRhcHRpdmVDYXJkSGFja3MvdXNlUm9sZU1vZEVmZmVjdCc7XG5pbXBvcnQgdXNlU3R5bGVTZXQgZnJvbSAnLi4vLi4vaG9va3MvdXNlU3R5bGVTZXQnO1xuaW1wb3J0IHVzZVZhbHVlUmVmIGZyb20gJy4vQWRhcHRpdmVDYXJkSGFja3MvcHJpdmF0ZS91c2VWYWx1ZVJlZic7XG5cbmNvbnN0IHsgRXJyb3JCb3ggfSA9IENvbXBvbmVudHM7XG5jb25zdCB7IHVzZURpc2FibGVkLCB1c2VMb2NhbGl6ZXIsIHVzZVBlcmZvcm1DYXJkQWN0aW9uLCB1c2VSZW5kZXJNYXJrZG93bkFzSFRNTCwgdXNlU2Nyb2xsVG9FbmQgfSA9IGhvb2tzO1xuXG5jb25zdCBub2RlX2VudiA9IHByb2Nlc3MuZW52Lm5vZGVfZW52IHx8IHByb2Nlc3MuZW52Lk5PREVfRU5WO1xuXG50eXBlIEFkYXB0aXZlQ2FyZFJlbmRlcmVyUHJvcHMgPSB7XG4gIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZT86IHN0cmluZztcbiAgYWRhcHRpdmVDYXJkOiBBZGFwdGl2ZUNhcmQ7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgdGFwQWN0aW9uPzogRGlyZWN0TGluZUNhcmRBY3Rpb247XG59O1xuXG5jb25zdCBBZGFwdGl2ZUNhcmRSZW5kZXJlcjogVkZDPEFkYXB0aXZlQ2FyZFJlbmRlcmVyUHJvcHM+ID0gKHtcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lLFxuICBhZGFwdGl2ZUNhcmQsXG4gIGRpc2FibGVkOiBkaXNhYmxlZEZyb21Qcm9wcyxcbiAgdGFwQWN0aW9uXG59KSA9PiB7XG4gIGNvbnN0IFt7IGFkYXB0aXZlQ2FyZFJlbmRlcmVyOiBhZGFwdGl2ZUNhcmRSZW5kZXJlclN0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW3sgR2xvYmFsU2V0dGluZ3MsIEhvc3RDb25maWcgfV0gPSB1c2VBZGFwdGl2ZUNhcmRzUGFja2FnZSgpO1xuICBjb25zdCBbYWRhcHRpdmVDYXJkc0hvc3RDb25maWddID0gdXNlQWRhcHRpdmVDYXJkc0hvc3RDb25maWcoKTtcbiAgY29uc3QgW2Rpc2FibGVkRnJvbUNvbXBvc2VyXSA9IHVzZURpc2FibGVkKCk7XG4gIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gIGNvbnN0IGxvY2FsaXplID0gdXNlTG9jYWxpemVyKCk7XG4gIGNvbnN0IHBlcmZvcm1DYXJkQWN0aW9uID0gdXNlUGVyZm9ybUNhcmRBY3Rpb24oKTtcbiAgY29uc3QgcmVuZGVyTWFya2Rvd25Bc0hUTUwgPSB1c2VSZW5kZXJNYXJrZG93bkFzSFRNTCgpO1xuICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZVNjcm9sbFRvRW5kKCk7XG5cbiAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZEZyb21Db21wb3NlciB8fCBkaXNhYmxlZEZyb21Qcm9wcztcbiAgY29uc3QgdGFwQWN0aW9uUmVmID0gdXNlVmFsdWVSZWYodGFwQWN0aW9uKTtcblxuICBjb25zdCBkaXNhYmxlZFJlZiA9IHVzZVZhbHVlUmVmKGRpc2FibGVkKTtcblxuICAvLyBUT0RPOiBbUDJdICMzMTk5IFdlIHNob3VsZCBjb25zaWRlciB1c2luZyBgYWRhcHRpdmVDYXJkLnNlbGVjdEFjdGlvbmAgaW5zdGVhZC5cbiAgLy8gVGhlIG51bGwgY2hlY2sgZm9yIFwidGFwQWN0aW9uXCIgaXMgaW4gXCJoYW5kbGVDbGlja0FuZEtleVByZXNzRm9yVGFwQWN0aW9uXCIuXG4gIGNvbnN0IGhhbmRsZUNsaWNrQW5kS2V5UHJlc3MgPSB1c2VDYWxsYmFjazxLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD4gfCBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD4+KFxuICAgIChldmVudCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgeyBrZXksIHR5cGUgfSA9IGV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICAgIC8vIFNvbWUgaXRlbXMsIGUuZy4gdGFwcGFibGUgdGV4dCwgY2Fubm90IGJlIGRpc2FibGVkIHRocnUgRE9NIGF0dHJpYnV0ZXNcbiAgICAgIGNvbnN0IHsgY3VycmVudCB9ID0gY29udGVudFJlZjtcbiAgICAgIGNvbnN0IGFkYXB0aXZlQ2FyZFJvb3QgPSBjdXJyZW50LnF1ZXJ5U2VsZWN0b3IoJy5hYy1hZGFwdGl2ZUNhcmRbdGFiaW5kZXg9XCIwXCJdJyk7XG5cbiAgICAgIGlmICghYWRhcHRpdmVDYXJkUm9vdCkge1xuICAgICAgICByZXR1cm4gY29uc29sZS53YXJuKFxuICAgICAgICAgICdib3RmcmFtZXdvcmstd2ViY2hhdDogTm8gQWRhcHRpdmUgQ2FyZCByb290IGNvbnRhaW5lciBjYW4gYmUgZm91bmQ7IHRoZSBjYXJkIGlzIHByb2JhYmx5IG9uIGFuIHVuc3VwcG9ydGVkIEFkYXB0aXZlIENhcmQgdmVyc2lvbi4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEZvciBcImtleXByZXNzXCIgZXZlbnQsIHdlIG9ubHkgbGlzdGVuIHRvIEVOVEVSIGFuZCBTUEFDRUJBUiBrZXkuXG4gICAgICBpZiAodHlwZSA9PT0gJ2tleXByZXNzJykge1xuICAgICAgICBpZiAoa2V5ICE9PSAnRW50ZXInICYmIGtleSAhPT0gJyAnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gV2Ugd2lsbCBjYWxsIHBlcmZvcm1DYXJkQWN0aW9uIGlmIGVpdGhlcjpcbiAgICAgIC8vIDEuIFdlIGFyZSBvbiB0aGUgdGFyZ2V0LCBvclxuICAgICAgLy8gMi4gVGhlIGV2ZW50LWRpc3BhdGNoaW5nIGVsZW1lbnQgaXMgbm90IGludGVyYWN0aXZlXG4gICAgICBpZiAodGFyZ2V0ICE9PSBhZGFwdGl2ZUNhcmRSb290KSB7XG4gICAgICAgIGNvbnN0IHRhYkluZGV4ID0gZ2V0VGFiSW5kZXgodGFyZ2V0KTtcblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyBjbGlja2luZyBvbiBzb21ldGhpbmcgdGhhdCBpcyBhbHJlYWR5IGNsaWNrYWJsZSwgZG8gbm90IGFsbG93IHRoZW0gdG8gY2xpY2sgdGhlIGNhcmQuXG4gICAgICAgIC8vIEUuZy4gYSBoZXJvIGNhcmQgY2FuIGJlIHRhcHBhYmxlLCBhbmQgaW1hZ2UgYW5kIGJ1dHRvbnMgaW5zaWRlIHRoZSBoZXJvIGNhcmQgY2FuIGFsc28gYmUgdGFwcGFibGUuXG4gICAgICAgIGlmICh0eXBlb2YgdGFiSW5kZXggPT09ICdudW1iZXInICYmIHRhYkluZGV4ID49IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcGVyZm9ybUNhcmRBY3Rpb24odGFwQWN0aW9uUmVmLmN1cnJlbnQpO1xuICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICB9LFxuICAgIFtjb250ZW50UmVmLCBwZXJmb3JtQ2FyZEFjdGlvbiwgc2Nyb2xsVG9FbmQsIHRhcEFjdGlvblJlZl1cbiAgKTtcblxuICAvLyBPbmx5IGxpc3RlbiB0byBldmVudCBpZiBpdCBpcyBub3QgZGlzYWJsZWQgYW5kIGhhdmUgXCJ0YXBBY3Rpb25cIiBwcm9wLlxuICBjb25zdCBoYW5kbGVDbGlja0FuZEtleVByZXNzRm9yVGFwQWN0aW9uID0gIWRpc2FibGVkICYmIHRhcEFjdGlvbiA/IGhhbmRsZUNsaWNrQW5kS2V5UHJlc3MgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgaGFuZGxlRXhlY3V0ZUFjdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChhY3Rpb246IEFkYXB0aXZlQ2FyZEFjdGlvbik6IHZvaWQgPT4ge1xuICAgICAgLy8gU29tZSBpdGVtcywgZS5nLiB0YXBwYWJsZSBpbWFnZSwgY2Fubm90IGJlIGRpc2FibGVkIHRocnUgRE9NIGF0dHJpYnV0ZXNcbiAgICAgIGlmIChkaXNhYmxlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYWN0aW9uVHlwZU5hbWUgPSBhY3Rpb24uZ2V0SnNvblR5cGVOYW1lKCk7XG4gICAgICBjb25zdCB7IGljb25Vcmw6IGltYWdlLCB0aXRsZSB9ID0gYWN0aW9uO1xuXG4gICAgICAvLyBXZSBjYW5ub3QgdXNlIFwiaW5zdGFuY2VvZlwiIGNoZWNrIGhlcmUsIGJlY2F1c2Ugd2ViIGRldnMgbWF5IGJyaW5nIHRoZWlyIG93biB2ZXJzaW9uIG9mIEFkYXB0aXZlIENhcmRzIHBhY2thZ2UuXG4gICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHVzaW5nIFwiZ2V0SnNvblR5cGVOYW1lKClcIiBpbnN0ZWFkLlxuICAgICAgaWYgKGFjdGlvblR5cGVOYW1lID09PSAnQWN0aW9uLk9wZW5VcmwnKSB7XG4gICAgICAgIGNvbnN0IHsgdXJsOiB2YWx1ZSB9ID0gYWN0aW9uIGFzIE9wZW5VcmxBY3Rpb247XG5cbiAgICAgICAgcGVyZm9ybUNhcmRBY3Rpb24oe1xuICAgICAgICAgIGltYWdlLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgIHR5cGU6ICdvcGVuVXJsJyxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoYWN0aW9uVHlwZU5hbWUgPT09ICdBY3Rpb24uU3VibWl0Jykge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGFjdGlvbiBhcyBTdWJtaXRBY3Rpb24gYXMge1xuICAgICAgICAgIGRhdGE6IHN0cmluZyB8IEJvdEZyYW1ld29ya0NhcmRBY3Rpb247XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHBlcmZvcm1DYXJkQWN0aW9uKHtcbiAgICAgICAgICAgICAgaW1hZ2UsXG4gICAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgICB0eXBlOiAnaW1CYWNrJyxcbiAgICAgICAgICAgICAgdmFsdWU6IGRhdGFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5fX2lzQm90RnJhbWV3b3JrQ2FyZEFjdGlvbikge1xuICAgICAgICAgICAgcGVyZm9ybUNhcmRBY3Rpb24oZGF0YS5jYXJkQWN0aW9uKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVyZm9ybUNhcmRBY3Rpb24oe1xuICAgICAgICAgICAgICBpbWFnZSxcbiAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgIHR5cGU6ICdwb3N0QmFjaycsXG4gICAgICAgICAgICAgIHZhbHVlOiBkYXRhXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzY3JvbGxUb0VuZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgV2ViIENoYXQ6IHJlY2VpdmVkIHVua25vd24gYWN0aW9uIGZyb20gQWRhcHRpdmUgQ2FyZHNgKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihhY3Rpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2Rpc2FibGVkUmVmLCBwZXJmb3JtQ2FyZEFjdGlvbiwgc2Nyb2xsVG9FbmRdXG4gICk7XG5cbiAgLy8gRm9yIGFjY2Vzc2liaWxpdHkgaXNzdWUgIzEzNDAsIGB0YWJpbmRleD1cIjBcImAgbXVzdCBub3QgYmUgc2V0IGZvciB0aGUgcm9vdCBjb250YWluZXIgaWYgaXQgaXMgbm90IGludGVyYWN0aXZlLlxuICBjb25zdCBzZXRUYWJJbmRleEF0Q2FyZFJvb3QgPSAhIXRhcEFjdGlvbjtcblxuICBjb25zdCBbYXBwbHlBY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2QsIHVuZG9BY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2RdID1cbiAgICB1c2VBY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2RFZmZlY3QoYWRhcHRpdmVDYXJkKTtcbiAgY29uc3QgW2FwcGx5QWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kLCB1bmRvQWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kXSA9XG4gICAgdXNlQWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kRWZmZWN0KGFkYXB0aXZlQ2FyZCk7XG4gIGNvbnN0IFthcHBseUFjdGl2ZUVsZW1lbnRNb2QsIHVuZG9BY3RpdmVFbGVtZW50TW9kXSA9IHVzZUFjdGl2ZUVsZW1lbnRNb2RFZmZlY3QoYWRhcHRpdmVDYXJkKTtcbiAgY29uc3QgW2FwcGx5RGlzYWJsZWRNb2QsIHVuZG9EaXNhYmxlZE1vZF0gPSB1c2VEaXNhYmxlZE1vZEVmZmVjdChhZGFwdGl2ZUNhcmQpO1xuICBjb25zdCBbYXBwbHlQZXJzaXN0VmFsdWVzTW9kLCB1bmRvUGVyc2lzdFZhbHVlc01vZF0gPSB1c2VQZXJzaXN0VmFsdWVzTW9kRWZmZWN0KGFkYXB0aXZlQ2FyZCk7XG4gIGNvbnN0IFthcHBseVJvbGVNb2QsIHVuZG9Sb2xlTW9kXSA9IHVzZVJvbGVNb2RFZmZlY3QoYWRhcHRpdmVDYXJkKTtcblxuICBjb25zdCB7IGVsZW1lbnQsIGVycm9ycyB9OiB7IGVsZW1lbnQ/OiBIVE1MRWxlbWVudDsgZXJyb3JzPzogRXJyb3JbXSB9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgdW5kb0FjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZCgpO1xuICAgIHVuZG9BY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2QoKTtcbiAgICB1bmRvQWN0aXZlRWxlbWVudE1vZCgpO1xuICAgIHVuZG9EaXNhYmxlZE1vZCgpO1xuICAgIHVuZG9QZXJzaXN0VmFsdWVzTW9kKCk7XG4gICAgdW5kb1JvbGVNb2QoKTtcblxuICAgIHJldHVybiByZW5kZXJBZGFwdGl2ZUNhcmQoYWRhcHRpdmVDYXJkLCB7XG4gICAgICBhZGFwdGl2ZUNhcmRzSG9zdENvbmZpZyxcbiAgICAgIGFkYXB0aXZlQ2FyZHNQYWNrYWdlOiB7IEdsb2JhbFNldHRpbmdzLCBIb3N0Q29uZmlnIH0sXG4gICAgICByZW5kZXJNYXJrZG93bkFzSFRNTCxcbiAgICAgIHNldFRhYkluZGV4QXRDYXJkUm9vdFxuICAgIH0pO1xuICB9LCBbXG4gICAgYWRhcHRpdmVDYXJkLFxuICAgIGFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnLFxuICAgIEdsb2JhbFNldHRpbmdzLFxuICAgIEhvc3RDb25maWcsXG4gICAgcmVuZGVyTWFya2Rvd25Bc0hUTUwsXG4gICAgc2V0VGFiSW5kZXhBdENhcmRSb290LFxuICAgIHVuZG9BY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2QsXG4gICAgdW5kb0FjdGlvblNldFNob3VsZE5vdEJlTWVudUJhck1vZCxcbiAgICB1bmRvQWN0aXZlRWxlbWVudE1vZCxcbiAgICB1bmRvRGlzYWJsZWRNb2QsXG4gICAgdW5kb1BlcnNpc3RWYWx1ZXNNb2QsXG4gICAgdW5kb1JvbGVNb2RcbiAgXSk7XG5cbiAgdXNlTWVtbygoKSA9PiB7XG4gICAgYWRhcHRpdmVDYXJkLm9uRXhlY3V0ZUFjdGlvbiA9IGhhbmRsZUV4ZWN1dGVBY3Rpb247XG4gIH0sIFthZGFwdGl2ZUNhcmQsIGhhbmRsZUV4ZWN1dGVBY3Rpb25dKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudCB9ID0gY29udGVudFJlZjtcblxuICAgIGN1cnJlbnQ/LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGN1cnJlbnQ/LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH07XG4gIH0sIFtjb250ZW50UmVmLCBlbGVtZW50XSk7XG5cbiAgLy8gQXBwbHkgYWxsIG1vZHMgcmVnYXJkbGVzcyB3aGV0aGVyIHRoZSBlbGVtZW50IGNoYW5nZWQgb3Igbm90LlxuICAvLyBUaGlzIGlzIGJlY2F1c2Ugd2UgaGF2ZSB1bmRvZWQgbW9kcyB3aGVuIHdlIGNhbGwgdGhlIGB1c2VYWFhNb2RFZmZlY3RgIGhvb2suXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIGFwcGx5QWN0aW9uU2hvdWxkQmVQdXNoQnV0dG9uTW9kKGVsZW1lbnQsIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZSk7XG4gICAgICBhcHBseUFjdGlvblNldFNob3VsZE5vdEJlTWVudUJhck1vZChlbGVtZW50KTtcbiAgICAgIGFwcGx5QWN0aXZlRWxlbWVudE1vZChlbGVtZW50KTtcbiAgICAgIGFwcGx5RGlzYWJsZWRNb2QoZWxlbWVudCwgZGlzYWJsZWQpO1xuICAgICAgYXBwbHlQZXJzaXN0VmFsdWVzTW9kKGVsZW1lbnQpO1xuICAgICAgYXBwbHlSb2xlTW9kKGVsZW1lbnQpO1xuICAgIH1cbiAgfSwgW1xuICAgIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZSxcbiAgICBhcHBseUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZCxcbiAgICBhcHBseUFjdGlvblNldFNob3VsZE5vdEJlTWVudUJhck1vZCxcbiAgICBhcHBseUFjdGl2ZUVsZW1lbnRNb2QsXG4gICAgYXBwbHlEaXNhYmxlZE1vZCxcbiAgICBhcHBseVBlcnNpc3RWYWx1ZXNNb2QsXG4gICAgYXBwbHlSb2xlTW9kLFxuICAgIGRpc2FibGVkLFxuICAgIGVsZW1lbnRcbiAgXSk7XG5cbiAgZXJyb3JzPy5sZW5ndGggJiYgY29uc29sZS53YXJuKCdib3RmcmFtZXdvcmstd2ViY2hhdDogRmFpbGVkIHRvIHJlbmRlciBBZGFwdGl2ZSBDYXJkcy4nLCBlcnJvcnMpO1xuXG4gIHJldHVybiBlcnJvcnM/Lmxlbmd0aCA/IChcbiAgICBub2RlX2VudiA9PT0gJ2RldmVsb3BtZW50JyAmJiA8RXJyb3JCb3ggZXJyb3I9e2Vycm9yc1swXX0gdHlwZT17bG9jYWxpemUoJ0FEQVBUSVZFX0NBUkRfRVJST1JfQk9YX1RJVExFX1JFTkRFUicpfSAvPlxuICApIDogKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhhZGFwdGl2ZUNhcmRSZW5kZXJlclN0eWxlU2V0ICsgJycsICd3ZWJjaGF0X19hZGFwdGl2ZS1jYXJkLXJlbmRlcmVyJyl9XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja0FuZEtleVByZXNzRm9yVGFwQWN0aW9uIGFzIE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50Pn1cbiAgICAgIG9uS2V5UHJlc3M9e2hhbmRsZUNsaWNrQW5kS2V5UHJlc3NGb3JUYXBBY3Rpb24gYXMgS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgcmVmPXtjb250ZW50UmVmfVxuICAgIC8+XG4gICk7XG59O1xuXG5BZGFwdGl2ZUNhcmRSZW5kZXJlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZTogJycsXG4gIGRpc2FibGVkOiB1bmRlZmluZWQsXG4gIHRhcEFjdGlvbjogdW5kZWZpbmVkXG59O1xuXG5BZGFwdGl2ZUNhcmRSZW5kZXJlci5wcm9wVHlwZXMgPSB7XG4gIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgYWRhcHRpdmVDYXJkOiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvLyBUeXBlU2NyaXB0IGNsYXNzIGlzIG5vdCBtYXBwYWJsZSB0byBQcm9wVHlwZXMuZnVuY1xuICAvLyBAdHMtaWdub3JlXG4gIHRhcEFjdGlvbjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBpbWFnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmdcbiAgfSlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFkYXB0aXZlQ2FyZFJlbmRlcmVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBWUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQTVCQTtBQThCQSxJQUFRQSxRQUFSLEdBQXFCQyx3Q0FBckIsQ0FBUUQsUUFBUjtBQUNBLElBQVFFLFdBQVIsR0FBcUdDLG1DQUFyRyxDQUFRRCxXQUFSO0FBQUEsSUFBcUJFLFlBQXJCLEdBQXFHRCxtQ0FBckcsQ0FBcUJDLFlBQXJCO0FBQUEsSUFBbUNDLG9CQUFuQyxHQUFxR0YsbUNBQXJHLENBQW1DRSxvQkFBbkM7QUFBQSxJQUF5REMsdUJBQXpELEdBQXFHSCxtQ0FBckcsQ0FBeURHLHVCQUF6RDtBQUFBLElBQWtGQyxjQUFsRixHQUFxR0osbUNBQXJHLENBQWtGSSxjQUFsRjtBQUVBLElBQU1DLFFBQVEsR0FBRyx5QkFBakI7O0FBU0EsSUFBTUMsb0JBQW9ELEdBQUcsU0FB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
|
|
253
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYm90ZnJhbWV3b3JrV2ViY2hhdENvbXBvbmVudCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcHJvcFR5cGVzIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVuZGVyQWRhcHRpdmVDYXJkIiwiX3VzZUFjdGlvblNldFNob3VsZE5vdEJlTWVudUJhck1vZEVmZmVjdCIsIl91c2VBY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2RFZmZlY3QiLCJfdXNlQWN0aXZlRWxlbWVudE1vZEVmZmVjdCIsIl91c2VBZGFwdGl2ZUNhcmRzSG9zdENvbmZpZyIsIl91c2VBZGFwdGl2ZUNhcmRzUGFja2FnZSIsIl91c2VEaXNhYmxlZE1vZEVmZmVjdDMiLCJfdXNlUGVyc2lzdFZhbHVlc01vZEVmZmVjdCIsIl91c2VSb2xlTW9kRWZmZWN0MyIsIl91c2VTdHlsZVNldDMiLCJfdXNlVmFsdWVSZWYiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkVycm9yQm94IiwiQ29tcG9uZW50cyIsInVzZURpc2FibGVkIiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJ1c2VQZXJmb3JtQ2FyZEFjdGlvbiIsInVzZVJlbmRlck1hcmtkb3duQXNIVE1MIiwidXNlU2Nyb2xsVG9FbmQiLCJub2RlX2VudiIsInVuZGVmaW5lZCIsIkFkYXB0aXZlQ2FyZFJlbmRlcmVyIiwiX3JlZiIsImFjdGlvblBlcmZvcm1lZENsYXNzTmFtZSIsImFkYXB0aXZlQ2FyZCIsImRpc2FibGVkRnJvbVByb3BzIiwiZGlzYWJsZWQiLCJ0YXBBY3Rpb24iLCJfdXNlU3R5bGVTZXQiLCJ1c2VTdHlsZVNldCIsIl91c2VTdHlsZVNldDIiLCJfc2xpY2VkVG9BcnJheTIiLCJhZGFwdGl2ZUNhcmRSZW5kZXJlclN0eWxlU2V0IiwiYWRhcHRpdmVDYXJkUmVuZGVyZXIiLCJfdXNlQWRhcHRpdmVDYXJkc1BhY2siLCJ1c2VBZGFwdGl2ZUNhcmRzUGFja2FnZSIsIl91c2VBZGFwdGl2ZUNhcmRzUGFjazIiLCJfdXNlQWRhcHRpdmVDYXJkc1BhY2szIiwiR2xvYmFsU2V0dGluZ3MiLCJIb3N0Q29uZmlnIiwiX3VzZUFkYXB0aXZlQ2FyZHNIb3N0IiwidXNlQWRhcHRpdmVDYXJkc0hvc3RDb25maWciLCJfdXNlQWRhcHRpdmVDYXJkc0hvc3QyIiwiYWRhcHRpdmVDYXJkc0hvc3RDb25maWciLCJfdXNlRGlzYWJsZWQiLCJfdXNlRGlzYWJsZWQyIiwiZGlzYWJsZWRGcm9tQ29tcG9zZXIiLCJjb250ZW50UmVmIiwidXNlUmVmIiwibG9jYWxpemUiLCJwZXJmb3JtQ2FyZEFjdGlvbiIsInJlbmRlck1hcmtkb3duQXNIVE1MIiwic2Nyb2xsVG9FbmQiLCJ0YXBBY3Rpb25SZWYiLCJ1c2VWYWx1ZVJlZiIsImRpc2FibGVkUmVmIiwiaGFuZGxlQ2xpY2tBbmRLZXlQcmVzcyIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJfcmVmMiIsInR5cGUiLCJ0YXJnZXQiLCJjdXJyZW50IiwiYWRhcHRpdmVDYXJkUm9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJjb25zb2xlIiwid2FybiIsInByZXZlbnREZWZhdWx0IiwidGFiSW5kZXgiLCJnZXRUYWJJbmRleCIsImhhbmRsZUNsaWNrQW5kS2V5UHJlc3NGb3JUYXBBY3Rpb24iLCJoYW5kbGVFeGVjdXRlQWN0aW9uIiwiYWN0aW9uIiwiYWN0aW9uVHlwZU5hbWUiLCJnZXRKc29uVHlwZU5hbWUiLCJpbWFnZSIsImljb25VcmwiLCJ0aXRsZSIsIl9yZWYzIiwidmFsdWUiLCJ1cmwiLCJfcmVmNCIsImRhdGEiLCJfX2lzQm90RnJhbWV3b3JrQ2FyZEFjdGlvbiIsImNhcmRBY3Rpb24iLCJlcnJvciIsInNldFRhYkluZGV4QXRDYXJkUm9vdCIsIl91c2VBY3Rpb25TaG91bGRCZVB1cyIsInVzZUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZEVmZmVjdCIsIl91c2VBY3Rpb25TaG91bGRCZVB1czIiLCJhcHBseUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZCIsInVuZG9BY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2QiLCJfdXNlQWN0aW9uU2V0U2hvdWxkTm8iLCJ1c2VBY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2RFZmZlY3QiLCJfdXNlQWN0aW9uU2V0U2hvdWxkTm8yIiwiYXBwbHlBY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2QiLCJ1bmRvQWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kIiwiX3VzZUFjdGl2ZUVsZW1lbnRNb2RFIiwidXNlQWN0aXZlRWxlbWVudE1vZEVmZmVjdCIsIl91c2VBY3RpdmVFbGVtZW50TW9kRTIiLCJhcHBseUFjdGl2ZUVsZW1lbnRNb2QiLCJ1bmRvQWN0aXZlRWxlbWVudE1vZCIsIl91c2VEaXNhYmxlZE1vZEVmZmVjdCIsInVzZURpc2FibGVkTW9kRWZmZWN0IiwiX3VzZURpc2FibGVkTW9kRWZmZWN0MiIsImFwcGx5RGlzYWJsZWRNb2QiLCJ1bmRvRGlzYWJsZWRNb2QiLCJfdXNlUGVyc2lzdFZhbHVlc01vZEUiLCJ1c2VQZXJzaXN0VmFsdWVzTW9kRWZmZWN0IiwiX3VzZVBlcnNpc3RWYWx1ZXNNb2RFMiIsImFwcGx5UGVyc2lzdFZhbHVlc01vZCIsInVuZG9QZXJzaXN0VmFsdWVzTW9kIiwiX3VzZVJvbGVNb2RFZmZlY3QiLCJ1c2VSb2xlTW9kRWZmZWN0IiwiX3VzZVJvbGVNb2RFZmZlY3QyIiwiYXBwbHlSb2xlTW9kIiwidW5kb1JvbGVNb2QiLCJfdXNlTWVtbyIsInVzZU1lbW8iLCJyZW5kZXJBZGFwdGl2ZUNhcmQiLCJhZGFwdGl2ZUNhcmRzUGFja2FnZSIsImVsZW1lbnQiLCJlcnJvcnMiLCJvbkV4ZWN1dGVBY3Rpb24iLCJ1c2VMYXlvdXRFZmZlY3QiLCJhcHBlbmRDaGlsZCIsInJlbW92ZUNoaWxkIiwibGVuZ3RoIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJvbkNsaWNrIiwib25LZXlQcmVzcyIsInJlZiIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImFueSIsImlzUmVxdWlyZWQiLCJib29sIiwic2hhcGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkUmVuZGVyZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJlcnJvclwiLCB7IFwiaWdub3JlXCI6IFstMSwgMCwgMl0gfV0gKi9cblxuaW1wb3J0IHsgQWN0aW9uIGFzIEFkYXB0aXZlQ2FyZEFjdGlvbiwgQWRhcHRpdmVDYXJkLCBPcGVuVXJsQWN0aW9uLCBTdWJtaXRBY3Rpb24gfSBmcm9tICdhZGFwdGl2ZWNhcmRzJztcbmltcG9ydCB7IENvbXBvbmVudHMsIGdldFRhYkluZGV4LCBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvbXBvbmVudCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIFZGQ1xufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IERpcmVjdExpbmVDYXJkQWN0aW9uIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29yZSc7XG5cbmltcG9ydCB7IEJvdEZyYW1ld29ya0NhcmRBY3Rpb24gfSBmcm9tICcuL0FkYXB0aXZlQ2FyZEJ1aWxkZXInO1xuaW1wb3J0IHJlbmRlckFkYXB0aXZlQ2FyZCBmcm9tICcuL3ByaXZhdGUvcmVuZGVyQWRhcHRpdmVDYXJkJztcbmltcG9ydCB1c2VBY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2RFZmZlY3QgZnJvbSAnLi9BZGFwdGl2ZUNhcmRIYWNrcy91c2VBY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2RFZmZlY3QnO1xuaW1wb3J0IHVzZUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZEVmZmVjdCBmcm9tICcuL0FkYXB0aXZlQ2FyZEhhY2tzL3VzZUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZEVmZmVjdCc7XG5pbXBvcnQgdXNlQWN0aXZlRWxlbWVudE1vZEVmZmVjdCBmcm9tICcuL0FkYXB0aXZlQ2FyZEhhY2tzL3VzZUFjdGl2ZUVsZW1lbnRNb2RFZmZlY3QnO1xuaW1wb3J0IHVzZUFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnIGZyb20gJy4uL2hvb2tzL3VzZUFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnJztcbmltcG9ydCB1c2VBZGFwdGl2ZUNhcmRzUGFja2FnZSBmcm9tICcuLi9ob29rcy91c2VBZGFwdGl2ZUNhcmRzUGFja2FnZSc7XG5pbXBvcnQgdXNlRGlzYWJsZWRNb2RFZmZlY3QgZnJvbSAnLi9BZGFwdGl2ZUNhcmRIYWNrcy91c2VEaXNhYmxlZE1vZEVmZmVjdCc7XG5pbXBvcnQgdXNlUGVyc2lzdFZhbHVlc01vZEVmZmVjdCBmcm9tICcuL0FkYXB0aXZlQ2FyZEhhY2tzL3VzZVBlcnNpc3RWYWx1ZXNNb2RFZmZlY3QnO1xuaW1wb3J0IHVzZVJvbGVNb2RFZmZlY3QgZnJvbSAnLi9BZGFwdGl2ZUNhcmRIYWNrcy91c2VSb2xlTW9kRWZmZWN0JztcbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi8uLi9ob29rcy91c2VTdHlsZVNldCc7XG5pbXBvcnQgdXNlVmFsdWVSZWYgZnJvbSAnLi9BZGFwdGl2ZUNhcmRIYWNrcy9wcml2YXRlL3VzZVZhbHVlUmVmJztcblxuY29uc3QgeyBFcnJvckJveCB9ID0gQ29tcG9uZW50cztcbmNvbnN0IHsgdXNlRGlzYWJsZWQsIHVzZUxvY2FsaXplciwgdXNlUGVyZm9ybUNhcmRBY3Rpb24sIHVzZVJlbmRlck1hcmtkb3duQXNIVE1MLCB1c2VTY3JvbGxUb0VuZCB9ID0gaG9va3M7XG5cbmNvbnN0IG5vZGVfZW52ID0gcHJvY2Vzcy5lbnYubm9kZV9lbnYgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlY7XG5cbnR5cGUgQWRhcHRpdmVDYXJkUmVuZGVyZXJQcm9wcyA9IHtcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lPzogc3RyaW5nO1xuICBhZGFwdGl2ZUNhcmQ6IEFkYXB0aXZlQ2FyZDtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0YXBBY3Rpb24/OiBEaXJlY3RMaW5lQ2FyZEFjdGlvbjtcbn07XG5cbmNvbnN0IEFkYXB0aXZlQ2FyZFJlbmRlcmVyOiBWRkM8QWRhcHRpdmVDYXJkUmVuZGVyZXJQcm9wcz4gPSAoe1xuICBhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWUsXG4gIGFkYXB0aXZlQ2FyZCxcbiAgZGlzYWJsZWQ6IGRpc2FibGVkRnJvbVByb3BzLFxuICB0YXBBY3Rpb25cbn0pID0+IHtcbiAgY29uc3QgW3sgYWRhcHRpdmVDYXJkUmVuZGVyZXI6IGFkYXB0aXZlQ2FyZFJlbmRlcmVyU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBbeyBHbG9iYWxTZXR0aW5ncywgSG9zdENvbmZpZyB9XSA9IHVzZUFkYXB0aXZlQ2FyZHNQYWNrYWdlKCk7XG4gIGNvbnN0IFthZGFwdGl2ZUNhcmRzSG9zdENvbmZpZ10gPSB1c2VBZGFwdGl2ZUNhcmRzSG9zdENvbmZpZygpO1xuICBjb25zdCBbZGlzYWJsZWRGcm9tQ29tcG9zZXJdID0gdXNlRGlzYWJsZWQoKTtcbiAgY29uc3QgY29udGVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgY29uc3QgbG9jYWxpemUgPSB1c2VMb2NhbGl6ZXIoKTtcbiAgY29uc3QgcGVyZm9ybUNhcmRBY3Rpb24gPSB1c2VQZXJmb3JtQ2FyZEFjdGlvbigpO1xuICBjb25zdCByZW5kZXJNYXJrZG93bkFzSFRNTCA9IHVzZVJlbmRlck1hcmtkb3duQXNIVE1MKCk7XG4gIGNvbnN0IHNjcm9sbFRvRW5kID0gdXNlU2Nyb2xsVG9FbmQoKTtcblxuICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkRnJvbUNvbXBvc2VyIHx8IGRpc2FibGVkRnJvbVByb3BzO1xuICBjb25zdCB0YXBBY3Rpb25SZWYgPSB1c2VWYWx1ZVJlZih0YXBBY3Rpb24pO1xuXG4gIGNvbnN0IGRpc2FibGVkUmVmID0gdXNlVmFsdWVSZWYoZGlzYWJsZWQpO1xuXG4gIC8vIFRPRE86IFtQMl0gIzMxOTkgV2Ugc2hvdWxkIGNvbnNpZGVyIHVzaW5nIGBhZGFwdGl2ZUNhcmQuc2VsZWN0QWN0aW9uYCBpbnN0ZWFkLlxuICAvLyBUaGUgbnVsbCBjaGVjayBmb3IgXCJ0YXBBY3Rpb25cIiBpcyBpbiBcImhhbmRsZUNsaWNrQW5kS2V5UHJlc3NGb3JUYXBBY3Rpb25cIi5cbiAgY29uc3QgaGFuZGxlQ2xpY2tBbmRLZXlQcmVzcyA9IHVzZUNhbGxiYWNrPEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiB8IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50Pj4oXG4gICAgKGV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCB7IGtleSwgdHlwZSB9ID0gZXZlbnQgYXMgS2V5Ym9hcmRFdmVudDtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgICAgLy8gU29tZSBpdGVtcywgZS5nLiB0YXBwYWJsZSB0ZXh0LCBjYW5ub3QgYmUgZGlzYWJsZWQgdGhydSBET00gYXR0cmlidXRlc1xuICAgICAgY29uc3QgeyBjdXJyZW50IH0gPSBjb250ZW50UmVmO1xuICAgICAgY29uc3QgYWRhcHRpdmVDYXJkUm9vdCA9IGN1cnJlbnQucXVlcnlTZWxlY3RvcignLmFjLWFkYXB0aXZlQ2FyZFt0YWJpbmRleD1cIjBcIl0nKTtcblxuICAgICAgaWYgKCFhZGFwdGl2ZUNhcmRSb290KSB7XG4gICAgICAgIHJldHVybiBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBObyBBZGFwdGl2ZSBDYXJkIHJvb3QgY29udGFpbmVyIGNhbiBiZSBmb3VuZDsgdGhlIGNhcmQgaXMgcHJvYmFibHkgb24gYW4gdW5zdXBwb3J0ZWQgQWRhcHRpdmUgQ2FyZCB2ZXJzaW9uLidcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRm9yIFwia2V5cHJlc3NcIiBldmVudCwgd2Ugb25seSBsaXN0ZW4gdG8gRU5URVIgYW5kIFNQQUNFQkFSIGtleS5cbiAgICAgIGlmICh0eXBlID09PSAna2V5cHJlc3MnKSB7XG4gICAgICAgIGlmIChrZXkgIT09ICdFbnRlcicgJiYga2V5ICE9PSAnICcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBXZSB3aWxsIGNhbGwgcGVyZm9ybUNhcmRBY3Rpb24gaWYgZWl0aGVyOlxuICAgICAgLy8gMS4gV2UgYXJlIG9uIHRoZSB0YXJnZXQsIG9yXG4gICAgICAvLyAyLiBUaGUgZXZlbnQtZGlzcGF0Y2hpbmcgZWxlbWVudCBpcyBub3QgaW50ZXJhY3RpdmVcbiAgICAgIGlmICh0YXJnZXQgIT09IGFkYXB0aXZlQ2FyZFJvb3QpIHtcbiAgICAgICAgY29uc3QgdGFiSW5kZXggPSBnZXRUYWJJbmRleCh0YXJnZXQpO1xuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIGNsaWNraW5nIG9uIHNvbWV0aGluZyB0aGF0IGlzIGFscmVhZHkgY2xpY2thYmxlLCBkbyBub3QgYWxsb3cgdGhlbSB0byBjbGljayB0aGUgY2FyZC5cbiAgICAgICAgLy8gRS5nLiBhIGhlcm8gY2FyZCBjYW4gYmUgdGFwcGFibGUsIGFuZCBpbWFnZSBhbmQgYnV0dG9ucyBpbnNpZGUgdGhlIGhlcm8gY2FyZCBjYW4gYWxzbyBiZSB0YXBwYWJsZS5cbiAgICAgICAgaWYgKHR5cGVvZiB0YWJJbmRleCA9PT0gJ251bWJlcicgJiYgdGFiSW5kZXggPj0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwZXJmb3JtQ2FyZEFjdGlvbih0YXBBY3Rpb25SZWYuY3VycmVudCk7XG4gICAgICBzY3JvbGxUb0VuZCgpO1xuICAgIH0sXG4gICAgW2NvbnRlbnRSZWYsIHBlcmZvcm1DYXJkQWN0aW9uLCBzY3JvbGxUb0VuZCwgdGFwQWN0aW9uUmVmXVxuICApO1xuXG4gIC8vIE9ubHkgbGlzdGVuIHRvIGV2ZW50IGlmIGl0IGlzIG5vdCBkaXNhYmxlZCBhbmQgaGF2ZSBcInRhcEFjdGlvblwiIHByb3AuXG4gIGNvbnN0IGhhbmRsZUNsaWNrQW5kS2V5UHJlc3NGb3JUYXBBY3Rpb24gPSAhZGlzYWJsZWQgJiYgdGFwQWN0aW9uID8gaGFuZGxlQ2xpY2tBbmRLZXlQcmVzcyA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBoYW5kbGVFeGVjdXRlQWN0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGFjdGlvbjogQWRhcHRpdmVDYXJkQWN0aW9uKTogdm9pZCA9PiB7XG4gICAgICAvLyBTb21lIGl0ZW1zLCBlLmcuIHRhcHBhYmxlIGltYWdlLCBjYW5ub3QgYmUgZGlzYWJsZWQgdGhydSBET00gYXR0cmlidXRlc1xuICAgICAgaWYgKGRpc2FibGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhY3Rpb25UeXBlTmFtZSA9IGFjdGlvbi5nZXRKc29uVHlwZU5hbWUoKTtcbiAgICAgIGNvbnN0IHsgaWNvblVybDogaW1hZ2UsIHRpdGxlIH0gPSBhY3Rpb247XG5cbiAgICAgIC8vIFdlIGNhbm5vdCB1c2UgXCJpbnN0YW5jZW9mXCIgY2hlY2sgaGVyZSwgYmVjYXVzZSB3ZWIgZGV2cyBtYXkgYnJpbmcgdGhlaXIgb3duIHZlcnNpb24gb2YgQWRhcHRpdmUgQ2FyZHMgcGFja2FnZS5cbiAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdXNpbmcgXCJnZXRKc29uVHlwZU5hbWUoKVwiIGluc3RlYWQuXG4gICAgICBpZiAoYWN0aW9uVHlwZU5hbWUgPT09ICdBY3Rpb24uT3BlblVybCcpIHtcbiAgICAgICAgY29uc3QgeyB1cmw6IHZhbHVlIH0gPSBhY3Rpb24gYXMgT3BlblVybEFjdGlvbjtcblxuICAgICAgICBwZXJmb3JtQ2FyZEFjdGlvbih7XG4gICAgICAgICAgaW1hZ2UsXG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgdHlwZTogJ29wZW5VcmwnLFxuICAgICAgICAgIHZhbHVlXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChhY3Rpb25UeXBlTmFtZSA9PT0gJ0FjdGlvbi5TdWJtaXQnKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYWN0aW9uIGFzIFN1Ym1pdEFjdGlvbiBhcyB7XG4gICAgICAgICAgZGF0YTogc3RyaW5nIHwgQm90RnJhbWV3b3JrQ2FyZEFjdGlvbjtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodHlwZW9mIGRhdGEgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcGVyZm9ybUNhcmRBY3Rpb24oe1xuICAgICAgICAgICAgICBpbWFnZSxcbiAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbUJhY2snLFxuICAgICAgICAgICAgICB2YWx1ZTogZGF0YVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhLl9faXNCb3RGcmFtZXdvcmtDYXJkQWN0aW9uKSB7XG4gICAgICAgICAgICBwZXJmb3JtQ2FyZEFjdGlvbihkYXRhLmNhcmRBY3Rpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZXJmb3JtQ2FyZEFjdGlvbih7XG4gICAgICAgICAgICAgIGltYWdlLFxuICAgICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgICAgdHlwZTogJ3Bvc3RCYWNrJyxcbiAgICAgICAgICAgICAgdmFsdWU6IGRhdGFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBXZWIgQ2hhdDogcmVjZWl2ZWQgdW5rbm93biBhY3Rpb24gZnJvbSBBZGFwdGl2ZSBDYXJkc2ApO1xuICAgICAgICBjb25zb2xlLmVycm9yKGFjdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZGlzYWJsZWRSZWYsIHBlcmZvcm1DYXJkQWN0aW9uLCBzY3JvbGxUb0VuZF1cbiAgKTtcblxuICAvLyBGb3IgYWNjZXNzaWJpbGl0eSBpc3N1ZSAjMTM0MCwgYHRhYmluZGV4PVwiMFwiYCBtdXN0IG5vdCBiZSBzZXQgZm9yIHRoZSByb290IGNvbnRhaW5lciBpZiBpdCBpcyBub3QgaW50ZXJhY3RpdmUuXG4gIGNvbnN0IHNldFRhYkluZGV4QXRDYXJkUm9vdCA9ICEhdGFwQWN0aW9uO1xuXG4gIGNvbnN0IFthcHBseUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZCwgdW5kb0FjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZF0gPVxuICAgIHVzZUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZEVmZmVjdChhZGFwdGl2ZUNhcmQpO1xuICBjb25zdCBbYXBwbHlBY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2QsIHVuZG9BY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2RdID1cbiAgICB1c2VBY3Rpb25TZXRTaG91bGROb3RCZU1lbnVCYXJNb2RFZmZlY3QoYWRhcHRpdmVDYXJkKTtcbiAgY29uc3QgW2FwcGx5QWN0aXZlRWxlbWVudE1vZCwgdW5kb0FjdGl2ZUVsZW1lbnRNb2RdID0gdXNlQWN0aXZlRWxlbWVudE1vZEVmZmVjdChhZGFwdGl2ZUNhcmQpO1xuICBjb25zdCBbYXBwbHlEaXNhYmxlZE1vZCwgdW5kb0Rpc2FibGVkTW9kXSA9IHVzZURpc2FibGVkTW9kRWZmZWN0KGFkYXB0aXZlQ2FyZCk7XG4gIGNvbnN0IFthcHBseVBlcnNpc3RWYWx1ZXNNb2QsIHVuZG9QZXJzaXN0VmFsdWVzTW9kXSA9IHVzZVBlcnNpc3RWYWx1ZXNNb2RFZmZlY3QoYWRhcHRpdmVDYXJkKTtcbiAgY29uc3QgW2FwcGx5Um9sZU1vZCwgdW5kb1JvbGVNb2RdID0gdXNlUm9sZU1vZEVmZmVjdChhZGFwdGl2ZUNhcmQpO1xuXG4gIGNvbnN0IHsgZWxlbWVudCwgZXJyb3JzIH06IHsgZWxlbWVudD86IEhUTUxFbGVtZW50OyBlcnJvcnM/OiBFcnJvcltdIH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICB1bmRvQWN0aW9uU2hvdWxkQmVQdXNoQnV0dG9uTW9kKCk7XG4gICAgdW5kb0FjdGlvblNldFNob3VsZE5vdEJlTWVudUJhck1vZCgpO1xuICAgIHVuZG9BY3RpdmVFbGVtZW50TW9kKCk7XG4gICAgdW5kb0Rpc2FibGVkTW9kKCk7XG4gICAgdW5kb1BlcnNpc3RWYWx1ZXNNb2QoKTtcbiAgICB1bmRvUm9sZU1vZCgpO1xuXG4gICAgcmV0dXJuIHJlbmRlckFkYXB0aXZlQ2FyZChhZGFwdGl2ZUNhcmQsIHtcbiAgICAgIGFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnLFxuICAgICAgYWRhcHRpdmVDYXJkc1BhY2thZ2U6IHsgR2xvYmFsU2V0dGluZ3MsIEhvc3RDb25maWcgfSxcbiAgICAgIHJlbmRlck1hcmtkb3duQXNIVE1MLFxuICAgICAgc2V0VGFiSW5kZXhBdENhcmRSb290XG4gICAgfSk7XG4gIH0sIFtcbiAgICBhZGFwdGl2ZUNhcmQsXG4gICAgYWRhcHRpdmVDYXJkc0hvc3RDb25maWcsXG4gICAgR2xvYmFsU2V0dGluZ3MsXG4gICAgSG9zdENvbmZpZyxcbiAgICByZW5kZXJNYXJrZG93bkFzSFRNTCxcbiAgICBzZXRUYWJJbmRleEF0Q2FyZFJvb3QsXG4gICAgdW5kb0FjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZCxcbiAgICB1bmRvQWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kLFxuICAgIHVuZG9BY3RpdmVFbGVtZW50TW9kLFxuICAgIHVuZG9EaXNhYmxlZE1vZCxcbiAgICB1bmRvUGVyc2lzdFZhbHVlc01vZCxcbiAgICB1bmRvUm9sZU1vZFxuICBdKTtcblxuICB1c2VNZW1vKCgpID0+IHtcbiAgICBhZGFwdGl2ZUNhcmQub25FeGVjdXRlQWN0aW9uID0gaGFuZGxlRXhlY3V0ZUFjdGlvbjtcbiAgfSwgW2FkYXB0aXZlQ2FyZCwgaGFuZGxlRXhlY3V0ZUFjdGlvbl0pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50IH0gPSBjb250ZW50UmVmO1xuXG4gICAgY3VycmVudD8uYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY3VycmVudD8ucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgfTtcbiAgfSwgW2NvbnRlbnRSZWYsIGVsZW1lbnRdKTtcblxuICAvLyBBcHBseSBhbGwgbW9kcyByZWdhcmRsZXNzIHdoZXRoZXIgdGhlIGVsZW1lbnQgY2hhbmdlZCBvciBub3QuXG4gIC8vIFRoaXMgaXMgYmVjYXVzZSB3ZSBoYXZlIHVuZG9lZCBtb2RzIHdoZW4gd2UgY2FsbCB0aGUgYHVzZVhYWE1vZEVmZmVjdGAgaG9vay5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgYXBwbHlBY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2QoZWxlbWVudCwgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lKTtcbiAgICAgIGFwcGx5QWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kKGVsZW1lbnQpO1xuICAgICAgYXBwbHlBY3RpdmVFbGVtZW50TW9kKGVsZW1lbnQpO1xuICAgICAgYXBwbHlEaXNhYmxlZE1vZChlbGVtZW50LCBkaXNhYmxlZCk7XG4gICAgICBhcHBseVBlcnNpc3RWYWx1ZXNNb2QoZWxlbWVudCk7XG4gICAgICBhcHBseVJvbGVNb2QoZWxlbWVudCk7XG4gICAgfVxuICB9LCBbXG4gICAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lLFxuICAgIGFwcGx5QWN0aW9uU2hvdWxkQmVQdXNoQnV0dG9uTW9kLFxuICAgIGFwcGx5QWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kLFxuICAgIGFwcGx5QWN0aXZlRWxlbWVudE1vZCxcbiAgICBhcHBseURpc2FibGVkTW9kLFxuICAgIGFwcGx5UGVyc2lzdFZhbHVlc01vZCxcbiAgICBhcHBseVJvbGVNb2QsXG4gICAgZGlzYWJsZWQsXG4gICAgZWxlbWVudFxuICBdKTtcblxuICBlcnJvcnM/Lmxlbmd0aCAmJiBjb25zb2xlLndhcm4oJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBGYWlsZWQgdG8gcmVuZGVyIEFkYXB0aXZlIENhcmRzLicsIGVycm9ycyk7XG5cbiAgcmV0dXJuIGVycm9ycz8ubGVuZ3RoID8gKFxuICAgIG5vZGVfZW52ID09PSAnZGV2ZWxvcG1lbnQnICYmIDxFcnJvckJveCBlcnJvcj17ZXJyb3JzWzBdfSB0eXBlPXtsb2NhbGl6ZSgnQURBUFRJVkVfQ0FSRF9FUlJPUl9CT1hfVElUTEVfUkVOREVSJyl9IC8+XG4gICkgOiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGFkYXB0aXZlQ2FyZFJlbmRlcmVyU3R5bGVTZXQgKyAnJywgJ3dlYmNoYXRfX2FkYXB0aXZlLWNhcmQtcmVuZGVyZXInKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrQW5kS2V5UHJlc3NGb3JUYXBBY3Rpb24gYXMgTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgb25LZXlQcmVzcz17aGFuZGxlQ2xpY2tBbmRLZXlQcmVzc0ZvclRhcEFjdGlvbiBhcyBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD59XG4gICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgLz5cbiAgKTtcbn07XG5cbkFkYXB0aXZlQ2FyZFJlbmRlcmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lOiAnJyxcbiAgZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgdGFwQWN0aW9uOiB1bmRlZmluZWRcbn07XG5cbkFkYXB0aXZlQ2FyZFJlbmRlcmVyLnByb3BUeXBlcyA9IHtcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhZGFwdGl2ZUNhcmQ6IFByb3BUeXBlcy5hbnkuaXNSZXF1aXJlZCxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8vIFR5cGVTY3JpcHQgY2xhc3MgaXMgbm90IG1hcHBhYmxlIHRvIFByb3BUeXBlcy5mdW5jXG4gIC8vIEB0cy1pZ25vcmVcbiAgdGFwQWN0aW9uOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGltYWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZ1xuICB9KVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQWRhcHRpdmVDYXJkUmVuZGVyZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElB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
|