@pie-element/multiple-choice 13.4.0-beta.0 → 13.4.0
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/CHANGELOG.md +73 -11
- package/configure/CHANGELOG.md +59 -7
- package/configure/lib/defaults.js +1 -1
- package/configure/lib/index.js +1 -1
- package/configure/lib/main.js +1 -1
- package/configure/lib/utils.js +1 -1
- package/configure/package.json +4 -4
- package/controller/CHANGELOG.md +18 -3
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/index.js +1 -1
- package/controller/lib/utils.js +1 -1
- package/controller/package.json +1 -1
- package/lib/choice-input.js +1 -1
- package/lib/choice.js +9 -2
- package/lib/choice.js.map +1 -1
- package/lib/feedback-tick.js +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/main.js +1 -1
- package/lib/multiple-choice.js +1 -1
- package/lib/print.js +1 -1
- package/lib/session-updater.js +1 -1
- package/lib/utils.js +1 -1
- package/module/configure.js +1 -1
- package/module/controller.js +12 -15
- package/module/element.js +1 -1
- package/module/index.html +1 -1
- package/module/manifest.json +3 -3
- package/module/print.html +1 -1
- package/module/print.js +1 -1
- package/package.json +4 -4
- package/configure/lib/__tests__/root.test.js +0 -279
- package/controller/lib/__tests__/index.test.js +0 -561
- package/controller/lib/__tests__/utils.test.js +0 -8
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/choice-input-test.js +0 -49
- package/lib/__tests__/choice-input.test.js +0 -49
- package/lib/__tests__/index-test.js +0 -206
- package/lib/__tests__/index.test.js +0 -221
- package/lib/__tests__/key-events-test.js +0 -95
- package/lib/__tests__/key-events.test.js +0 -107
- package/lib/__tests__/multiple-choice-test.js +0 -101
- package/lib/__tests__/multiple-choice.test.js +0 -256
- package/lib/__tests__/session-updater-test.js +0 -70
- package/lib/__tests__/session-updater.test.js +0 -70
package/lib/choice-input.js
CHANGED
|
@@ -380,4 +380,4 @@ exports.ChoiceInput = ChoiceInput;
|
|
|
380
380
|
isEvaluateMode: false
|
|
381
381
|
});
|
|
382
382
|
var _default = exports.default = ChoiceInput;
|
|
383
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRm9ybUNvbnRyb2xMYWJlbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3Byb3BUeXBlcyIsIl9zdHlsZXMiLCJfQm94IiwiX0NoZWNrYm94IiwiX3JlbmRlclVpIiwiX1JhZGlvIiwiX2NsYXNzbmFtZXMiLCJfZmVlZGJhY2tUaWNrIiwiQ0xBU1NfTkFNRSIsIlJvdyIsInN0eWxlZCIsIkJveCIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJiYWNrZ3JvdW5kIiwiQ2hlY2tib3hIb2xkZXIiLCJmbGV4IiwibWFyZ2luTGVmdCIsInRleHQiLCJmb250U2l6ZSIsInBhZGRpbmciLCJCZWxvd1NlbGVjdGlvbkNvbXBvbmVudCIsInRoZW1lIiwic3BhY2luZyIsIlNyT25seSIsInBvc2l0aW9uIiwibGVmdCIsInRvcCIsIndpZHRoIiwiaGVpZ2h0Iiwib3ZlcmZsb3ciLCJTdHlsZWRGb3JtQ29udHJvbExhYmVsIiwiZXhwb3J0cyIsIkZvcm1Db250cm9sTGFiZWwiLCJsZXR0ZXJTcGFjaW5nIiwiY3Vyc29yIiwiY29sb3JTdHlsZSIsInZhck5hbWUiLCJmYWxsYmFjayIsImdldElucHV0U3R5bGVzIiwiY29ycmVjdG5lc3MiLCJrZXkiLCJrIiwiaW5jb3JyZWN0IiwiY29ycmVjdCIsInByaW1hcnkiLCJkaXNhYmxlZCIsIm9wYWNpdHkiLCJwb2ludGVyRXZlbnRzIiwiZm9jdXNWaXNpYmxlVW5jaGVja2VkIiwib3V0bGluZSIsImtleUJvYXJkRm9jdXNJbmRpY2F0b3IiLCJmb2N1c1Zpc2libGVDaGVja2VkIiwiU3R5bGVkQ2hlY2tib3hCYXNlIiwiQ2hlY2tib3giLCJzaG91bGRGb3J3YXJkUHJvcCIsInByb3AiLCJzdHlsZXMiLCJib3hTaGFkb3ciLCJib3JkZXJSYWRpdXMiLCJTdHlsZWRDaGVja2JveCIsInByb3BzIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwidmFsdWUiLCJpZCIsIm9uS2V5RG93biIsImlucHV0UmVmIiwibWluaVByb3BzIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJzbG90UHJvcHMiLCJpbnB1dCIsInJlZiIsImRpc2FibGVSaXBwbGUiLCJjbGFzc05hbWUiLCJTdHlsZWRSYWRpb0Jhc2UiLCJSYWRpbyIsIlN0eWxlZFJhZGlvIiwidGFnTmFtZSIsIm5hbWUiLCJDaG9pY2VJbnB1dCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydHkyIiwiZXZlbnQiLCJjaG9pY2VNb2RlIiwiaXNBcnJvd0Rvd24iLCJpc0Fycm93VXAiLCJwcmV2ZW50RGVmYXVsdCIsImN1cnJlbnRFbCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJjaG9pY2VJZCIsImZpZWxkc2V0IiwiY2xvc2VzdCIsImdyb3VwQ2hlY2tib3hlcyIsIkFycmF5IiwiZnJvbSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJjdXJyZW50SW5kZXgiLCJmaW5kSW5kZXgiLCJlbCIsIm5leHRJbmRleCIsIm5leHRFbCIsImZvY3VzIiwib25Ub2dnbGVDaG9pY2UiLCJiaW5kIiwiZ2VuZXJhdGVDaG9pY2VJZCIsImRlc2NJZCIsIk1hdGgiLCJyYW5kb20iLCJ0b0ZpeGVkIiwicmVuZGVyIiwiZGlzcGxheUtleSIsImZlZWRiYWNrIiwibGFiZWwiLCJyYXRpb25hbGUiLCJoaWRlVGljayIsImlzRXZhbHVhdGVNb2RlIiwiY2hvaWNlc0xheW91dCIsImlzU2VsZWN0aW9uQnV0dG9uQmVsb3ciLCJUYWciLCJjbGFzc1N1ZmZpeCIsImhvbGRlclN4IiwibWFyZ2luIiwianVzdGlmeUNvbnRlbnQiLCJoYXNNYXRoT3JJbWFnZSIsImluY2x1ZGVzIiwic2NyZWVuUmVhZGVyTGFiZWwiLCJjaG9pY2VsYWJlbCIsIkZyYWdtZW50IiwiY29tcG9uZW50IiwiUHJldmlld1Byb21wdCIsInByb21wdCIsInRhZ1Byb3BzIiwiaGFuZGxlS2V5RG93biIsImNvbnRyb2wiLCJzdHlsZSIsImNsYXNzTmFtZXMiLCJzeCIsImh0bWxGb3IiLCJsYWJlbFBsYWNlbWVudCIsInVuZGVmaW5lZCIsImRlZmF1bHRDbGFzc05hbWUiLCJGZWVkYmFjayIsIlByb3BUeXBlcyIsIm9uZU9mIiwic3RyaW5nIiwiYm9vbCIsImlzUmVxdWlyZWQiLCJmdW5jIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvY2hvaWNlLWlucHV0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRm9ybUNvbnRyb2xMYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sTGFiZWwnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgQm94IGZyb20gJ0BtdWkvbWF0ZXJpYWwvQm94JztcbmltcG9ydCBDaGVja2JveCBmcm9tICdAbXVpL21hdGVyaWFsL0NoZWNrYm94JztcbmltcG9ydCB7IEZlZWRiYWNrLCBjb2xvciwgUHJldmlld1Byb21wdCB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgUmFkaW8gZnJvbSAnQG11aS9tYXRlcmlhbC9SYWRpbyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IEZlZWRiYWNrVGljayBmcm9tICcuL2ZlZWRiYWNrLXRpY2snO1xuXG5jb25zdCBDTEFTU19OQU1FID0gJ211bHRpcGxlLWNob2ljZS1jb21wb25lbnQnO1xuXG5jb25zdCBSb3cgPSBzdHlsZWQoQm94KSh7XG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxufSk7XG5cbmNvbnN0IENoZWNrYm94SG9sZGVyID0gc3R5bGVkKEJveCkoe1xuICBkaXNwbGF5OiAnZmxleCcsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgZmxleDogMSxcbiAgJyYgLk11aUZvcm1Db250cm9sTGFiZWwtcm9vdCc6IHtcbiAgICBtYXJnaW5MZWZ0OiAnLTE0cHgnLCAvLyB0byBiZSBjb25zaXN0ZW50IHRvIHByZXZpb3VzIHZlcnNpb25zIGJlZm9yZSBNVUkgdjUgdXBncmFkZVxuICB9LFxuICAnJiBsYWJlbCc6IHtcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgICcmID4gc3Bhbic6IHtcbiAgICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgfSxcbiAgICAnJiA+IC5NdWlCdXR0b25CYXNlLXJvb3QnOiB7XG4gICAgICBwYWRkaW5nOiAnMTJweCcsIC8vIHRvIGJlIGNvbnNpc3RlbnQgdG8gcHJldmlvdXMgdmVyc2lvbnMgYmVmb3JlIE1VSSB2NSB1cGdyYWRlXG4gICAgfSxcbiAgfSxcbn0pO1xuXG5jb25zdCBCZWxvd1NlbGVjdGlvbkNvbXBvbmVudCA9IHN0eWxlZCgnc3BhbicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICcmID4gc3Bhbic6IHtcbiAgICAvLyB2aXN1YWxseSByZWR1Y2UgcmlnaHQgcGFkZGluZywgYnV0IG1haW50YWluIGFjY2Vzc2liaWxpdHkgcGFkZGluZyBmb3IgY2hlY2tib3ggaW5kaWNhdG9ycyB0byBiZSBjaXJjbGVzXG4gICAgbWFyZ2luTGVmdDogYC0ke3RoZW1lLnNwYWNpbmcoMSl9YCxcbiAgfSxcbn0pKTtcblxuY29uc3QgU3JPbmx5ID0gc3R5bGVkKCdzcGFuJykoe1xuICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgbGVmdDogJy0xMDAwMHB4JyxcbiAgdG9wOiAnYXV0bycsXG4gIHdpZHRoOiAnMXB4JyxcbiAgaGVpZ2h0OiAnMXB4JyxcbiAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRGb3JtQ29udHJvbExhYmVsID0gc3R5bGVkKEZvcm1Db250cm9sTGFiZWwpKHtcbiAgJyYgLk11aUZvcm1Db250cm9sTGFiZWwtbGFiZWwnOiB7XG4gICAgY29sb3I6IGAke2NvbG9yLnRleHQoKX0gIWltcG9ydGFudGAsXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gICAgbGV0dGVyU3BhY2luZzogJ25vcm1hbCcsXG4gIH0sXG4gICcmLk11aS1kaXNhYmxlZCAqJzoge1xuICAgIGN1cnNvcjogJ25vdC1hbGxvd2VkICFpbXBvcnRhbnQnLFxuICB9LFxufSk7XG5cbmNvbnN0IGNvbG9yU3R5bGUgPSAodmFyTmFtZSwgZmFsbGJhY2spID0+ICh7XG4gIFtgJi4ke0NMQVNTX05BTUV9YF06IHtcbiAgICBjb2xvcjogYHZhcigtLWNob2ljZS1pbnB1dC0ke3Zhck5hbWV9LCAke2ZhbGxiYWNrfSkgIWltcG9ydGFudGAsXG4gIH0sXG59KTtcblxuY29uc3QgZ2V0SW5wdXRTdHlsZXMgPSAoY29ycmVjdG5lc3MpID0+IHtcbiAgY29uc3Qga2V5ID0gKGspID0+IChjb3JyZWN0bmVzcyA/IGAke2NvcnJlY3RuZXNzfS0ke2t9YCA6IGspO1xuXG4gIHJldHVybiB7XG4gICAgW2tleSgncm9vdCcpXToge1xuICAgICAgLi4uY29sb3JTdHlsZSgnY29sb3InLCBjb2xvci50ZXh0KCkpLFxuICAgICAgLi4uKGNvcnJlY3RuZXNzID09PSAnY29ycmVjdCcgPyBjb2xvclN0eWxlKCdjb3JyZWN0LWNvbG9yJywgY29sb3IudGV4dCgpKSA6IHt9KSxcbiAgICAgIC4uLihjb3JyZWN0bmVzcyA9PT0gJ2luY29ycmVjdCcgPyBjb2xvclN0eWxlKCdpbmNvcnJlY3QtY29sb3InLCBjb2xvci5pbmNvcnJlY3QoKSkgOiB7fSksXG4gICAgfSxcbiAgICBba2V5KCdjaGVja2VkJyldOiB7XG4gICAgICAuLi4oY29ycmVjdG5lc3MgPT09ICdjb3JyZWN0JyA/IGNvbG9yU3R5bGUoJ2NvcnJlY3Qtc2VsZWN0ZWQtY29sb3InLCBjb2xvci5jb3JyZWN0KCkpIDoge30pLFxuICAgICAgLi4uKGNvcnJlY3RuZXNzID09PSAnaW5jb3JyZWN0JyA/IGNvbG9yU3R5bGUoJ2luY29ycmVjdC1jaGVja2VkJywgY29sb3IuaW5jb3JyZWN0KCkpIDoge30pLFxuICAgICAgLi4uKCFjb3JyZWN0bmVzcyA/IGNvbG9yU3R5bGUoJ3NlbGVjdGVkLWNvbG9yJywgY29sb3IucHJpbWFyeSgpKSA6IHt9KSxcbiAgICB9LFxuICAgIFtrZXkoJ2Rpc2FibGVkJyldOiB7XG4gICAgICAuLi5jb2xvclN0eWxlKCdkaXNhYmxlZC1jb2xvcicsIGNvbG9yLnRleHQoKSksXG4gICAgICAuLi4oY29ycmVjdG5lc3MgPT09ICdjb3JyZWN0JyA/IGNvbG9yU3R5bGUoJ2NvcnJlY3QtZGlzYWJsZWQtY29sb3InLCBjb2xvci5kaXNhYmxlZCgpKSA6IHt9KSxcbiAgICAgIC4uLihjb3JyZWN0bmVzcyA9PT0gJ2luY29ycmVjdCcgPyBjb2xvclN0eWxlKCdpbmNvcnJlY3QtZGlzYWJsZWQtY29sb3InLCBjb2xvci5kaXNhYmxlZCgpKSA6IHt9KSxcbiAgICAgIG9wYWNpdHk6IDAuNixcbiAgICAgIGN1cnNvcjogJ25vdC1hbGxvd2VkICFpbXBvcnRhbnQnLFxuICAgICAgcG9pbnRlckV2ZW50czogJ2luaXRpYWwgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICBmb2N1c1Zpc2libGVVbmNoZWNrZWQ6IHtcbiAgICAgIG91dGxpbmU6IGAycHggc29saWQgJHtjb2xvci5rZXlCb2FyZEZvY3VzSW5kaWNhdG9yKCl9YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICB9LFxuICAgIGZvY3VzVmlzaWJsZUNoZWNrZWQ6IHtcbiAgICAgIG91dGxpbmU6IGAycHggc29saWQgJHtjb2xvci5rZXlCb2FyZEZvY3VzSW5kaWNhdG9yKCl9YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICB9LFxuICB9O1xufTtcblxuY29uc3QgU3R5bGVkQ2hlY2tib3hCYXNlID0gc3R5bGVkKENoZWNrYm94LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiAocHJvcCkgPT4gcHJvcCAhPT0gJ2NvcnJlY3RuZXNzJyxcbn0pKCh7IGNvcnJlY3RuZXNzIH0pID0+IHtcbiAgY29uc3Qgc3R5bGVzID0gZ2V0SW5wdXRTdHlsZXMoY29ycmVjdG5lc3MpO1xuICBjb25zdCBrZXkgPSAoaykgPT4gKGNvcnJlY3RuZXNzID8gYCR7Y29ycmVjdG5lc3N9LSR7a31gIDogayk7XG5cbiAgcmV0dXJuIHtcbiAgICBbYCYuJHtDTEFTU19OQU1FfWBdOiB7XG4gICAgICAuLi5zdHlsZXNba2V5KCdyb290JyldLFxuICAgICAgJyYuTXVpLWNoZWNrZWQnOiBzdHlsZXNba2V5KCdjaGVja2VkJyldLFxuICAgICAgJyYuTXVpLWRpc2FibGVkJzogY29ycmVjdG5lc3MgPyB7fSA6IHN0eWxlc1trZXkoJ2Rpc2FibGVkJyldLFxuICAgICAgJyY6aG92ZXI6bm90KC5NdWktZGlzYWJsZWQpIHN2Zyc6IHtcbiAgICAgICAgYm94U2hhZG93OiBgMHB4IDBweCAwcHggMnB4ICR7Y29sb3Iua2V5Qm9hcmRGb2N1c0luZGljYXRvcigpfWAsXG4gICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgJyYuTXVpLWZvY3VzVmlzaWJsZSc6IHtcbiAgICAgICcmOm5vdCguTXVpLWNoZWNrZWQpJzogc3R5bGVzLmZvY3VzVmlzaWJsZVVuY2hlY2tlZCxcbiAgICAgICcmLk11aS1jaGVja2VkJzogc3R5bGVzLmZvY3VzVmlzaWJsZUNoZWNrZWQsXG4gICAgfSxcbiAgfTtcbn0pO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQ2hlY2tib3ggPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb3JyZWN0bmVzcywgY2hlY2tlZCwgb25DaGFuZ2UsIGRpc2FibGVkLCB2YWx1ZSwgaWQsIG9uS2V5RG93biwgaW5wdXRSZWYgfSA9IHByb3BzO1xuXG4gIGNvbnN0IG1pbmlQcm9wcyA9IHsgY2hlY2tlZCwgb25DaGFuZ2UsIGRpc2FibGVkLCB2YWx1ZSB9O1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENoZWNrYm94QmFzZVxuICAgICAgaWQ9e2lkfVxuICAgICAgc2xvdFByb3BzPXt7IGlucHV0OiB7IHJlZjogaW5wdXRSZWYgfSB9fVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICBkaXNhYmxlUmlwcGxlXG4gICAgICB7Li4ubWluaVByb3BzfVxuICAgICAgY29ycmVjdG5lc3M9e2NvcnJlY3RuZXNzfVxuICAgICAgY2xhc3NOYW1lPXtDTEFTU19OQU1FfVxuICAgIC8+XG4gICk7XG59O1xuXG5jb25zdCBTdHlsZWRSYWRpb0Jhc2UgPSBzdHlsZWQoUmFkaW8sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSAnY29ycmVjdG5lc3MnLFxufSkoKHsgY29ycmVjdG5lc3MgfSkgPT4ge1xuICBjb25zdCBzdHlsZXMgPSBnZXRJbnB1dFN0eWxlcyhjb3JyZWN0bmVzcyk7XG4gIGNvbnN0IGtleSA9IChrKSA9PiAoY29ycmVjdG5lc3MgPyBgJHtjb3JyZWN0bmVzc30tJHtrfWAgOiBrKTtcblxuICByZXR1cm4ge1xuICAgIFtgJi4ke0NMQVNTX05BTUV9YF06IHtcbiAgICAgIC4uLnN0eWxlc1trZXkoJ3Jvb3QnKV0sXG4gICAgICAnJi5NdWktY2hlY2tlZCc6IHN0eWxlc1trZXkoJ2NoZWNrZWQnKV0sXG4gICAgICAnJi5NdWktZGlzYWJsZWQnOiBjb3JyZWN0bmVzcyA/IHt9IDogc3R5bGVzW2tleSgnZGlzYWJsZWQnKV0sXG4gICAgICAnJi5NdWktZm9jdXNWaXNpYmxlOm5vdCguTXVpLWNoZWNrZWQpJzogc3R5bGVzLmZvY3VzVmlzaWJsZVVuY2hlY2tlZCxcbiAgICAgICcmLk11aS1mb2N1c1Zpc2libGUuTXVpLWNoZWNrZWQnOiBzdHlsZXMuZm9jdXNWaXNpYmxlQ2hlY2tlZCxcbiAgICAgICcmOmhvdmVyOm5vdCguTXVpLWRpc2FibGVkKSBzdmcnOiB7XG4gICAgICAgIGJveFNoYWRvdzogYDBweCAwcHggMHB4IDJweCAke2NvbG9yLmtleUJvYXJkRm9jdXNJbmRpY2F0b3IoKX1gLFxuICAgICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgICcmLk11aS1mb2N1c1Zpc2libGUnOiB7XG4gICAgICAnJiBpbnB1dCc6IHsgb3V0bGluZTogMCB9LFxuICAgICAgJyYgLk11aVRvdWNoUmlwcGxlLXJvb3QnOiB7IGRpc3BsYXk6ICdub25lJyB9LFxuICAgIH0sXG4gIH07XG59KTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFJhZGlvID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29ycmVjdG5lc3MsIGNoZWNrZWQsIG9uQ2hhbmdlLCBkaXNhYmxlZCwgdmFsdWUsIGlkLCB0YWdOYW1lLCBpbnB1dFJlZiB9ID0gcHJvcHM7XG5cbiAgY29uc3QgbWluaVByb3BzID0geyBjaGVja2VkLCBvbkNoYW5nZSwgZGlzYWJsZWQsIHZhbHVlIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkUmFkaW9CYXNlXG4gICAgICBpZD17aWR9XG4gICAgICBzbG90UHJvcHM9e3sgaW5wdXQ6IHsgcmVmOiBpbnB1dFJlZiB9IH19XG4gICAgICBkaXNhYmxlUmlwcGxlXG4gICAgICB7Li4ubWluaVByb3BzfVxuICAgICAgY29ycmVjdG5lc3M9e2NvcnJlY3RuZXNzfVxuICAgICAgY2xhc3NOYW1lPXtDTEFTU19OQU1FfVxuICAgICAgbmFtZT17dGFnTmFtZX1cbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGNsYXNzIENob2ljZUlucHV0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjaG9pY2VNb2RlOiBQcm9wVHlwZXMub25lT2YoWydyYWRpbycsICdjaGVja2JveCddKSxcbiAgICBkaXNwbGF5S2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNoZWNrZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgY29ycmVjdG5lc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgZmVlZGJhY2s6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICByYXRpb25hbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdGFnTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBoaWRlVGljazogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNFdmFsdWF0ZU1vZGU6IFByb3BUeXBlcy5ib29sLFxuICAgIGNob2ljZXNMYXlvdXQ6IFByb3BUeXBlcy5vbmVPZihbJ3ZlcnRpY2FsJywgJ2dyaWQnLCAnaG9yaXpvbnRhbCddKSxcbiAgICBpc1NlbGVjdGlvbkJ1dHRvbkJlbG93OiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHJhdGlvbmFsZTogbnVsbCxcbiAgICBjaGVja2VkOiBmYWxzZSxcbiAgICBpc0V2YWx1YXRlTW9kZTogZmFsc2UsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5vblRvZ2dsZUNob2ljZSA9IHRoaXMub25Ub2dnbGVDaG9pY2UuYmluZCh0aGlzKTtcbiAgICB0aGlzLmNob2ljZUlkID0gdGhpcy5nZW5lcmF0ZUNob2ljZUlkKCk7XG4gICAgdGhpcy5kZXNjSWQgPSBgJHt0aGlzLmNob2ljZUlkfS1kZXNjYDtcbiAgfVxuXG4gIG9uVG9nZ2xlQ2hvaWNlKGV2ZW50KSB7XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShldmVudCk7XG4gIH1cblxuICBnZW5lcmF0ZUNob2ljZUlkKCkge1xuICAgIHJldHVybiAnY2hvaWNlLScgKyAoTWF0aC5yYW5kb20oKSAqIDEwMDAwKS50b0ZpeGVkKCk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgeyBjaG9pY2VNb2RlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGNob2ljZU1vZGUgIT09ICdjaGVja2JveCcpIHJldHVybjtcblxuICAgIGNvbnN0IGlzQXJyb3dEb3duID0gZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJztcbiAgICBjb25zdCBpc0Fycm93VXAgPSBldmVudC5rZXkgPT09ICdBcnJvd1VwJztcblxuICAgIGlmICghaXNBcnJvd0Rvd24gJiYgIWlzQXJyb3dVcCkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGN1cnJlbnRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuY2hvaWNlSWQpO1xuICAgIGlmICghY3VycmVudEVsKSByZXR1cm47XG5cbiAgICBjb25zdCBmaWVsZHNldCA9IGN1cnJlbnRFbC5jbG9zZXN0KCdmaWVsZHNldCcpO1xuICAgIGlmICghZmllbGRzZXQpIHJldHVybjtcblxuICAgIGNvbnN0IGdyb3VwQ2hlY2tib3hlcyA9IEFycmF5LmZyb20oZmllbGRzZXQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykpO1xuXG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gZ3JvdXBDaGVja2JveGVzLmZpbmRJbmRleCgoZWwpID0+IGVsID09PSBjdXJyZW50RWwpO1xuICAgIGlmIChjdXJyZW50SW5kZXggPT09IC0xKSByZXR1cm47XG5cbiAgICBjb25zdCBuZXh0SW5kZXggPSBpc0Fycm93RG93biA/IGN1cnJlbnRJbmRleCArIDEgOiBjdXJyZW50SW5kZXggLSAxO1xuICAgIGNvbnN0IG5leHRFbCA9IGdyb3VwQ2hlY2tib3hlc1tuZXh0SW5kZXhdO1xuXG4gICAgaWYgKG5leHRFbCkge1xuICAgICAgbmV4dEVsLmZvY3VzKCk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjaG9pY2VNb2RlLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBkaXNwbGF5S2V5LFxuICAgICAgZmVlZGJhY2ssXG4gICAgICBsYWJlbCxcbiAgICAgIGNvcnJlY3RuZXNzLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgcmF0aW9uYWxlLFxuICAgICAgaGlkZVRpY2ssXG4gICAgICBpc0V2YWx1YXRlTW9kZSxcbiAgICAgIGNob2ljZXNMYXlvdXQsXG4gICAgICB2YWx1ZSxcbiAgICAgIGNoZWNrZWQsXG4gICAgICB0YWdOYW1lLFxuICAgICAgaXNTZWxlY3Rpb25CdXR0b25CZWxvdyxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IFRhZyA9IGNob2ljZU1vZGUgPT09ICdjaGVja2JveCcgPyBTdHlsZWRDaGVja2JveCA6IFN0eWxlZFJhZGlvO1xuICAgIGNvbnN0IGNsYXNzU3VmZml4ID0gY2hvaWNlTW9kZSA9PT0gJ2NoZWNrYm94JyA/ICdjaGVja2JveCcgOiAncmFkaW8tYnV0dG9uJztcblxuICAgIGNvbnN0IGhvbGRlclN4ID0ge1xuICAgICAgLi4uKGNob2ljZXNMYXlvdXQgPT09ICdob3Jpem9udGFsJyAmJiB7XG4gICAgICAgIFtgJiAuJHtDTEFTU19OQU1FfWBdOiB7XG4gICAgICAgICAgcGFkZGluZzogJzhweCcsXG4gICAgICAgICAgbWFyZ2luOiAnNHB4IDAgNHB4IDRweCcsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIC4uLihpc1NlbGVjdGlvbkJ1dHRvbkJlbG93ICYmIGNob2ljZXNMYXlvdXQgIT09ICdncmlkJyAmJiB7XG4gICAgICAgICcmID4gbGFiZWwnOiB7XG4gICAgICAgICAgYWxpZ25JdGVtczogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICAuLi4oaXNTZWxlY3Rpb25CdXR0b25CZWxvdyAmJiBjaG9pY2VzTGF5b3V0ID09PSAnZ3JpZCcgJiYge1xuICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICcmID4gbGFiZWwnOiB7XG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFzTWF0aE9ySW1hZ2UgPVxuICAgICAgdHlwZW9mIGxhYmVsID09PSAnc3RyaW5nJyAmJlxuICAgICAgKGxhYmVsLmluY2x1ZGVzKCc8bWF0aCcpIHx8XG4gICAgICAgIGxhYmVsLmluY2x1ZGVzKCdcXFxcKCcpIHx8XG4gICAgICAgIGxhYmVsLmluY2x1ZGVzKCdcXFxcWycpIHx8XG4gICAgICAgIGxhYmVsLmluY2x1ZGVzKCc8aW1nJykgfHxcbiAgICAgICAgbGFiZWwuaW5jbHVkZXMoJ2RhdGEtbGF0ZXgnKSB8fFxuICAgICAgICBsYWJlbC5pbmNsdWRlcygnZGF0YS1yYXcnKSB8fFxuICAgICAgICBsYWJlbC5pbmNsdWRlcygnPG1qeC1jb250YWluZXInKSk7XG5cbiAgICBjb25zdCBzY3JlZW5SZWFkZXJMYWJlbCA9IGRpc3BsYXlLZXkgPyAoXG4gICAgICA8U3JPbmx5IGlkPXt0aGlzLmRlc2NJZH0+XG4gICAgICAgIHtoYXNNYXRoT3JJbWFnZSA/IGBQaWNrIHRoZSBhbnN3ZXIgYmVsb3csICR7ZGlzcGxheUtleX1gIDogZGlzcGxheUtleX1cbiAgICAgIDwvU3JPbmx5PlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2hvaWNlbGFiZWwgPSAoXG4gICAgICA8PlxuICAgICAgICB7ZGlzcGxheUtleSAmJiAhaXNTZWxlY3Rpb25CdXR0b25CZWxvdyA/IChcbiAgICAgICAgICA8Um93IGNvbXBvbmVudD1cInNwYW5cIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPntkaXNwbGF5S2V5fS57J1xcdTAwQTAnfTwvc3Bhbj5cbiAgICAgICAgICAgIDxQcmV2aWV3UHJvbXB0IGNsYXNzTmFtZT1cInByb21wdC1sYWJlbFwiIHByb21wdD17bGFiZWx9IHRhZ05hbWU9XCJzcGFuXCIgLz5cbiAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UHJldmlld1Byb21wdCBjbGFzc05hbWU9XCJwcm9tcHQtbGFiZWxcIiBwcm9tcHQ9e2xhYmVsfSB0YWdOYW1lPVwic3BhblwiIC8+XG4gICAgICAgICl9XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgY29uc3QgdGFnUHJvcHMgPSB7XG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGNoZWNrZWQsXG4gICAgICBjb3JyZWN0bmVzcyxcbiAgICAgIHRhZ05hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIGlkOiB0aGlzLmNob2ljZUlkLFxuICAgICAgb25DaGFuZ2U6IHRoaXMub25Ub2dnbGVDaG9pY2UsXG4gICAgICBvbktleURvd246IHRoaXMuaGFuZGxlS2V5RG93bixcbiAgICAgIC4uLihzY3JlZW5SZWFkZXJMYWJlbCA/IHsgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLmRlc2NJZCB9IDoge30pLFxuICAgIH07XG5cbiAgICBjb25zdCBjb250cm9sID0gaXNTZWxlY3Rpb25CdXR0b25CZWxvdyA/IChcbiAgICAgIDxCZWxvd1NlbGVjdGlvbkNvbXBvbmVudD5cbiAgICAgICAge3NjcmVlblJlYWRlckxhYmVsfVxuICAgICAgICA8VGFnIHsuLi50YWdQcm9wc30gc3R5bGU9e3sgcGFkZGluZzogMCB9fSAvPlxuICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj57ZGlzcGxheUtleSA/IGAke2Rpc3BsYXlLZXl9LmAgOiAnJ308L3NwYW4+XG4gICAgICA8L0JlbG93U2VsZWN0aW9uQ29tcG9uZW50PlxuICAgICkgOiAoXG4gICAgICA8PlxuICAgICAgICB7c2NyZWVuUmVhZGVyTGFiZWx9XG4gICAgICAgIDxUYWcgey4uLnRhZ1Byb3BzfSAvPlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc05hbWUsICdjb3Jlc3ByaW5nLScgKyBjbGFzc1N1ZmZpeCwgJ2Nob2ljZS1pbnB1dCcpfT5cbiAgICAgICAgPFJvdz5cbiAgICAgICAgICB7IWhpZGVUaWNrICYmIGlzRXZhbHVhdGVNb2RlICYmIDxGZWVkYmFja1RpY2sgY29ycmVjdG5lc3M9e2NvcnJlY3RuZXNzfSAvPn1cbiAgICAgICAgICA8Q2hlY2tib3hIb2xkZXIgY2xhc3NOYW1lPVwiY2hlY2tib3gtaG9sZGVyXCIgc3g9e2hvbGRlclN4fT5cbiAgICAgICAgICAgIDxTdHlsZWRGb3JtQ29udHJvbExhYmVsXG4gICAgICAgICAgICAgIGxhYmVsPXtjaG9pY2VsYWJlbH1cbiAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICBodG1sRm9yPXt0aGlzLmNob2ljZUlkfVxuICAgICAgICAgICAgICBsYWJlbFBsYWNlbWVudD17aXNTZWxlY3Rpb25CdXR0b25CZWxvdyA/ICd0b3AnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICBjb250cm9sPXtjb250cm9sfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NoZWNrYm94SG9sZGVyPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAge3JhdGlvbmFsZSAmJiA8UHJldmlld1Byb21wdCBjbGFzc05hbWU9XCJyYXRpb25hbGVcIiBkZWZhdWx0Q2xhc3NOYW1lPVwicmF0aW9uYWxlXCIgcHJvbXB0PXtyYXRpb25hbGV9IC8+fVxuICAgICAgICA8RmVlZGJhY2sgZmVlZGJhY2s9e2ZlZWRiYWNrfSBjb3JyZWN0bmVzcz17Y29ycmVjdG5lc3N9IC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENob2ljZUlucHV0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksSUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQVMsYUFBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsTUFBTVUsVUFBVSxHQUFHLDJCQUEyQjtBQUU5QyxNQUFNQyxHQUFHLEdBQUcsSUFBQUMsY0FBTSxFQUFDQyxZQUFHLENBQUMsQ0FBQztFQUN0QkMsT0FBTyxFQUFFLE1BQU07RUFDZkMsVUFBVSxFQUFFLFFBQVE7RUFDcEJDLGVBQWUsRUFBRUMsZUFBSyxDQUFDQyxVQUFVLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBRUYsTUFBTUMsY0FBYyxHQUFHLElBQUFQLGNBQU0sRUFBQ0MsWUFBRyxDQUFDLENBQUM7RUFDakNDLE9BQU8sRUFBRSxNQUFNO0VBQ2ZDLFVBQVUsRUFBRSxRQUFRO0VBQ3BCQyxlQUFlLEVBQUVDLGVBQUssQ0FBQ0MsVUFBVSxDQUFDLENBQUM7RUFDbkNFLElBQUksRUFBRSxDQUFDO0VBQ1AsNkJBQTZCLEVBQUU7SUFDN0JDLFVBQVUsRUFBRSxPQUFPLENBQUU7RUFDdkIsQ0FBQztFQUNELFNBQVMsRUFBRTtJQUNUSixLQUFLLEVBQUVBLGVBQUssQ0FBQ0ssSUFBSSxD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
|
|
383
|
+
//# sourceMappingURL=choice-input.js.map
|
package/lib/choice.js
CHANGED
|
@@ -10,6 +10,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
var _styles = require("@mui/material/styles");
|
|
12
12
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
13
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
13
14
|
var _choiceInput = _interopRequireDefault(require("./choice-input"));
|
|
14
15
|
const ChoiceContainer = (0, _styles.styled)(_Box.default, {
|
|
15
16
|
shouldForwardProp: prop => prop !== 'noBorder' && prop !== 'horizontalLayout'
|
|
@@ -22,7 +23,13 @@ const ChoiceContainer = (0, _styles.styled)(_Box.default, {
|
|
|
22
23
|
paddingBottom: `calc(${theme.spacing(1)} + 2px)`,
|
|
23
24
|
paddingLeft: `calc(${theme.spacing(1)} + 2px)`,
|
|
24
25
|
paddingRight: `calc(${theme.spacing(1)} + 2px)`,
|
|
25
|
-
|
|
26
|
+
/*
|
|
27
|
+
* The separator between answer choices. MUI's grey[300] does not follow `--pie-*`,
|
|
28
|
+
* so it stayed #e0e0e0 on every scheme -- about 1.1:1 against black-on-rose's own
|
|
29
|
+
* background, which is where George reported it. `--pie-border` is stepped per
|
|
30
|
+
* scheme and holds at least 3.23:1 everywhere.
|
|
31
|
+
*/
|
|
32
|
+
borderBottom: noBorder ? 'none' : `1px solid ${_renderUi.color.border()}`,
|
|
26
33
|
...(horizontalLayout && {
|
|
27
34
|
paddingRight: theme.spacing(2.5),
|
|
28
35
|
'& label': {
|
|
@@ -189,4 +196,4 @@ Choice.propTypes = {
|
|
|
189
196
|
isSelectionButtonBelow: _propTypes.default.bool
|
|
190
197
|
};
|
|
191
198
|
var _default = exports.default = Choice;
|
|
192
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX0JveCIsIl9jaG9pY2VJbnB1dCIsIkNob2ljZUNvbnRhaW5lciIsInN0eWxlZCIsIkJveCIsInNob3VsZEZvcndhcmRQcm9wIiwicHJvcCIsInRoZW1lIiwibm9Cb3JkZXIiLCJob3Jpem9udGFsTGF5b3V0IiwicGFkZGluZ1RvcCIsInNwYWNpbmciLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJCb3R0b20iLCJwYWxldHRlIiwiZ3JleSIsIm1hcmdpblJpZ2h0IiwiQ2hvaWNlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsImFyZ3MiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsImlzSG92ZXJlZCIsImRpc2FibGVkIiwiY2hlY2tlZCIsInByb3BzIiwic2V0U3RhdGUiLCJjaG9pY2UiLCJvbkNob2ljZUNoYW5nZWQiLCJyZW5kZXIiLCJpbmRleCIsImNob2ljZXNMZW5ndGgiLCJzaG93Q29ycmVjdCIsImlzRXZhbHVhdGVNb2RlIiwiY2hvaWNlTW9kZSIsImNvcnJlY3RuZXNzIiwiZGlzcGxheUtleSIsImNob2ljZXNMYXlvdXQiLCJncmlkQ29sdW1ucyIsImlzU2VsZWN0aW9uQnV0dG9uQmVsb3ciLCJzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvciIsInNlbGVjdGVkQW5zd2VyU3Ryb2tlQ29sb3IiLCJzZWxlY3RlZEFuc3dlclN0cm9rZVdpZHRoIiwiaG92ZXJBbnN3ZXJCYWNrZ3JvdW5kQ29sb3IiLCJob3ZlckFuc3dlclN0cm9rZUNvbG9yIiwiaG92ZXJBbnN3ZXJTdHJva2VXaWR0aCIsInRhZ05hbWUiLCJzdGF0ZSIsImNob2ljZUNsYXNzIiwiZmVlZGJhY2siLCJjaG9pY2VQcm9wcyIsIm9uQ2hhbmdlIiwibm9ybWFsaXplU3Ryb2tlV2lkdGgiLCJ3aWR0aCIsInRyaW1tZWQiLCJTdHJpbmciLCJ0cmltIiwidGVzdCIsImhhc1NlbGVjdGVkU3Ryb2tlIiwiaGFzSG92ZXJTdHJva2UiLCJjdXJyZW50U3Ryb2tlQ29sb3IiLCJjdXJyZW50U3Ryb2tlV2lkdGgiLCJjdXJyZW50QmFja2dyb3VuZENvbG9yIiwiaGFzU3Ryb2tlIiwic3Ryb2tlU3R5bGUiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJjaG9pY2VCYWNrZ3JvdW5kIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImtleSIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwib25Nb3VzZUVudGVyIiwiaGFuZGxlTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsImhhbmRsZU1vdXNlTGVhdmUiLCJjb21wb25lbnQiLCJleHBvcnRzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib25lT2YiLCJvYmplY3QiLCJib29sIiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJudW1iZXIiLCJzdHJpbmciLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jaG9pY2UuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IEJveCBmcm9tICdAbXVpL21hdGVyaWFsL0JveCc7XG5cbmltcG9ydCBDaG9pY2VJbnB1dCBmcm9tICcuL2Nob2ljZS1pbnB1dCc7XG5cbmNvbnN0IENob2ljZUNvbnRhaW5lciA9IHN0eWxlZChCb3gsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSAnbm9Cb3JkZXInICYmIHByb3AgIT09ICdob3Jpem9udGFsTGF5b3V0Jyxcbn0pKCh7IHRoZW1lLCBub0JvcmRlciwgaG9yaXpvbnRhbExheW91dCB9KSA9PiAoe1xuICBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nKDIuNSksXG4gIHBhZGRpbmdCb3R0b206IGBjYWxjKCR7dGhlbWUuc3BhY2luZygxKX0gKyAycHgpYCxcbiAgcGFkZGluZ0xlZnQ6IGBjYWxjKCR7dGhlbWUuc3BhY2luZygxKX0gKyAycHgpYCxcbiAgcGFkZGluZ1JpZ2h0OiBgY2FsYygke3RoZW1lLnNwYWNpbmcoMSl9ICsgMnB4KWAsXG4gIGJvcmRlckJvdHRvbTogbm9Cb3JkZXIgPyAnbm9uZScgOiBgMXB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5ncmV5WzMwMF19YCxcbiAgLi4uKGhvcml6b250YWxMYXlvdXQgJiYge1xuICAgIHBhZGRpbmdSaWdodDogdGhlbWUuc3BhY2luZygyLjUpLFxuICAgICcmIGxhYmVsJzoge1xuICAgICAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcoMSksXG4gICAgfSxcbiAgfSksXG59KSk7XG5cbmV4cG9ydCBjbGFzcyBDaG9pY2UgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge307XG5cbiAgc3RhdGUgPSB7XG4gICAgaXNIb3ZlcmVkOiBmYWxzZSxcbiAgfTtcblxuICBoYW5kbGVNb3VzZUVudGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIGNoZWNrZWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWRpc2FibGVkICYmICFjaGVja2VkKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgaXNIb3ZlcmVkOiB0cnVlIH0pO1xuICAgIH1cbiAgfTtcblxuICBoYW5kbGVNb3VzZUxlYXZlID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBpc0hvdmVyZWQ6IGZhbHNlIH0pO1xuICB9O1xuXG4gIG9uQ2hhbmdlID0gKGNob2ljZSkgPT4ge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIG9uQ2hvaWNlQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIG9uQ2hvaWNlQ2hhbmdlZChjaG9pY2UpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2hvaWNlLFxuICAgICAgaW5kZXgsXG4gICAgICBjaG9pY2VzTGVuZ3RoLFxuICAgICAgc2hvd0NvcnJlY3QsXG4gICAgICBpc0V2YWx1YXRlTW9kZSxcbiAgICAgIGNob2ljZU1vZGUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGNoZWNrZWQsXG4gICAgICBjb3JyZWN0bmVzcyxcbiAgICAgIGRpc3BsYXlLZXksXG4gICAgICBjaG9pY2VzTGF5b3V0LFxuICAgICAgZ3JpZENvbHVtbnMsXG4gICAgICBpc1NlbGVjdGlvbkJ1dHRvbkJlbG93LFxuICAgICAgc2VsZWN0ZWRBbnN3ZXJCYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yLFxuICAgICAgc2VsZWN0ZWRBbnN3ZXJTdHJva2VXaWR0aCxcbiAgICAgIGhvdmVyQW5zd2VyQmFja2dyb3VuZENvbG9yLFxuICAgICAgaG92ZXJBbnN3ZXJTdHJva2VDb2xvcixcbiAgICAgIGhvdmVyQW5zd2VyU3Ryb2tlV2lkdGgsXG4gICAgICB0YWdOYW1lXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgXG4gICAgY29uc3QgeyBpc0hvdmVyZWQgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgY2hvaWNlQ2xhc3MgPSAnY2hvaWNlJyArIChpbmRleCA9PT0gY2hvaWNlc0xlbmd0aCAtIDEgPyAnIGxhc3QnIDogJycpO1xuXG4gICAgY29uc3QgZmVlZGJhY2sgPSAhaXNFdmFsdWF0ZU1vZGUgfHwgc2hvd0NvcnJlY3QgPyAnJyA6IGNob2ljZS5mZWVkYmFjaztcblxuICAgIGNvbnN0IGNob2ljZVByb3BzID0ge1xuICAgICAgLi4uY2hvaWNlLFxuICAgICAgY2hlY2tlZCxcbiAgICAgIGNob2ljZU1vZGUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGZlZWRiYWNrLFxuICAgICAgY29ycmVjdG5lc3MsXG4gICAgICBkaXNwbGF5S2V5LFxuICAgICAgaW5kZXgsXG4gICAgICBjaG9pY2VzTGF5b3V0LFxuICAgICAgZ3JpZENvbHVtbnMsXG4gICAgICBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSxcbiAgICAgIGlzRXZhbHVhdGVNb2RlLFxuICAgICAgaXNTZWxlY3Rpb25CdXR0b25CZWxvdyxcbiAgICAgIHNlbGVjdGVkQW5zd2VyU3Ryb2tlQ29sb3IsXG4gICAgICBzZWxlY3RlZEFuc3dlclN0cm9rZVdpZHRoLFxuICAgICAgdGFnTmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3Qgbm9ybWFsaXplU3Ryb2tlV2lkdGggPSAod2lkdGgpID0+IHtcbiAgICAgIGlmICghd2lkdGgpIHJldHVybiAnMnB4JzsgLy8gZGVmYXVsdFxuICAgICAgY29uc3QgdHJpbW1lZCA9IFN0cmluZyh3aWR0aCkudHJpbSgpO1xuICAgIFxuICAgICAgLy8gYWRkICdweCcgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gICAgICBpZiAoL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodHJpbW1lZCkpIHtcbiAgICAgICAgcmV0dXJuIGAke3RyaW1tZWR9cHhgO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJpbW1lZDtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFzU2VsZWN0ZWRTdHJva2UgPSBzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yICYmIHNlbGVjdGVkQW5zd2VyU3Ryb2tlQ29sb3IgIT09ICdpbml0aWFsJztcbiAgICBjb25zdCBoYXNIb3ZlclN0cm9rZSA9IGhvdmVyQW5zd2VyU3Ryb2tlQ29sb3IgJiYgaG92ZXJBbnN3ZXJTdHJva2VDb2xvciAhPT0gJ2luaXRpYWwnO1xuICAgIFxuICAgIGxldCBjdXJyZW50U3Ryb2tlQ29sb3IgPSAndHJhbnNwYXJlbnQnO1xuICAgIGxldCBjdXJyZW50U3Ryb2tlV2lkdGggPSAnMnB4JztcbiAgICBsZXQgY3VycmVudEJhY2tncm91bmRDb2xvciA9ICdpbml0aWFsJztcbiAgICBcbiAgICBpZiAoKGhhc1NlbGVjdGVkU3Ryb2tlIHx8IGhhc0hvdmVyU3Ryb2tlKSkge1xuICAgICAgaWYgKGNoZWNrZWQgJiYgaGFzU2VsZWN0ZWRTdHJva2UpIHtcbiAgICAgICAgLy8gc2VsZWN0ZWQgc3RhdGUgdGFrZXMgcHJpb3JpdHkgd2hlbiBzZWxlY3RlZCBzdHJva2UgaXMgY29uZmlndXJlZFxuICAgICAgICBjdXJyZW50U3Ryb2tlQ29sb3IgPSBzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yO1xuICAgICAgICBjdXJyZW50U3Ryb2tlV2lkdGggPSBzZWxlY3RlZEFuc3dlclN0cm9rZVdpZHRoO1xuICAgICAgfSBlbHNlIGlmIChpc0hvdmVyZWQgJiYgIWRpc2FibGVkICYmIGhhc0hvdmVyU3Ryb2tlKSB7XG4gICAgICAgIC8vIGhvdmVyIHN0YXRlIHdoZW4gbm90IHNlbGVjdGVkIGFuZCBub3QgZGlzYWJsZWQsIGFuZCBob3ZlciBzdHJva2UgaXMgY29uZmlndXJlZFxuICAgICAgICBjdXJyZW50U3Ryb2tlQ29sb3IgPSBob3ZlckFuc3dlclN0cm9rZUNvbG9yO1xuICAgICAgICBjdXJyZW50U3Ryb2tlV2lkdGggPSBob3ZlckFuc3dlclN0cm9rZVdpZHRoO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiAoY2hlY2tlZCAmJiBzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvciAmJiBzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvciAhPT0gJ2luaXRpYWwnKSB7XG4gICAgICBjdXJyZW50QmFja2dyb3VuZENvbG9yID0gc2VsZWN0ZWRBbnN3ZXJCYWNrZ3JvdW5kQ29sb3I7XG4gICAgfSBlbHNlIGlmIChpc0hvdmVyZWQgJiYgIWRpc2FibGVkICYmIGhvdmVyQW5zd2VyQmFja2dyb3VuZENvbG9yICYmIGhvdmVyQW5zd2VyQmFja2dyb3VuZENvbG9yICE9PSAnaW5pdGlhbCcpIHtcbiAgICAgIGN1cnJlbnRCYWNrZ3JvdW5kQ29sb3IgPSBob3ZlckFuc3dlckJhY2tncm91bmRDb2xvcjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNTdHJva2UgPSBoYXNTZWxlY3RlZFN0cm9rZSB8fCBoYXNIb3ZlclN0cm9rZTtcbiAgICBjb25zdCBzdHJva2VTdHlsZSA9IGhhc1N0cm9rZSA/IHtcbiAgICAgIGJvcmRlcjogYCR7bm9ybWFsaXplU3Ryb2tlV2lkdGgoY3VycmVudFN0cm9rZVdpZHRoKX0gc29saWQgJHtjdXJyZW50U3Ryb2tlQ29sb3J9YCxcbiAgICAgIGJvcmRlclJhZGl1czogJzhweCcsXG4gICAgfSA6IHt9O1xuXG4gICAgY29uc3Qgbm9Cb3JkZXIgPSBpbmRleCA9PT0gY2hvaWNlc0xlbmd0aCAtIDEgfHwgY2hvaWNlc0xheW91dCAhPT0gJ3ZlcnRpY2FsJyB8fCBoYXNTdHJva2U7XG4gICAgY29uc3QgaG9yaXpvbnRhbExheW91dCA9IGNob2ljZXNMYXlvdXQgPT09ICdob3Jpem9udGFsJztcblxuICAgIGNvbnN0IGNob2ljZUJhY2tncm91bmQgPSBjdXJyZW50QmFja2dyb3VuZENvbG9yICE9PSAnaW5pdGlhbCcgPyBjdXJyZW50QmFja2dyb3VuZENvbG9yIDogJ2luaXRpYWwnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgXG4gICAgICAgIGNsYXNzTmFtZT17Y2hvaWNlQ2xhc3N9IFxuICAgICAgICBrZXk9e2luZGV4fSBcbiAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjaG9pY2VCYWNrZ3JvdW5kLCAuLi5zdHJva2VTdHlsZSB9fVxuICAgICAgICBvbk1vdXNlRW50ZXI9e3RoaXMuaGFuZGxlTW91c2VFbnRlcn1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXt0aGlzLmhhbmRsZU1vdXNlTGVhdmV9XG4gICAgICA+XG4gICAgICAgIDxDaG9pY2VDb250YWluZXIgXG4gICAgICAgICAgY29tcG9uZW50PVwiZGl2XCJcbiAgICAgICAgICBub0JvcmRlcj17bm9Cb3JkZXJ9XG4gICAgICAgICAgaG9yaXpvbnRhbExheW91dD17aG9yaXpvbnRhbExheW91dH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDaG9pY2VJbnB1dCB7Li4uY2hvaWNlUHJvcHN9IC8+XG4gICAgICAgIDwvQ2hvaWNlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5DaG9pY2UucHJvcFR5cGVzID0ge1xuICBjaG9pY2VNb2RlOiBQcm9wVHlwZXMub25lT2YoWydyYWRpbycsICdjaGVja2JveCddKSxcbiAgY2hvaWNlOiBQcm9wVHlwZXMub2JqZWN0LFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25DaG9pY2VDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgaW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIGNob2ljZXNMZW5ndGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIHNob3dDb3JyZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNFdmFsdWF0ZU1vZGU6IFByb3BUeXBlcy5ib29sLFxuICBjaGVja2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgY29ycmVjdG5lc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRpc3BsYXlLZXk6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNob2ljZXNMYXlvdXQ6IFByb3BUeXBlcy5vbmVPZihbJ3ZlcnRpY2FsJywgJ2dyaWQnLCAnaG9yaXpvbnRhbCddKSxcbiAgZ3JpZENvbHVtbnM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNlbGVjdGVkQW5zd2VyQmFja2dyb3VuZENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzZWxlY3RlZEFuc3dlclN0cm9rZVdpZHRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBob3ZlckFuc3dlckJhY2tncm91bmRDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgaG92ZXJBbnN3ZXJTdHJva2VDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgaG92ZXJBbnN3ZXJTdHJva2VXaWR0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdGFnTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNTZWxlY3Rpb25CdXR0b25CZWxvdzogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDaG9pY2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsSUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUksWUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsTUFBTUssZUFBZSxHQUFHLElBQUFDLGNBQU0sRUFBQ0MsWUFBRyxFQUFFO0VBQ2xDQyxpQkFBaUIsRUFBR0MsSUFBSSxJQUFLQSxJQUFJLEtBQUssVUFBVSxJQUFJQSxJQUFJLEtBQUs7QUFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUFFQyxLQUFLO0VBQUVDLFFBQVE7RUFBRUM7QUFBaUIsQ0FBQyxNQUFNO0VBQzdDQyxVQUFVLEVBQUVILEtBQUssQ0FBQ0ksT0FBTyxDQUFDLEdBQUcsQ0FBQztFQUM5QkMsYUFBYSxFQUFFLFFBQVFMLEtBQUssQ0FBQ0ksT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO0VBQ2hERSxXQUFXLEVBQUUsUUFBUU4sS0FBSyxDQUFDSSxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7RUFDOUNHLFlBQVksRUFBRSxRQUFRUCxLQUFLLENBQUNJLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztFQUMvQ0ksWUFBWSxFQUFFUCxRQUFRLEdBQUcsTUFBTSxHQUFHLGFBQWFELEtBQUssQ0FBQ1MsT0FBTyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7RUFDeEUsSUFBSVIsZ0JBQWdCLElBQUk7SUFDdEJLLFlBQVksRUFBRVAsS0FBSyxDQUFDSSxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ2hDLFNBQVMsRUFBRTtNQUNU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
|
|
199
|
+
//# sourceMappingURL=choice.js.map
|
package/lib/choice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Box","_choiceInput","ChoiceContainer","styled","Box","shouldForwardProp","prop","theme","noBorder","horizontalLayout","paddingTop","spacing","paddingBottom","paddingLeft","paddingRight","borderBottom","palette","grey","marginRight","Choice","React","Component","constructor","args","_defineProperty2","default","isHovered","disabled","checked","props","setState","choice","onChoiceChanged","render","index","choicesLength","showCorrect","isEvaluateMode","choiceMode","correctness","displayKey","choicesLayout","gridColumns","isSelectionButtonBelow","selectedAnswerBackgroundColor","selectedAnswerStrokeColor","selectedAnswerStrokeWidth","hoverAnswerBackgroundColor","hoverAnswerStrokeColor","hoverAnswerStrokeWidth","tagName","state","choiceClass","feedback","choiceProps","onChange","normalizeStrokeWidth","width","trimmed","String","trim","test","hasSelectedStroke","hasHoverStroke","currentStrokeColor","currentStrokeWidth","currentBackgroundColor","hasStroke","strokeStyle","border","borderRadius","choiceBackground","createElement","className","key","style","backgroundColor","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","component","exports","propTypes","PropTypes","oneOf","object","bool","isRequired","func","number","string","_default"],"sources":["../src/choice.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Box from '@mui/material/Box';\n\nimport ChoiceInput from './choice-input';\n\nconst ChoiceContainer = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'noBorder' && prop !== 'horizontalLayout',\n})(({ theme, noBorder, horizontalLayout }) => ({\n paddingTop: theme.spacing(2.5),\n paddingBottom: `calc(${theme.spacing(1)} + 2px)`,\n paddingLeft: `calc(${theme.spacing(1)} + 2px)`,\n paddingRight: `calc(${theme.spacing(1)} + 2px)`,\n borderBottom: noBorder ? 'none' : `1px solid ${theme.palette.grey[300]}`,\n ...(horizontalLayout && {\n paddingRight: theme.spacing(2.5),\n '& label': {\n marginRight: theme.spacing(1),\n },\n }),\n}));\n\nexport class Choice extends React.Component {\n static propTypes = {};\n\n state = {\n isHovered: false,\n };\n\n handleMouseEnter = () => {\n const { disabled, checked } = this.props;\n\n if (!disabled && !checked) {\n this.setState({ isHovered: true });\n }\n };\n\n handleMouseLeave = () => {\n this.setState({ isHovered: false });\n };\n\n onChange = (choice) => {\n const { disabled, onChoiceChanged } = this.props;\n\n if (!disabled) {\n onChoiceChanged(choice);\n }\n };\n\n render() {\n const {\n choice,\n index,\n choicesLength,\n showCorrect,\n isEvaluateMode,\n choiceMode,\n disabled,\n checked,\n correctness,\n displayKey,\n choicesLayout,\n gridColumns,\n isSelectionButtonBelow,\n selectedAnswerBackgroundColor,\n selectedAnswerStrokeColor,\n selectedAnswerStrokeWidth,\n hoverAnswerBackgroundColor,\n hoverAnswerStrokeColor,\n hoverAnswerStrokeWidth,\n tagName\n } = this.props;\n \n const { isHovered } = this.state;\n const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');\n\n const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;\n\n const choiceProps = {\n ...choice,\n checked,\n choiceMode,\n disabled,\n feedback,\n correctness,\n displayKey,\n index,\n choicesLayout,\n gridColumns,\n onChange: this.onChange,\n isEvaluateMode,\n isSelectionButtonBelow,\n selectedAnswerStrokeColor,\n selectedAnswerStrokeWidth,\n tagName,\n };\n\n const normalizeStrokeWidth = (width) => {\n if (!width) return '2px'; // default\n const trimmed = String(width).trim();\n \n // add 'px' if the value is a number\n if (/^\\d+(\\.\\d+)?$/.test(trimmed)) {\n return `${trimmed}px`;\n }\n\n return trimmed;\n };\n\n const hasSelectedStroke = selectedAnswerStrokeColor && selectedAnswerStrokeColor !== 'initial';\n const hasHoverStroke = hoverAnswerStrokeColor && hoverAnswerStrokeColor !== 'initial';\n \n let currentStrokeColor = 'transparent';\n let currentStrokeWidth = '2px';\n let currentBackgroundColor = 'initial';\n \n if ((hasSelectedStroke || hasHoverStroke)) {\n if (checked && hasSelectedStroke) {\n // selected state takes priority when selected stroke is configured\n currentStrokeColor = selectedAnswerStrokeColor;\n currentStrokeWidth = selectedAnswerStrokeWidth;\n } else if (isHovered && !disabled && hasHoverStroke) {\n // hover state when not selected and not disabled, and hover stroke is configured\n currentStrokeColor = hoverAnswerStrokeColor;\n currentStrokeWidth = hoverAnswerStrokeWidth;\n }\n }\n \n if (checked && selectedAnswerBackgroundColor && selectedAnswerBackgroundColor !== 'initial') {\n currentBackgroundColor = selectedAnswerBackgroundColor;\n } else if (isHovered && !disabled && hoverAnswerBackgroundColor && hoverAnswerBackgroundColor !== 'initial') {\n currentBackgroundColor = hoverAnswerBackgroundColor;\n }\n\n const hasStroke = hasSelectedStroke || hasHoverStroke;\n const strokeStyle = hasStroke ? {\n border: `${normalizeStrokeWidth(currentStrokeWidth)} solid ${currentStrokeColor}`,\n borderRadius: '8px',\n } : {};\n\n const noBorder = index === choicesLength - 1 || choicesLayout !== 'vertical' || hasStroke;\n const horizontalLayout = choicesLayout === 'horizontal';\n\n const choiceBackground = currentBackgroundColor !== 'initial' ? currentBackgroundColor : 'initial';\n\n return (\n <div \n className={choiceClass} \n key={index} \n style={{ backgroundColor: choiceBackground, ...strokeStyle }}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <ChoiceContainer \n component=\"div\"\n noBorder={noBorder}\n horizontalLayout={horizontalLayout}\n >\n <ChoiceInput {...choiceProps} />\n </ChoiceContainer>\n </div>\n );\n }\n}\n\nChoice.propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n choice: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n onChoiceChanged: PropTypes.func,\n index: PropTypes.number,\n choicesLength: PropTypes.number,\n showCorrect: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n checked: PropTypes.bool,\n correctness: PropTypes.string,\n displayKey: PropTypes.string,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n selectedAnswerBackgroundColor: PropTypes.string,\n selectedAnswerStrokeColor: PropTypes.string,\n selectedAnswerStrokeWidth: PropTypes.string,\n hoverAnswerBackgroundColor: PropTypes.string,\n hoverAnswerStrokeColor: PropTypes.string,\n hoverAnswerStrokeWidth: PropTypes.string,\n tagName: PropTypes.string,\n isSelectionButtonBelow: PropTypes.bool,\n};\n\nexport default Choice;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,YAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,MAAMK,eAAe,GAAG,IAAAC,cAAM,EAACC,YAAG,EAAE;EAClCC,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK,UAAU,IAAIA,IAAI,KAAK;AAC/D,CAAC,CAAC,CAAC,CAAC;EAAEC,KAAK;EAAEC,QAAQ;EAAEC;AAAiB,CAAC,MAAM;EAC7CC,UAAU,EAAEH,KAAK,CAACI,OAAO,CAAC,GAAG,CAAC;EAC9BC,aAAa,EAAE,QAAQL,KAAK,CAACI,OAAO,CAAC,CAAC,CAAC,SAAS;EAChDE,WAAW,EAAE,QAAQN,KAAK,CAACI,OAAO,CAAC,CAAC,CAAC,SAAS;EAC9CG,YAAY,EAAE,QAAQP,KAAK,CAACI,OAAO,CAAC,CAAC,CAAC,SAAS;EAC/CI,YAAY,EAAEP,QAAQ,GAAG,MAAM,GAAG,aAAaD,KAAK,CAACS,OAAO,CAACC,IAAI,CAAC,GAAG,CAAC,EAAE;EACxE,IAAIR,gBAAgB,IAAI;IACtBK,YAAY,EAAEP,KAAK,CAACI,OAAO,CAAC,GAAG,CAAC;IAChC,SAAS,EAAE;MACTO,WAAW,EAAEX,KAAK,CAACI,OAAO,CAAC,CAAC;IAC9B;EACF,CAAC;AACH,CAAC,CAAC,CAAC;AAEI,MAAMQ,MAAM,SAASC,cAAK,CAACC,SAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,iBAGlC;MACNC,SAAS,EAAE;IACb,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,4BAEkB,MAAM;MACvB,MAAM;QAAEE,QAAQ;QAAEC;MAAQ,CAAC,GAAG,IAAI,CAACC,KAAK;MAExC,IAAI,CAACF,QAAQ,IAAI,CAACC,OAAO,EAAE;QACzB,IAAI,CAACE,QAAQ,CAAC;UAAEJ,SAAS,EAAE;QAAK,CAAC,CAAC;MACpC;IACF,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,4BAEkB,MAAM;MACvB,IAAI,CAACK,QAAQ,CAAC;QAAEJ,SAAS,EAAE;MAAM,CAAC,CAAC;IACrC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,oBAEWM,MAAM,IAAK;MACrB,MAAM;QAAEJ,QAAQ;QAAEK;MAAgB,CAAC,GAAG,IAAI,CAACH,KAAK;MAEhD,IAAI,CAACF,QAAQ,EAAE;QACbK,eAAe,CAACD,MAAM,CAAC;MACzB;IACF,CAAC;EAAA;EAEDE,MAAMA,CAAA,EAAG;IACP,MAAM;MACJF,MAAM;MACNG,KAAK;MACLC,aAAa;MACbC,WAAW;MACXC,cAAc;MACdC,UAAU;MACVX,QAAQ;MACRC,OAAO;MACPW,WAAW;MACXC,UAAU;MACVC,aAAa;MACbC,WAAW;MACXC,sBAAsB;MACtBC,6BAA6B;MAC7BC,yBAAyB;MACzBC,yBAAyB;MACzBC,0BAA0B;MAC1BC,sBAAsB;MACtBC,sBAAsB;MACtBC;IACF,CAAC,GAAG,IAAI,CAACrB,KAAK;IAEd,MAAM;MAAEH;IAAU,CAAC,GAAG,IAAI,CAACyB,KAAK;IAChC,MAAMC,WAAW,GAAG,QAAQ,IAAIlB,KAAK,KAAKC,aAAa,GAAG,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE3E,MAAMkB,QAAQ,GAAG,CAAChB,cAAc,IAAID,WAAW,GAAG,EAAE,GAAGL,MAAM,CAACsB,QAAQ;IAEtE,MAAMC,WAAW,GAAG;MAClB,GAAGvB,MAAM;MACTH,OAAO;MACPU,UAAU;MACVX,QAAQ;MACR0B,QAAQ;MACRd,WAAW;MACXC,UAAU;MACVN,KAAK;MACLO,aAAa;MACbC,WAAW;MACXa,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBlB,cAAc;MACdM,sBAAsB;MACtBE,yBAAyB;MACzBC,yBAAyB;MACzBI;IACF,CAAC;IAED,MAAMM,oBAAoB,GAAIC,KAAK,IAAK;MACtC,IAAI,CAACA,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC;MAC1B,MAAMC,OAAO,GAAGC,MAAM,CAACF,KAAK,CAAC,CAACG,IAAI,CAAC,CAAC;;MAEpC;MACA,IAAI,eAAe,CAACC,IAAI,CAACH,OAAO,CAAC,EAAE;QACjC,OAAO,GAAGA,OAAO,IAAI;MACvB;MAEA,OAAOA,OAAO;IAChB,CAAC;IAED,MAAMI,iBAAiB,GAAGjB,yBAAyB,IAAIA,yBAAyB,KAAK,SAAS;IAC9F,MAAMkB,cAAc,GAAGf,sBAAsB,IAAIA,sBAAsB,KAAK,SAAS;IAErF,IAAIgB,kBAAkB,GAAG,aAAa;IACtC,IAAIC,kBAAkB,GAAG,KAAK;IAC9B,IAAIC,sBAAsB,GAAG,SAAS;IAEtC,IAAKJ,iBAAiB,IAAIC,cAAc,EAAG;MACzC,IAAInC,OAAO,IAAIkC,iBAAiB,EAAE;QAChC;QACAE,kBAAkB,GAAGnB,yBAAyB;QAC9CoB,kBAAkB,GAAGnB,yBAAyB;MAChD,CAAC,MAAM,IAAIpB,SAAS,IAAI,CAACC,QAAQ,IAAIoC,cAAc,EAAE;QACnD;QACAC,kBAAkB,GAAGhB,sBAAsB;QAC3CiB,kBAAkB,GAAGhB,sBAAsB;MAC7C;IACF;IAEA,IAAIrB,OAAO,IAAIgB,6BAA6B,IAAIA,6BAA6B,KAAK,SAAS,EAAE;MAC3FsB,sBAAsB,GAAGtB,6BAA6B;IACxD,CAAC,MAAM,IAAIlB,SAAS,IAAI,CAACC,QAAQ,IAAIoB,0BAA0B,IAAIA,0BAA0B,KAAK,SAAS,EAAE;MAC3GmB,sBAAsB,GAAGnB,0BAA0B;IACrD;IAEA,MAAMoB,SAAS,GAAGL,iBAAiB,IAAIC,cAAc;IACrD,MAAMK,WAAW,GAAGD,SAAS,GAAG;MAC9BE,MAAM,EAAE,GAAGb,oBAAoB,CAACS,kBAAkB,CAAC,UAAUD,kBAAkB,EAAE;MACjFM,YAAY,EAAE;IAChB,CAAC,GAAG,CAAC,CAAC;IAEN,MAAM9D,QAAQ,GAAG0B,KAAK,KAAKC,aAAa,GAAG,CAAC,IAAIM,aAAa,KAAK,UAAU,IAAI0B,SAAS;IACzF,MAAM1D,gBAAgB,GAAGgC,aAAa,KAAK,YAAY;IAEvD,MAAM8B,gBAAgB,GAAGL,sBAAsB,KAAK,SAAS,GAAGA,sBAAsB,GAAG,SAAS;IAElG,oBACEvE,MAAA,CAAA8B,OAAA,CAAA+C,aAAA;MACEC,SAAS,EAAErB,WAAY;MACvBsB,GAAG,EAAExC,KAAM;MACXyC,KAAK,EAAE;QAAEC,eAAe,EAAEL,gBAAgB;QAAE,GAAGH;MAAY,CAAE;MAC7DS,YAAY,EAAE,IAAI,CAACC,gBAAiB;MACpCC,YAAY,EAAE,IAAI,CAACC;IAAiB,gBAEpCrF,MAAA,CAAA8B,OAAA,CAAA+C,aAAA,CAACtE,eAAe;MACd+E,SAAS,EAAC,KAAK;MACfzE,QAAQ,EAAEA,QAAS;MACnBC,gBAAgB,EAAEA;IAAiB,gBAEnCd,MAAA,CAAA8B,OAAA,CAAA+C,aAAA,CAACvE,YAAA,CAAAwB,OAAW,EAAK6B,WAAc,CAChB,CACd,CAAC;EAEV;AACF;AAAC4B,OAAA,CAAA/D,MAAA,GAAAA,MAAA;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EA7IYN,MAAM,eACE,CAAC,CAAC;AA8IvBA,MAAM,CAACgE,SAAS,GAAG;EACjB7C,UAAU,EAAE8C,kBAAS,CAACC,KAAK,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;EAClDtD,MAAM,EAAEqD,kBAAS,CAACE,MAAM;EACxB3D,QAAQ,EAAEyD,kBAAS,CAACG,IAAI,CAACC,UAAU;EACnCxD,eAAe,EAAEoD,kBAAS,CAACK,IAAI;EAC/BvD,KAAK,EAAEkD,kBAAS,CAACM,MAAM;EACvBvD,aAAa,EAAEiD,kBAAS,CAACM,MAAM;EAC/BtD,WAAW,EAAEgD,kBAAS,CAACG,IAAI;EAC3BlD,cAAc,EAAE+C,kBAAS,CAACG,IAAI;EAC9B3D,OAAO,EAAEwD,kBAAS,CAACG,IAAI;EACvBhD,WAAW,EAAE6C,kBAAS,CAACO,MAAM;EAC7BnD,UAAU,EAAE4C,kBAAS,CAACO,MAAM;EAC5BlD,aAAa,EAAE2C,kBAAS,CAACC,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;EAClE3C,WAAW,EAAE0C,kBAAS,CAACO,MAAM;EAC7B/C,6BAA6B,EAAEwC,kBAAS,CAACO,MAAM;EAC/C9C,yBAAyB,EAAEuC,kBAAS,CAACO,MAAM;EAC3C7C,yBAAyB,EAAEsC,kBAAS,CAACO,MAAM;EAC3C5C,0BAA0B,EAAEqC,kBAAS,CAACO,MAAM;EAC5C3C,sBAAsB,EAAEoC,kBAAS,CAACO,MAAM;EACxC1C,sBAAsB,EAAEmC,kBAAS,CAACO,MAAM;EACxCzC,OAAO,EAAEkC,kBAAS,CAACO,MAAM;EACzBhD,sBAAsB,EAAEyC,kBAAS,CAACG;AACpC,CAAC;AAAC,IAAAK,QAAA,GAAAV,OAAA,CAAAzD,OAAA,GAEaN,MAAM","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"choice.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Box","_renderUi","_choiceInput","ChoiceContainer","styled","Box","shouldForwardProp","prop","theme","noBorder","horizontalLayout","paddingTop","spacing","paddingBottom","paddingLeft","paddingRight","borderBottom","color","border","marginRight","Choice","React","Component","constructor","args","_defineProperty2","default","isHovered","disabled","checked","props","setState","choice","onChoiceChanged","render","index","choicesLength","showCorrect","isEvaluateMode","choiceMode","correctness","displayKey","choicesLayout","gridColumns","isSelectionButtonBelow","selectedAnswerBackgroundColor","selectedAnswerStrokeColor","selectedAnswerStrokeWidth","hoverAnswerBackgroundColor","hoverAnswerStrokeColor","hoverAnswerStrokeWidth","tagName","state","choiceClass","feedback","choiceProps","onChange","normalizeStrokeWidth","width","trimmed","String","trim","test","hasSelectedStroke","hasHoverStroke","currentStrokeColor","currentStrokeWidth","currentBackgroundColor","hasStroke","strokeStyle","borderRadius","choiceBackground","createElement","className","key","style","backgroundColor","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","component","exports","propTypes","PropTypes","oneOf","object","bool","isRequired","func","number","string","_default"],"sources":["../src/choice.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Box from '@mui/material/Box';\nimport { color } from '@pie-lib/render-ui';\n\nimport ChoiceInput from './choice-input';\n\nconst ChoiceContainer = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'noBorder' && prop !== 'horizontalLayout',\n})(({ theme, noBorder, horizontalLayout }) => ({\n paddingTop: theme.spacing(2.5),\n paddingBottom: `calc(${theme.spacing(1)} + 2px)`,\n paddingLeft: `calc(${theme.spacing(1)} + 2px)`,\n paddingRight: `calc(${theme.spacing(1)} + 2px)`,\n /*\n * The separator between answer choices. MUI's grey[300] does not follow `--pie-*`,\n * so it stayed #e0e0e0 on every scheme -- about 1.1:1 against black-on-rose's own\n * background, which is where George reported it. `--pie-border` is stepped per\n * scheme and holds at least 3.23:1 everywhere.\n */\n borderBottom: noBorder ? 'none' : `1px solid ${color.border()}`,\n ...(horizontalLayout && {\n paddingRight: theme.spacing(2.5),\n '& label': {\n marginRight: theme.spacing(1),\n },\n }),\n}));\n\nexport class Choice extends React.Component {\n static propTypes = {};\n\n state = {\n isHovered: false,\n };\n\n handleMouseEnter = () => {\n const { disabled, checked } = this.props;\n\n if (!disabled && !checked) {\n this.setState({ isHovered: true });\n }\n };\n\n handleMouseLeave = () => {\n this.setState({ isHovered: false });\n };\n\n onChange = (choice) => {\n const { disabled, onChoiceChanged } = this.props;\n\n if (!disabled) {\n onChoiceChanged(choice);\n }\n };\n\n render() {\n const {\n choice,\n index,\n choicesLength,\n showCorrect,\n isEvaluateMode,\n choiceMode,\n disabled,\n checked,\n correctness,\n displayKey,\n choicesLayout,\n gridColumns,\n isSelectionButtonBelow,\n selectedAnswerBackgroundColor,\n selectedAnswerStrokeColor,\n selectedAnswerStrokeWidth,\n hoverAnswerBackgroundColor,\n hoverAnswerStrokeColor,\n hoverAnswerStrokeWidth,\n tagName\n } = this.props;\n \n const { isHovered } = this.state;\n const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');\n\n const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;\n\n const choiceProps = {\n ...choice,\n checked,\n choiceMode,\n disabled,\n feedback,\n correctness,\n displayKey,\n index,\n choicesLayout,\n gridColumns,\n onChange: this.onChange,\n isEvaluateMode,\n isSelectionButtonBelow,\n selectedAnswerStrokeColor,\n selectedAnswerStrokeWidth,\n tagName,\n };\n\n const normalizeStrokeWidth = (width) => {\n if (!width) return '2px'; // default\n const trimmed = String(width).trim();\n \n // add 'px' if the value is a number\n if (/^\\d+(\\.\\d+)?$/.test(trimmed)) {\n return `${trimmed}px`;\n }\n\n return trimmed;\n };\n\n const hasSelectedStroke = selectedAnswerStrokeColor && selectedAnswerStrokeColor !== 'initial';\n const hasHoverStroke = hoverAnswerStrokeColor && hoverAnswerStrokeColor !== 'initial';\n \n let currentStrokeColor = 'transparent';\n let currentStrokeWidth = '2px';\n let currentBackgroundColor = 'initial';\n \n if ((hasSelectedStroke || hasHoverStroke)) {\n if (checked && hasSelectedStroke) {\n // selected state takes priority when selected stroke is configured\n currentStrokeColor = selectedAnswerStrokeColor;\n currentStrokeWidth = selectedAnswerStrokeWidth;\n } else if (isHovered && !disabled && hasHoverStroke) {\n // hover state when not selected and not disabled, and hover stroke is configured\n currentStrokeColor = hoverAnswerStrokeColor;\n currentStrokeWidth = hoverAnswerStrokeWidth;\n }\n }\n \n if (checked && selectedAnswerBackgroundColor && selectedAnswerBackgroundColor !== 'initial') {\n currentBackgroundColor = selectedAnswerBackgroundColor;\n } else if (isHovered && !disabled && hoverAnswerBackgroundColor && hoverAnswerBackgroundColor !== 'initial') {\n currentBackgroundColor = hoverAnswerBackgroundColor;\n }\n\n const hasStroke = hasSelectedStroke || hasHoverStroke;\n const strokeStyle = hasStroke ? {\n border: `${normalizeStrokeWidth(currentStrokeWidth)} solid ${currentStrokeColor}`,\n borderRadius: '8px',\n } : {};\n\n const noBorder = index === choicesLength - 1 || choicesLayout !== 'vertical' || hasStroke;\n const horizontalLayout = choicesLayout === 'horizontal';\n\n const choiceBackground = currentBackgroundColor !== 'initial' ? currentBackgroundColor : 'initial';\n\n return (\n <div \n className={choiceClass} \n key={index} \n style={{ backgroundColor: choiceBackground, ...strokeStyle }}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <ChoiceContainer \n component=\"div\"\n noBorder={noBorder}\n horizontalLayout={horizontalLayout}\n >\n <ChoiceInput {...choiceProps} />\n </ChoiceContainer>\n </div>\n );\n }\n}\n\nChoice.propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n choice: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n onChoiceChanged: PropTypes.func,\n index: PropTypes.number,\n choicesLength: PropTypes.number,\n showCorrect: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n checked: PropTypes.bool,\n correctness: PropTypes.string,\n displayKey: PropTypes.string,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n selectedAnswerBackgroundColor: PropTypes.string,\n selectedAnswerStrokeColor: PropTypes.string,\n selectedAnswerStrokeWidth: PropTypes.string,\n hoverAnswerBackgroundColor: PropTypes.string,\n hoverAnswerStrokeColor: PropTypes.string,\n hoverAnswerStrokeWidth: PropTypes.string,\n tagName: PropTypes.string,\n isSelectionButtonBelow: PropTypes.bool,\n};\n\nexport default Choice;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/feedback-tick.js
CHANGED
|
@@ -131,4 +131,4 @@ class FeedbackTick extends _react.default.Component {
|
|
|
131
131
|
correctness: _propTypes.default.string
|
|
132
132
|
});
|
|
133
133
|
var _default = exports.default = FeedbackTick;
|
|
134
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdFRyYW5zaXRpb25Hcm91cCIsIl9zdHlsZXMiLCJfQm94IiwiX3Byb3BUeXBlcyIsIl9yZW5kZXJVaSIsIkZlZWRiYWNrVGlja0NvbnRhaW5lciIsInN0eWxlZCIsIkJveCIsIndpZHRoIiwiaGVpZ2h0IiwicG9zaXRpb24iLCJkaXNwbGF5IiwidmVydGljYWxBbGlnbiIsIlN0eWxlZFNWRyIsImZpbGwiLCJjb2xvciIsImluY29ycmVjdCIsImNvcnJlY3QiLCJUcmFuc2l0aW9uV3JhcHBlciIsIm9wYWNpdHkiLCJsZWZ0IiwidHJhbnNpdGlvbiIsIkZlZWRiYWNrVGljayIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsImtleSIsInByZXNlcnZlQXNwZWN0UmF0aW8iLCJ4IiwieSIsInZpZXdCb3giLCJzdHlsZSIsImVuYWJsZUJhY2tncm91bmQiLCJ0cmFuc2Zvcm0iLCJjbGFzc05hbWUiLCJ2ZXJzaW9uIiwicG9pbnRzIiwibm9kZVJlZiIsImNyZWF0ZVJlZiIsInJlbmRlciIsImNvcnJlY3RuZXNzIiwiaWNvbiIsImdldEluY29ycmVjdEljb24iLCJnZXRDb3JyZWN0SWNvbiIsIlRyYW5zaXRpb25Hcm91cCIsIkNTU1RyYW5zaXRpb24iLCJjbGFzc05hbWVzIiwiZW50ZXIiLCJlbnRlckFjdGl2ZSIsImV4aXQiLCJleGl0QWN0aXZlIiwidGltZW91dCIsInJlZiIsIlByb3BUeXBlcyIsInN0cmluZyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9mZWVkYmFjay10aWNrLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVHJhbnNpdGlvbkdyb3VwLCBDU1NUcmFuc2l0aW9uIH0gZnJvbSAncmVhY3QtdHJhbnNpdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgQm94IGZyb20gJ0BtdWkvbWF0ZXJpYWwvQm94JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5cbmNvbnN0IEZlZWRiYWNrVGlja0NvbnRhaW5lciA9IHN0eWxlZChCb3gpKHtcbiAgd2lkdGg6ICczM3B4JyxcbiAgaGVpZ2h0OiAnMzNweCcsXG4gICcmIHN2Zyc6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICB3aWR0aDogJzMzcHgnLFxuICAgIGhlaWdodDogJzMzcHgnLFxuICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAgICcmIGhpZGUnOiB7XG4gICAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgfSxcbiAgfSxcbn0pO1xuXG5jb25zdCBTdHlsZWRTVkcgPSBzdHlsZWQoJ3N2ZycpKHtcbiAgJyYgLmluY29ycmVjdC1maWxsJzoge1xuICAgIGZpbGw6IGB2YXIoLS1mZWVkYmFjay1pbmNvcnJlY3QtYmctY29sb3IsICR7Y29sb3IuaW5jb3JyZWN0KCl9KWAsXG4gIH0sXG4gICcmIC5jb3JyZWN0LWZpbGwnOiB7XG4gICAgZmlsbDogYHZhcigtLWZlZWRiYWNrLWNvcnJlY3QtYmctY29sb3IsICR7Y29sb3IuY29ycmVjdCgpfSlgLFxuICB9LFxufSk7XG5cbmNvbnN0IFRyYW5zaXRpb25XcmFwcGVyID0gc3R5bGVkKCdkaXYnKSh7XG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAnJi5mZWVkYmFjay10aWNrLWVudGVyJzoge1xuICAgIG9wYWNpdHk6ICcwJyxcbiAgICBsZWZ0OiAnLTUwcHgnLFxuICB9LFxuICAnJi5mZWVkYmFjay10aWNrLWVudGVyLWFjdGl2ZSc6IHtcbiAgICBvcGFjaXR5OiAnMScsXG4gICAgbGVmdDogJzBweCcsXG4gICAgdHJhbnNpdGlvbjogJ2xlZnQgNTAwbXMgZWFzZS1pbiAyMDBtcywgb3BhY2l0eSA1MDBtcyBsaW5lYXIgMjAwbXMnLFxuICB9LFxuICAnJi5mZWVkYmFjay10aWNrLWV4aXQnOiB7XG4gICAgb3BhY2l0eTogJzEnLFxuICAgIGxlZnQ6ICcwcHgnLFxuICB9LFxuICAnJi5mZWVkYmFjay10aWNrLWV4aXQtYWN0aXZlJzoge1xuICAgIG9wYWNpdHk6ICcwJyxcbiAgICBsZWZ0OiAnLTUwcHgnLFxuICAgIHRyYW5zaXRpb246ICdsZWZ0IDMwMG1zIGVhc2UtaW4sIG9wYWNpdHkgMzAwbXMnLFxuICB9LFxufSk7XG5cbmNsYXNzIEZlZWRiYWNrVGljayBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY29ycmVjdG5lc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5ub2RlUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gIH1cblxuICBnZXRJbmNvcnJlY3RJY29uID0gKCkgPT4gKFxuICAgIDxTdHlsZWRTVkdcbiAgICAgIGtleT1cIjFcIlxuICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaW5ZTWluIG1lZXRcIlxuICAgICAgeD1cIjBweFwiXG4gICAgICB5PVwiMHB4XCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgNDQgNDBcIlxuICAgICAgc3R5bGU9e3sgZW5hYmxlQmFja2dyb3VuZDogJ25ldyAwIDAgNDQgNDAnIH19XG4gICAgPlxuICAgICAgPGc+XG4gICAgICAgIDxyZWN0XG4gICAgICAgICAgeD1cIjExXCJcbiAgICAgICAgICB5PVwiMTcuM1wiXG4gICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KDAuNzA3MSAtMC43MDcxIDAuNzA3MSAwLjcwNzEgLTcuODUyIDE5LjI1MDcpXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJpbmNvcnJlY3QtZmlsbFwiXG4gICAgICAgICAgd2lkdGg9XCIxNi42XCJcbiAgICAgICAgICBoZWlnaHQ9XCIzLjdcIlxuICAgICAgICAvPlxuICAgICAgICA8cmVjdFxuICAgICAgICAgIHg9XCIxNy40XCJcbiAgICAgICAgICB5PVwiMTAuN1wiXG4gICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KDAuNzA3MSAtMC43MDcxIDAuNzA3MSAwLjcwNzEgLTcuODE3NSAxOS4yMDkpXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJpbmNvcnJlY3QtZmlsbFwiXG4gICAgICAgICAgd2lkdGg9XCIzLjdcIlxuICAgICAgICAgIGhlaWdodD1cIjE2LjZcIlxuICAgICAgICAvPlxuICAgICAgPC9nPlxuICAgIDwvU3R5bGVkU1ZHPlxuICApO1xuXG4gIGdldENvcnJlY3RJY29uID0gKCkgPT4gKFxuICAgIDxTdHlsZWRTVkdcbiAgICAgIGtleT1cIjJcIlxuICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaW5ZTWluIG1lZXRcIlxuICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICB4PVwiMHB4XCJcbiAgICAgIHk9XCIwcHhcIlxuICAgICAgdmlld0JveD1cIjAgMCA0NCA0MFwiXG4gICAgICBzdHlsZT17eyBlbmFibGVCYWNrZ3JvdW5kOiAnbmV3IDAgMCA0NCA0MCcgfX1cbiAgICA+XG4gICAgICA8cG9seWdvblxuICAgICAgICBjbGFzc05hbWU9XCJjb3JyZWN0LWZpbGxcIlxuICAgICAgICBwb2ludHM9XCIxOS4xLDI4LjYgMTEuOCwyMi4zIDE0LjQsMTkuMiAxNy45LDIyLjEgMjMuOSwxMS40IDI3LjUsMTMuNFwiXG4gICAgICAvPlxuICAgIDwvU3R5bGVkU1ZHPlxuICApO1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNvcnJlY3RuZXNzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgaWNvbiA9ICgoKSA9PiB7XG4gICAgICBpZiAoY29ycmVjdG5lc3MgPT09ICdpbmNvcnJlY3QnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEluY29ycmVjdEljb24oKTtcbiAgICAgIH0gZWxzZSBpZiAoY29ycmVjdG5lc3MgPT09ICdjb3JyZWN0Jykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb3JyZWN0SWNvbigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSkoKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RmVlZGJhY2tUaWNrQ29udGFpbmVyPlxuICAgICAgICA8VHJhbnNpdGlvbkdyb3VwPlxuICAgICAgICAgIHtjb3JyZWN0bmVzcyAmJiAoXG4gICAgICAgICAgICA8Q1NTVHJhbnNpdGlvblxuICAgICAgICAgICAgICBub2RlUmVmPXt0aGlzLm5vZGVSZWZ9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZXM9e3tcbiAgICAgICAgICAgICAgICBlbnRlcjogJ2ZlZWRiYWNrLXRpY2stZW50ZXInLFxuICAgICAgICAgICAgICAgIGVudGVyQWN0aXZlOiAnZmVlZGJhY2stdGljay1lbnRlci1hY3RpdmUnLFxuICAgICAgICAgICAgICAgIGV4aXQ6ICdmZWVkYmFjay10aWNrLWV4aXQnLFxuICAgICAgICAgICAgICAgIGV4aXRBY3RpdmU6ICdmZWVkYmFjay10aWNrLWV4aXQtYWN0aXZlJyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdGltZW91dD17eyBlbnRlcjogNzAwLCBleGl0OiAzMDAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFRyYW5zaXRpb25XcmFwcGVyIHJlZj17dGhpcy5ub2RlUmVmfT57aWNvbn08L1RyYW5zaXRpb25XcmFwcGVyPlxuICAgICAgICAgICAgPC9DU1NUcmFuc2l0aW9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvVHJhbnNpdGlvbkdyb3VwPlxuICAgICAgPC9GZWVkYmFja1RpY2tDb250YWluZXI+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBGZWVkYmFja1RpY2s7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMscUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLElBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUVBLE1BQU1NLHFCQUFxQixHQUFHLElBQUFDLGNBQU0sRUFBQ0MsWUFBRyxDQUFDLENBQUM7RUFDeENDLEtBQUssRUFBRSxNQUFNO0VBQ2JDLE1BQU0sRUFBRSxNQUFNO0VBQ2QsT0FBTyxFQUFFO0lBQ1BDLFFBQVEsRUFBRSxVQUFVO0lBQ3BCQyxPQUFPLEVBQUUsY0FBYztJQUN2QkgsS0FBSyxFQUFFLE1BQU07SUFDYkMsTUFBTSxFQUFFLE1BQU07SUFDZEcsYUFBYSxFQUFFLFFBQVE7SUFDdkIsUUFBUSxFQUFFO01BQ1JELE9BQU8sRUFBRTtJQUNYO0VBQ0Y7QUFDRixDQUFDLENBQUM7QUFFRixNQUFNRSxTQUFTLEdBQUcsSUFBQVAsY0FBTSxFQUFDLEtBQUssQ0FBQyxDQUFDO0VBQzlCLG1CQUFtQixFQUFFO0lBQ25CUSxJQUFJLEVBQUUsc0NBQXNDQyxlQUFLLENBQUNDLFNBQVMsQ0FBQyxDQUFDO0VBQy9ELENBQUM7RUFDRCxpQkFBaUIsRUFBRTtJQUNqQkYsSUFBSSxFQUFFLG9DQUFvQ0MsZUFBSyxDQUFDRSxPQUFPLENBQUMsQ0FBQztFQUMzRDtBQUNGLENBQUMsQ0FBQztBQUVGLE1BQU1DLGlCQUFpQixHQUFHLElBQUFaLGNBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQztFQUN0Q0ksUUFBUSxFQUFFLFVBQVU7RUFDcEIsdUJBQXVCLEVBQUU7SUFDdkJTLE9BQU8sRUFBRSxHQUFHO0lBQ1pDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRCw4QkFBOEIsRUFBRTtJQUM5QkQsT0FBTyxFQUFFLEdBQUc7SUFDWkMsSUFBSSxFQUFFLEtBQUs7SUFDWEMsVUFBVSxFQUFFO0VBQ2QsQ0FBQztFQUNELHNCQUFzQixFQUFFO0lBQ3RCRixPQUFPLEVBQUUsR0FBRztJQUNaQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0QsNkJBQTZCLEVBQUU7SUFDN0JELE9BQU8sRUFBRSxHQUFHO0lBQ1pDLElBQUksRUFBRSxPQUFPO0lBQ2JDLFVBQVUsRUFBRTtFQUNkO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsTUFBTUMsWUFBWSxTQUFTQyxjQUFLLENBQUNDLFNBQVMsQ0FBQztFQUt6Q0MsV0FBV0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQ2pCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQUMsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSw0QkFJSSxtQkFDakIvQixNQUFBLENBQUErQixPQUFBLENBQUFDLGFBQUEsQ0FBQ2hCLFNBQVM7TUFDUmlCLEdBQUcsRUFBQyxHQUFHO01BQ1BDLG1CQUFtQixFQUFDLGVBQWU7TUFDbkNDLENBQUMsRUFBQyxLQUFLO01BQ1BDLENBQUMsRUFBQyxLQUFLO01BQ1BDLE9BQU8sRUFBQyxXQUFXO01BQ25CQyxLQUFLLEVBQUU7UUFBRUMsZ0JBQWdCLEVBQUU7TUFBZ0I7SUFBRSxnQkFFN0N2QyxNQUFBLENBQUErQixPQUFBLENBQUFDLGFBQUEseUJBQ0VoQyxNQUFBLENBQUErQixPQUFBLENBQUFDLGFBQUE7TUFDRUcsQ0FBQyxFQUFDLElBQUk7TUFDTkMsQ0FBQyxFQUFDLE1BQU07TUFDUkksU0FBUyxFQUFDLHFEQUFxRDtNQUMvREMsU0FBUyxFQUFDLGdCQUFnQjtNQUMxQjlCLEtBQUssRUFBQyxNQUFNO01BQ1pDLE1BQU0sRUFBQztJQUFLLENBQ2IsQ0FBQyxlQUNGWixNQUFBLENBQUErQixPQUFBLENBQUFDLGFBQUE7TUFDRUcsQ0FBQyxFQUFDLE1BQU07TUFDUkMsQ0FBQyxFQUFDLE1BQU07TUFDUkksU0FBUyxFQUFDLHFEQUFxRDtNQUMvREMsU0FBUyxFQUFDLGdCQUFnQjtNQUMxQjlCLEtBQUssRUFBQyxLQUFLO01BQ1hDLE1BQU0sRUFBQztJQUFNLENBQ2QsQ0FDQSxDQUNNLENBQ1o7SUFBQSxJQUFBa0IsZ0JBQUEsQ0FBQUMsT0FBQSwwQkFFZ0IsbUJBQ2YvQixNQUFBLENBQUErQixPQUFBLENBQUFDLGFBQUEsQ0FBQ2hCLFNBQVM7TUFDUmlCLEdBQUcsRUFBQyxHQUFHO01BQ1BDLG1CQUFtQixFQUFDLGVBQWU7TUFDbkNRLE9BQU8sRUFBQyxLQUFLO01BQ2JQLENBQUMsRUFBQyxLQUFLO01BQ1BDLENBQUMsRUFBQyxLQUFLO01BQ1BDLE9BQU8sRUFBQyxXQUFXO01BQ25CQyxLQUFLLEVBQUU7UUFBRUMsZ0JBQWdCLEVBQUU7TUFBZ0I7SUFBRSxnQkFFN0N2QyxNQUFBLENBQUErQixPQUFBLENBQUFDLGFBQUE7TUFDRVMsU0FBUyxFQUFDLGNBQWM7TUFDeEJFLE1BQU0sRUFBQztJQUE2RCxDQUNyRSxDQUNRLENBQ1o7SUFoREMsSUFBSSxDQUFDQyxPQUFPLGdCQUFHbEIsY0FBSyxDQUFDbUIsU0FBUyxDQUFDLENBQUM7RUFDbEM7RUFpREFDLE1BQU1BLENBQUEsRUFBRztJQUNQLE1BQU07TUFBRUM7SUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDbEIsS0FBSztJQUVsQyxNQUFNbUIsSUFBSSxHQUFHLENBQUMsTUFBTTtNQUNsQixJQUFJRCxXQUFXLEtBQUssV0FBVyxFQUFFO1FBQy9CLE9BQU8sSUFBSSxDQUFDRSxnQkFBZ0IsQ0FBQyxDQUFDO01BQ2hDLENBQUMsTUFBTSxJQUFJRixXQUFXLEtBQUssU0FBUyxFQUFFO1FBQ3BDLE9BQU8sSUFBSSxDQUFDRyxjQUFjLENBQUMsQ0FBQztNQUM5QjtNQUNBLE9BQU8sSUFBSTtJQUNiLENBQUMsRUFBRSxDQUFDO0lBRUosb0JBQ0VsRCxNQUFBLENBQUErQixPQUFBLENBQUFDLGFBQUEsQ0FBQ3hCLHFCQUFxQixxQkFDcEJSLE1BQUEsQ0FBQStCLE9BQUEsQ0FBQUMsYUFBQSxDQUFDN0IscUJBQUEsQ0FBQWdELGVBQWUsUUFDYkosV0FBVyxpQkFDVi9DLE1BQUEsQ0FBQStCLE9BQUEsQ0FBQUMsYUFBQSxDQUFDN0IscUJBQUEsQ0FBQWlELGFBQWE7TUFDWlIsT0FBTyxFQUFFLElBQUksQ0FBQ0EsT0FBUTtNQUN0QlMsVUFBVSxFQUFFO1FBQ1ZDLEtBQUssRUFBRSxxQkFBcUI7UUFDNUJDLFdBQVcsRUFBRSw0QkFBNEI7UUFDekNDLElBQUksRUFBRSxvQkFBb0I7UUFDMUJDLFVBQVUsRUFBRTtNQUNkLENBQUU7TUFDRkMsT0FBTyxFQUFFO1FBQUVKLEtBQUssRUFBRSxHQUFHO1FBQUVFLElBQUksRUFBRTtNQUFJO0lBQUUsZ0JBRW5DeEQsTUFBQSxDQUFBK0IsT0FBQSxDQUFBQyxhQUFBLENBQUNYLGlCQUFpQjtNQUFDc0MsR0FBRyxFQUFFLElBQUksQ0FBQ2Y7SUFBUSxHQUFFSSxJQUF3QixDQUNsRCxDQUVGLENBQ0ksQ0FBQztFQUU1QjtBQUNGO0FBQUMsSUFBQWxCLGdCQUFBLENBQUFDLE9BQUEsRUExRktOLFlBQVksZUFDRztFQUNqQnNCLFdBQVcsRUFBRWEsa0JBQVMsQ0FBQ0M7QUFDekIsQ0FBQztBQUFBLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxDQUFBaEMsT0FBQSxHQXlGWU4sWUFBWSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
134
|
+
//# sourceMappingURL=feedback-tick.js.map
|
package/lib/index.js
CHANGED
|
@@ -27,7 +27,7 @@ const isComplete = (session, model, audioComplete, elementContext) => {
|
|
|
27
27
|
if (autoplayAudioEnabled && completeAudioEnabled && !audioComplete) {
|
|
28
28
|
if (elementContext) {
|
|
29
29
|
const audio = elementContext.querySelector('audio');
|
|
30
|
-
const isInsidePrompt = audio && audio.closest('
|
|
30
|
+
const isInsidePrompt = audio && audio.closest('.preview-prompt');
|
|
31
31
|
|
|
32
32
|
// only require audio completion if audio exists and is inside the prompt
|
|
33
33
|
if (audio && isInsidePrompt) {
|
|
@@ -257,7 +257,7 @@ class MultipleChoice extends HTMLElement {
|
|
|
257
257
|
if (mutation.type === 'childList') {
|
|
258
258
|
if (this._audioInitialized) return;
|
|
259
259
|
const audio = this.querySelector('audio');
|
|
260
|
-
const isInsidePrompt = audio && audio.closest('
|
|
260
|
+
const isInsidePrompt = audio && audio.closest('.preview-prompt');
|
|
261
261
|
if (!this._model) return;
|
|
262
262
|
if (!this._model.autoplayAudioEnabled) return;
|
|
263
263
|
if (audio && !isInsidePrompt) return;
|
|
@@ -402,4 +402,4 @@ class MultipleChoice extends HTMLElement {
|
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
404
|
exports.default = MultipleChoice;
|
|
405
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWFpbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2NsaWVudCIsIl9sb2Rhc2hFcyIsIl9kZWJ1ZyIsIl9waWVQbGF5ZXJFdmVudHMiLCJfbWF0aFJlbmRlcmluZyIsIl9yZW5kZXJVaSIsIl9zZXNzaW9uVXBkYXRlciIsIl91dGlscyIsImxvZyIsImRlYnVnIiwiaXNDb21wbGV0ZSIsInNlc3Npb24iLCJtb2RlbCIsImF1ZGlvQ29tcGxldGUiLCJlbGVtZW50Q29udGV4dCIsImF1dG9wbGF5QXVkaW9FbmFibGVkIiwiY29tcGxldGVBdWRpb0VuYWJsZWQiLCJhdWRpbyIsInF1ZXJ5U2VsZWN0b3IiLCJpc0luc2lkZVByb21wdCIsImNsb3Nlc3QiLCJ2YWx1ZSIsImNob2ljZU1vZGUiLCJtaW5TZWxlY3Rpb25zIiwibWF4U2VsZWN0aW9ucyIsInNlbGVjdGlvbnMiLCJsZW5ndGgiLCJleGNlZWRzTWF4U2VsZWN0aW9ucyIsImV4cG9ydHMiLCJnZXRQbGF5ZXJBdHRyaWJ1dGVzIiwiZWxlbWVudCIsInBsYXllciIsImJhc2VIZWFkaW5nTGV2ZWwiLCJ1bmRlZmluZWQiLCJpbmNsdWRlU3JIZWFkaW5nIiwiZ2V0UmF3IiwiY2FtZWxDYXNlTmFtZSIsImh5cGhlbmF0ZWROYW1lIiwiYWxsTG93ZXJOYW1lIiwicmF3IiwiZ2V0QXR0cmlidXRlIiwibGV2ZWxSYXciLCJsZXZlbCIsInBhcnNlSW50IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJzclJhdyIsInJlc29sdmVIZWFkaW5nUHJvcHMiLCJmcm9tUGxheWVyIiwiX2Jhc2VIZWFkaW5nTGV2ZWwiLCJfaW5jbHVkZVNySGVhZGluZyIsIk11bHRpcGxlQ2hvaWNlIiwiSFRNTEVsZW1lbnQiLCJjb25zdHJ1Y3RvciIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiX21hdGhSZW5kZXJQZW5kaW5nIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiX21hdGhPYnNlcnZlciIsImRpc2Nvbm5lY3QiLCJyZW5kZXJNYXRoIiwic2V0VGltZW91dCIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIiwiX21vZGVsIiwiX3Nlc3Npb24iLCJfb3B0aW9ucyIsIl9ib3VuZEhhbmRsZUtleURvd24iLCJoYW5kbGVLZXlEb3duIiwiYmluZCIsIl9rZXlib2FyZEV2ZW50c0VuYWJsZWQiLCJfYXVkaW9Jbml0aWFsaXplZCIsIl9yb290IiwiX3JlcmVuZGVyIiwiZGVib3VuY2UiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJNYWluIiwib3B0aW9ucyIsIm9uQ2hvaWNlQ2hhbmdlZCIsIl9vbkNoYW5nZSIsIm9uU2hvd0NvcnJlY3RUb2dnbGUiLCJzZXRBdHRyaWJ1dGUiLCJzZXRMYW5nQXR0cmlidXRlIiwiX2luaXRNYXRoT2JzZXJ2ZXIiLCJjcmVhdGVSb290IiwicmVuZGVyIiwia2V5Ym9hcmRFdmVudHNFbmFibGVkIiwiZW5hYmxlS2V5Ym9hcmRFdmVudHMiLCJsZWFkaW5nIiwidHJhaWxpbmciLCJfZGlzcGF0Y2hSZXNwb25zZUNoYW5nZWQiLCJkaXNwYXRjaEV2ZW50IiwiU2Vzc2lvbkNoYW5nZWRFdmVudCIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsIl9kaXNwYXRjaE1vZGVsU2V0IiwiTW9kZWxTZXRFdmVudCIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJfc2NoZWR1bGVNYXRoUmVuZGVyIiwiX2Rpc2Nvbm5lY3RNYXRoT2JzZXJ2ZXIiLCJsYW5ndWFnZSIsImxhbmciLCJzbGljZSIsInMiLCJvIiwiZGF0YSIsInVwZGF0ZVNlc3Npb25WYWx1ZSIsIl9jcmVhdGVBdWRpb0luZm9Ub2FzdCIsImluZm8iLCJkb2N1bWVudCIsImlkIiwiT2JqZWN0IiwiYXNzaWduIiwic3R5bGUiLCJwb3NpdGlvbiIsInRvcCIsIndpZHRoIiwiaGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImJhY2tncm91bmQiLCJ6SW5kZXgiLCJjdXJzb3IiLCJpbWciLCJzcmMiLCJFbmFibGVBdWRpb0F1dG9wbGF5SW1hZ2UiLCJhbHQiLCJhcHBlbmRDaGlsZCIsImNvbm5lY3RlZENhbGxiYWNrIiwiX2luaXRQbGF5ZXJPYnNlcnZlciIsIm9ic2VydmVyIiwibXV0YXRpb25zTGlzdCIsImZvckVhY2giLCJtdXRhdGlvbiIsInR5cGUiLCJjb250YWluZXIiLCJlbmFibGVBdWRpbyIsInBsYXkiLCJyZW1vdmVDaGlsZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJwYXVzZWQiLCJhZGRFdmVudExpc3RlbmVyIiwiaGFuZGxlUGxheWluZyIsInVwZGF0ZVNlc3Npb25NZXRhZGF0YSIsImF1ZGlvU3RhcnRUaW1lIiwiRGF0ZSIsImdldFRpbWUiLCJoYW5kbGVFbmRlZCIsImF1ZGlvRW5kVGltZSIsIl9hdWRpbyIsIl9oYW5kbGVQbGF5aW5nIiwiX2hhbmRsZUVuZGVkIiwiX2VuYWJsZUF1ZGlvIiwid2luZG93IiwiX3BsYXllck9ic2VydmVyIiwiYXR0cmlidXRlcyIsImF0dHJpYnV0ZUZpbHRlciIsIl9kaXNjb25uZWN0UGxheWVyT2JzZXJ2ZXIiLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsInVubW91bnQiLCJldmVudCIsIm1vZGUiLCJrZXlUb0luZGV4Iiwia2V5IiwibnVtT2Zmc2V0IiwibGV0dGVyT2Zmc2V0IiwidGVzdCIsImNoYXJDb2RlQXQiLCJjaG9pY2VJbmRleCIsImNob2ljZXMiLCJjdXJyZW50VmFsdWUiLCJjaG9pY2VJZCIsImFscmVhZHlTZWxlY3RlZCIsImluY2x1ZGVzIiwibmV3VmFsdWUiLCJzZWxlY3RlZCIsInNlbGVjdG9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYWluIGZyb20gJy4vbWFpbic7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IE1vZGVsU2V0RXZlbnQsIFNlc3Npb25DaGFuZ2VkRXZlbnQgfSBmcm9tICdAcGllLWZyYW1ld29yay9waWUtcGxheWVyLWV2ZW50cyc7XG5pbXBvcnQgeyByZW5kZXJNYXRoIH0gZnJvbSAnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnO1xuaW1wb3J0IHsgRW5hYmxlQXVkaW9BdXRvcGxheUltYWdlIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IHVwZGF0ZVNlc3Npb25WYWx1ZSwgdXBkYXRlU2Vzc2lvbk1ldGFkYXRhIH0gZnJvbSAnLi9zZXNzaW9uLXVwZGF0ZXInO1xuaW1wb3J0IHsgZXhjZWVkc01heFNlbGVjdGlvbnMgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgbG9nID0gZGVidWcoJ3BpZS11aTptdWx0aXBsZS1jaG9pY2UnKTtcblxuZXhwb3J0IGNvbnN0IGlzQ29tcGxldGUgPSAoc2Vzc2lvbiwgbW9kZWwsIGF1ZGlvQ29tcGxldGUsIGVsZW1lbnRDb250ZXh0KSA9PiB7XG4gIGNvbnN0IHsgYXV0b3BsYXlBdWRpb0VuYWJsZWQsIGNvbXBsZXRlQXVkaW9FbmFibGVkIH0gPSBtb2RlbCB8fCB7fTtcblxuICAvLyBjaGVjayBhdWRpbyBjb21wbGV0aW9uIGlmIGF1ZGlvIHNldHRpbmdzIGFyZSBlbmFibGVkIGFuZCBhdWRpbyBhY3R1YWxseSBleGlzdHNcbiAgaWYgKGF1dG9wbGF5QXVkaW9FbmFibGVkICYmIGNvbXBsZXRlQXVkaW9FbmFibGVkICYmICFhdWRpb0NvbXBsZXRlKSB7XG4gICAgaWYgKGVsZW1lbnRDb250ZXh0KSB7XG4gICAgICBjb25zdCBhdWRpbyA9IGVsZW1lbnRDb250ZXh0LnF1ZXJ5U2VsZWN0b3IoJ2F1ZGlvJyk7XG4gICAgICBjb25zdCBpc0luc2lkZVByb21wdCA9IGF1ZGlvICYmIGF1ZGlvLmNsb3Nlc3QoJyNwcmV2aWV3LXByb21wdCcpO1xuXG4gICAgICAvLyBvbmx5IHJlcXVpcmUgYXVkaW8gY29tcGxldGlvbiBpZiBhdWRpbyBleGlzdHMgYW5kIGlzIGluc2lkZSB0aGUgcHJvbXB0XG4gICAgICBpZiAoYXVkaW8gJiYgaXNJbnNpZGVQcm9tcHQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghc2Vzc2lvbiB8fCAhc2Vzc2lvbi52YWx1ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHsgY2hvaWNlTW9kZSwgbWluU2VsZWN0aW9ucyA9IDEsIG1heFNlbGVjdGlvbnMgfSA9IG1vZGVsIHx8IHt9O1xuICBjb25zdCBzZWxlY3Rpb25zID0gc2Vzc2lvbi52YWx1ZS5sZW5ndGggfHwgMDtcblxuICBpZiAoY2hvaWNlTW9kZSA9PT0gJ3JhZGlvJykge1xuICAgIHJldHVybiAhIXNlbGVjdGlvbnM7XG4gIH1cblxuICBpZiAoc2VsZWN0aW9ucyA8IG1pblNlbGVjdGlvbnMgfHwgZXhjZWVkc01heFNlbGVjdGlvbnMoc2VsZWN0aW9ucywgbWF4U2VsZWN0aW9ucykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIGdldFBsYXllckF0dHJpYnV0ZXMoZWxlbWVudCkge1xuICBjb25zdCBwbGF5ZXIgPVxuICAgIGVsZW1lbnQuY2xvc2VzdCgncGllLXBsYXllcicpIHx8XG4gICAgZWxlbWVudC5jbG9zZXN0KCdwaWUtaXRlbS1wbGF5ZXInKTtcblxuICBpZiAoIXBsYXllcikge1xuICAgIHJldHVybiB7IGJhc2VIZWFkaW5nTGV2ZWw6IHVuZGVmaW5lZCwgaW5jbHVkZVNySGVhZGluZzogdHJ1ZSB9O1xuICB9XG5cbiAgY29uc3QgZ2V0UmF3ID0gKGNhbWVsQ2FzZU5hbWUsIGh5cGhlbmF0ZWROYW1lLCBhbGxMb3dlck5hbWUpID0+IHtcbiAgICBsZXQgcmF3ID0gcGxheWVyW2NhbWVsQ2FzZU5hbWVdO1xuXG4gICAgLy8gZmFsbGJhY2sgaW4gY2FzZSBzb21lb25lIHNldHMgdmlhIEhUTUwgYXR0cmlidXRlIG1hbnVhbGx5XG4gICAgaWYgKHJhdyA9PSBudWxsKSB7XG4gICAgICByYXcgPVxuICAgICAgICBwbGF5ZXIuZ2V0QXR0cmlidXRlKGh5cGhlbmF0ZWROYW1lKSA/P1xuICAgICAgICBwbGF5ZXIuZ2V0QXR0cmlidXRlKGFsbExvd2VyTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJhdztcbiAgfTtcblxuICBjb25zdCBsZXZlbFJhdyA9IGdldFJhdygnYmFzZUhlYWRpbmdMZXZlbCcsICdiYXNlLWhlYWRpbmctbGV2ZWwnLCAnYmFzZWhlYWRpbmdsZXZlbCcpO1xuICBjb25zdCBsZXZlbCA9IHBhcnNlSW50KGxldmVsUmF3LCAxMCk7XG4gIGNvbnN0IGJhc2VIZWFkaW5nTGV2ZWwgPSBOdW1iZXIuaXNGaW5pdGUobGV2ZWwpICYmIGxldmVsID49IDEgJiYgbGV2ZWwgPD0gNiA/IGxldmVsIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHNyUmF3ID0gZ2V0UmF3KCdpbmNsdWRlU3JIZWFkaW5nJywgJ2luY2x1ZGUtc3ItaGVhZGluZycsICdpbmNsdWRlc3JoZWFkaW5nJyk7XG4gIGNvbnN0IGluY2x1ZGVTckhlYWRpbmcgPSBzclJhdyA9PSBudWxsID8gdHJ1ZSA6IHNyUmF3ICE9PSBmYWxzZSAmJiBzclJhdyAhPT0gJ2ZhbHNlJztcblxuICByZXR1cm4geyBiYXNlSGVhZGluZ0xldmVsLCBpbmNsdWRlU3JIZWFkaW5nIH07XG59XG5cbi8vIFJlc29sdmVzIGhlYWRpbmcgYXR0cmlidXRlcyBmb3IgYSBjdXN0b20gZWxlbWVudCwgcHJlZmVycmluZyBleHBsaWNpdCBpbnN0YW5jZVxuLy8gcHJvcGVydGllcyAoc2V0IGJ5IGEgcGFyZW50IGVsZW1lbnQgc3VjaCBhcyBFQlNSKSBvdmVyIHBsYXllci1sZXZlbCBhdHRyaWJ1dGVzLlxuZnVuY3Rpb24gcmVzb2x2ZUhlYWRpbmdQcm9wcyhlbGVtZW50KSB7XG4gIGNvbnN0IGZyb21QbGF5ZXIgPSBnZXRQbGF5ZXJBdHRyaWJ1dGVzKGVsZW1lbnQpO1xuXG4gIHJldHVybiB7XG4gICAgYmFzZUhlYWRpbmdMZXZlbDogZWxlbWVudC5fYmFzZUhlYWRpbmdMZXZlbCAhPT0gdW5kZWZpbmVkID8gZWxlbWVudC5fYmFzZUhlYWRpbmdMZXZlbCA6IGZyb21QbGF5ZXIuYmFzZUhlYWRpbmdMZXZlbCxcbiAgICBpbmNsdWRlU3JIZWFkaW5nOiBlbGVtZW50Ll9pbmNsdWRlU3JIZWFkaW5nICE9PSB1bmRlZmluZWQgPyBlbGVtZW50Ll9pbmNsdWRlU3JIZWFkaW5nIDogZnJvbVBsYXllci5pbmNsdWRlU3JIZWFkaW5nLFxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNdWx0aXBsZUNob2ljZSBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9tb2RlbCA9IG51bGw7XG4gICAgdGhpcy5fc2Vzc2lvbiA9IG51bGw7XG4gICAgdGhpcy5fb3B0aW9ucyA9IG51bGw7IC8vIGFkZGVkIGZvciBlYnNyIHByaW50IG1vZGUgZGV0ZWN0aW9uXG4gICAgdGhpcy5hdWRpb0NvbXBsZXRlID0gZmFsc2U7XG4gICAgdGhpcy5fYm91bmRIYW5kbGVLZXlEb3duID0gdGhpcy5oYW5kbGVLZXlEb3duLmJpbmQodGhpcyk7XG4gICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNFbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5fYXVkaW9Jbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHRoaXMuX3Jvb3QgPSBudWxsO1xuICAgIHRoaXMuX21hdGhPYnNlcnZlciA9IG51bGw7XG4gICAgdGhpcy5fbWF0aFJlbmRlclBlbmRpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMuX3JlcmVuZGVyID0gZGVib3VuY2UoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9tb2RlbCAmJiB0aGlzLl9zZXNzaW9uKSB7XG4gICAgICAgICAgdmFyIGVsZW1lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KE1haW4sIHtcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLl9tb2RlbCxcbiAgICAgICAgICAgIHNlc3Npb246IHRoaXMuX3Nlc3Npb24sXG4gICAgICAgICAgICBvcHRpb25zOiB0aGlzLl9vcHRpb25zLFxuICAgICAgICAgICAgb25DaG9pY2VDaGFuZ2VkOiB0aGlzLl9vbkNoYW5nZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgb25TaG93Q29ycmVjdFRvZ2dsZTogdGhpcy5vblNob3dDb3JyZWN0VG9nZ2xlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAuLi5yZXNvbHZlSGVhZGluZ1Byb3BzKHRoaXMpLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy9UT0RPOiBhcmlhLWxhYmVsIGlzIHNldCBpbiB0aGUgX3JlcmVuZGVyIGJlY2F1c2Ugd2UgbmVlZCB0byBjaGFuZ2UgaXQgd2hlbiB0aGUgbW9kZWwuY2hvaWNlTW9kZSBpcyB1cGRhdGVkLiBDb25zaWRlciByZXZpc2l0aW5nIHRoZSBwbGFjZW1lbnQgb2YgdGhlIGFyaWEtbGFiZWwgc2V0dGluZyBpbiB0aGUgX3JlcmVuZGVyXG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAnYXJpYS1sYWJlbCcsXG4gICAgICAgICAgICB0aGlzLl9tb2RlbC5jaG9pY2VNb2RlID09PSAncmFkaW8nID8gJ011bHRpcGxlIENob2ljZSBRdWVzdGlvbicgOiAnTXVsdGlwbGUgQ29ycmVjdCBBbnN3ZXIgUXVlc3Rpb24nLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAncmVnaW9uJyk7XG4gICAgICAgICAgdGhpcy5zZXRMYW5nQXR0cmlidXRlKCk7XG5cbiAgICAgICAgICB0aGlzLl9pbml0TWF0aE9ic2VydmVyKCk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuX3Jvb3QpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSBjcmVhdGVSb290KHRoaXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9yb290LnJlbmRlcihlbGVtZW50KTtcblxuICAgICAgICAgIGlmICh0aGlzLl9tb2RlbC5rZXlib2FyZEV2ZW50c0VuYWJsZWQgPT09IHRydWUgJiYgIXRoaXMuX2tleWJvYXJkRXZlbnRzRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVLZXlib2FyZEV2ZW50cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2coJ3NraXAnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIDUwLFxuICAgICAgeyBsZWFkaW5nOiBmYWxzZSwgdHJhaWxpbmc6IHRydWUgfSxcbiAgICApO1xuXG4gICAgdGhpcy5fZGlzcGF0Y2hSZXNwb25zZUNoYW5nZWQgPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBTZXNzaW9uQ2hhbmdlZEV2ZW50KFxuICAgICAgICAgIHRoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgIGlzQ29tcGxldGUodGhpcy5fc2Vzc2lvbiwgdGhpcy5fbW9kZWwsIHRoaXMuYXVkaW9Db21wbGV0ZSwgdGhpcyksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZGlzcGF0Y2hNb2RlbFNldCA9IGRlYm91bmNlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IE1vZGVsU2V0RXZlbnQoXG4gICAgICAgICAgICB0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIGlzQ29tcGxldGUodGhpcy5fc2Vzc2lvbiwgdGhpcy5fbW9kZWwsIHRoaXMuYXVkaW9Db21wbGV0ZSwgdGhpcyksXG4gICAgICAgICAgICB0aGlzLl9tb2RlbCAhPT0gdW5kZWZpbmVkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgNTAsXG4gICAgICB7IGxlYWRpbmc6IGZhbHNlLCB0cmFpbGluZzogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICBfc2NoZWR1bGVNYXRoUmVuZGVyID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLl9tYXRoUmVuZGVyUGVuZGluZykgcmV0dXJuO1xuICAgIHRoaXMuX21hdGhSZW5kZXJQZW5kaW5nID0gdHJ1ZTtcblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fbWF0aE9ic2VydmVyKSB7XG4gICAgICAgIHRoaXMuX21hdGhPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgICBsb2coJ3JlbmRlciBjb21wbGV0ZSAtIHJlbmRlciBtYXRoJyk7XG4gICAgICByZW5kZXJNYXRoKHRoaXMpO1xuICAgICAgdGhpcy5fbWF0aFJlbmRlclBlbmRpbmcgPSBmYWxzZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fbWF0aE9ic2VydmVyKSB7XG4gICAgICAgICAgdGhpcy5fbWF0aE9ic2VydmVyLm9ic2VydmUodGhpcywgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDUwKTtcbiAgICB9KTtcbiAgfTtcblxuICBfaW5pdE1hdGhPYnNlcnZlcigpIHtcbiAgICBpZiAodGhpcy5fbWF0aE9ic2VydmVyKSByZXR1cm47XG4gICAgdGhpcy5fbWF0aE9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5fc2NoZWR1bGVNYXRoUmVuZGVyKTtcbiAgICB0aGlzLl9tYXRoT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIF9kaXNjb25uZWN0TWF0aE9ic2VydmVyKCkge1xuICAgIGlmICh0aGlzLl9tYXRoT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMuX21hdGhPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLl9tYXRoT2JzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIG9uU2hvd0NvcnJlY3RUb2dnbGUoKSB7XG4gICAgcmVuZGVyTWF0aCh0aGlzKTtcbiAgfVxuXG4gIHNldExhbmdBdHRyaWJ1dGUoKSB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLl9tb2RlbCAmJiB0eXBlb2YgdGhpcy5fbW9kZWwubGFuZ3VhZ2UgPyB0aGlzLl9tb2RlbC5sYW5ndWFnZSA6ICcnO1xuICAgIGNvbnN0IGxhbmcgPSBsYW5ndWFnZSA/IGxhbmd1YWdlLnNsaWNlKDAsIDIpIDogJ2VuJztcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnbGFuZycsIGxhbmcpO1xuICB9XG5cbiAgc2V0IG1vZGVsKHMpIHtcbiAgICB0aGlzLl9tb2RlbCA9IHM7XG4gICAgdGhpcy5fcmVyZW5kZXIoKTtcbiAgICAvLyByZXNldCB0aGUgYXVkaW9Jbml0aWFsaXplZCB0byBmYWxzZSBzaW5jZSB0aGUgbW9kZWwgY2hhbmdlZCwgYW5kIHdlIG1pZ2h0IG5lZWQgdG8gcmVpbml0aWFsaXplIHRoZSBhdWRpb1xuICAgIHRoaXMuX2F1ZGlvSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9kaXNwYXRjaE1vZGVsU2V0KCk7XG4gIH1cblxuICBnZXQgc2Vzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbjtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgc2V0IG9wdGlvbnMobykge1xuICAgIHRoaXMuX29wdGlvbnMgPSBvO1xuICAgIHRoaXMuX3JlcmVuZGVyKCk7XG4gIH1cblxuICBzZXQgYmFzZUhlYWRpbmdMZXZlbChsZXZlbCkge1xuICAgIHRoaXMuX2Jhc2VIZWFkaW5nTGV2ZWwgPSBsZXZlbDtcbiAgICB0aGlzLl9yZXJlbmRlcigpO1xuICB9XG5cbiAgc2V0IGluY2x1ZGVTckhlYWRpbmcodmFsdWUpIHtcbiAgICB0aGlzLl9pbmNsdWRlU3JIZWFkaW5nID0gdmFsdWU7XG4gICAgdGhpcy5fcmVyZW5kZXIoKTtcbiAgfVxuXG4gIHNldCBzZXNzaW9uKHMpIHtcbiAgICB0aGlzLl9zZXNzaW9uID0gcztcbiAgICB0aGlzLl9yZXJlbmRlcigpO1xuICAgIC8vVE9ETzogcmVtb3ZlIHRoaXMgc2Vzc2lvbi1jaGFuZ2VkIHNob3VsZCBvbmx5IGJlIGVtaXQgb24gdXNlciBjaGFuZ2VcbiAgICB0aGlzLl9kaXNwYXRjaFJlc3BvbnNlQ2hhbmdlZCgpO1xuICB9XG5cbiAgX29uQ2hhbmdlKGRhdGEpIHtcbiAgICB1cGRhdGVTZXNzaW9uVmFsdWUodGhpcy5fc2Vzc2lvbiwgdGhpcy5fbW9kZWwuY2hvaWNlTW9kZSwgZGF0YSk7XG4gICAgdGhpcy5fZGlzcGF0Y2hSZXNwb25zZUNoYW5nZWQoKTtcbiAgICB0aGlzLl9yZXJlbmRlcigpO1xuICB9XG5cbiAgX2NyZWF0ZUF1ZGlvSW5mb1RvYXN0KCkge1xuICAgIGNvbnN0IGluZm8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBpbmZvLmlkID0gJ3BsYXktYXVkaW8taW5mbyc7XG5cbiAgICBPYmplY3QuYXNzaWduKGluZm8uc3R5bGUsIHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgdG9wOiAwLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuICAgICAgekluZGV4OiAnMTAwMCcsXG4gICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuICAgIGltZy5zcmMgPSBFbmFibGVBdWRpb0F1dG9wbGF5SW1hZ2U7XG4gICAgaW1nLmFsdCA9ICdDbGljayBhbnl3aGVyZSB0byBlbmFibGUgYXVkaW8gYXV0b3BsYXknO1xuICAgIGltZy53aWR0aCA9IDUwMDtcbiAgICBpbWcuaGVpZ2h0ID0gMzAwO1xuXG4gICAgaW5mby5hcHBlbmRDaGlsZChpbWcpO1xuICAgIHJldHVybiBpbmZvO1xuICB9XG5cbiAgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgdGhpcy5faW5pdE1hdGhPYnNlcnZlcigpO1xuICAgIHRoaXMuX2luaXRQbGF5ZXJPYnNlcnZlcigpO1xuICAgIHRoaXMuX3JlcmVuZGVyKCk7XG5cbiAgICAvLyBPYnNlcnZhdGlvbjogIGF1ZGlvIGluIENocm9tZSB3aWxsIGhhdmUgdGhlIGF1dG9wbGF5IGF0dHJpYnV0ZSxcbiAgICAvLyB3aGlsZSBvdGhlciBicm93c2VycyB3aWxsIG5vdCBoYXZlIHRoZSBhdXRvcGxheSBhdHRyaWJ1dGUgYW5kIHdpbGwgbmVlZCBhIHVzZXIgaW50ZXJhY3Rpb24gdG8gcGxheSB0aGUgYXVkaW9cbiAgICAvLyBUaGlzIHdvcmthcm91bmQgZml4ZXMgdGhlIGlzc3VlIG9mIGF1ZGlvIGJlaW5nIGNhY2hlZCBhbmQgcGxheWVkIG9uIGFueSB1c2VyIGludGVyYWN0aW9uIGluIFNhZmFyaSBhbmQgRmlyZWZveFxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uc0xpc3QsIG9ic2VydmVyKSA9PiB7XG4gICAgICBtdXRhdGlvbnNMaXN0LmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0Jykge1xuICAgICAgICAgIGlmICh0aGlzLl9hdWRpb0luaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBhdWRpbyA9IHRoaXMucXVlcnlTZWxlY3RvcignYXVkaW8nKTtcbiAgICAgICAgICBjb25zdCBpc0luc2lkZVByb21wdCA9IGF1ZGlvICYmIGF1ZGlvLmNsb3Nlc3QoJyNwcmV2aWV3LXByb21wdCcpO1xuXG4gICAgICAgICAgaWYgKCF0aGlzLl9tb2RlbCkgcmV0dXJuO1xuICAgICAgICAgIGlmICghdGhpcy5fbW9kZWwuYXV0b3BsYXlBdWRpb0VuYWJsZWQpIHJldHVybjtcbiAgICAgICAgICBpZiAoYXVkaW8gJiYgIWlzSW5zaWRlUHJvbXB0KSByZXR1cm47XG4gICAgICAgICAgaWYgKCFhdWRpbykgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgaW5mbyA9IHRoaXMuX2NyZWF0ZUF1ZGlvSW5mb1RvYXN0KCk7XG4gICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjbWFpbi1jb250YWluZXInKTtcbiAgICAgICAgICBjb25zdCBlbmFibGVBdWRpbyA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNwbGF5LWF1ZGlvLWluZm8nKSkge1xuICAgICAgICAgICAgICBhdWRpby5wbGF5KCk7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChpbmZvKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlbmFibGVBdWRpbyk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIC8vIGlmIHRoZSBhdWRpbyBpcyBwYXVzZWQsIGl0IG1lYW5zIHRoZSB1c2VyIGhhcyBub3QgaW50ZXJhY3RlZCB3aXRoIHRoZSBwYWdlIHlldCBhbmQgdGhlIGF1ZGlvIHdpbGwgbm90IHBsYXlcbiAgICAgICAgICAvLyBGSVggRk9SIFNBRkFSSTogcGxheSB3aXRoIGEgc2xpZ2h0IGRlbGF5IHRvIGNoZWNrIGlmIGF1dG9wbGF5IHdhcyBibG9ja2VkXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXVkaW8ucGF1c2VkICYmICF0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNwbGF5LWF1ZGlvLWluZm8nKSkge1xuICAgICAgICAgICAgICAvLyBhZGQgaW5mbyBtZXNzYWdlIGFzIGEgdG9hc3QgdG8gZW5hYmxlIGF1ZGlvIHBsYXliYWNrXG4gICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbmZvKTtcbiAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlbmFibGVBdWRpbyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGVuYWJsZUF1ZGlvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCA1MDApO1xuXG4gICAgICAgICAgLy8gd2UgbmVlZCB0byBsaXN0ZW4gZm9yIHRoZSBwbGF5aW5nIGV2ZW50IHRvIHJlbW92ZSB0aGUgdG9hc3QgaW4gY2FzZSB0aGUgYXVkaW8gcGxheXMgYmVjYXVzZSBvZiByZS1yZW5kZXJpbmdcbiAgICAgICAgICBjb25zdCBoYW5kbGVQbGF5aW5nID0gKCkgPT4ge1xuICAgICAgICAgICAgdXBkYXRlU2Vzc2lvbk1ldGFkYXRhKHRoaXMuX3Nlc3Npb24sIHsgYXVkaW9TdGFydFRpbWU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjcGxheS1hdWRpby1pbmZvJyk7XG4gICAgICAgICAgICBpZiAoaW5mbykge1xuICAgICAgICAgICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoaW5mbyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF1ZGlvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BsYXlpbmcnLCBoYW5kbGVQbGF5aW5nKTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgYXVkaW8uYWRkRXZlbnRMaXN0ZW5lcigncGxheWluZycsIGhhbmRsZVBsYXlpbmcpO1xuXG4gICAgICAgICAgLy8gd2UgbmVlZCB0byBsaXN0ZW4gZm9yIHRoZSBlbmRlZCBldmVudCB0byB1cGRhdGUgdGhlIGlzQ29tcGxldGUgc3RhdGVcbiAgICAgICAgICBjb25zdCBoYW5kbGVFbmRlZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHVwZGF0ZVNlc3Npb25NZXRhZGF0YSh0aGlzLl9zZXNzaW9uLCB7IGF1ZGlvRW5kVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKCkgfSk7XG4gICAgICAgICAgICB0aGlzLmF1ZGlvQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hSZXNwb25zZUNoYW5nZWQoKTtcbiAgICAgICAgICAgIGF1ZGlvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZGVkJywgaGFuZGxlRW5kZWQpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBhdWRpby5hZGRFdmVudExpc3RlbmVyKCdlbmRlZCcsIGhhbmRsZUVuZGVkKTtcblxuICAgICAgICAgIC8vIHN0b3JlIHJlZmVyZW5jZXMgdG8gcmVtb3ZlIGxhdGVyXG4gICAgICAgICAgdGhpcy5fYXVkaW8gPSBhdWRpbztcbiAgICAgICAgICB0aGlzLl9oYW5kbGVQbGF5aW5nID0gaGFuZGxlUGxheWluZztcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFbmRlZCA9IGhhbmRsZUVuZGVkO1xuICAgICAgICAgIHRoaXMuX2VuYWJsZUF1ZGlvID0gZW5hYmxlQXVkaW87XG4gICAgICAgICAgLy8gc2V0IHRvIHRydWUgdG8gcHJldmVudCBtdWx0aXBsZSBpbml0aWFsaXphdGlvbnNcbiAgICAgICAgICB0aGlzLl9hdWRpb0luaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBvYnNlcnZlci5vYnNlcnZlKHRoaXMsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICB9XG5cbiAgZW5hYmxlS2V5Ym9hcmRFdmVudHMoKSB7XG4gICAgaWYgKCF0aGlzLl9rZXlib2FyZEV2ZW50c0VuYWJsZWQpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fYm91bmRIYW5kbGVLZXlEb3duKTtcbiAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzRW5hYmxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgX2luaXRQbGF5ZXJPYnNlcnZlcigpIHtcbiAgICBjb25zdCBwbGF5ZXIgPSB0aGlzLmNsb3Nlc3QoJ3BpZS1wbGF5ZXInKSB8fCB0aGlzLmNsb3Nlc3QoJ3BpZS1pdGVtLXBsYXllcicpO1xuICAgIGlmICghcGxheWVyKSByZXR1cm47XG5cbiAgICB0aGlzLl9wbGF5ZXJPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMuX3JlcmVuZGVyKCk7XG4gICAgfSk7XG4gICAgdGhpcy5fcGxheWVyT2JzZXJ2ZXIub2JzZXJ2ZShwbGF5ZXIsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnYmFzZS1oZWFkaW5nLWxldmVsJywgJ2Jhc2VoZWFkaW5nbGV2ZWwnLCAnaW5jbHVkZS1zci1oZWFkaW5nJywgJ2luY2x1ZGVzcmhlYWRpbmcnXSxcbiAgICB9KTtcbiAgfVxuXG4gIF9kaXNjb25uZWN0UGxheWVyT2JzZXJ2ZXIoKSB7XG4gICAgaWYgKHRoaXMuX3BsYXllck9ic2VydmVyKSB7XG4gICAgICB0aGlzLl9wbGF5ZXJPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLl9wbGF5ZXJPYnNlcnZlciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgdGhpcy5fZGlzY29ubmVjdE1hdGhPYnNlcnZlcigpO1xuICAgIHRoaXMuX2Rpc2Nvbm5lY3RQbGF5ZXJPYnNlcnZlcigpO1xuICAgIGlmICh0aGlzLl9rZXlib2FyZEV2ZW50c0VuYWJsZWQpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fYm91bmRIYW5kbGVLZXlEb3duKTtcbiAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzRW5hYmxlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fZW5hYmxlQXVkaW8pO1xuXG4gICAgaWYgKHRoaXMuX2F1ZGlvKSB7XG4gICAgICB0aGlzLl9hdWRpby5yZW1vdmVFdmVudExpc3RlbmVyKCdwbGF5aW5nJywgdGhpcy5faGFuZGxlUGxheWluZyk7XG4gICAgICB0aGlzLl9hdWRpby5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmRlZCcsIHRoaXMuX2hhbmRsZUVuZGVkKTtcbiAgICAgIHRoaXMuX2F1ZGlvID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcm9vdCkge1xuICAgICAgdGhpcy5fcm9vdC51bm1vdW50KCk7XG4gICAgICB0aGlzLl9yb290ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBnbG9iYWwga2V5Ym9hcmQgZXZlbnRzIGZvciBzZWxlY3Rpbmcgb3IgdG9nZ2xpbmcgbXVsdGlwbGUtY2hvaWNlIGFuc3dlcnMuXG4gICAqIE1hcHMga2V5cyAoMS05LCAwLCBhLWosIEEtSikgdG8gY2hvaWNlcyBhbmQgdXBkYXRlcyB0aGUgc2Vzc2lvbiBzdGF0ZSBhY2NvcmRpbmdseS5cbiAgICogRW5zdXJlcyB2YWxpZCBrZXkgcHJlc3NlcyB0b2dnbGUgb3Igc2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBjaG9pY2UgYmFzZWQgb24gdGhlIG1vZGVsLlxuICAgKi9cbiAgaGFuZGxlS2V5RG93bihldmVudCkge1xuICAgIGlmICghdGhpcy5fbW9kZWwgfHwgIXRoaXMuX3Nlc3Npb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG1vZGUgfSA9IHRoaXMuX21vZGVsO1xuICAgIGlmIChtb2RlICE9PSAnZ2F0aGVyJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGtleVRvSW5kZXggPSAoa2V5KSA9PiB7XG4gICAgICBjb25zdCBudW1PZmZzZXQgPSBrZXkgPj0gJzEnICYmIGtleSA8PSAnOScgPyBrZXkgLSAnMScgOiBrZXkgPT09ICcwJyA/IDkgOiAtMTtcbiAgICAgIGNvbnN0IGxldHRlck9mZnNldCA9IC9eW2EtakEtSl0kLy50ZXN0KGtleSkgPyBrZXkudG9Mb3dlckNhc2UoKS5jaGFyQ29kZUF0KDApIC0gJ2EnLmNoYXJDb2RlQXQoMCkgOiAtMTtcbiAgICAgIHJldHVybiBudW1PZmZzZXQgPj0gMCA/IG51bU9mZnNldCA6IGxldHRlck9mZnNldDtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hvaWNlSW5kZXggPSBrZXlUb0luZGV4KGV2ZW50LmtleSk7XG5cbiAgICBpZiAoY2hvaWNlSW5kZXggPT09IHVuZGVmaW5lZCB8fCBjaG9pY2VJbmRleCA8PSAtMSB8fCBjaG9pY2VJbmRleCA+PSB0aGlzLl9tb2RlbC5jaG9pY2VzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLl9zZXNzaW9uLnZhbHVlIHx8IFtdO1xuICAgIGNvbnN0IGNob2ljZUlkID0gdGhpcy5fbW9kZWwuY2hvaWNlc1tjaG9pY2VJbmRleF0udmFsdWU7XG5cbiAgICBjb25zdCBhbHJlYWR5U2VsZWN0ZWQgPSBjdXJyZW50VmFsdWUuaW5jbHVkZXMoY2hvaWNlSWQpO1xuICAgIGNvbnN0IG5ld1ZhbHVlID0ge1xuICAgICAgdmFsdWU6IGNob2ljZUlkLFxuICAgICAgc2VsZWN0ZWQ6IHRoaXMuX21vZGVsLmNob2ljZU1vZGUgPT09ICdyYWRpbycgPyB0cnVlIDogIWFscmVhZHlTZWxlY3RlZCxcbiAgICAgIHNlbGVjdG9yOiAnS2V5Ym9hcmQnLFxuICAgIH07XG5c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
|
|
405
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_main","_interopRequireDefault","require","_react","_client","_lodashEs","_debug","_piePlayerEvents","_mathRendering","_renderUi","_sessionUpdater","_utils","log","debug","isComplete","session","model","audioComplete","elementContext","autoplayAudioEnabled","completeAudioEnabled","audio","querySelector","isInsidePrompt","closest","value","choiceMode","minSelections","maxSelections","selections","length","exceedsMaxSelections","exports","getPlayerAttributes","element","player","baseHeadingLevel","undefined","includeSrHeading","getRaw","camelCaseName","hyphenatedName","allLowerName","raw","getAttribute","levelRaw","level","parseInt","Number","isFinite","srRaw","resolveHeadingProps","fromPlayer","_baseHeadingLevel","_includeSrHeading","MultipleChoice","HTMLElement","constructor","_defineProperty2","default","_mathRenderPending","requestAnimationFrame","_mathObserver","disconnect","renderMath","setTimeout","observe","childList","subtree","_model","_session","_options","_boundHandleKeyDown","handleKeyDown","bind","_keyboardEventsEnabled","_audioInitialized","_root","_rerender","debounce","React","createElement","Main","options","onChoiceChanged","_onChange","onShowCorrectToggle","setAttribute","setLangAttribute","_initMathObserver","createRoot","render","keyboardEventsEnabled","enableKeyboardEvents","leading","trailing","_dispatchResponseChanged","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","_dispatchModelSet","ModelSetEvent","MutationObserver","_scheduleMathRender","_disconnectMathObserver","language","lang","slice","s","o","data","updateSessionValue","_createAudioInfoToast","info","document","id","Object","assign","style","position","top","width","height","display","justifyContent","alignItems","background","zIndex","cursor","img","src","EnableAudioAutoplayImage","alt","appendChild","connectedCallback","_initPlayerObserver","observer","mutationsList","forEach","mutation","type","container","enableAudio","play","removeChild","removeEventListener","paused","addEventListener","handlePlaying","updateSessionMetadata","audioStartTime","Date","getTime","handleEnded","audioEndTime","_audio","_handlePlaying","_handleEnded","_enableAudio","window","_playerObserver","attributes","attributeFilter","_disconnectPlayerObserver","disconnectedCallback","unmount","event","mode","keyToIndex","key","numOffset","letterOffset","test","charCodeAt","choiceIndex","choices","currentValue","choiceId","alreadySelected","includes","newValue","selected","selector"],"sources":["../src/index.js"],"sourcesContent":["import Main from './main';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { debounce } from 'lodash-es';\nimport debug from 'debug';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { EnableAudioAutoplayImage } from '@pie-lib/render-ui';\nimport { updateSessionValue, updateSessionMetadata } from './session-updater';\nimport { exceedsMaxSelections } from './utils';\n\nconst log = debug('pie-ui:multiple-choice');\n\nexport const isComplete = (session, model, audioComplete, elementContext) => {\n const { autoplayAudioEnabled, completeAudioEnabled } = model || {};\n\n // check audio completion if audio settings are enabled and audio actually exists\n if (autoplayAudioEnabled && completeAudioEnabled && !audioComplete) {\n if (elementContext) {\n const audio = elementContext.querySelector('audio');\n const isInsidePrompt = audio && audio.closest('#preview-prompt');\n\n // only require audio completion if audio exists and is inside the prompt\n if (audio && isInsidePrompt) {\n return false;\n }\n }\n }\n\n if (!session || !session.value) {\n return false;\n }\n\n const { choiceMode, minSelections = 1, maxSelections } = model || {};\n const selections = session.value.length || 0;\n\n if (choiceMode === 'radio') {\n return !!selections;\n }\n\n if (selections < minSelections || exceedsMaxSelections(selections, maxSelections)) {\n return false;\n }\n\n return true;\n};\n\nfunction getPlayerAttributes(element) {\n const player =\n element.closest('pie-player') ||\n element.closest('pie-item-player');\n\n if (!player) {\n return { baseHeadingLevel: undefined, includeSrHeading: true };\n }\n\n const getRaw = (camelCaseName, hyphenatedName, allLowerName) => {\n let raw = player[camelCaseName];\n\n // fallback in case someone sets via HTML attribute manually\n if (raw == null) {\n raw =\n player.getAttribute(hyphenatedName) ??\n player.getAttribute(allLowerName);\n }\n\n return raw;\n };\n\n const levelRaw = getRaw('baseHeadingLevel', 'base-heading-level', 'baseheadinglevel');\n const level = parseInt(levelRaw, 10);\n const baseHeadingLevel = Number.isFinite(level) && level >= 1 && level <= 6 ? level : undefined;\n\n const srRaw = getRaw('includeSrHeading', 'include-sr-heading', 'includesrheading');\n const includeSrHeading = srRaw == null ? true : srRaw !== false && srRaw !== 'false';\n\n return { baseHeadingLevel, includeSrHeading };\n}\n\n// Resolves heading attributes for a custom element, preferring explicit instance\n// properties (set by a parent element such as EBSR) over player-level attributes.\nfunction resolveHeadingProps(element) {\n const fromPlayer = getPlayerAttributes(element);\n\n return {\n baseHeadingLevel: element._baseHeadingLevel !== undefined ? element._baseHeadingLevel : fromPlayer.baseHeadingLevel,\n includeSrHeading: element._includeSrHeading !== undefined ? element._includeSrHeading : fromPlayer.includeSrHeading,\n };\n}\n\nexport default class MultipleChoice extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n this._options = null; // added for ebsr print mode detection\n this.audioComplete = false;\n this._boundHandleKeyDown = this.handleKeyDown.bind(this);\n this._keyboardEventsEnabled = false;\n this._audioInitialized = false;\n this._root = null;\n this._mathObserver = null;\n this._mathRenderPending = false;\n\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n var element = React.createElement(Main, {\n model: this._model,\n session: this._session,\n options: this._options,\n onChoiceChanged: this._onChange.bind(this),\n onShowCorrectToggle: this.onShowCorrectToggle.bind(this),\n ...resolveHeadingProps(this),\n });\n\n //TODO: aria-label is set in the _rerender because we need to change it when the model.choiceMode is updated. Consider revisiting the placement of the aria-label setting in the _rerender\n this.setAttribute(\n 'aria-label',\n this._model.choiceMode === 'radio' ? 'Multiple Choice Question' : 'Multiple Correct Answer Question',\n );\n this.setAttribute('role', 'region');\n this.setLangAttribute();\n\n this._initMathObserver();\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n\n if (this._model.keyboardEventsEnabled === true && !this._keyboardEventsEnabled) {\n this.enableKeyboardEvents();\n }\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n\n this._dispatchResponseChanged = debounce(() => {\n this.dispatchEvent(\n new SessionChangedEvent(\n this.tagName.toLowerCase(),\n isComplete(this._session, this._model, this.audioComplete, this),\n ),\n );\n });\n\n this._dispatchModelSet = debounce(\n () => {\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n isComplete(this._session, this._model, this.audioComplete, this),\n this._model !== undefined,\n ),\n );\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n\n _scheduleMathRender = () => {\n if (this._mathRenderPending) return;\n this._mathRenderPending = true;\n\n requestAnimationFrame(() => {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n }\n log('render complete - render math');\n renderMath(this);\n this._mathRenderPending = false;\n setTimeout(() => {\n if (this._mathObserver) {\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n }, 50);\n });\n };\n\n _initMathObserver() {\n if (this._mathObserver) return;\n this._mathObserver = new MutationObserver(this._scheduleMathRender);\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n\n _disconnectMathObserver() {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n this._mathObserver = null;\n }\n }\n\n onShowCorrectToggle() {\n renderMath(this);\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n // reset the audioInitialized to false since the model changed, and we might need to reinitialize the audio\n this._audioInitialized = false;\n this._dispatchModelSet();\n }\n\n get session() {\n return this._session;\n }\n\n get options() {\n return this._options;\n }\n\n set options(o) {\n this._options = o;\n this._rerender();\n }\n\n set baseHeadingLevel(level) {\n this._baseHeadingLevel = level;\n this._rerender();\n }\n\n set includeSrHeading(value) {\n this._includeSrHeading = value;\n this._rerender();\n }\n\n set session(s) {\n this._session = s;\n this._rerender();\n //TODO: remove this session-changed should only be emit on user change\n this._dispatchResponseChanged();\n }\n\n _onChange(data) {\n updateSessionValue(this._session, this._model.choiceMode, data);\n this._dispatchResponseChanged();\n this._rerender();\n }\n\n _createAudioInfoToast() {\n const info = document.createElement('div');\n info.id = 'play-audio-info';\n\n Object.assign(info.style, {\n position: 'absolute',\n top: 0,\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'white',\n zIndex: '1000',\n cursor: 'pointer',\n });\n\n const img = document.createElement('img');\n img.src = EnableAudioAutoplayImage;\n img.alt = 'Click anywhere to enable audio autoplay';\n img.width = 500;\n img.height = 300;\n\n info.appendChild(img);\n return info;\n }\n\n connectedCallback() {\n this._initMathObserver();\n this._initPlayerObserver();\n this._rerender();\n\n // Observation: audio in Chrome will have the autoplay attribute,\n // while other browsers will not have the autoplay attribute and will need a user interaction to play the audio\n // This workaround fixes the issue of audio being cached and played on any user interaction in Safari and Firefox\n const observer = new MutationObserver((mutationsList, observer) => {\n mutationsList.forEach((mutation) => {\n if (mutation.type === 'childList') {\n if (this._audioInitialized) return;\n\n const audio = this.querySelector('audio');\n const isInsidePrompt = audio && audio.closest('#preview-prompt');\n\n if (!this._model) return;\n if (!this._model.autoplayAudioEnabled) return;\n if (audio && !isInsidePrompt) return;\n if (!audio) return;\n\n const info = this._createAudioInfoToast();\n const container = this.querySelector('#main-container');\n const enableAudio = () => {\n if (this.querySelector('#play-audio-info')) {\n audio.play();\n container.removeChild(info);\n }\n\n document.removeEventListener('click', enableAudio);\n };\n\n // if the audio is paused, it means the user has not interacted with the page yet and the audio will not play\n // FIX FOR SAFARI: play with a slight delay to check if autoplay was blocked\n setTimeout(() => {\n if (audio.paused && !this.querySelector('#play-audio-info')) {\n // add info message as a toast to enable audio playback\n container.appendChild(info);\n document.addEventListener('click', enableAudio);\n } else {\n document.removeEventListener('click', enableAudio);\n }\n }, 500);\n\n // we need to listen for the playing event to remove the toast in case the audio plays because of re-rendering\n const handlePlaying = () => {\n updateSessionMetadata(this._session, { audioStartTime: new Date().getTime() });\n\n const info = this.querySelector('#play-audio-info');\n if (info) {\n container.removeChild(info);\n }\n\n audio.removeEventListener('playing', handlePlaying);\n };\n\n audio.addEventListener('playing', handlePlaying);\n\n // we need to listen for the ended event to update the isComplete state\n const handleEnded = () => {\n updateSessionMetadata(this._session, { audioEndTime: new Date().getTime() });\n this.audioComplete = true;\n this._dispatchResponseChanged();\n audio.removeEventListener('ended', handleEnded);\n };\n\n audio.addEventListener('ended', handleEnded);\n\n // store references to remove later\n this._audio = audio;\n this._handlePlaying = handlePlaying;\n this._handleEnded = handleEnded;\n this._enableAudio = enableAudio;\n // set to true to prevent multiple initializations\n this._audioInitialized = true;\n\n observer.disconnect();\n }\n });\n });\n\n observer.observe(this, { childList: true, subtree: true });\n }\n\n enableKeyboardEvents() {\n if (!this._keyboardEventsEnabled) {\n window.addEventListener('keydown', this._boundHandleKeyDown);\n this._keyboardEventsEnabled = true;\n }\n }\n\n _initPlayerObserver() {\n const player = this.closest('pie-player') || this.closest('pie-item-player');\n if (!player) return;\n\n this._playerObserver = new MutationObserver(() => {\n this._rerender();\n });\n this._playerObserver.observe(player, {\n attributes: true,\n attributeFilter: ['base-heading-level', 'baseheadinglevel', 'include-sr-heading', 'includesrheading'],\n });\n }\n\n _disconnectPlayerObserver() {\n if (this._playerObserver) {\n this._playerObserver.disconnect();\n this._playerObserver = null;\n }\n }\n\n disconnectedCallback() {\n this._disconnectMathObserver();\n this._disconnectPlayerObserver();\n if (this._keyboardEventsEnabled) {\n window.removeEventListener('keydown', this._boundHandleKeyDown);\n this._keyboardEventsEnabled = false;\n }\n\n document.removeEventListener('click', this._enableAudio);\n\n if (this._audio) {\n this._audio.removeEventListener('playing', this._handlePlaying);\n this._audio.removeEventListener('ended', this._handleEnded);\n this._audio = null;\n }\n\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n\n /**\n * Handles global keyboard events for selecting or toggling multiple-choice answers.\n * Maps keys (1-9, 0, a-j, A-J) to choices and updates the session state accordingly.\n * Ensures valid key presses toggle or select the appropriate choice based on the model.\n */\n handleKeyDown(event) {\n if (!this._model || !this._session) {\n return;\n }\n\n const { mode } = this._model;\n if (mode !== 'gather') {\n return;\n }\n\n const keyToIndex = (key) => {\n const numOffset = key >= '1' && key <= '9' ? key - '1' : key === '0' ? 9 : -1;\n const letterOffset = /^[a-jA-J]$/.test(key) ? key.toLowerCase().charCodeAt(0) - 'a'.charCodeAt(0) : -1;\n return numOffset >= 0 ? numOffset : letterOffset;\n };\n\n const choiceIndex = keyToIndex(event.key);\n\n if (choiceIndex === undefined || choiceIndex <= -1 || choiceIndex >= this._model.choices?.length) {\n return;\n }\n\n const currentValue = this._session.value || [];\n const choiceId = this._model.choices[choiceIndex].value;\n\n const alreadySelected = currentValue.includes(choiceId);\n const newValue = {\n value: choiceId,\n selected: this._model.choiceMode === 'radio' ? true : !alreadySelected,\n selector: 'Keyboard',\n };\n\n this._onChange(newValue);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_main","_interopRequireDefault","require","_react","_client","_lodashEs","_debug","_piePlayerEvents","_mathRendering","_renderUi","_sessionUpdater","_utils","log","debug","isComplete","session","model","audioComplete","elementContext","autoplayAudioEnabled","completeAudioEnabled","audio","querySelector","isInsidePrompt","closest","value","choiceMode","minSelections","maxSelections","selections","length","exceedsMaxSelections","exports","getPlayerAttributes","element","player","baseHeadingLevel","undefined","includeSrHeading","getRaw","camelCaseName","hyphenatedName","allLowerName","raw","getAttribute","levelRaw","level","parseInt","Number","isFinite","srRaw","resolveHeadingProps","fromPlayer","_baseHeadingLevel","_includeSrHeading","MultipleChoice","HTMLElement","constructor","_defineProperty2","default","_mathRenderPending","requestAnimationFrame","_mathObserver","disconnect","renderMath","setTimeout","observe","childList","subtree","_model","_session","_options","_boundHandleKeyDown","handleKeyDown","bind","_keyboardEventsEnabled","_audioInitialized","_root","_rerender","debounce","React","createElement","Main","options","onChoiceChanged","_onChange","onShowCorrectToggle","setAttribute","setLangAttribute","_initMathObserver","createRoot","render","keyboardEventsEnabled","enableKeyboardEvents","leading","trailing","_dispatchResponseChanged","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","_dispatchModelSet","ModelSetEvent","MutationObserver","_scheduleMathRender","_disconnectMathObserver","language","lang","slice","s","o","data","updateSessionValue","_createAudioInfoToast","info","document","id","Object","assign","style","position","top","width","height","display","justifyContent","alignItems","background","zIndex","cursor","img","src","EnableAudioAutoplayImage","alt","appendChild","connectedCallback","_initPlayerObserver","observer","mutationsList","forEach","mutation","type","container","enableAudio","play","removeChild","removeEventListener","paused","addEventListener","handlePlaying","updateSessionMetadata","audioStartTime","Date","getTime","handleEnded","audioEndTime","_audio","_handlePlaying","_handleEnded","_enableAudio","window","_playerObserver","attributes","attributeFilter","_disconnectPlayerObserver","disconnectedCallback","unmount","event","mode","keyToIndex","key","numOffset","letterOffset","test","charCodeAt","choiceIndex","choices","currentValue","choiceId","alreadySelected","includes","newValue","selected","selector"],"sources":["../src/index.js"],"sourcesContent":["import Main from './main';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { debounce } from 'lodash-es';\nimport debug from 'debug';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { EnableAudioAutoplayImage } from '@pie-lib/render-ui';\nimport { updateSessionValue, updateSessionMetadata } from './session-updater';\nimport { exceedsMaxSelections } from './utils';\n\nconst log = debug('pie-ui:multiple-choice');\n\nexport const isComplete = (session, model, audioComplete, elementContext) => {\n const { autoplayAudioEnabled, completeAudioEnabled } = model || {};\n\n // check audio completion if audio settings are enabled and audio actually exists\n if (autoplayAudioEnabled && completeAudioEnabled && !audioComplete) {\n if (elementContext) {\n const audio = elementContext.querySelector('audio');\n const isInsidePrompt = audio && audio.closest('.preview-prompt');\n\n // only require audio completion if audio exists and is inside the prompt\n if (audio && isInsidePrompt) {\n return false;\n }\n }\n }\n\n if (!session || !session.value) {\n return false;\n }\n\n const { choiceMode, minSelections = 1, maxSelections } = model || {};\n const selections = session.value.length || 0;\n\n if (choiceMode === 'radio') {\n return !!selections;\n }\n\n if (selections < minSelections || exceedsMaxSelections(selections, maxSelections)) {\n return false;\n }\n\n return true;\n};\n\nfunction getPlayerAttributes(element) {\n const player =\n element.closest('pie-player') ||\n element.closest('pie-item-player');\n\n if (!player) {\n return { baseHeadingLevel: undefined, includeSrHeading: true };\n }\n\n const getRaw = (camelCaseName, hyphenatedName, allLowerName) => {\n let raw = player[camelCaseName];\n\n // fallback in case someone sets via HTML attribute manually\n if (raw == null) {\n raw =\n player.getAttribute(hyphenatedName) ??\n player.getAttribute(allLowerName);\n }\n\n return raw;\n };\n\n const levelRaw = getRaw('baseHeadingLevel', 'base-heading-level', 'baseheadinglevel');\n const level = parseInt(levelRaw, 10);\n const baseHeadingLevel = Number.isFinite(level) && level >= 1 && level <= 6 ? level : undefined;\n\n const srRaw = getRaw('includeSrHeading', 'include-sr-heading', 'includesrheading');\n const includeSrHeading = srRaw == null ? true : srRaw !== false && srRaw !== 'false';\n\n return { baseHeadingLevel, includeSrHeading };\n}\n\n// Resolves heading attributes for a custom element, preferring explicit instance\n// properties (set by a parent element such as EBSR) over player-level attributes.\nfunction resolveHeadingProps(element) {\n const fromPlayer = getPlayerAttributes(element);\n\n return {\n baseHeadingLevel: element._baseHeadingLevel !== undefined ? element._baseHeadingLevel : fromPlayer.baseHeadingLevel,\n includeSrHeading: element._includeSrHeading !== undefined ? element._includeSrHeading : fromPlayer.includeSrHeading,\n };\n}\n\nexport default class MultipleChoice extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n this._options = null; // added for ebsr print mode detection\n this.audioComplete = false;\n this._boundHandleKeyDown = this.handleKeyDown.bind(this);\n this._keyboardEventsEnabled = false;\n this._audioInitialized = false;\n this._root = null;\n this._mathObserver = null;\n this._mathRenderPending = false;\n\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n var element = React.createElement(Main, {\n model: this._model,\n session: this._session,\n options: this._options,\n onChoiceChanged: this._onChange.bind(this),\n onShowCorrectToggle: this.onShowCorrectToggle.bind(this),\n ...resolveHeadingProps(this),\n });\n\n //TODO: aria-label is set in the _rerender because we need to change it when the model.choiceMode is updated. Consider revisiting the placement of the aria-label setting in the _rerender\n this.setAttribute(\n 'aria-label',\n this._model.choiceMode === 'radio' ? 'Multiple Choice Question' : 'Multiple Correct Answer Question',\n );\n this.setAttribute('role', 'region');\n this.setLangAttribute();\n\n this._initMathObserver();\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n\n if (this._model.keyboardEventsEnabled === true && !this._keyboardEventsEnabled) {\n this.enableKeyboardEvents();\n }\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n\n this._dispatchResponseChanged = debounce(() => {\n this.dispatchEvent(\n new SessionChangedEvent(\n this.tagName.toLowerCase(),\n isComplete(this._session, this._model, this.audioComplete, this),\n ),\n );\n });\n\n this._dispatchModelSet = debounce(\n () => {\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n isComplete(this._session, this._model, this.audioComplete, this),\n this._model !== undefined,\n ),\n );\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n\n _scheduleMathRender = () => {\n if (this._mathRenderPending) return;\n this._mathRenderPending = true;\n\n requestAnimationFrame(() => {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n }\n log('render complete - render math');\n renderMath(this);\n this._mathRenderPending = false;\n setTimeout(() => {\n if (this._mathObserver) {\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n }, 50);\n });\n };\n\n _initMathObserver() {\n if (this._mathObserver) return;\n this._mathObserver = new MutationObserver(this._scheduleMathRender);\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n\n _disconnectMathObserver() {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n this._mathObserver = null;\n }\n }\n\n onShowCorrectToggle() {\n renderMath(this);\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n // reset the audioInitialized to false since the model changed, and we might need to reinitialize the audio\n this._audioInitialized = false;\n this._dispatchModelSet();\n }\n\n get session() {\n return this._session;\n }\n\n get options() {\n return this._options;\n }\n\n set options(o) {\n this._options = o;\n this._rerender();\n }\n\n set baseHeadingLevel(level) {\n this._baseHeadingLevel = level;\n this._rerender();\n }\n\n set includeSrHeading(value) {\n this._includeSrHeading = value;\n this._rerender();\n }\n\n set session(s) {\n this._session = s;\n this._rerender();\n //TODO: remove this session-changed should only be emit on user change\n this._dispatchResponseChanged();\n }\n\n _onChange(data) {\n updateSessionValue(this._session, this._model.choiceMode, data);\n this._dispatchResponseChanged();\n this._rerender();\n }\n\n _createAudioInfoToast() {\n const info = document.createElement('div');\n info.id = 'play-audio-info';\n\n Object.assign(info.style, {\n position: 'absolute',\n top: 0,\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'white',\n zIndex: '1000',\n cursor: 'pointer',\n });\n\n const img = document.createElement('img');\n img.src = EnableAudioAutoplayImage;\n img.alt = 'Click anywhere to enable audio autoplay';\n img.width = 500;\n img.height = 300;\n\n info.appendChild(img);\n return info;\n }\n\n connectedCallback() {\n this._initMathObserver();\n this._initPlayerObserver();\n this._rerender();\n\n // Observation: audio in Chrome will have the autoplay attribute,\n // while other browsers will not have the autoplay attribute and will need a user interaction to play the audio\n // This workaround fixes the issue of audio being cached and played on any user interaction in Safari and Firefox\n const observer = new MutationObserver((mutationsList, observer) => {\n mutationsList.forEach((mutation) => {\n if (mutation.type === 'childList') {\n if (this._audioInitialized) return;\n\n const audio = this.querySelector('audio');\n const isInsidePrompt = audio && audio.closest('.preview-prompt');\n\n if (!this._model) return;\n if (!this._model.autoplayAudioEnabled) return;\n if (audio && !isInsidePrompt) return;\n if (!audio) return;\n\n const info = this._createAudioInfoToast();\n const container = this.querySelector('#main-container');\n const enableAudio = () => {\n if (this.querySelector('#play-audio-info')) {\n audio.play();\n container.removeChild(info);\n }\n\n document.removeEventListener('click', enableAudio);\n };\n\n // if the audio is paused, it means the user has not interacted with the page yet and the audio will not play\n // FIX FOR SAFARI: play with a slight delay to check if autoplay was blocked\n setTimeout(() => {\n if (audio.paused && !this.querySelector('#play-audio-info')) {\n // add info message as a toast to enable audio playback\n container.appendChild(info);\n document.addEventListener('click', enableAudio);\n } else {\n document.removeEventListener('click', enableAudio);\n }\n }, 500);\n\n // we need to listen for the playing event to remove the toast in case the audio plays because of re-rendering\n const handlePlaying = () => {\n updateSessionMetadata(this._session, { audioStartTime: new Date().getTime() });\n\n const info = this.querySelector('#play-audio-info');\n if (info) {\n container.removeChild(info);\n }\n\n audio.removeEventListener('playing', handlePlaying);\n };\n\n audio.addEventListener('playing', handlePlaying);\n\n // we need to listen for the ended event to update the isComplete state\n const handleEnded = () => {\n updateSessionMetadata(this._session, { audioEndTime: new Date().getTime() });\n this.audioComplete = true;\n this._dispatchResponseChanged();\n audio.removeEventListener('ended', handleEnded);\n };\n\n audio.addEventListener('ended', handleEnded);\n\n // store references to remove later\n this._audio = audio;\n this._handlePlaying = handlePlaying;\n this._handleEnded = handleEnded;\n this._enableAudio = enableAudio;\n // set to true to prevent multiple initializations\n this._audioInitialized = true;\n\n observer.disconnect();\n }\n });\n });\n\n observer.observe(this, { childList: true, subtree: true });\n }\n\n enableKeyboardEvents() {\n if (!this._keyboardEventsEnabled) {\n window.addEventListener('keydown', this._boundHandleKeyDown);\n this._keyboardEventsEnabled = true;\n }\n }\n\n _initPlayerObserver() {\n const player = this.closest('pie-player') || this.closest('pie-item-player');\n if (!player) return;\n\n this._playerObserver = new MutationObserver(() => {\n this._rerender();\n });\n this._playerObserver.observe(player, {\n attributes: true,\n attributeFilter: ['base-heading-level', 'baseheadinglevel', 'include-sr-heading', 'includesrheading'],\n });\n }\n\n _disconnectPlayerObserver() {\n if (this._playerObserver) {\n this._playerObserver.disconnect();\n this._playerObserver = null;\n }\n }\n\n disconnectedCallback() {\n this._disconnectMathObserver();\n this._disconnectPlayerObserver();\n if (this._keyboardEventsEnabled) {\n window.removeEventListener('keydown', this._boundHandleKeyDown);\n this._keyboardEventsEnabled = false;\n }\n\n document.removeEventListener('click', this._enableAudio);\n\n if (this._audio) {\n this._audio.removeEventListener('playing', this._handlePlaying);\n this._audio.removeEventListener('ended', this._handleEnded);\n this._audio = null;\n }\n\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n\n /**\n * Handles global keyboard events for selecting or toggling multiple-choice answers.\n * Maps keys (1-9, 0, a-j, A-J) to choices and updates the session state accordingly.\n * Ensures valid key presses toggle or select the appropriate choice based on the model.\n */\n handleKeyDown(event) {\n if (!this._model || !this._session) {\n return;\n }\n\n const { mode } = this._model;\n if (mode !== 'gather') {\n return;\n }\n\n const keyToIndex = (key) => {\n const numOffset = key >= '1' && key <= '9' ? key - '1' : key === '0' ? 9 : -1;\n const letterOffset = /^[a-jA-J]$/.test(key) ? key.toLowerCase().charCodeAt(0) - 'a'.charCodeAt(0) : -1;\n return numOffset >= 0 ? numOffset : letterOffset;\n };\n\n const choiceIndex = keyToIndex(event.key);\n\n if (choiceIndex === undefined || choiceIndex <= -1 || choiceIndex >= this._model.choices?.length) {\n return;\n }\n\n const currentValue = this._session.value || [];\n const choiceId = this._model.choices[choiceIndex].value;\n\n const alreadySelected = currentValue.includes(choiceId);\n const newValue = {\n value: choiceId,\n selected: this._model.choiceMode === 'radio' ? true : !alreadySelected,\n selector: 'Keyboard',\n };\n\n this._onChange(newValue);\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAEA,MAAMU,GAAG,GAAG,IAAAC,cAAK,EAAC,wBAAwB,CAAC;AAEpC,MAAMC,UAAU,GAAGA,CAACC,OAAO,EAAEC,KAAK,EAAEC,aAAa,EAAEC,cAAc,KAAK;EAC3E,MAAM;IAAEC,oBAAoB;IAAEC;EAAqB,CAAC,GAAGJ,KAAK,IAAI,CAAC,CAAC;;EAElE;EACA,IAAIG,oBAAoB,IAAIC,oBAAoB,IAAI,CAACH,aAAa,EAAE;IAClE,IAAIC,cAAc,EAAE;MAClB,MAAMG,KAAK,GAAGH,cAAc,CAACI,aAAa,CAAC,OAAO,CAAC;MACnD,MAAMC,cAAc,GAAGF,KAAK,IAAIA,KAAK,CAACG,OAAO,CAAC,iBAAiB,CAAC;;MAEhE;MACA,IAAIH,KAAK,IAAIE,cAAc,EAAE;QAC3B,OAAO,KAAK;MACd;IACF;EACF;EAEA,IAAI,CAACR,OAAO,IAAI,CAACA,OAAO,CAACU,KAAK,EAAE;IAC9B,OAAO,KAAK;EACd;EAEA,MAAM;IAAEC,UAAU;IAAEC,aAAa,GAAG,CAAC;IAAEC;EAAc,CAAC,GAAGZ,KAAK,IAAI,CAAC,CAAC;EACpE,MAAMa,UAAU,GAAGd,OAAO,CAACU,KAAK,CAACK,MAAM,IAAI,CAAC;EAE5C,IAAIJ,UAAU,KAAK,OAAO,EAAE;IAC1B,OAAO,CAAC,CAACG,UAAU;EACrB;EAEA,IAAIA,UAAU,GAAGF,aAAa,IAAI,IAAAI,2BAAoB,EAACF,UAAU,EAAED,aAAa,CAAC,EAAE;IACjF,OAAO,KAAK;EACd;EAEA,OAAO,IAAI;AACb,CAAC;AAACI,OAAA,CAAAlB,UAAA,GAAAA,UAAA;AAEF,SAASmB,mBAAmBA,CAACC,OAAO,EAAE;EACpC,MAAMC,MAAM,GACVD,OAAO,CAACV,OAAO,CAAC,YAAY,CAAC,IAC7BU,OAAO,CAACV,OAAO,CAAC,iBAAiB,CAAC;EAEpC,IAAI,CAACW,MAAM,EAAE;IACX,OAAO;MAAEC,gBAAgB,EAAEC,SAAS;MAAEC,gBAAgB,EAAE;IAAK,CAAC;EAChE;EAEA,MAAMC,MAAM,GAAGA,CAACC,aAAa,EAAEC,cAAc,EAAEC,YAAY,KAAK;IAC9D,IAAIC,GAAG,GAAGR,MAAM,CAACK,aAAa,CAAC;;IAE/B;IACA,IAAIG,GAAG,IAAI,IAAI,EAAE;MACfA,GAAG,GACDR,MAAM,CAACS,YAAY,CAACH,cAAc,CAAC,IACnCN,MAAM,CAACS,YAAY,CAACF,YAAY,CAAC;IACrC;IAEA,OAAOC,GAAG;EACZ,CAAC;EAED,MAAME,QAAQ,GAAGN,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;EACrF,MAAMO,KAAK,GAAGC,QAAQ,CAACF,QAAQ,EAAE,EAAE,CAAC;EACpC,MAAMT,gBAAgB,GAAGY,MAAM,CAACC,QAAQ,CAACH,KAAK,CAAC,IAAIA,KAAK,IAAI,CAAC,IAAIA,KAAK,IAAI,CAAC,GAAGA,KAAK,GAAGT,SAAS;EAE/F,MAAMa,KAAK,GAAGX,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;EAClF,MAAMD,gBAAgB,GAAGY,KAAK,IAAI,IAAI,GAAG,IAAI,GAAGA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,OAAO;EAEpF,OAAO;IAAEd,gBAAgB;IAAEE;EAAiB,CAAC;AAC/C;;AAEA;AACA;AACA,SAASa,mBAAmBA,CAACjB,OAAO,EAAE;EACpC,MAAMkB,UAAU,GAAGnB,mBAAmB,CAACC,OAAO,CAAC;EAE/C,OAAO;IACLE,gBAAgB,EAAEF,OAAO,CAACmB,iBAAiB,KAAKhB,SAAS,GAAGH,OAAO,CAACmB,iBAAiB,GAAGD,UAAU,CAAChB,gBAAgB;IACnHE,gBAAgB,EAAEJ,OAAO,CAACoB,iBAAiB,KAAKjB,SAAS,GAAGH,OAAO,CAACoB,iBAAiB,GAAGF,UAAU,CAACd;EACrG,CAAC;AACH;AAEe,MAAMiB,cAAc,SAASC,WAAW,CAAC;EACtDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,+BA0EY,MAAM;MAC1B,IAAI,IAAI,CAACC,kBAAkB,EAAE;MAC7B,IAAI,CAACA,kBAAkB,GAAG,IAAI;MAE9BC,qBAAqB,CAAC,MAAM;QAC1B,IAAI,IAAI,CAACC,aAAa,EAAE;UACtB,IAAI,CAACA,aAAa,CAACC,UAAU,CAAC,CAAC;QACjC;QACAnD,GAAG,CAAC,+BAA+B,CAAC;QACpC,IAAAoD,yBAAU,EAAC,IAAI,CAAC;QAChB,IAAI,CAACJ,kBAAkB,GAAG,KAAK;QAC/BK,UAAU,CAAC,MAAM;UACf,IAAI,IAAI,CAACH,aAAa,EAAE;YACtB,IAAI,CAACA,aAAa,CAACI,OAAO,CAAC,IAAI,EAAE;cAAEC,SAAS,EAAE,IAAI;cAAEC,OAAO,EAAE;YAAK,CAAC,CAAC;UACtE;QACF,CAAC,EAAE,EAAE,CAAC;MACR,CAAC,CAAC;IACJ,CAAC;IA1FC,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACtB,IAAI,CAACtD,aAAa,GAAG,KAAK;IAC1B,IAAI,CAACuD,mBAAmB,GAAG,IAAI,CAACC,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACC,sBAAsB,GAAG,KAAK;IACnC,IAAI,CAACC,iBAAiB,GAAG,KAAK;IAC9B,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACf,aAAa,GAAG,IAAI;IACzB,IAAI,CAACF,kBAAkB,GAAG,KAAK;IAE/B,IAAI,CAACkB,SAAS,GAAG,IAAAC,kBAAQ,EACvB,MAAM;MACJ,IAAI,IAAI,CAACV,MAAM,IAAI,IAAI,CAACC,QAAQ,EAAE;QAChC,IAAIpC,OAAO,gBAAG8C,cAAK,CAACC,aAAa,CAACC,aAAI,EAAE;UACtClE,KAAK,EAAE,IAAI,CAACqD,MAAM;UAClBtD,OAAO,EAAE,IAAI,CAACuD,QAAQ;UACtBa,OAAO,EAAE,IAAI,CAACZ,QAAQ;UACtBa,eAAe,EAAE,IAAI,CAACC,SAAS,CAACX,IAAI,CAAC,IAAI,CAAC;UAC1CY,mBAAmB,EAAE,IAAI,CAACA,mBAAmB,CAACZ,IAAI,CAAC,IAAI,CAAC;UACxD,GAAGvB,mBAAmB,CAAC,IAAI;QAC7B,CAAC,CAAC;;QAEF;QACA,IAAI,CAACoC,YAAY,CACf,YAAY,EACZ,IAAI,CAAClB,MAAM,CAAC3C,UAAU,KAAK,OAAO,GAAG,0BAA0B,GAAG,kCACpE,CAAC;QACD,IAAI,CAAC6D,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;QACnC,IAAI,CAACC,gBAAgB,CAAC,CAAC;QAEvB,IAAI,CAACC,iBAAiB,CAAC,CAAC;QAExB,IAAI,CAAC,IAAI,CAACZ,KAAK,EAAE;UACf,IAAI,CAACA,KAAK,GAAG,IAAAa,kBAAU,EAAC,IAAI,CAAC;QAC/B;QACA,IAAI,CAACb,KAAK,CAACc,MAAM,CAACzD,OAAO,CAAC;QAE1B,IAAI,IAAI,CAACmC,MAAM,CAACuB,qBAAqB,KAAK,IAAI,IAAI,CAAC,IAAI,CAACjB,sBAAsB,EAAE;UAC9E,IAAI,CAACkB,oBAAoB,CAAC,CAAC;QAC7B;MACF,CAAC,MAAM;QACLjF,GAAG,CAAC,MAAM,CAAC;MACb;IACF,CAAC,EACD,EAAE,EACF;MAAEkF,OAAO,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAK,CACnC,CAAC;IAED,IAAI,CAACC,wBAAwB,GAAG,IAAAjB,kBAAQ,EAAC,MAAM;MAC7C,IAAI,CAACkB,aAAa,CAChB,IAAIC,oCAAmB,CACrB,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAC1BtF,UAAU,CAAC,IAAI,CAACwD,QAAQ,EAAE,IAAI,CAACD,MAAM,EAAE,IAAI,CAACpD,aAAa,EAAE,IAAI,CACjE,CACF,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAACoF,iBAAiB,GAAG,IAAAtB,kBAAQ,EAC/B,MAAM;MACJ,IAAI,CAACkB,aAAa,CAChB,IAAIK,8BAAa,CACf,IAAI,CAACH,OAAO,CAACC,WAAW,CAAC,CAAC,EAC1BtF,UAAU,CAAC,IAAI,CAACwD,QAAQ,EAAE,IAAI,CAACD,MAAM,EAAE,IAAI,CAACpD,aAAa,EAAE,IAAI,CAAC,EAChE,IAAI,CAACoD,MAAM,KAAKhC,SAClB,CACF,CAAC;IACH,CAAC,EACD,EAAE,EACF;MAAEyD,OAAO,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAK,CACnC,CAAC;EACH;EAqBAN,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAAC3B,aAAa,EAAE;IACxB,IAAI,CAACA,aAAa,GAAG,IAAIyC,gBAAgB,CAAC,IAAI,CAACC,mBAAmB,CAAC;IACnE,IAAI,CAAC1C,aAAa,CAACI,OAAO,CAAC,IAAI,EAAE;MAAEC,SAAS,EAAE,IAAI;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;EACtE;EAEAqC,uBAAuBA,CAAA,EAAG;IACxB,IAAI,IAAI,CAAC3C,aAAa,EAAE;MACtB,IAAI,CAACA,aAAa,CAACC,UAAU,CAAC,CAAC;MAC/B,IAAI,CAACD,aAAa,GAAG,IAAI;IAC3B;EACF;EAEAwB,mBAAmBA,CAAA,EAAG;IACpB,IAAAtB,yBAAU,EAAC,IAAI,CAAC;EAClB;EAEAwB,gBAAgBA,CAAA,EAAG;IACjB,MAAMkB,QAAQ,GAAG,IAAI,CAACrC,MAAM,IAAI,OAAO,IAAI,CAACA,MAAM,CAACqC,QAAQ,GAAG,IAAI,CAACrC,MAAM,CAACqC,QAAQ,GAAG,EAAE;IACvF,MAAMC,IAAI,GAAGD,QAAQ,GAAGA,QAAQ,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IACnD,IAAI,CAACrB,YAAY,CAAC,MAAM,EAAEoB,IAAI,CAAC;EACjC;EAEA,IAAI3F,KAAKA,CAAC6F,CAAC,EAAE;IACX,IAAI,CAACxC,MAAM,GAAGwC,CAAC;IACf,IAAI,CAAC/B,SAAS,CAAC,CAAC;IAChB;IACA,IAAI,CAACF,iBAAiB,GAAG,KAAK;IAC9B,IAAI,CAACyB,iBAAiB,CAAC,CAAC;EAC1B;EAEA,IAAItF,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACuD,QAAQ;EACtB;EAEA,IAAIa,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACZ,QAAQ;EACtB;EAEA,IAAIY,OAAOA,CAAC2B,CAAC,EAAE;IACb,IAAI,CAACvC,QAAQ,GAAGuC,CAAC;IACjB,IAAI,CAAChC,SAAS,CAAC,CAAC;EAClB;EAEA,IAAI1C,gBAAgBA,CAACU,KAAK,EAAE;IAC1B,IAAI,CAACO,iBAAiB,GAAGP,KAAK;IAC9B,IAAI,CAACgC,SAAS,CAAC,CAAC;EAClB;EAEA,IAAIxC,gBAAgBA,CAACb,KAAK,EAAE;IAC1B,IAAI,CAAC6B,iBAAiB,GAAG7B,KAAK;IAC9B,IAAI,CAACqD,SAAS,CAAC,CAAC;EAClB;EAEA,IAAI/D,OAAOA,CAAC8F,CAAC,EAAE;IACb,IAAI,CAACvC,QAAQ,GAAGuC,CAAC;IACjB,IAAI,CAAC/B,SAAS,CAAC,CAAC;IAChB;IACA,IAAI,CAACkB,wBAAwB,CAAC,CAAC;EACjC;EAEAX,SAASA,CAAC0B,IAAI,EAAE;IACd,IAAAC,kCAAkB,EAAC,IAAI,CAAC1C,QAAQ,EAAE,IAAI,CAACD,MAAM,CAAC3C,UAAU,EAAEqF,IAAI,CAAC;IAC/D,IAAI,CAACf,wBAAwB,CAAC,CAAC;IAC/B,IAAI,CAAClB,SAAS,CAAC,CAAC;EAClB;EAEAmC,qBAAqBA,CAAA,EAAG;IACtB,MAAMC,IAAI,GAAGC,QAAQ,CAAClC,aAAa,CAAC,KAAK,CAAC;IAC1CiC,IAAI,CAACE,EAAE,GAAG,iBAAiB;IAE3BC,MAAM,CAACC,MAAM,CAACJ,IAAI,CAACK,KAAK,EAAE;MACxBC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,KAAK,EAAE,MAAM;MACbC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE,MAAM;MACfC,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE,OAAO;MACnBC,MAAM,EAAE,MAAM;MACdC,MAAM,EAAE;IACV,CAAC,CAAC;IAEF,MAAMC,GAAG,GAAGf,QAAQ,CAAClC,aAAa,CAAC,KAAK,CAAC;IACzCiD,GAAG,CAACC,GAAG,GAAGC,kCAAwB;IAClCF,GAAG,CAACG,GAAG,GAAG,yCAAyC;IACnDH,GAAG,CAACR,KAAK,GAAG,GAAG;IACfQ,GAAG,CAACP,MAAM,GAAG,GAAG;IAEhBT,IAAI,CAACoB,WAAW,CAACJ,GAAG,CAAC;IACrB,OAAOhB,IAAI;EACb;EAEAqB,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAAC9C,iBAAiB,CAAC,CAAC;IACxB,IAAI,CAAC+C,mBAAmB,CAAC,CAAC;IAC1B,IAAI,CAAC1D,SAAS,CAAC,CAAC;;IAEhB;IACA;IACA;IACA,MAAM2D,QAAQ,GAAG,IAAIlC,gBAAgB,CAAC,CAACmC,aAAa,EAAED,QAAQ,KAAK;MACjEC,aAAa,CAACC,OAAO,CAAEC,QAAQ,IAAK;QAClC,IAAIA,QAAQ,CAACC,IAAI,KAAK,WAAW,EAAE;UACjC,IAAI,IAAI,CAACjE,iBAAiB,EAAE;UAE5B,MAAMvD,KAAK,GAAG,IAAI,CAACC,aAAa,CAAC,OAAO,CAAC;UACzC,MAAMC,cAAc,GAAGF,KAAK,IAAIA,KAAK,CAACG,OAAO,CAAC,iBAAiB,CAAC;UAEhE,IAAI,CAAC,IAAI,CAAC6C,MAAM,EAAE;UAClB,IAAI,CAAC,IAAI,CAACA,MAAM,CAAClD,oBAAoB,EAAE;UACvC,IAAIE,KAAK,IAAI,CAACE,cAAc,EAAE;UAC9B,IAAI,CAACF,KAAK,EAAE;UAEZ,MAAM6F,IAAI,GAAG,IAAI,CAACD,qBAAqB,CAAC,CAAC;UACzC,MAAM6B,SAAS,GAAG,IAAI,CAACxH,aAAa,CAAC,iBAAiB,CAAC;UACvD,MAAMyH,WAAW,GAAGA,CAAA,KAAM;YACxB,IAAI,IAAI,CAACzH,aAAa,CAAC,kBAAkB,CAAC,EAAE;cAC1CD,KAAK,CAAC2H,IAAI,CAAC,CAAC;cACZF,SAAS,CAACG,WAAW,CAAC/B,IAAI,CAAC;YAC7B;YAEAC,QAAQ,CAAC+B,mBAAmB,CAAC,OAAO,EAAEH,WAAW,CAAC;UACpD,CAAC;;UAED;UACA;UACA9E,UAAU,CAAC,MAAM;YACf,IAAI5C,KAAK,CAAC8H,MAAM,IAAI,CAAC,IAAI,CAAC7H,aAAa,CAAC,kBAAkB,CAAC,EAAE;cAC3D;cACAwH,SAAS,CAACR,WAAW,CAACpB,IAAI,CAAC;cAC3BC,QAAQ,CAACiC,gBAAgB,CAAC,OAAO,EAAEL,WAAW,CAAC;YACjD,CAAC,MAAM;cACL5B,QAAQ,CAAC+B,mBAAmB,CAAC,OAAO,EAAEH,WAAW,CAAC;YACpD;UACF,CAAC,EAAE,GAAG,CAAC;;UAEP;UACA,MAAMM,aAAa,GAAGA,CAAA,KAAM;YAC1B,IAAAC,qCAAqB,EAAC,IAAI,CAAChF,QAAQ,EAAE;cAAEiF,cAAc,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC;YAAE,CAAC,CAAC;YAE9E,MAAMvC,IAAI,GAAG,IAAI,CAAC5F,aAAa,CAAC,kBAAkB,CAAC;YACnD,IAAI4F,IAAI,EAAE;cACR4B,SAAS,CAACG,WAAW,CAAC/B,IAAI,CAAC;YAC7B;YAEA7F,KAAK,CAAC6H,mBAAmB,CAAC,SAAS,EAAEG,aAAa,CAAC;UACrD,CAAC;UAEDhI,KAAK,CAAC+H,gBAAgB,CAAC,SAAS,EAAEC,aAAa,CAAC;;UAEhD;UACA,MAAMK,WAAW,GAAGA,CAAA,KAAM;YACxB,IAAAJ,qCAAqB,EAAC,IAAI,CAAChF,QAAQ,EAAE;cAAEqF,YAAY,EAAE,IAAIH,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC;YAAE,CAAC,CAAC;YAC5E,IAAI,CAACxI,aAAa,GAAG,IAAI;YACzB,IAAI,CAAC+E,wBAAwB,CAAC,CAAC;YAC/B3E,KAAK,CAAC6H,mBAAmB,CAAC,OAAO,EAAEQ,WAAW,CAAC;UACjD,CAAC;UAEDrI,KAAK,CAAC+H,gBAAgB,CAAC,OAAO,EAAEM,WAAW,CAAC;;UAE5C;UACA,IAAI,CAACE,MAAM,GAAGvI,KAAK;UACnB,IAAI,CAACwI,cAAc,GAAGR,aAAa;UACnC,IAAI,CAACS,YAAY,GAAGJ,WAAW;UAC/B,IAAI,CAACK,YAAY,GAAGhB,WAAW;UAC/B;UACA,IAAI,CAACnE,iBAAiB,GAAG,IAAI;UAE7B6D,QAAQ,CAAC1E,UAAU,CAAC,CAAC;QACvB;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF0E,QAAQ,CAACvE,OAAO,CAAC,IAAI,EAAE;MAAEC,SAAS,EAAE,IAAI;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;EAC5D;EAEAyB,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAAC,IAAI,CAAClB,sBAAsB,EAAE;MAChCqF,MAAM,CAACZ,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC5E,mBAAmB,CAAC;MAC5D,IAAI,CAACG,sBAAsB,GAAG,IAAI;IACpC;EACF;EAEA6D,mBAAmBA,CAAA,EAAG;IACpB,MAAMrG,MAAM,GAAG,IAAI,CAACX,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAACA,OAAO,CAAC,iBAAiB,CAAC;IAC5E,IAAI,CAACW,MAAM,EAAE;IAEb,IAAI,CAAC8H,eAAe,GAAG,IAAI1D,gBAAgB,CAAC,MAAM;MAChD,IAAI,CAACzB,SAAS,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,IAAI,CAACmF,eAAe,CAAC/F,OAAO,CAAC/B,MAAM,EAAE;MACnC+H,UAAU,EAAE,IAAI;MAChBC,eAAe,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB;IACtG,CAAC,CAAC;EACJ;EAEAC,yBAAyBA,CAAA,EAAG;IAC1B,IAAI,IAAI,CAACH,eAAe,EAAE;MACxB,IAAI,CAACA,eAAe,CAAClG,UAAU,CAAC,CAAC;MACjC,IAAI,CAACkG,eAAe,GAAG,IAAI;IAC7B;EACF;EAEAI,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAAC5D,uBAAuB,CAAC,CAAC;IAC9B,IAAI,CAAC2D,yBAAyB,CAAC,CAAC;IAChC,IAAI,IAAI,CAACzF,sBAAsB,EAAE;MAC/BqF,MAAM,CAACd,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC1E,mBAAmB,CAAC;MAC/D,IAAI,CAACG,sBAAsB,GAAG,KAAK;IACrC;IAEAwC,QAAQ,CAAC+B,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACa,YAAY,CAAC;IAExD,IAAI,IAAI,CAACH,MAAM,EAAE;MACf,IAAI,CAACA,MAAM,CAACV,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACW,cAAc,CAAC;MAC/D,IAAI,CAACD,MAAM,CAACV,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACY,YAAY,CAAC;MAC3D,IAAI,CAACF,MAAM,GAAG,IAAI;IACpB;IAEA,IAAI,IAAI,CAAC/E,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACyF,OAAO,CAAC,CAAC;MACpB,IAAI,CAACzF,KAAK,GAAG,IAAI;IACnB;EACF;;EAEA;AACF;AACA;AACA;AACA;EACEJ,aAAaA,CAAC8F,KAAK,EAAE;IACnB,IAAI,CAAC,IAAI,CAAClG,MAAM,IAAI,CAAC,IAAI,CAACC,QAAQ,EAAE;MAClC;IACF;IAEA,MAAM;MAAEkG;IAAK,CAAC,GAAG,IAAI,CAACnG,MAAM;IAC5B,IAAImG,IAAI,KAAK,QAAQ,EAAE;MACrB;IACF;IAEA,MAAMC,UAAU,GAAIC,GAAG,IAAK;MAC1B,MAAMC,SAAS,GAAGD,GAAG,IAAI,GAAG,IAAIA,GAAG,IAAI,GAAG,GAAGA,GAAG,GAAG,GAAG,GAAGA,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;MAC7E,MAAME,YAAY,GAAG,YAAY,CAACC,IAAI,CAACH,GAAG,CAAC,GAAGA,GAAG,CAACtE,WAAW,CAAC,CAAC,CAAC0E,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAACA,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;MACtG,OAAOH,SAAS,IAAI,CAAC,GAAGA,SAAS,GAAGC,YAAY;IAClD,CAAC;IAED,MAAMG,WAAW,GAAGN,UAAU,CAACF,KAAK,CAACG,GAAG,CAAC;IAEzC,IAAIK,WAAW,KAAK1I,SAAS,IAAI0I,WAAW,IAAI,CAAC,CAAC,IAAIA,WAAW,IAAI,IAAI,CAAC1G,MAAM,CAAC2G,OAAO,EAAElJ,MAAM,EAAE;MAChG;IACF;IAEA,MAAMmJ,YAAY,GAAG,IAAI,CAAC3G,QAAQ,CAAC7C,KAAK,IAAI,EAAE;IAC9C,MAAMyJ,QAAQ,GAAG,IAAI,CAAC7G,MAAM,CAAC2G,OAAO,CAACD,WAAW,CAAC,CAACtJ,KAAK;IAEvD,MAAM0J,eAAe,GAAGF,YAAY,CAACG,QAAQ,CAACF,QAAQ,CAAC;IACvD,MAAMG,QAAQ,GAAG;MACf5J,KAAK,EAAEyJ,QAAQ;MACfI,QAAQ,EAAE,IAAI,CAACjH,MAAM,CAAC3C,UAAU,KAAK,OAAO,GAAG,IAAI,GAAG,CAACyJ,eAAe;MACtEI,QAAQ,EAAE;IACZ,CAAC;IAED,IAAI,CAAClG,SAAS,CAACgG,QAAQ,CAAC;EAC1B;AACF;AAACrJ,OAAA,CAAA2B,OAAA,GAAAJ,cAAA","ignoreList":[]}
|
package/lib/main.js
CHANGED
|
@@ -60,4 +60,4 @@ class Main extends _react.default.Component {
|
|
|
60
60
|
session: {}
|
|
61
61
|
});
|
|
62
62
|
var _default = exports.default = Main;
|
|
63
|
-
//# sourceMappingURL=
|
|
63
|
+
//# sourceMappingURL=main.js.map
|