botframework-webchat 4.15.3-main.20220706.ecf53f4 → 4.15.3-main.20220720.8c4b995
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/adaptiveCards/Attachment/AdaptiveCardHacks/private/closest.d.ts +2 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/closest.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/closest.js +25 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/findDOMNodeOwner.d.ts +3 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/findDOMNodeOwner.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/findDOMNodeOwner.js +32 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useAdaptiveCardModEffect.d.ts +13 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useAdaptiveCardModEffect.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useAdaptiveCardModEffect.js +132 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useLazyRef.d.ts +3 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useLazyRef.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useLazyRef.js +21 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/usePrevious.d.ts +2 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/usePrevious.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/usePrevious.js +18 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useValueRef.d.ts +3 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useValueRef.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useValueRef.js +15 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionSetShouldNotBeMenuBarModEffect.d.ts +16 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionSetShouldNotBeMenuBarModEffect.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionSetShouldNotBeMenuBarModEffect.js +45 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionShouldBePushButtonModEffect.d.ts +15 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionShouldBePushButtonModEffect.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionShouldBePushButtonModEffect.js +93 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActiveElementModEffect.d.ts +6 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActiveElementModEffect.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActiveElementModEffect.js +44 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useDisabledModEffect.d.ts +9 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useDisabledModEffect.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useDisabledModEffect.js +50 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/usePersistValuesModEffect.d.ts +6 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/usePersistValuesModEffect.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/usePersistValuesModEffect.js +103 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.js +97 -557
- package/lib/adaptiveCards/Attachment/private/renderAdaptiveCard.d.ts +15 -0
- package/lib/adaptiveCards/Attachment/private/renderAdaptiveCard.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/private/renderAdaptiveCard.js +79 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/addEventListenerWithUndo.d.ts +6 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/addEventListenerWithUndo.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/addEventListenerWithUndo.js +25 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/bunchUndos.d.ts +3 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/bunchUndos.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/bunchUndos.js +23 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/durableAddClassWithUndo.d.ts +8 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/durableAddClassWithUndo.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/durableAddClassWithUndo.js +38 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/durableDisableInputElementAccessiblyWithUndo.d.ts +22 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/durableDisableInputElementAccessiblyWithUndo.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/durableDisableInputElementAccessiblyWithUndo.js +96 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/addClass.d.ts +5 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/addClass.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/addClass.js +19 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/getAttributeOrFalse.d.ts +7 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/getAttributeOrFalse.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/getAttributeOrFalse.js +16 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/noOp.d.ts +3 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/noOp.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/noOp.js +14 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/setOrRemoveAttributeIfFalse.d.ts +9 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/setOrRemoveAttributeIfFalse.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/private/setOrRemoveAttributeIfFalse.js +22 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/setOrRemoveAttributeIfFalseWithUndo.d.ts +12 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/setOrRemoveAttributeIfFalseWithUndo.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/setOrRemoveAttributeIfFalseWithUndo.js +41 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/types/UndoFunction.d.ts +3 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/types/UndoFunction.d.ts.map +1 -0
- package/lib/adaptiveCards/DOMManipulationWithUndo/types/UndoFunction.js +2 -0
- package/lib/addVersion.js +1 -1
- package/lib/createFullStyleSet.d.ts +2 -2
- package/package.json +7 -7
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/private/closest.ts +17 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/private/findDOMNodeOwner.ts +25 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/private/useAdaptiveCardModEffect.ts +93 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/private/useLazyRef.ts +15 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/private/usePrevious.ts +12 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/private/useValueRef.ts +11 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/useActionSetShouldNotBeMenuBarModEffect.ts +39 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/useActionShouldBePushButtonModEffect.ts +105 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/useActiveElementModEffect.ts +35 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/useDisabledModEffect.ts +45 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardHacks/usePersistValuesModEffect.ts +110 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx +83 -582
- package/src/adaptiveCards/Attachment/private/renderAdaptiveCard.ts +75 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/addEventListenerWithUndo.ts +21 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/bunchUndos.tsx +12 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/durableAddClassWithUndo.ts +28 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/durableDisableInputElementAccessiblyWithUndo.ts +84 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/private/addClass.tsx +13 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/private/getAttributeOrFalse.ts +8 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/private/noOp.ts +5 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/private/setOrRemoveAttributeIfFalse.ts +18 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/setOrRemoveAttributeIfFalseWithUndo.ts +34 -0
- package/src/adaptiveCards/DOMManipulationWithUndo/types/UndoFunction.ts +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closest.d.ts","sourceRoot":"","sources":["../../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/private/closest.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAc/F"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = closest;
|
|
7
|
+
|
|
8
|
+
// Ponyfill `HTMLElement.closest`.
|
|
9
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
|
|
10
|
+
function closest(element, selector) {
|
|
11
|
+
if (typeof element.closest === 'function') {
|
|
12
|
+
return element.closest(selector);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
var current = element;
|
|
16
|
+
|
|
17
|
+
while (current) {
|
|
18
|
+
if (current.matches(selector)) {
|
|
19
|
+
return current;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
current = current.parentElement;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkSGFja3MvcHJpdmF0ZS9jbG9zZXN0LnRzIl0sIm5hbWVzIjpbImNsb3Nlc3QiLCJlbGVtZW50Iiwic2VsZWN0b3IiLCJjdXJyZW50IiwibWF0Y2hlcyIsInBhcmVudEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ2UsU0FBU0EsT0FBVCxDQUFpQkMsT0FBakIsRUFBdUNDLFFBQXZDLEVBQWtGO0FBQy9GLE1BQUksT0FBT0QsT0FBTyxDQUFDRCxPQUFmLEtBQTJCLFVBQS9CLEVBQTJDO0FBQ3pDLFdBQU9DLE9BQU8sQ0FBQ0QsT0FBUixDQUFnQkUsUUFBaEIsQ0FBUDtBQUNEOztBQUVELE1BQUlDLE9BQTJCLEdBQUdGLE9BQWxDOztBQUVBLFNBQU9FLE9BQVAsRUFBZ0I7QUFDZCxRQUFJQSxPQUFPLENBQUNDLE9BQVIsQ0FBZ0JGLFFBQWhCLENBQUosRUFBK0I7QUFDN0IsYUFBT0MsT0FBUDtBQUNEOztBQUVEQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0UsYUFBbEI7QUFDRDtBQUNGIiwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBQb255ZmlsbCBgSFRNTEVsZW1lbnQuY2xvc2VzdGAuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC9jbG9zZXN0XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjbG9zZXN0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzZWxlY3Rvcjogc3RyaW5nKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIGVsZW1lbnQuY2xvc2VzdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBlbGVtZW50LmNsb3Nlc3Qoc2VsZWN0b3IpO1xuICB9XG5cbiAgbGV0IGN1cnJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGVsZW1lbnQ7XG5cbiAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICBpZiAoY3VycmVudC5tYXRjaGVzKHNlbGVjdG9yKSkge1xuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuXG4gICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50RWxlbWVudDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findDOMNodeOwner.d.ts","sourceRoot":"","sources":["../../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/private/findDOMNodeOwner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAkB,MAAM,eAAe,CAAC;AAK9E,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,CAmBjH"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = findDOMNodeOwner;
|
|
7
|
+
|
|
8
|
+
// TODO: [P2] Remove this when Adaptive Card fixed their bug #7606.
|
|
9
|
+
// https://github.com/microsoft/AdaptiveCards/issues/7606
|
|
10
|
+
// Currently, their findDOMNodeOwner() returns bad result when passing an Action attached to the card.
|
|
11
|
+
function findDOMNodeOwner(adaptiveCard, element) {
|
|
12
|
+
for (var count = adaptiveCard.getActionCount(), index = 0; index < count; index++) {
|
|
13
|
+
var action = adaptiveCard.getActionAt(index);
|
|
14
|
+
|
|
15
|
+
if (action.renderedElement === element) {
|
|
16
|
+
return action;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (action.getJsonTypeName() === 'Action.ShowCard') {
|
|
20
|
+
var _ref = action,
|
|
21
|
+
card = _ref.card;
|
|
22
|
+
var cardObject = card && findDOMNodeOwner(card, element);
|
|
23
|
+
|
|
24
|
+
if (cardObject) {
|
|
25
|
+
return cardObject;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return adaptiveCard.findDOMNodeOwner(element);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkSGFja3MvcHJpdmF0ZS9maW5kRE9NTm9kZU93bmVyLnRzIl0sIm5hbWVzIjpbImZpbmRET01Ob2RlT3duZXIiLCJhZGFwdGl2ZUNhcmQiLCJlbGVtZW50IiwiY291bnQiLCJnZXRBY3Rpb25Db3VudCIsImluZGV4IiwiYWN0aW9uIiwiZ2V0QWN0aW9uQXQiLCJyZW5kZXJlZEVsZW1lbnQiLCJnZXRKc29uVHlwZU5hbWUiLCJjYXJkIiwiY2FyZE9iamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNlLFNBQVNBLGdCQUFULENBQTBCQyxZQUExQixFQUFzREMsT0FBdEQsRUFBb0c7QUFDakgsT0FBSyxJQUFJQyxLQUFLLEdBQUdGLFlBQVksQ0FBQ0csY0FBYixFQUFaLEVBQTJDQyxLQUFLLEdBQUcsQ0FBeEQsRUFBMkRBLEtBQUssR0FBR0YsS0FBbkUsRUFBMEVFLEtBQUssRUFBL0UsRUFBbUY7QUFDakYsUUFBTUMsTUFBTSxHQUFHTCxZQUFZLENBQUNNLFdBQWIsQ0FBeUJGLEtBQXpCLENBQWY7O0FBRUEsUUFBSUMsTUFBTSxDQUFDRSxlQUFQLEtBQTJCTixPQUEvQixFQUF3QztBQUN0QyxhQUFPSSxNQUFQO0FBQ0Q7O0FBRUQsUUFBSUEsTUFBTSxDQUFDRyxlQUFQLE9BQTZCLGlCQUFqQyxFQUFvRDtBQUNsRCxpQkFBaUJILE1BQWpCO0FBQUEsVUFBUUksSUFBUixRQUFRQSxJQUFSO0FBQ0EsVUFBTUMsVUFBVSxHQUFHRCxJQUFJLElBQUlWLGdCQUFnQixDQUFDVSxJQUFELEVBQU9SLE9BQVAsQ0FBM0M7O0FBRUEsVUFBSVMsVUFBSixFQUFnQjtBQUNkLGVBQU9BLFVBQVA7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQsU0FBT1YsWUFBWSxDQUFDRCxnQkFBYixDQUE4QkUsT0FBOUIsQ0FBUDtBQUNEIiwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFkYXB0aXZlQ2FyZCwgQ2FyZE9iamVjdCwgU2hvd0NhcmRBY3Rpb24gfSBmcm9tICdhZGFwdGl2ZWNhcmRzJztcblxuLy8gVE9ETzogW1AyXSBSZW1vdmUgdGhpcyB3aGVuIEFkYXB0aXZlIENhcmQgZml4ZWQgdGhlaXIgYnVnICM3NjA2LlxuLy8gICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L0FkYXB0aXZlQ2FyZHMvaXNzdWVzLzc2MDZcbi8vICAgICAgICAgICAgQ3VycmVudGx5LCB0aGVpciBmaW5kRE9NTm9kZU93bmVyKCkgcmV0dXJucyBiYWQgcmVzdWx0IHdoZW4gcGFzc2luZyBhbiBBY3Rpb24gYXR0YWNoZWQgdG8gdGhlIGNhcmQuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmaW5kRE9NTm9kZU93bmVyKGFkYXB0aXZlQ2FyZDogQWRhcHRpdmVDYXJkLCBlbGVtZW50OiBIVE1MRWxlbWVudCk6IENhcmRPYmplY3QgfCB1bmRlZmluZWQge1xuICBmb3IgKGxldCBjb3VudCA9IGFkYXB0aXZlQ2FyZC5nZXRBY3Rpb25Db3VudCgpLCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7IGluZGV4KyspIHtcbiAgICBjb25zdCBhY3Rpb24gPSBhZGFwdGl2ZUNhcmQuZ2V0QWN0aW9uQXQoaW5kZXgpO1xuXG4gICAgaWYgKGFjdGlvbi5yZW5kZXJlZEVsZW1lbnQgPT09IGVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBhY3Rpb247XG4gICAgfVxuXG4gICAgaWYgKGFjdGlvbi5nZXRKc29uVHlwZU5hbWUoKSA9PT0gJ0FjdGlvbi5TaG93Q2FyZCcpIHtcbiAgICAgIGNvbnN0IHsgY2FyZCB9ID0gYWN0aW9uIGFzIFNob3dDYXJkQWN0aW9uO1xuICAgICAgY29uc3QgY2FyZE9iamVjdCA9IGNhcmQgJiYgZmluZERPTU5vZGVPd25lcihjYXJkLCBlbGVtZW50KTtcblxuICAgICAgaWYgKGNhcmRPYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGNhcmRPYmplY3Q7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFkYXB0aXZlQ2FyZC5maW5kRE9NTm9kZU93bmVyKGVsZW1lbnQpO1xufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AdaptiveCard } from 'adaptivecards';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a mod effect for Adaptive Card.
|
|
4
|
+
*
|
|
5
|
+
* When this hook is executed, it will return two functions for applying and undo the mod.
|
|
6
|
+
* It will also monitor the DOM tree and undo-then-reapply if mutation occurred.
|
|
7
|
+
*
|
|
8
|
+
* The first function must be called right after DOM is mounted. The second function must be called right before re-render.
|
|
9
|
+
*
|
|
10
|
+
* @return {[function, function]} Two functions, the first one to apply the mod, the second one to undo the mod.
|
|
11
|
+
*/
|
|
12
|
+
export default function useAdaptiveCardModEffect<TArgs extends unknown[]>(modder: (adaptiveCard: AdaptiveCard, cardElement: HTMLElement, ...args: TArgs) => () => void, adaptiveCard: AdaptiveCard): readonly [(cardElement: HTMLElement) => void, () => void];
|
|
13
|
+
//# sourceMappingURL=useAdaptiveCardModEffect.d.ts.map
|
package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/private/useAdaptiveCardModEffect.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAdaptiveCardModEffect.d.ts","sourceRoot":"","sources":["../../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/private/useAdaptiveCardModEffect.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AA6BlD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,KAAK,SAAS,OAAO,EAAE,EACtE,MAAM,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,KAAK,KAAK,MAAM,IAAI,EAC5F,YAAY,EAAE,YAAY,GACzB,SAAS,CAAC,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC,CA6C3D"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = useAdaptiveCardModEffect;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _classPrivateFieldGet5 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldGet"));
|
|
15
|
+
|
|
16
|
+
var _classPrivateFieldSet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldSet"));
|
|
17
|
+
|
|
18
|
+
var _react = require("react");
|
|
19
|
+
|
|
20
|
+
var _useLazyRef = _interopRequireDefault(require("./useLazyRef"));
|
|
21
|
+
|
|
22
|
+
var _useValueRef = _interopRequireDefault(require("./useValueRef"));
|
|
23
|
+
|
|
24
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
25
|
+
|
|
26
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
27
|
+
|
|
28
|
+
var _mod = /*#__PURE__*/new WeakMap();
|
|
29
|
+
|
|
30
|
+
var _undo = /*#__PURE__*/new WeakMap();
|
|
31
|
+
|
|
32
|
+
var Mod = /*#__PURE__*/function () {
|
|
33
|
+
function Mod(mod) {
|
|
34
|
+
(0, _classCallCheck2.default)(this, Mod);
|
|
35
|
+
|
|
36
|
+
_classPrivateFieldInitSpec(this, _mod, {
|
|
37
|
+
writable: true,
|
|
38
|
+
value: void 0
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
_classPrivateFieldInitSpec(this, _undo, {
|
|
42
|
+
writable: true,
|
|
43
|
+
value: void 0
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
(0, _classPrivateFieldSet2.default)(this, _mod, mod);
|
|
47
|
+
} // @ts-ignore We are using Babel to transpile and it will transpile private modifier.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
(0, _createClass2.default)(Mod, [{
|
|
51
|
+
key: "apply",
|
|
52
|
+
value: function apply(adaptiveCard, cardElement) {
|
|
53
|
+
var _classPrivateFieldGet2, _classPrivateFieldGet3;
|
|
54
|
+
|
|
55
|
+
(_classPrivateFieldGet2 = (0, _classPrivateFieldGet5.default)(this, _undo)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.call(this);
|
|
56
|
+
|
|
57
|
+
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
58
|
+
args[_key - 2] = arguments[_key];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
(0, _classPrivateFieldSet2.default)(this, _undo, adaptiveCard && cardElement && (_classPrivateFieldGet3 = (0, _classPrivateFieldGet5.default)(this, _mod)).call.apply(_classPrivateFieldGet3, [this, adaptiveCard, cardElement].concat(args)));
|
|
62
|
+
}
|
|
63
|
+
}, {
|
|
64
|
+
key: "undo",
|
|
65
|
+
value: function undo() {
|
|
66
|
+
var _classPrivateFieldGet4;
|
|
67
|
+
|
|
68
|
+
(_classPrivateFieldGet4 = (0, _classPrivateFieldGet5.default)(this, _undo)) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.call(this);
|
|
69
|
+
(0, _classPrivateFieldSet2.default)(this, _undo, undefined);
|
|
70
|
+
}
|
|
71
|
+
}]);
|
|
72
|
+
return Mod;
|
|
73
|
+
}();
|
|
74
|
+
/**
|
|
75
|
+
* Creates a mod effect for Adaptive Card.
|
|
76
|
+
*
|
|
77
|
+
* When this hook is executed, it will return two functions for applying and undo the mod.
|
|
78
|
+
* It will also monitor the DOM tree and undo-then-reapply if mutation occurred.
|
|
79
|
+
*
|
|
80
|
+
* The first function must be called right after DOM is mounted. The second function must be called right before re-render.
|
|
81
|
+
*
|
|
82
|
+
* @return {[function, function]} Two functions, the first one to apply the mod, the second one to undo the mod.
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
function useAdaptiveCardModEffect(modder, adaptiveCard) {
|
|
87
|
+
var adaptiveCardRef = (0, _useValueRef.default)(adaptiveCard);
|
|
88
|
+
var mod = (0, _react.useMemo)(function () {
|
|
89
|
+
return new Mod(modder);
|
|
90
|
+
}, [modder]);
|
|
91
|
+
var reapplyRef = (0, _react.useRef)();
|
|
92
|
+
var observerRef = (0, _useLazyRef.default)(function () {
|
|
93
|
+
return new MutationObserver(function () {
|
|
94
|
+
var _reapplyRef$current;
|
|
95
|
+
|
|
96
|
+
(_reapplyRef$current = reapplyRef.current) === null || _reapplyRef$current === void 0 ? void 0 : _reapplyRef$current.call(reapplyRef);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
(0, _react.useEffect)(function () {
|
|
100
|
+
return function () {
|
|
101
|
+
observerRef.current.disconnect();
|
|
102
|
+
};
|
|
103
|
+
}, [observerRef]);
|
|
104
|
+
var handleApply = (0, _react.useCallback)(function (cardElement) {
|
|
105
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
106
|
+
args[_key2 - 1] = arguments[_key2];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (adaptiveCardRef.current && cardElement) {
|
|
110
|
+
// Apply the mod immediately, then assign the function to reapply() so we can call later when mutation happens.
|
|
111
|
+
(reapplyRef.current = function () {
|
|
112
|
+
return mod.apply.apply(mod, [adaptiveCardRef.current, cardElement].concat(args));
|
|
113
|
+
})();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
var observer = observerRef.current;
|
|
117
|
+
observer.disconnect();
|
|
118
|
+
observer.observe(cardElement, {
|
|
119
|
+
childList: true,
|
|
120
|
+
subtree: true
|
|
121
|
+
});
|
|
122
|
+
}, [adaptiveCardRef, observerRef, mod]);
|
|
123
|
+
var handleUndo = (0, _react.useCallback)(function () {
|
|
124
|
+
mod.undo(); // If we have undo-ed the mod, calling reapply() through MutationObserver should be no-op.
|
|
125
|
+
|
|
126
|
+
reapplyRef.current = undefined;
|
|
127
|
+
}, [mod, reapplyRef]);
|
|
128
|
+
return (0, _react.useMemo)(function () {
|
|
129
|
+
return Object.freeze([handleApply, handleUndo]);
|
|
130
|
+
}, [handleApply, handleUndo]);
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkSGFja3MvcHJpdmF0ZS91c2VBZGFwdGl2ZUNhcmRNb2RFZmZlY3QudHMiXSwibmFtZXMiOlsiTW9kIiwibW9kIiwiYWRhcHRpdmVDYXJkIiwiY2FyZEVsZW1lbnQiLCJhcmdzIiwidW5kZWZpbmVkIiwidXNlQWRhcHRpdmVDYXJkTW9kRWZmZWN0IiwibW9kZGVyIiwiYWRhcHRpdmVDYXJkUmVmIiwicmVhcHBseVJlZiIsIm9ic2VydmVyUmVmIiwiTXV0YXRpb25PYnNlcnZlciIsImN1cnJlbnQiLCJkaXNjb25uZWN0IiwiaGFuZGxlQXBwbHkiLCJhcHBseSIsIm9ic2VydmVyIiwib2JzZXJ2ZSIsImNoaWxkTGlzdCIsInN1YnRyZWUiLCJoYW5kbGVVbmRvIiwidW5kbyIsIk9iamVjdCIsImZyZWV6ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7Ozs7Ozs7OztJQVVNQSxHO0FBQ0osZUFBWUMsR0FBWixFQUFxQztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNuQyxvREFBWUEsR0FBWjtBQUNELEcsQ0FFRDs7Ozs7V0FLQSxlQUFNQyxZQUFOLEVBQThDQyxXQUE5QyxFQUFvRztBQUFBOztBQUNsRzs7QUFEa0csd0NBQWJDLElBQWE7QUFBYkEsUUFBQUEsSUFBYTtBQUFBOztBQUVsRyx1REFBYUYsWUFBWSxJQUFJQyxXQUFoQixrRUFBK0IsSUFBL0IsNkNBQStCLElBQS9CLEVBQXlDRCxZQUF6QyxFQUF1REMsV0FBdkQsU0FBdUVDLElBQXZFLEVBQWI7QUFDRDs7O1dBRUQsZ0JBQU87QUFBQTs7QUFDTDtBQUNBLHVEQUFhQyxTQUFiO0FBQ0Q7Ozs7QUFHSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2UsU0FBU0Msd0JBQVQsQ0FDYkMsTUFEYSxFQUViTCxZQUZhLEVBRzhDO0FBQzNELE1BQU1NLGVBQWUsR0FBRywwQkFBWU4sWUFBWixDQUF4QjtBQUNBLE1BQU1ELEdBQUcsR0FBRyxvQkFBUTtBQUFBLFdBQU0sSUFBSUQsR0FBSixDQUFlTyxNQUFmLENBQU47QUFBQSxHQUFSLEVBQXNDLENBQUNBLE1BQUQsQ0FBdEMsQ0FBWjtBQUNBLE1BQU1FLFVBQVUsR0FBRyxvQkFBbkI7QUFFQSxNQUFNQyxXQUFXLEdBQUcseUJBQ2xCO0FBQUEsV0FDRSxJQUFJQyxnQkFBSixDQUFxQixZQUFNO0FBQUE7O0FBQ3pCLDZCQUFBRixVQUFVLENBQUNHLE9BQVgsaUZBQUFILFVBQVU7QUFDWCxLQUZELENBREY7QUFBQSxHQURrQixDQUFwQjtBQU9BLHdCQUNFO0FBQUEsV0FBTSxZQUFNO0FBQ1ZDLE1BQUFBLFdBQVcsQ0FBQ0UsT0FBWixDQUFvQkMsVUFBcEI7QUFDRCxLQUZEO0FBQUEsR0FERixFQUlFLENBQUNILFdBQUQsQ0FKRjtBQU9BLE1BQU1JLFdBQVcsR0FBRyx3QkFDbEIsVUFBQ1gsV0FBRCxFQUE4QztBQUFBLHVDQUFoQkMsSUFBZ0I7QUFBaEJBLE1BQUFBLElBQWdCO0FBQUE7O0FBQzVDLFFBQUlJLGVBQWUsQ0FBQ0ksT0FBaEIsSUFBMkJULFdBQS9CLEVBQTRDO0FBQzFDO0FBQ0EsT0FBQ00sVUFBVSxDQUFDRyxPQUFYLEdBQXFCO0FBQUEsZUFBTVgsR0FBRyxDQUFDYyxLQUFKLE9BQUFkLEdBQUcsR0FBT08sZUFBZSxDQUFDSSxPQUF2QixFQUFnQ1QsV0FBaEMsU0FBZ0RDLElBQWhELEVBQVQ7QUFBQSxPQUF0QjtBQUNEOztBQUVELFFBQWlCWSxRQUFqQixHQUE4Qk4sV0FBOUIsQ0FBUUUsT0FBUjtBQUVBSSxJQUFBQSxRQUFRLENBQUNILFVBQVQ7QUFDQUcsSUFBQUEsUUFBUSxDQUFDQyxPQUFULENBQWlCZCxXQUFqQixFQUE4QjtBQUFFZSxNQUFBQSxTQUFTLEVBQUUsSUFBYjtBQUFtQkMsTUFBQUEsT0FBTyxFQUFFO0FBQTVCLEtBQTlCO0FBQ0QsR0FYaUIsRUFZbEIsQ0FBQ1gsZUFBRCxFQUFrQkUsV0FBbEIsRUFBK0JULEdBQS9CLENBWmtCLENBQXBCO0FBZUEsTUFBTW1CLFVBQVUsR0FBRyx3QkFBWSxZQUFNO0FBQ25DbkIsSUFBQUEsR0FBRyxDQUFDb0IsSUFBSixHQURtQyxDQUduQzs7QUFDQVosSUFBQUEsVUFBVSxDQUFDRyxPQUFYLEdBQXFCUCxTQUFyQjtBQUNELEdBTGtCLEVBS2hCLENBQUNKLEdBQUQsRUFBTVEsVUFBTixDQUxnQixDQUFuQjtBQU9BLFNBQU8sb0JBQ0w7QUFBQSxXQUFNYSxNQUFNLENBQUNDLE1BQVAsQ0FBYyxDQUFDVCxXQUFELEVBQWNNLFVBQWQsQ0FBZCxDQUFOO0FBQUEsR0FESyxFQUVMLENBQUNOLFdBQUQsRUFBY00sVUFBZCxDQUZLLENBQVA7QUFJRCIsInNvdXJjZVJvb3QiOiJidW5kbGU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdXNlTGF6eVJlZiBmcm9tICcuL3VzZUxhenlSZWYnO1xuaW1wb3J0IHVzZVZhbHVlUmVmIGZyb20gJy4vdXNlVmFsdWVSZWYnO1xuXG5pbXBvcnQgdHlwZSB7IEFkYXB0aXZlQ2FyZCB9IGZyb20gJ2FkYXB0aXZlY2FyZHMnO1xuXG50eXBlIE1vZEZ1bmN0aW9uPFRBcmdzIGV4dGVuZHMgdW5rbm93bltdID0gW10+ID0gKFxuICBhZGFwdGl2ZUNhcmQ6IEFkYXB0aXZlQ2FyZCxcbiAgY2FyZEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAuLi5hcmdzOiBUQXJnc1xuKSA9PiAoKSA9PiB2b2lkO1xuXG5jbGFzcyBNb2Q8VEFyZ3MgZXh0ZW5kcyB1bmtub3duW10+IHtcbiAgY29uc3RydWN0b3IobW9kOiBNb2RGdW5jdGlvbjxUQXJncz4pIHtcbiAgICB0aGlzLiNtb2QgPSBtb2Q7XG4gIH1cblxuICAvLyBAdHMtaWdub3JlIFdlIGFyZSB1c2luZyBCYWJlbCB0byB0cmFuc3BpbGUgYW5kIGl0IHdpbGwgdHJhbnNwaWxlIHByaXZhdGUgbW9kaWZpZXIuXG4gICNtb2Q6IE1vZEZ1bmN0aW9uPFRBcmdzPjtcbiAgLy8gQHRzLWlnbm9yZSBXZSBhcmUgdXNpbmcgQmFiZWwgdG8gdHJhbnNwaWxlIGFuZCBpdCB3aWxsIHRyYW5zcGlsZSBwcml2YXRlIG1vZGlmaWVyLlxuICAjdW5kbzogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG4gIGFwcGx5KGFkYXB0aXZlQ2FyZDogQWRhcHRpdmVDYXJkIHwgdW5kZWZpbmVkLCBjYXJkRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQsIC4uLmFyZ3M6IFRBcmdzKSB7XG4gICAgdGhpcy4jdW5kbz8uKCk7XG4gICAgdGhpcy4jdW5kbyA9IGFkYXB0aXZlQ2FyZCAmJiBjYXJkRWxlbWVudCAmJiB0aGlzLiNtb2QoYWRhcHRpdmVDYXJkLCBjYXJkRWxlbWVudCwgLi4uYXJncyk7XG4gIH1cblxuICB1bmRvKCkge1xuICAgIHRoaXMuI3VuZG8/LigpO1xuICAgIHRoaXMuI3VuZG8gPSB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbW9kIGVmZmVjdCBmb3IgQWRhcHRpdmUgQ2FyZC5cbiAqXG4gKiBXaGVuIHRoaXMgaG9vayBpcyBleGVjdXRlZCwgaXQgd2lsbCByZXR1cm4gdHdvIGZ1bmN0aW9ucyBmb3IgYXBwbHlpbmcgYW5kIHVuZG8gdGhlIG1vZC5cbiAqIEl0IHdpbGwgYWxzbyBtb25pdG9yIHRoZSBET00gdHJlZSBhbmQgdW5kby10aGVuLXJlYXBwbHkgaWYgbXV0YXRpb24gb2NjdXJyZWQuXG4gKlxuICogVGhlIGZpcnN0IGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHJpZ2h0IGFmdGVyIERPTSBpcyBtb3VudGVkLiBUaGUgc2Vjb25kIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHJpZ2h0IGJlZm9yZSByZS1yZW5kZXIuXG4gKlxuICogQHJldHVybiB7W2Z1bmN0aW9uLCBmdW5jdGlvbl19IFR3byBmdW5jdGlvbnMsIHRoZSBmaXJzdCBvbmUgdG8gYXBwbHkgdGhlIG1vZCwgdGhlIHNlY29uZCBvbmUgdG8gdW5kbyB0aGUgbW9kLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VBZGFwdGl2ZUNhcmRNb2RFZmZlY3Q8VEFyZ3MgZXh0ZW5kcyB1bmtub3duW10+KFxuICBtb2RkZXI6IChhZGFwdGl2ZUNhcmQ6IEFkYXB0aXZlQ2FyZCwgY2FyZEVsZW1lbnQ6IEhUTUxFbGVtZW50LCAuLi5hcmdzOiBUQXJncykgPT4gKCkgPT4gdm9pZCxcbiAgYWRhcHRpdmVDYXJkOiBBZGFwdGl2ZUNhcmRcbik6IHJlYWRvbmx5IFsoY2FyZEVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB2b2lkLCAoKSA9PiB2b2lkXSB7XG4gIGNvbnN0IGFkYXB0aXZlQ2FyZFJlZiA9IHVzZVZhbHVlUmVmKGFkYXB0aXZlQ2FyZCk7XG4gIGNvbnN0IG1vZCA9IHVzZU1lbW8oKCkgPT4gbmV3IE1vZDxUQXJncz4obW9kZGVyKSwgW21vZGRlcl0pO1xuICBjb25zdCByZWFwcGx5UmVmID0gdXNlUmVmPCgpID0+IHZvaWQ+KCk7XG5cbiAgY29uc3Qgb2JzZXJ2ZXJSZWYgPSB1c2VMYXp5UmVmPE11dGF0aW9uT2JzZXJ2ZXI+KFxuICAgICgpID0+XG4gICAgICBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHJlYXBwbHlSZWYuY3VycmVudD8uKCk7XG4gICAgICB9KVxuICApO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiAoKSA9PiB7XG4gICAgICBvYnNlcnZlclJlZi5jdXJyZW50LmRpc2Nvbm5lY3QoKTtcbiAgICB9LFxuICAgIFtvYnNlcnZlclJlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVBcHBseSA9IHVzZUNhbGxiYWNrKFxuICAgIChjYXJkRWxlbWVudDogSFRNTEVsZW1lbnQsIC4uLmFyZ3M6IFRBcmdzKSA9PiB7XG4gICAgICBpZiAoYWRhcHRpdmVDYXJkUmVmLmN1cnJlbnQgJiYgY2FyZEVsZW1lbnQpIHtcbiAgICAgICAgLy8gQXBwbHkgdGhlIG1vZCBpbW1lZGlhdGVseSwgdGhlbiBhc3NpZ24gdGhlIGZ1bmN0aW9uIHRvIHJlYXBwbHkoKSBzbyB3ZSBjYW4gY2FsbCBsYXRlciB3aGVuIG11dGF0aW9uIGhhcHBlbnMuXG4gICAgICAgIChyZWFwcGx5UmVmLmN1cnJlbnQgPSAoKSA9PiBtb2QuYXBwbHkoYWRhcHRpdmVDYXJkUmVmLmN1cnJlbnQsIGNhcmRFbGVtZW50LCAuLi5hcmdzKSkoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBjdXJyZW50OiBvYnNlcnZlciB9ID0gb2JzZXJ2ZXJSZWY7XG5cbiAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIG9ic2VydmVyLm9ic2VydmUoY2FyZEVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIH0sXG4gICAgW2FkYXB0aXZlQ2FyZFJlZiwgb2JzZXJ2ZXJSZWYsIG1vZF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVVbmRvID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG1vZC51bmRvKCk7XG5cbiAgICAvLyBJZiB3ZSBoYXZlIHVuZG8tZWQgdGhlIG1vZCwgY2FsbGluZyByZWFwcGx5KCkgdGhyb3VnaCBNdXRhdGlvbk9ic2VydmVyIHNob3VsZCBiZSBuby1vcC5cbiAgICByZWFwcGx5UmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gIH0sIFttb2QsIHJlYXBwbHlSZWZdKTtcblxuICByZXR1cm4gdXNlTWVtbyhcbiAgICAoKSA9PiBPYmplY3QuZnJlZXplKFtoYW5kbGVBcHBseSwgaGFuZGxlVW5kb10pIGFzIHJlYWRvbmx5IFsoY2FyZEVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB2b2lkLCAoKSA9PiB2b2lkXSxcbiAgICBbaGFuZGxlQXBwbHksIGhhbmRsZVVuZG9dXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLazyRef.d.ts","sourceRoot":"","sources":["../../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/private/useLazyRef.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAI9C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAQ3E"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useLazyRef;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var UNINITIALIZED = Symbol();
|
|
11
|
+
|
|
12
|
+
function useLazyRef(refInit) {
|
|
13
|
+
var ref = (0, _react.useRef)(UNINITIALIZED);
|
|
14
|
+
|
|
15
|
+
if (ref.current === UNINITIALIZED) {
|
|
16
|
+
ref.current = refInit();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return ref;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkSGFja3MvcHJpdmF0ZS91c2VMYXp5UmVmLnRzIl0sIm5hbWVzIjpbIlVOSU5JVElBTElaRUQiLCJTeW1ib2wiLCJ1c2VMYXp5UmVmIiwicmVmSW5pdCIsInJlZiIsImN1cnJlbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFJQSxJQUFNQSxhQUFhLEdBQUdDLE1BQU0sRUFBNUI7O0FBRWUsU0FBU0MsVUFBVCxDQUF1QkMsT0FBdkIsRUFBOEQ7QUFDM0UsTUFBTUMsR0FBRyxHQUFHLG1CQUFpQ0osYUFBakMsQ0FBWjs7QUFFQSxNQUFJSSxHQUFHLENBQUNDLE9BQUosS0FBZ0JMLGFBQXBCLEVBQW1DO0FBQ2pDSSxJQUFBQSxHQUFHLENBQUNDLE9BQUosR0FBY0YsT0FBTyxFQUFyQjtBQUNEOztBQUVELFNBQU9DLEdBQVA7QUFDRCIsInNvdXJjZVJvb3QiOiJidW5kbGU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFVOSU5JVElBTElaRUQgPSBTeW1ib2woKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlTGF6eVJlZjxUPihyZWZJbml0OiAoKSA9PiBUKTogTXV0YWJsZVJlZk9iamVjdDxUPiB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxUIHwgdHlwZW9mIFVOSU5JVElBTElaRUQ+KFVOSU5JVElBTElaRUQpO1xuXG4gIGlmIChyZWYuY3VycmVudCA9PT0gVU5JTklUSUFMSVpFRCkge1xuICAgIHJlZi5jdXJyZW50ID0gcmVmSW5pdCgpO1xuICB9XG5cbiAgcmV0dXJuIHJlZiBhcyBNdXRhYmxlUmVmT2JqZWN0PFQ+O1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePrevious.d.ts","sourceRoot":"","sources":["../../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/private/usePrevious.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAQ9D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = usePrevious;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
// TODO: [P0] #4133 Don't copy.
|
|
11
|
+
function usePrevious(value) {
|
|
12
|
+
var ref = (0, _react.useRef)();
|
|
13
|
+
(0, _react.useEffect)(function () {
|
|
14
|
+
ref.current = value;
|
|
15
|
+
});
|
|
16
|
+
return ref.current;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkSGFja3MvcHJpdmF0ZS91c2VQcmV2aW91cy50cyJdLCJuYW1lcyI6WyJ1c2VQcmV2aW91cyIsInZhbHVlIiwicmVmIiwiY3VycmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQURBO0FBR2UsU0FBU0EsV0FBVCxDQUF3QkMsS0FBeEIsRUFBaUQ7QUFDOUQsTUFBTUMsR0FBRyxHQUFHLG9CQUFaO0FBRUEsd0JBQVUsWUFBTTtBQUNkQSxJQUFBQSxHQUFHLENBQUNDLE9BQUosR0FBY0YsS0FBZDtBQUNELEdBRkQ7QUFJQSxTQUFPQyxHQUFHLENBQUNDLE9BQVg7QUFDRCIsInNvdXJjZVJvb3QiOiJidW5kbGU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETzogW1AwXSAjNDEzMyBEb24ndCBjb3B5LlxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVByZXZpb3VzPFQ+KHZhbHVlOiBUKTogVCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxUPigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlZi5jdXJyZW50O1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useValueRef.d.ts","sourceRoot":"","sources":["../../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/private/useValueRef.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAM7D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useValueRef;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
function useValueRef(value) {
|
|
11
|
+
var ref = (0, _react.useRef)(value);
|
|
12
|
+
ref.current = value;
|
|
13
|
+
return ref;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkSGFja3MvcHJpdmF0ZS91c2VWYWx1ZVJlZi50cyJdLCJuYW1lcyI6WyJ1c2VWYWx1ZVJlZiIsInZhbHVlIiwicmVmIiwiY3VycmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUllLFNBQVNBLFdBQVQsQ0FBd0JDLEtBQXhCLEVBQWdEO0FBQzdELE1BQU1DLEdBQUcsR0FBRyxtQkFBVUQsS0FBVixDQUFaO0FBRUFDLEVBQUFBLEdBQUcsQ0FBQ0MsT0FBSixHQUFjRixLQUFkO0FBRUEsU0FBT0MsR0FBUDtBQUNEIiwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VWYWx1ZVJlZjxUPih2YWx1ZTogVCk6IFJlZk9iamVjdDxUPiB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxUPih2YWx1ZSk7XG5cbiAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcblxuICByZXR1cm4gcmVmO1xufVxuIl19
|
package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionSetShouldNotBeMenuBarModEffect.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AdaptiveCard } from 'adaptivecards';
|
|
2
|
+
/**
|
|
3
|
+
* Accessibility: ActionSet should not be menu bar.
|
|
4
|
+
*
|
|
5
|
+
* Menu bar is not accessible through screen reader keyboard shortcut keys:
|
|
6
|
+
*
|
|
7
|
+
* - <kbd>B</kbd> will jump to next button, which the end-user can quickly the chosen action;
|
|
8
|
+
* - <kbd>F</kbd> will jump to next form field, which is very similar but also jump to text fields;
|
|
9
|
+
* - There are no keyboard shortcut keys for menu.
|
|
10
|
+
*
|
|
11
|
+
* Marking action button as menu item in a menu bar hurts accessibility. End-user will not be able to jump to buttons quickly.
|
|
12
|
+
*
|
|
13
|
+
* Thus, ActionSet should not be menu bar.
|
|
14
|
+
*/
|
|
15
|
+
export default function useActionShouldBePushButtonModEffect(adaptiveCard: AdaptiveCard): readonly [(cardElement: HTMLElement) => void, () => void];
|
|
16
|
+
//# sourceMappingURL=useActionSetShouldNotBeMenuBarModEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActionSetShouldNotBeMenuBarModEffect.d.ts","sourceRoot":"","sources":["../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/useActionSetShouldNotBeMenuBarModEffect.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,oCAAoC,CAAC,YAAY,EAAE,YAAY,6DAiBtF"}
|
package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionSetShouldNotBeMenuBarModEffect.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = useActionShouldBePushButtonModEffect;
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _bunchUndos = _interopRequireDefault(require("../../DOMManipulationWithUndo/bunchUndos"));
|
|
13
|
+
|
|
14
|
+
var _setOrRemoveAttributeIfFalseWithUndo = _interopRequireDefault(require("../../DOMManipulationWithUndo/setOrRemoveAttributeIfFalseWithUndo"));
|
|
15
|
+
|
|
16
|
+
var _useAdaptiveCardModEffect = _interopRequireDefault(require("./private/useAdaptiveCardModEffect"));
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Accessibility: ActionSet should not be menu bar.
|
|
20
|
+
*
|
|
21
|
+
* Menu bar is not accessible through screen reader keyboard shortcut keys:
|
|
22
|
+
*
|
|
23
|
+
* - <kbd>B</kbd> will jump to next button, which the end-user can quickly the chosen action;
|
|
24
|
+
* - <kbd>F</kbd> will jump to next form field, which is very similar but also jump to text fields;
|
|
25
|
+
* - There are no keyboard shortcut keys for menu.
|
|
26
|
+
*
|
|
27
|
+
* Marking action button as menu item in a menu bar hurts accessibility. End-user will not be able to jump to buttons quickly.
|
|
28
|
+
*
|
|
29
|
+
* Thus, ActionSet should not be menu bar.
|
|
30
|
+
*/
|
|
31
|
+
function useActionShouldBePushButtonModEffect(adaptiveCard) {
|
|
32
|
+
var modder = (0, _react.useMemo)(function () {
|
|
33
|
+
return function (_, cardElement) {
|
|
34
|
+
var actionSetElements = Array.from(cardElement.querySelectorAll('.ac-actionSet[role="menubar"]'));
|
|
35
|
+
var undoStack = actionSetElements.map(function (actionSetElement) {
|
|
36
|
+
return (0, _setOrRemoveAttributeIfFalseWithUndo.default)(actionSetElement, 'role', false);
|
|
37
|
+
});
|
|
38
|
+
return function () {
|
|
39
|
+
return (0, _bunchUndos.default)(undoStack)();
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
}, []);
|
|
43
|
+
return (0, _useAdaptiveCardModEffect.default)(modder, adaptiveCard);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkSGFja3MvdXNlQWN0aW9uU2V0U2hvdWxkTm90QmVNZW51QmFyTW9kRWZmZWN0LnRzIl0sIm5hbWVzIjpbInVzZUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZEVmZmVjdCIsImFkYXB0aXZlQ2FyZCIsIm1vZGRlciIsIl8iLCJjYXJkRWxlbWVudCIsImFjdGlvblNldEVsZW1lbnRzIiwiQXJyYXkiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsInVuZG9TdGFjayIsIm1hcCIsImFjdGlvblNldEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsU0FBU0Esb0NBQVQsQ0FBOENDLFlBQTlDLEVBQTBFO0FBQ3ZGLE1BQU1DLE1BQU0sR0FBRyxvQkFDYjtBQUFBLFdBQU0sVUFBQ0MsQ0FBRCxFQUFrQkMsV0FBbEIsRUFBK0M7QUFDbkQsVUFBTUMsaUJBQWlCLEdBQUdDLEtBQUssQ0FBQ0MsSUFBTixDQUN4QkgsV0FBVyxDQUFDSSxnQkFBWixDQUE2QiwrQkFBN0IsQ0FEd0IsQ0FBMUI7QUFJQSxVQUFNQyxTQUFTLEdBQUdKLGlCQUFpQixDQUFDSyxHQUFsQixDQUFzQixVQUFBQyxnQkFBZ0I7QUFBQSxlQUN0RCxrREFBb0NBLGdCQUFwQyxFQUFzRCxNQUF0RCxFQUE4RCxLQUE5RCxDQURzRDtBQUFBLE9BQXRDLENBQWxCO0FBSUEsYUFBTztBQUFBLGVBQU0seUJBQVdGLFNBQVgsR0FBTjtBQUFBLE9BQVA7QUFDRCxLQVZEO0FBQUEsR0FEYSxFQVliLEVBWmEsQ0FBZjtBQWVBLFNBQU8sdUNBQXlCUCxNQUF6QixFQUFpQ0QsWUFBakMsQ0FBUDtBQUNEIiwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgYnVuY2hVbmRvcyBmcm9tICcuLi8uLi9ET01NYW5pcHVsYXRpb25XaXRoVW5kby9idW5jaFVuZG9zJztcbmltcG9ydCBzZXRPclJlbW92ZUF0dHJpYnV0ZUlmRmFsc2VXaXRoVW5kbyBmcm9tICcuLi8uLi9ET01NYW5pcHVsYXRpb25XaXRoVW5kby9zZXRPclJlbW92ZUF0dHJpYnV0ZUlmRmFsc2VXaXRoVW5kbyc7XG5pbXBvcnQgdXNlQWRhcHRpdmVDYXJkTW9kRWZmZWN0IGZyb20gJy4vcHJpdmF0ZS91c2VBZGFwdGl2ZUNhcmRNb2RFZmZlY3QnO1xuXG5pbXBvcnQgdHlwZSB7IEFkYXB0aXZlQ2FyZCB9IGZyb20gJ2FkYXB0aXZlY2FyZHMnO1xuXG4vKipcbiAqIEFjY2Vzc2liaWxpdHk6IEFjdGlvblNldCBzaG91bGQgbm90IGJlIG1lbnUgYmFyLlxuICpcbiAqIE1lbnUgYmFyIGlzIG5vdCBhY2Nlc3NpYmxlIHRocm91Z2ggc2NyZWVuIHJlYWRlciBrZXlib2FyZCBzaG9ydGN1dCBrZXlzOlxuICpcbiAqIC0gPGtiZD5CPC9rYmQ+IHdpbGwganVtcCB0byBuZXh0IGJ1dHRvbiwgd2hpY2ggdGhlIGVuZC11c2VyIGNhbiBxdWlja2x5IHRoZSBjaG9zZW4gYWN0aW9uO1xuICogLSA8a2JkPkY8L2tiZD4gd2lsbCBqdW1wIHRvIG5leHQgZm9ybSBmaWVsZCwgd2hpY2ggaXMgdmVyeSBzaW1pbGFyIGJ1dCBhbHNvIGp1bXAgdG8gdGV4dCBmaWVsZHM7XG4gKiAtIFRoZXJlIGFyZSBubyBrZXlib2FyZCBzaG9ydGN1dCBrZXlzIGZvciBtZW51LlxuICpcbiAqIE1hcmtpbmcgYWN0aW9uIGJ1dHRvbiBhcyBtZW51IGl0ZW0gaW4gYSBtZW51IGJhciBodXJ0cyBhY2Nlc3NpYmlsaXR5LiBFbmQtdXNlciB3aWxsIG5vdCBiZSBhYmxlIHRvIGp1bXAgdG8gYnV0dG9ucyBxdWlja2x5LlxuICpcbiAqIFRodXMsIEFjdGlvblNldCBzaG91bGQgbm90IGJlIG1lbnUgYmFyLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VBY3Rpb25TaG91bGRCZVB1c2hCdXR0b25Nb2RFZmZlY3QoYWRhcHRpdmVDYXJkOiBBZGFwdGl2ZUNhcmQpIHtcbiAgY29uc3QgbW9kZGVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoXzogQWRhcHRpdmVDYXJkLCBjYXJkRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGFjdGlvblNldEVsZW1lbnRzID0gQXJyYXkuZnJvbShcbiAgICAgICAgY2FyZEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFjLWFjdGlvblNldFtyb2xlPVwibWVudWJhclwiXScpIGFzIE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+XG4gICAgICApO1xuXG4gICAgICBjb25zdCB1bmRvU3RhY2sgPSBhY3Rpb25TZXRFbGVtZW50cy5tYXAoYWN0aW9uU2V0RWxlbWVudCA9PlxuICAgICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZUlmRmFsc2VXaXRoVW5kbyhhY3Rpb25TZXRFbGVtZW50LCAncm9sZScsIGZhbHNlKVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuICgpID0+IGJ1bmNoVW5kb3ModW5kb1N0YWNrKSgpO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICByZXR1cm4gdXNlQWRhcHRpdmVDYXJkTW9kRWZmZWN0KG1vZGRlciwgYWRhcHRpdmVDYXJkKTtcbn1cbiJdfQ==
|
package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionShouldBePushButtonModEffect.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AdaptiveCard } from 'adaptivecards';
|
|
2
|
+
/**
|
|
3
|
+
* Accessibility: Action in ActionSet/CardElement should be push button.
|
|
4
|
+
*
|
|
5
|
+
* Pressing the action button is a decision-making process. The decision made by the end-user need to be read by the screen reader.
|
|
6
|
+
* Thus, we need to indicate what decision the end-user made.
|
|
7
|
+
*
|
|
8
|
+
* Since action buttons are button, the intuitive way to indicate selection of a button is marking it as pressed.
|
|
9
|
+
*
|
|
10
|
+
* One exception is the `Action.ShowUrl` action. This button represents expand/collapse header of an accordion.
|
|
11
|
+
* Thus, their state is indicated by `aria-expanded`, instead of `aria-pressed`.
|
|
12
|
+
* However, we still need to remove other unnecessary ARIA fields.
|
|
13
|
+
*/
|
|
14
|
+
export default function useActionShouldBePushButtonModEffect(adaptiveCard: AdaptiveCard): readonly [(cardElement: HTMLElement, actionPerformedClassName?: string) => void, () => void];
|
|
15
|
+
//# sourceMappingURL=useActionShouldBePushButtonModEffect.d.ts.map
|
package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionShouldBePushButtonModEffect.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActionShouldBePushButtonModEffect.d.ts","sourceRoot":"","sources":["../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/useActionShouldBePushButtonModEffect.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,eAAe,CAAC;AAG9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,oCAAoC,CAC1D,YAAY,EAAE,YAAY,GACzB,SAAS,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,wBAAwB,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC,CA4E9F"}
|
package/lib/adaptiveCards/Attachment/AdaptiveCardHacks/useActionShouldBePushButtonModEffect.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = useActionShouldBePushButtonModEffect;
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _addEventListenerWithUndo = _interopRequireDefault(require("../../DOMManipulationWithUndo/addEventListenerWithUndo"));
|
|
13
|
+
|
|
14
|
+
var _bunchUndos = _interopRequireDefault(require("../../DOMManipulationWithUndo/bunchUndos"));
|
|
15
|
+
|
|
16
|
+
var _closest = _interopRequireDefault(require("./private/closest"));
|
|
17
|
+
|
|
18
|
+
var _durableAddClassWithUndo = _interopRequireDefault(require("../../DOMManipulationWithUndo/durableAddClassWithUndo"));
|
|
19
|
+
|
|
20
|
+
var _findDOMNodeOwner = _interopRequireDefault(require("./private/findDOMNodeOwner"));
|
|
21
|
+
|
|
22
|
+
var _setOrRemoveAttributeIfFalseWithUndo = _interopRequireDefault(require("../../DOMManipulationWithUndo/setOrRemoveAttributeIfFalseWithUndo"));
|
|
23
|
+
|
|
24
|
+
var _useAdaptiveCardModEffect = _interopRequireDefault(require("./private/useAdaptiveCardModEffect"));
|
|
25
|
+
|
|
26
|
+
var _usePrevious = _interopRequireDefault(require("./private/usePrevious"));
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Accessibility: Action in ActionSet/CardElement should be push button.
|
|
30
|
+
*
|
|
31
|
+
* Pressing the action button is a decision-making process. The decision made by the end-user need to be read by the screen reader.
|
|
32
|
+
* Thus, we need to indicate what decision the end-user made.
|
|
33
|
+
*
|
|
34
|
+
* Since action buttons are button, the intuitive way to indicate selection of a button is marking it as pressed.
|
|
35
|
+
*
|
|
36
|
+
* One exception is the `Action.ShowUrl` action. This button represents expand/collapse header of an accordion.
|
|
37
|
+
* Thus, their state is indicated by `aria-expanded`, instead of `aria-pressed`.
|
|
38
|
+
* However, we still need to remove other unnecessary ARIA fields.
|
|
39
|
+
*/
|
|
40
|
+
function useActionShouldBePushButtonModEffect(adaptiveCard) {
|
|
41
|
+
var prevAdaptiveCard = (0, _usePrevious.default)(adaptiveCard);
|
|
42
|
+
var pushedCardObjectsRef = (0, _react.useRef)(new Set());
|
|
43
|
+
prevAdaptiveCard === adaptiveCard || pushedCardObjectsRef.current.clear();
|
|
44
|
+
var modder = (0, _react.useMemo)(function () {
|
|
45
|
+
return function (adaptiveCard, cardElement, actionPerformedClassName) {
|
|
46
|
+
var undoStack = [];
|
|
47
|
+
Array.from(cardElement.querySelectorAll('button.ac-pushButton')).forEach(function (actionElement) {
|
|
48
|
+
var cardObject = (0, _findDOMNodeOwner.default)(adaptiveCard, actionElement);
|
|
49
|
+
|
|
50
|
+
if (!actionElement.hasAttribute('aria-expanded')) {
|
|
51
|
+
if (pushedCardObjectsRef.current.has(cardObject)) {
|
|
52
|
+
actionPerformedClassName && undoStack.push((0, _durableAddClassWithUndo.default)(actionElement, actionPerformedClassName));
|
|
53
|
+
undoStack.push((0, _setOrRemoveAttributeIfFalseWithUndo.default)(actionElement, 'aria-pressed', 'true'));
|
|
54
|
+
} else {
|
|
55
|
+
undoStack.push((0, _setOrRemoveAttributeIfFalseWithUndo.default)(actionElement, 'aria-pressed', 'false'));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
undoStack.push((0, _setOrRemoveAttributeIfFalseWithUndo.default)(actionElement, 'aria-posinset', false), (0, _setOrRemoveAttributeIfFalseWithUndo.default)(actionElement, 'aria-setsize', false), (0, _setOrRemoveAttributeIfFalseWithUndo.default)(actionElement, 'role', false));
|
|
60
|
+
});
|
|
61
|
+
undoStack.push((0, _addEventListenerWithUndo.default)(cardElement, 'click', function (_ref) {
|
|
62
|
+
var target = _ref.target;
|
|
63
|
+
// Depends on click location, `target` could be the <div> inside the <button class="ac-pushButton">.
|
|
64
|
+
// Thus, we need to check if we the `target` is inside `button.ac-pushButton` or not.
|
|
65
|
+
var actionElement = (0, _closest.default)(target, 'button.ac-pushButton');
|
|
66
|
+
|
|
67
|
+
if (!actionElement) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var cardObject = (0, _findDOMNodeOwner.default)(adaptiveCard, actionElement);
|
|
72
|
+
|
|
73
|
+
if ( // Not an AC action.
|
|
74
|
+
!cardObject || // Ignores buttons which are supposed to be disabled.
|
|
75
|
+
actionElement.getAttribute('aria-disabled') === 'true' || // Mods all AC action buttons except those for `Action.ShowCard`, which has `aria-expanded` attribute.
|
|
76
|
+
actionElement.hasAttribute('aria-expanded')) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
actionPerformedClassName && undoStack.push((0, _durableAddClassWithUndo.default)(actionElement, actionPerformedClassName));
|
|
81
|
+
undoStack.push((0, _setOrRemoveAttributeIfFalseWithUndo.default)(actionElement, 'aria-pressed', 'true'));
|
|
82
|
+
cardObject && pushedCardObjectsRef.current.add(cardObject);
|
|
83
|
+
}, {
|
|
84
|
+
capture: true
|
|
85
|
+
}));
|
|
86
|
+
return function () {
|
|
87
|
+
return (0, _bunchUndos.default)(undoStack)();
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
}, [pushedCardObjectsRef]);
|
|
91
|
+
return (0, _useAdaptiveCardModEffect.default)(modder, adaptiveCard);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkSGFja3MvdXNlQWN0aW9uU2hvdWxkQmVQdXNoQnV0dG9uTW9kRWZmZWN0LnRzIl0sIm5hbWVzIjpbInVzZUFjdGlvblNob3VsZEJlUHVzaEJ1dHRvbk1vZEVmZmVjdCIsImFkYXB0aXZlQ2FyZCIsInByZXZBZGFwdGl2ZUNhcmQiLCJwdXNoZWRDYXJkT2JqZWN0c1JlZiIsIlNldCIsImN1cnJlbnQiLCJjbGVhciIsIm1vZGRlciIsImNhcmRFbGVtZW50IiwiYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lIiwidW5kb1N0YWNrIiwiQXJyYXkiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJhY3Rpb25FbGVtZW50IiwiY2FyZE9iamVjdCIsImhhc0F0dHJpYnV0ZSIsImhhcyIsInB1c2giLCJ0YXJnZXQiLCJnZXRBdHRyaWJ1dGUiLCJhZGQiLCJjYXB0dXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZSxTQUFTQSxvQ0FBVCxDQUNiQyxZQURhLEVBRWlGO0FBQzlGLE1BQU1DLGdCQUFnQixHQUFHLDBCQUFZRCxZQUFaLENBQXpCO0FBQ0EsTUFBTUUsb0JBQW9CLEdBQUcsbUJBQXdCLElBQUlDLEdBQUosRUFBeEIsQ0FBN0I7QUFFQUYsRUFBQUEsZ0JBQWdCLEtBQUtELFlBQXJCLElBQXFDRSxvQkFBb0IsQ0FBQ0UsT0FBckIsQ0FBNkJDLEtBQTdCLEVBQXJDO0FBRUEsTUFBTUMsTUFBTSxHQUFHLG9CQUNiO0FBQUEsV0FBTSxVQUFDTixZQUFELEVBQTZCTyxXQUE3QixFQUF1REMsd0JBQXZELEVBQTZGO0FBQ2pHLFVBQU1DLFNBQXlCLEdBQUcsRUFBbEM7QUFFQUMsTUFBQUEsS0FBSyxDQUFDQyxJQUFOLENBQVdKLFdBQVcsQ0FBQ0ssZ0JBQVosQ0FBNkIsc0JBQTdCLENBQVgsRUFBa0dDLE9BQWxHLENBQ0UsVUFBQUMsYUFBYSxFQUFJO0FBQ2YsWUFBTUMsVUFBVSxHQUFHLCtCQUFpQmYsWUFBakIsRUFBK0JjLGFBQS9CLENBQW5COztBQUVBLFlBQUksQ0FBQ0EsYUFBYSxDQUFDRSxZQUFkLENBQTJCLGVBQTNCLENBQUwsRUFBa0Q7QUFDaEQsY0FBSWQsb0JBQW9CLENBQUNFLE9BQXJCLENBQTZCYSxHQUE3QixDQUFpQ0YsVUFBakMsQ0FBSixFQUFrRDtBQUNoRFAsWUFBQUEsd0JBQXdCLElBQ3RCQyxTQUFTLENBQUNTLElBQVYsQ0FBZSxzQ0FBd0JKLGFBQXhCLEVBQXVDTix3QkFBdkMsQ0FBZixDQURGO0FBR0FDLFlBQUFBLFNBQVMsQ0FBQ1MsSUFBVixDQUFlLGtEQUFvQ0osYUFBcEMsRUFBbUQsY0FBbkQsRUFBbUUsTUFBbkUsQ0FBZjtBQUNELFdBTEQsTUFLTztBQUNMTCxZQUFBQSxTQUFTLENBQUNTLElBQVYsQ0FBZSxrREFBb0NKLGFBQXBDLEVBQW1ELGNBQW5ELEVBQW1FLE9BQW5FLENBQWY7QUFDRDtBQUNGOztBQUVETCxRQUFBQSxTQUFTLENBQUNTLElBQVYsQ0FDRSxrREFBb0NKLGFBQXBDLEVBQW1ELGVBQW5ELEVBQW9FLEtBQXBFLENBREYsRUFFRSxrREFBb0NBLGFBQXBDLEVBQW1ELGNBQW5ELEVBQW1FLEtBQW5FLENBRkYsRUFHRSxrREFBb0NBLGFBQXBDLEVBQW1ELE1BQW5ELEVBQTJELEtBQTNELENBSEY7QUFLRCxPQXBCSDtBQXVCQUwsTUFBQUEsU0FBUyxDQUFDUyxJQUFWLENBQ0UsdUNBQ0VYLFdBREYsRUFFRSxPQUZGLEVBR0UsZ0JBQWdCO0FBQUEsWUFBYlksTUFBYSxRQUFiQSxNQUFhO0FBQ2Q7QUFDQTtBQUNBLFlBQU1MLGFBQWEsR0FBRyxzQkFBUUssTUFBUixFQUFxQyxzQkFBckMsQ0FBdEI7O0FBRUEsWUFBSSxDQUFDTCxhQUFMLEVBQW9CO0FBQ2xCO0FBQ0Q7O0FBRUQsWUFBTUMsVUFBVSxHQUFHLCtCQUFpQmYsWUFBakIsRUFBK0JjLGFBQS9CLENBQW5COztBQUVBLGFBQ0U7QUFDQSxTQUFDQyxVQUFELElBQ0E7QUFDQUQsUUFBQUEsYUFBYSxDQUFDTSxZQUFkLENBQTJCLGVBQTNCLE1BQWdELE1BRmhELElBR0E7QUFDQU4sUUFBQUEsYUFBYSxDQUFDRSxZQUFkLENBQTJCLGVBQTNCLENBTkYsRUFPRTtBQUNBO0FBQ0Q7O0FBRURSLFFBQUFBLHdCQUF3QixJQUN0QkMsU0FBUyxDQUFDUyxJQUFWLENBQWUsc0NBQXdCSixhQUF4QixFQUF1Q04sd0JBQXZDLENBQWYsQ0FERjtBQUdBQyxRQUFBQSxTQUFTLENBQUNTLElBQVYsQ0FBZSxrREFBb0NKLGFBQXBDLEVBQW1ELGNBQW5ELEVBQW1FLE1BQW5FLENBQWY7QUFFQUMsUUFBQUEsVUFBVSxJQUFJYixvQkFBb0IsQ0FBQ0UsT0FBckIsQ0FBNkJpQixHQUE3QixDQUFpQ04sVUFBakMsQ0FBZDtBQUNELE9BL0JILEVBZ0NFO0FBQUVPLFFBQUFBLE9BQU8sRUFBRTtBQUFYLE9BaENGLENBREY7QUFxQ0EsYUFBTztBQUFBLGVBQU0seUJBQVdiLFNBQVgsR0FBTjtBQUFBLE9BQVA7QUFDRCxLQWhFRDtBQUFBLEdBRGEsRUFrRWIsQ0FBQ1Asb0JBQUQsQ0FsRWEsQ0FBZjtBQXFFQSxTQUFPLHVDQUF5QkksTUFBekIsRUFBaUNOLFlBQWpDLENBQVA7QUFDRCIsInNvdXJjZVJvb3QiOiJidW5kbGU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgYWRkRXZlbnRMaXN0ZW5lcldpdGhVbmRvIGZyb20gJy4uLy4uL0RPTU1hbmlwdWxhdGlvbldpdGhVbmRvL2FkZEV2ZW50TGlzdGVuZXJXaXRoVW5kbyc7XG5pbXBvcnQgYnVuY2hVbmRvcyBmcm9tICcuLi8uLi9ET01NYW5pcHVsYXRpb25XaXRoVW5kby9idW5jaFVuZG9zJztcbmltcG9ydCBjbG9zZXN0IGZyb20gJy4vcHJpdmF0ZS9jbG9zZXN0JztcbmltcG9ydCBkdXJhYmxlQWRkQ2xhc3NXaXRoVW5kbyBmcm9tICcuLi8uLi9ET01NYW5pcHVsYXRpb25XaXRoVW5kby9kdXJhYmxlQWRkQ2xhc3NXaXRoVW5kbyc7XG5pbXBvcnQgZmluZERPTU5vZGVPd25lciBmcm9tICcuL3ByaXZhdGUvZmluZERPTU5vZGVPd25lcic7XG5pbXBvcnQgc2V0T3JSZW1vdmVBdHRyaWJ1dGVJZkZhbHNlV2l0aFVuZG8gZnJvbSAnLi4vLi4vRE9NTWFuaXB1bGF0aW9uV2l0aFVuZG8vc2V0T3JSZW1vdmVBdHRyaWJ1dGVJZkZhbHNlV2l0aFVuZG8nO1xuaW1wb3J0IHVzZUFkYXB0aXZlQ2FyZE1vZEVmZmVjdCBmcm9tICcuL3ByaXZhdGUvdXNlQWRhcHRpdmVDYXJkTW9kRWZmZWN0JztcbmltcG9ydCB1c2VQcmV2aW91cyBmcm9tICcuL3ByaXZhdGUvdXNlUHJldmlvdXMnO1xuXG5pbXBvcnQgdHlwZSB7IEFkYXB0aXZlQ2FyZCwgQ2FyZE9iamVjdCB9IGZyb20gJ2FkYXB0aXZlY2FyZHMnO1xuaW1wb3J0IHR5cGUgeyBVbmRvRnVuY3Rpb24gfSBmcm9tICcuLi8uLi9ET01NYW5pcHVsYXRpb25XaXRoVW5kby90eXBlcy9VbmRvRnVuY3Rpb24nO1xuXG4vKipcbiAqIEFjY2Vzc2liaWxpdHk6IEFjdGlvbiBpbiBBY3Rpb25TZXQvQ2FyZEVsZW1lbnQgc2hvdWxkIGJlIHB1c2ggYnV0dG9uLlxuICpcbiAqIFByZXNzaW5nIHRoZSBhY3Rpb24gYnV0dG9uIGlzIGEgZGVjaXNpb24tbWFraW5nIHByb2Nlc3MuIFRoZSBkZWNpc2lvbiBtYWRlIGJ5IHRoZSBlbmQtdXNlciBuZWVkIHRvIGJlIHJlYWQgYnkgdGhlIHNjcmVlbiByZWFkZXIuXG4gKiBUaHVzLCB3ZSBuZWVkIHRvIGluZGljYXRlIHdoYXQgZGVjaXNpb24gdGhlIGVuZC11c2VyIG1hZGUuXG4gKlxuICogU2luY2UgYWN0aW9uIGJ1dHRvbnMgYXJlIGJ1dHRvbiwgdGhlIGludHVpdGl2ZSB3YXkgdG8gaW5kaWNhdGUgc2VsZWN0aW9uIG9mIGEgYnV0dG9uIGlzIG1hcmtpbmcgaXQgYXMgcHJlc3NlZC5cbiAqXG4gKiBPbmUgZXhjZXB0aW9uIGlzIHRoZSBgQWN0aW9uLlNob3dVcmxgIGFjdGlvbi4gVGhpcyBidXR0b24gcmVwcmVzZW50cyBleHBhbmQvY29sbGFwc2UgaGVhZGVyIG9mIGFuIGFjY29yZGlvbi5cbiAqIFRodXMsIHRoZWlyIHN0YXRlIGlzIGluZGljYXRlZCBieSBgYXJpYS1leHBhbmRlZGAsIGluc3RlYWQgb2YgYGFyaWEtcHJlc3NlZGAuXG4gKiBIb3dldmVyLCB3ZSBzdGlsbCBuZWVkIHRvIHJlbW92ZSBvdGhlciB1bm5lY2Vzc2FyeSBBUklBIGZpZWxkcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlQWN0aW9uU2hvdWxkQmVQdXNoQnV0dG9uTW9kRWZmZWN0KFxuICBhZGFwdGl2ZUNhcmQ6IEFkYXB0aXZlQ2FyZFxuKTogcmVhZG9ubHkgWyhjYXJkRWxlbWVudDogSFRNTEVsZW1lbnQsIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZT86IHN0cmluZykgPT4gdm9pZCwgKCkgPT4gdm9pZF0ge1xuICBjb25zdCBwcmV2QWRhcHRpdmVDYXJkID0gdXNlUHJldmlvdXMoYWRhcHRpdmVDYXJkKTtcbiAgY29uc3QgcHVzaGVkQ2FyZE9iamVjdHNSZWYgPSB1c2VSZWY8U2V0PENhcmRPYmplY3Q+PihuZXcgU2V0KCkpO1xuXG4gIHByZXZBZGFwdGl2ZUNhcmQgPT09IGFkYXB0aXZlQ2FyZCB8fCBwdXNoZWRDYXJkT2JqZWN0c1JlZi5jdXJyZW50LmNsZWFyKCk7XG5cbiAgY29uc3QgbW9kZGVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoYWRhcHRpdmVDYXJkOiBBZGFwdGl2ZUNhcmQsIGNhcmRFbGVtZW50OiBIVE1MRWxlbWVudCwgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lPzogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB1bmRvU3RhY2s6IFVuZG9GdW5jdGlvbltdID0gW107XG5cbiAgICAgIEFycmF5LmZyb20oY2FyZEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLmFjLXB1c2hCdXR0b24nKSBhcyBOb2RlTGlzdE9mPEhUTUxCdXR0b25FbGVtZW50PikuZm9yRWFjaChcbiAgICAgICAgYWN0aW9uRWxlbWVudCA9PiB7XG4gICAgICAgICAgY29uc3QgY2FyZE9iamVjdCA9IGZpbmRET01Ob2RlT3duZXIoYWRhcHRpdmVDYXJkLCBhY3Rpb25FbGVtZW50KTtcblxuICAgICAgICAgIGlmICghYWN0aW9uRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKSkge1xuICAgICAgICAgICAgaWYgKHB1c2hlZENhcmRPYmplY3RzUmVmLmN1cnJlbnQuaGFzKGNhcmRPYmplY3QpKSB7XG4gICAgICAgICAgICAgIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZSAmJlxuICAgICAgICAgICAgICAgIHVuZG9TdGFjay5wdXNoKGR1cmFibGVBZGRDbGFzc1dpdGhVbmRvKGFjdGlvbkVsZW1lbnQsIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZSkpO1xuXG4gICAgICAgICAgICAgIHVuZG9TdGFjay5wdXNoKHNldE9yUmVtb3ZlQXR0cmlidXRlSWZGYWxzZVdpdGhVbmRvKGFjdGlvbkVsZW1lbnQsICdhcmlhLXByZXNzZWQnLCAndHJ1ZScpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHVuZG9TdGFjay5wdXNoKHNldE9yUmVtb3ZlQXR0cmlidXRlSWZGYWxzZVdpdGhVbmRvKGFjdGlvbkVsZW1lbnQsICdhcmlhLXByZXNzZWQnLCAnZmFsc2UnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdW5kb1N0YWNrLnB1c2goXG4gICAgICAgICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZUlmRmFsc2VXaXRoVW5kbyhhY3Rpb25FbGVtZW50LCAnYXJpYS1wb3NpbnNldCcsIGZhbHNlKSxcbiAgICAgICAgICAgIHNldE9yUmVtb3ZlQXR0cmlidXRlSWZGYWxzZVdpdGhVbmRvKGFjdGlvbkVsZW1lbnQsICdhcmlhLXNldHNpemUnLCBmYWxzZSksXG4gICAgICAgICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZUlmRmFsc2VXaXRoVW5kbyhhY3Rpb25FbGVtZW50LCAncm9sZScsIGZhbHNlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIHVuZG9TdGFjay5wdXNoKFxuICAgICAgICBhZGRFdmVudExpc3RlbmVyV2l0aFVuZG8oXG4gICAgICAgICAgY2FyZEVsZW1lbnQsXG4gICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgICAoeyB0YXJnZXQgfSkgPT4ge1xuICAgICAgICAgICAgLy8gRGVwZW5kcyBvbiBjbGljayBsb2NhdGlvbiwgYHRhcmdldGAgY291bGQgYmUgdGhlIDxkaXY+IGluc2lkZSB0aGUgPGJ1dHRvbiBjbGFzcz1cImFjLXB1c2hCdXR0b25cIj4uXG4gICAgICAgICAgICAvLyBUaHVzLCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHdlIHRoZSBgdGFyZ2V0YCBpcyBpbnNpZGUgYGJ1dHRvbi5hYy1wdXNoQnV0dG9uYCBvciBub3QuXG4gICAgICAgICAgICBjb25zdCBhY3Rpb25FbGVtZW50ID0gY2xvc2VzdCh0YXJnZXQgYXMgSFRNTEJ1dHRvbkVsZW1lbnQsICdidXR0b24uYWMtcHVzaEJ1dHRvbicpO1xuXG4gICAgICAgICAgICBpZiAoIWFjdGlvbkVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjYXJkT2JqZWN0ID0gZmluZERPTU5vZGVPd25lcihhZGFwdGl2ZUNhcmQsIGFjdGlvbkVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIC8vIE5vdCBhbiBBQyBhY3Rpb24uXG4gICAgICAgICAgICAgICFjYXJkT2JqZWN0IHx8XG4gICAgICAgICAgICAgIC8vIElnbm9yZXMgYnV0dG9ucyB3aGljaCBhcmUgc3VwcG9zZWQgdG8gYmUgZGlzYWJsZWQuXG4gICAgICAgICAgICAgIGFjdGlvbkVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJykgPT09ICd0cnVlJyB8fFxuICAgICAgICAgICAgICAvLyBNb2RzIGFsbCBBQyBhY3Rpb24gYnV0dG9ucyBleGNlcHQgdGhvc2UgZm9yIGBBY3Rpb24uU2hvd0NhcmRgLCB3aGljaCBoYXMgYGFyaWEtZXhwYW5kZWRgIGF0dHJpYnV0ZS5cbiAgICAgICAgICAgICAgYWN0aW9uRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lICYmXG4gICAgICAgICAgICAgIHVuZG9TdGFjay5wdXNoKGR1cmFibGVBZGRDbGFzc1dpdGhVbmRvKGFjdGlvbkVsZW1lbnQsIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZSkpO1xuXG4gICAgICAgICAgICB1bmRvU3RhY2sucHVzaChzZXRPclJlbW92ZUF0dHJpYnV0ZUlmRmFsc2VXaXRoVW5kbyhhY3Rpb25FbGVtZW50LCAnYXJpYS1wcmVzc2VkJywgJ3RydWUnKSk7XG5cbiAgICAgICAgICAgIGNhcmRPYmplY3QgJiYgcHVzaGVkQ2FyZE9iamVjdHNSZWYuY3VycmVudC5hZGQoY2FyZE9iamVjdCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IGNhcHR1cmU6IHRydWUgfVxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gKCkgPT4gYnVuY2hVbmRvcyh1bmRvU3RhY2spKCk7XG4gICAgfSxcbiAgICBbcHVzaGVkQ2FyZE9iamVjdHNSZWZdXG4gICk7XG5cbiAgcmV0dXJuIHVzZUFkYXB0aXZlQ2FyZE1vZEVmZmVjdChtb2RkZXIsIGFkYXB0aXZlQ2FyZCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AdaptiveCard } from 'adaptivecards';
|
|
2
|
+
/**
|
|
3
|
+
* Re-rendering: Last focused element must be persisted during render cycle.
|
|
4
|
+
*/
|
|
5
|
+
export default function useActiveElementModEffect(adaptiveCard: AdaptiveCard): readonly [(cardElement: HTMLElement) => void, () => void];
|
|
6
|
+
//# sourceMappingURL=useActiveElementModEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActiveElementModEffect.d.ts","sourceRoot":"","sources":["../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/useActiveElementModEffect.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,eAAe,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,YAAY,EAAE,YAAY,6DAuB3E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = useActiveElementModEffect;
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _findDOMNodeOwner = _interopRequireDefault(require("./private/findDOMNodeOwner"));
|
|
13
|
+
|
|
14
|
+
var _useAdaptiveCardModEffect = _interopRequireDefault(require("./private/useAdaptiveCardModEffect"));
|
|
15
|
+
|
|
16
|
+
var _usePrevious = _interopRequireDefault(require("./private/usePrevious"));
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Re-rendering: Last focused element must be persisted during render cycle.
|
|
20
|
+
*/
|
|
21
|
+
function useActiveElementModEffect(adaptiveCard) {
|
|
22
|
+
var activeCardObjectRef = (0, _react.useRef)();
|
|
23
|
+
var prevAdaptiveCard = (0, _usePrevious.default)(adaptiveCard);
|
|
24
|
+
|
|
25
|
+
if (prevAdaptiveCard !== adaptiveCard) {
|
|
26
|
+
activeCardObjectRef.current = undefined;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
var modder = (0, _react.useMemo)(function () {
|
|
30
|
+
return function (adaptiveCard) {
|
|
31
|
+
var _activeCardObjectRef$, _activeCardObjectRef$2, _activeCardObjectRef$3;
|
|
32
|
+
|
|
33
|
+
// When apply, if we have saved the `CardObject` that was focused, restore its focused to the newly rendered element.
|
|
34
|
+
(_activeCardObjectRef$ = activeCardObjectRef.current) === null || _activeCardObjectRef$ === void 0 ? void 0 : (_activeCardObjectRef$2 = _activeCardObjectRef$.renderedElement) === null || _activeCardObjectRef$2 === void 0 ? void 0 : (_activeCardObjectRef$3 = _activeCardObjectRef$2.focus) === null || _activeCardObjectRef$3 === void 0 ? void 0 : _activeCardObjectRef$3.call(_activeCardObjectRef$2); // When undo, we are preparing for the next rendering.
|
|
35
|
+
// So, find and save the `CardObject` that is currently focused.
|
|
36
|
+
|
|
37
|
+
return function () {
|
|
38
|
+
activeCardObjectRef.current = (0, _findDOMNodeOwner.default)(adaptiveCard, document.activeElement);
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
}, [activeCardObjectRef]);
|
|
42
|
+
return (0, _useAdaptiveCardModEffect.default)(modder, adaptiveCard);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkSGFja3MvdXNlQWN0aXZlRWxlbWVudE1vZEVmZmVjdC50cyJdLCJuYW1lcyI6WyJ1c2VBY3RpdmVFbGVtZW50TW9kRWZmZWN0IiwiYWRhcHRpdmVDYXJkIiwiYWN0aXZlQ2FyZE9iamVjdFJlZiIsInByZXZBZGFwdGl2ZUNhcmQiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwibW9kZGVyIiwicmVuZGVyZWRFbGVtZW50IiwiZm9jdXMiLCJkb2N1bWVudCIsImFjdGl2ZUVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNlLFNBQVNBLHlCQUFULENBQW1DQyxZQUFuQyxFQUErRDtBQUM1RSxNQUFNQyxtQkFBbUIsR0FBRyxvQkFBNUI7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRywwQkFBWUYsWUFBWixDQUF6Qjs7QUFFQSxNQUFJRSxnQkFBZ0IsS0FBS0YsWUFBekIsRUFBdUM7QUFDckNDLElBQUFBLG1CQUFtQixDQUFDRSxPQUFwQixHQUE4QkMsU0FBOUI7QUFDRDs7QUFFRCxNQUFNQyxNQUFNLEdBQUcsb0JBQ2I7QUFBQSxXQUFNLFVBQUNMLFlBQUQsRUFBZ0M7QUFBQTs7QUFDcEM7QUFDQSwrQkFBQUMsbUJBQW1CLENBQUNFLE9BQXBCLDBHQUE2QkcsZUFBN0IsNEdBQThDQyxLQUE5QywrR0FGb0MsQ0FJcEM7QUFDQTs7QUFDQSxhQUFPLFlBQU07QUFDWE4sUUFBQUEsbUJBQW1CLENBQUNFLE9BQXBCLEdBQThCLCtCQUFpQkgsWUFBakIsRUFBK0JRLFFBQVEsQ0FBQ0MsYUFBeEMsQ0FBOUI7QUFDRCxPQUZEO0FBR0QsS0FURDtBQUFBLEdBRGEsRUFXYixDQUFDUixtQkFBRCxDQVhhLENBQWY7QUFjQSxTQUFPLHVDQUF5QkksTUFBekIsRUFBaUNMLFlBQWpDLENBQVA7QUFDRCIsInNvdXJjZVJvb3QiOiJidW5kbGU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgZmluZERPTU5vZGVPd25lciBmcm9tICcuL3ByaXZhdGUvZmluZERPTU5vZGVPd25lcic7XG5pbXBvcnQgdXNlQWRhcHRpdmVDYXJkTW9kRWZmZWN0IGZyb20gJy4vcHJpdmF0ZS91c2VBZGFwdGl2ZUNhcmRNb2RFZmZlY3QnO1xuaW1wb3J0IHVzZVByZXZpb3VzIGZyb20gJy4vcHJpdmF0ZS91c2VQcmV2aW91cyc7XG5cbmltcG9ydCB0eXBlIHsgQWRhcHRpdmVDYXJkLCBDYXJkT2JqZWN0IH0gZnJvbSAnYWRhcHRpdmVjYXJkcyc7XG5cbi8qKlxuICogUmUtcmVuZGVyaW5nOiBMYXN0IGZvY3VzZWQgZWxlbWVudCBtdXN0IGJlIHBlcnNpc3RlZCBkdXJpbmcgcmVuZGVyIGN5Y2xlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VBY3RpdmVFbGVtZW50TW9kRWZmZWN0KGFkYXB0aXZlQ2FyZDogQWRhcHRpdmVDYXJkKSB7XG4gIGNvbnN0IGFjdGl2ZUNhcmRPYmplY3RSZWYgPSB1c2VSZWY8Q2FyZE9iamVjdCB8IHVuZGVmaW5lZD4oKTtcbiAgY29uc3QgcHJldkFkYXB0aXZlQ2FyZCA9IHVzZVByZXZpb3VzKGFkYXB0aXZlQ2FyZCk7XG5cbiAgaWYgKHByZXZBZGFwdGl2ZUNhcmQgIT09IGFkYXB0aXZlQ2FyZCkge1xuICAgIGFjdGl2ZUNhcmRPYmplY3RSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG1vZGRlciA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGFkYXB0aXZlQ2FyZDogQWRhcHRpdmVDYXJkKSA9PiB7XG4gICAgICAvLyBXaGVuIGFwcGx5LCBpZiB3ZSBoYXZlIHNhdmVkIHRoZSBgQ2FyZE9iamVjdGAgdGhhdCB3YXMgZm9jdXNlZCwgcmVzdG9yZSBpdHMgZm9jdXNlZCB0byB0aGUgbmV3bHkgcmVuZGVyZWQgZWxlbWVudC5cbiAgICAgIGFjdGl2ZUNhcmRPYmplY3RSZWYuY3VycmVudD8ucmVuZGVyZWRFbGVtZW50Py5mb2N1cz8uKCk7XG5cbiAgICAgIC8vIFdoZW4gdW5kbywgd2UgYXJlIHByZXBhcmluZyBmb3IgdGhlIG5leHQgcmVuZGVyaW5nLlxuICAgICAgLy8gU28sIGZpbmQgYW5kIHNhdmUgdGhlIGBDYXJkT2JqZWN0YCB0aGF0IGlzIGN1cnJlbnRseSBmb2N1c2VkLlxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgYWN0aXZlQ2FyZE9iamVjdFJlZi5jdXJyZW50ID0gZmluZERPTU5vZGVPd25lcihhZGFwdGl2ZUNhcmQsIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgfTtcbiAgICB9LFxuICAgIFthY3RpdmVDYXJkT2JqZWN0UmVmXVxuICApO1xuXG4gIHJldHVybiB1c2VBZGFwdGl2ZUNhcmRNb2RFZmZlY3QobW9kZGVyLCBhZGFwdGl2ZUNhcmQpO1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AdaptiveCard } from 'adaptivecards';
|
|
2
|
+
/**
|
|
3
|
+
* Accessibility: Form fields in Adaptive Cards need to be disabled to reduce confusion for screen reader users.
|
|
4
|
+
*
|
|
5
|
+
* One exception is the `Action.ShowUrl`, this is because this action is expand/collapse of an accordion control.
|
|
6
|
+
* Similar to `<details>`/`<summary>`, accordion must not allowed to be disabled.
|
|
7
|
+
*/
|
|
8
|
+
export default function useDisabledModEffect(adaptiveCard: AdaptiveCard): readonly [(cardElement: HTMLElement, disabled: boolean) => void, () => void];
|
|
9
|
+
//# sourceMappingURL=useDisabledModEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDisabledModEffect.d.ts","sourceRoot":"","sources":["../../../../src/adaptiveCards/Attachment/AdaptiveCardHacks/useDisabledModEffect.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAalD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,YAAY,EAAE,YAAY,GACzB,SAAS,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC,CAiB9E"}
|