@envive-ai/react-hooks 0.3.40 → 0.3.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application/utils/elementObserver.d.ts +2 -2
- package/dist/atoms/app/index.d.cts +1 -1
- package/dist/atoms/app/index.d.ts +6 -6
- package/dist/atoms/app/variant.d.cts +1 -1
- package/dist/atoms/app/variant.d.ts +7 -7
- package/dist/atoms/chat/chatState.d.cts +18 -18
- package/dist/atoms/chat/chatState.d.ts +19 -19
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.d.cts +3 -3
- package/dist/atoms/chat/index.d.ts +3 -3
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.cts +6 -6
- package/dist/atoms/chat/messageQueue.d.ts +7 -7
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +3 -3
- package/dist/atoms/chat/replies.d.ts +2 -2
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +3 -3
- package/dist/atoms/envive/enviveConfig.d.ts +13 -13
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +4 -4
- package/dist/atoms/org/graphqlConfig.d.ts +4 -4
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/search/types.d.ts +1 -1
- package/dist/atoms/search/utils.d.ts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/enviveCssContext/enviveCssContext.cjs +2 -1
- package/dist/contexts/enviveCssContext/enviveCssContext.js +2 -1
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/types.d.ts +1 -1
- package/dist/contexts/typesV3.cjs +2 -1
- package/dist/contexts/typesV3.d.cts +3 -1
- package/dist/contexts/typesV3.d.ts +3 -1
- package/dist/contexts/typesV3.js +2 -1
- package/dist/hooks/FocusTrap/index.cjs +3 -0
- package/dist/hooks/FocusTrap/index.d.cts +2 -0
- package/dist/hooks/FocusTrap/index.d.ts +2 -0
- package/dist/hooks/FocusTrap/index.js +3 -0
- package/dist/hooks/FocusTrap/useFocusTrap.cjs +105 -0
- package/dist/hooks/FocusTrap/useFocusTrap.d.cts +20 -0
- package/dist/hooks/FocusTrap/useFocusTrap.d.ts +20 -0
- package/dist/hooks/FocusTrap/useFocusTrap.js +104 -0
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/package.json +5 -1
- package/src/contexts/enviveCssContext/enviveCssContext.tsx +1 -0
- package/src/contexts/typesV3.ts +2 -0
- package/src/hooks/FocusTrap/__tests__/useFocusTrap.test.tsx +236 -0
- package/src/hooks/FocusTrap/index.ts +1 -0
- package/src/hooks/FocusTrap/useFocusTrap.ts +125 -0
package/dist/contexts/typesV3.js
CHANGED
|
@@ -94,6 +94,7 @@ let ColorsNamesVars = /* @__PURE__ */ function(ColorsNamesVars$1) {
|
|
|
94
94
|
}({});
|
|
95
95
|
let ButtonColorsVars = /* @__PURE__ */ function(ButtonColorsVars$1) {
|
|
96
96
|
ButtonColorsVars$1["LightButtonBackgroundColor"] = "envive-colors-button-light-background-color";
|
|
97
|
+
ButtonColorsVars$1["LightButtonBorderColor"] = "envive-colors-button-light-border-color";
|
|
97
98
|
ButtonColorsVars$1["LightButtonIconColor"] = "envive-colors-button-light-icon-color";
|
|
98
99
|
ButtonColorsVars$1["DarkButtonBackgroundColor"] = "envive-colors-button-dark-background-color";
|
|
99
100
|
ButtonColorsVars$1["DarkButtonIconColor"] = "envive-colors-button-dark-icon-color";
|
|
@@ -125,4 +126,4 @@ let WidgetTypeV3 = /* @__PURE__ */ function(WidgetTypeV3$1) {
|
|
|
125
126
|
|
|
126
127
|
//#endregion
|
|
127
128
|
export { AspectRatioCSSVar, BorderRadiusCSSVar, ButtonColorsVars, ColorsNamesVars, ConfigVersionEnum, FontFamilyCSSVar, FontSizeCSSVar, FontWeightCSSVar, LetterSpacingCSSVar, LineHeightCSSVar, ThemeCSSVar, WidgetTypeV3 };
|
|
128
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNWMy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dHMvdHlwZXNWMy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uJztcbmltcG9ydCB7IEltYWdlR2FsbGVyeUltYWdlLCBJbWFnZUdhbGxlcnlMYXlvdXQgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvSW1hZ2VHYWxsZXJ5JztcbmltcG9ydCB7IFByb21wdEJ1dHRvblZhcmlhbnQgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvUHJvbXB0QnV0dG9uJztcbmltcG9ydCB7IEFuaW1hdGlvblNwZWVkLCBQcm9tcHRDYXJvdXNlbFJvd3MgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvUHJvbXB0Q2Fyb3VzZWwnO1xuaW1wb3J0IHsgRHluYW1pY0xheW91dCwgV2lkZ2V0S2luZCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Tb2NpYWxQcm9vZic7XG5pbXBvcnQgeyBUaGVtZSB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Ub2tlbnMnO1xuaW1wb3J0IHsgU3BhcmtsZUljb25Db2xvciB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XZWxjb21lTWVzc2FnZSc7XG5pbXBvcnQgeyBXaWRnZXRXcmFwcGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XaWRnZXRXcmFwcGVyJztcbmltcG9ydCB7IENvbG9yTmFtZXMgfSBmcm9tICcuLi9hcHBsaWNhdGlvbi9tb2RlbHMvY29sb3JzQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ3VzdG9tZXJTZXJ2aWNlVHlwZSB9IGZyb20gJy4uL3R5cGVzL2N1c3RvbWVyU2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IFNlYXJjaENvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZW51bSBMZXR0ZXJTcGFjaW5nQ1NTVmFyIHtcbiAgVDEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctdDEnLFxuICBUMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy10MicsXG4gIFQzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLXQzJyxcbiAgSDEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctaDEnLFxuICBIMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1oMicsXG4gIEgzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLWgzJyxcbiAgQjEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctYjEnLFxuICBCMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iMicsXG4gIEIzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLWIzJyxcbiAgQjQgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctYjQnLFxuICBCNSA9ICdlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iNScsXG4gIEwxID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLWwxJyxcbiAgTDIgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctbDInLFxufVxuXG5leHBvcnQgZW51bSBMaW5lSGVpZ2h0Q1NTVmFyIHtcbiAgVDEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtdDEnLFxuICBUMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC10MicsXG4gIFQzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LXQzJyxcbiAgSDEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtaDEnLFxuICBIMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1oMicsXG4gIEgzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LWgzJyxcbiAgQjEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtYjEnLFxuICBCMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iMicsXG4gIEIzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LWIzJyxcbiAgQjQgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtYjQnLFxuICBCNSA9ICdlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iNScsXG4gIEwxID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LWwxJyxcbiAgTDIgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtbDInLFxufVxuXG5leHBvcnQgZW51bSBGb250V2VpZ2h0Q1NTVmFyIHtcbiAgVGl0bGUgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdGl0bGUnLFxuICBIZWFkZXIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtaGVhZGVyJyxcbiAgQm9keUVtcGhhc2lzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LWJvZHktZW1waGFzaXMnLFxuICBCb2R5U3RhbmRhcmQgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtYm9keS1zdGFuZGFyZCcsXG59XG5cbmV4cG9ydCBlbnVtIEZvbnRTaXplQ1NTVmFyIHtcbiAgVDEgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLXQxJyxcbiAgVDIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLXQyJyxcbiAgVDMgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLXQzJyxcbiAgSDEgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWgxJyxcbiAgSDIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWgyJyxcbiAgSDMgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWgzJyxcbiAgQjEgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWIxJyxcbiAgQjIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWIyJyxcbiAgQjMgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWIzJyxcbiAgQjQgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWI0JyxcbiAgQjUgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWI1JyxcbiAgTDEgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWwxJyxcbiAgTDIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWwyJyxcbn1cblxuZXhwb3J0IGVudW0gRm9udEZhbWlseUNTU1ZhciB7XG4gIFRpdGxlID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LXRpdGxlJyxcbiAgSGVhZGVyID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LWhlYWRlcicsXG4gIEJvZHkgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1mYW1pbHktYm9keScsXG59XG5cbmV4cG9ydCBlbnVtIFRoZW1lQ1NTVmFyIHtcbiAgR2xvYmFsQ3VzdG9tID0gJ2Vudml2ZS1nbG9iYWwtY3VzdG9tLXRoZW1lJyxcbn1cblxuZXhwb3J0IGVudW0gQXNwZWN0UmF0aW9DU1NWYXIge1xuICBHbG9iYWxDdXN0b20gPSAnZW52aXZlLWdsb2JhbC1jdXN0b20tYXNwZWN0LXJhdGlvJyxcbn1cblxuZXhwb3J0IGVudW0gQm9yZGVyUmFkaXVzQ1NTVmFyIHtcbiAgR2xvYmFsQ3VzdG9tID0gJ2Vudml2ZS1nbG9iYWwtY3VzdG9tLWJvcmRlci1yYWRpdXMnLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBDb2xvcnNOYW1lc1ZhcnMge1xuICBUZXh0UHJpbWFyeSA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5UZXh0UHJpbWFyeX1gLFxuICBUZXh0U2Vjb25kYXJ5ID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLlRleHRTZWNvbmRhcnl9YCxcbiAgVGV4dEFjY2VudCA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5UZXh0QWNjZW50fWAsXG4gIFRleHRMaW5rID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLlRleHRMaW5rfWAsXG4gIFRleHRMaWdodCA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5UZXh0TGlnaHR9YCxcbiAgQmFja2dyb3VuZFByaW1hcnkgPSBgZW52aXZlLWNvbG9ycy0ke0NvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnl9YCxcbiAgQmFja2dyb3VuZFNlY29uZGFyeSA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5fWAsXG4gIEJhY2tncm91bmRUZXJ0aWFyeSA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5CYWNrZ3JvdW5kVGVydGlhcnl9YCxcbiAgQmFja2dyb3VuZERhcmsgPSBgZW52aXZlLWNvbG9ycy0ke0NvbG9yTmFtZXMuQmFja2dyb3VuZERhcmt9YCxcbiAgQmFja2dyb3VuZExpZ2h0ID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLkJhY2tncm91bmRMaWdodH1gLFxuICBCb3JkZXJMaWdodCA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5Cb3JkZXJMaWdodH1gLFxuICBCb3JkZXJNZWRpdW0gPSBgZW52aXZlLWNvbG9ycy0ke0NvbG9yTmFtZXMuQm9yZGVyTWVkaXVtfWAsXG4gIEJvcmRlckRhcmsgPSBgZW52aXZlLWNvbG9ycy0ke0NvbG9yTmFtZXMuQm9yZGVyRGFya31gLFxuICBBY2NlbnRQcmltYXJ5ID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLkFjY2VudFByaW1hcnl9YCxcbiAgQWNjZW50U2Vjb25kYXJ5ID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLkFjY2VudFNlY29uZGFyeX1gLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBCdXR0b25Db2xvcnNWYXJzIHtcbiAgTGlnaHRCdXR0b25CYWNrZ3JvdW5kQ29sb3IgPSAnZW52aXZlLWNvbG9ycy1idXR0b24tbGlnaHQtYmFja2dyb3VuZC1jb2xvcicsXG4gIExpZ2h0QnV0dG9uSWNvbkNvbG9yID0gJ2Vudml2ZS1jb2xvcnMtYnV0dG9uLWxpZ2h0LWljb24tY29sb3InLFxuICBEYXJrQnV0dG9uQmFja2dyb3VuZENvbG9yID0gJ2Vudml2ZS1jb2xvcnMtYnV0dG9uLWRhcmstYmFja2dyb3VuZC1jb2xvcicsXG4gIERhcmtCdXR0b25JY29uQ29sb3IgPSAnZW52aXZlLWNvbG9ycy1idXR0b24tZGFyay1pY29uLWNvbG9yJyxcbn1cblxudHlwZSBJbWFnZUFzcGVjdFJhdGlvID0gJzEvMScgfCAnMy80JztcblxudHlwZSBCdXR0b25Db2xvcnMgPSB7XG4gIGxpZ2h0QnV0dG9uQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGxpZ2h0QnV0dG9uSWNvbkNvbG9yOiBzdHJpbmc7XG4gIGRhcmtCdXR0b25CYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgZGFya0J1dHRvbkljb25Db2xvcjogc3RyaW5nO1xufTtcblxuLy8gVE9ETzogU2V0IGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgdHlwb2dyYXBoeSBjb25maWdzXG50eXBlIFR5cG9ncmFwaHkgPSB7XG4gIHRpdGxlRm9udEZhbWlseTogc3RyaW5nO1xuICBoZWFkZXJGb250RmFtaWx5OiBzdHJpbmc7XG4gIGJvZHlGb250RmFtaWx5OiBzdHJpbmc7XG5cbiAgZm9udFNpemU/OiB7XG4gICAgdDE6IHN0cmluZztcbiAgICB0Mjogc3RyaW5nO1xuICAgIHQzOiBzdHJpbmc7XG4gICAgaDE6IHN0cmluZztcbiAgICBoMjogc3RyaW5nO1xuICAgIGgzOiBzdHJpbmc7XG4gICAgYjE6IHN0cmluZztcbiAgICBiMjogc3RyaW5nO1xuICAgIGIzOiBzdHJpbmc7XG4gICAgYjQ6IHN0cmluZztcbiAgICBiNTogc3RyaW5nO1xuICAgIGwxOiBzdHJpbmc7XG4gICAgbDI6IHN0cmluZztcbiAgfTtcblxuICBmb250V2VpZ2h0Pzoge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgaGVhZGVyOiBzdHJpbmc7XG4gICAgYm9keUVtcGhhc2lzOiBzdHJpbmc7XG4gICAgYm9keVN0YW5kYXJkOiBzdHJpbmc7XG4gIH07XG5cbiAgbGV0dGVyU3BhY2luZz86IHtcbiAgICB0MTogc3RyaW5nO1xuICAgIHQyOiBzdHJpbmc7XG4gICAgdDM6IHN0cmluZztcbiAgICBoMTogc3RyaW5nO1xuICAgIGgyOiBzdHJpbmc7XG4gICAgaDM6IHN0cmluZztcbiAgICBiMTogc3RyaW5nO1xuICAgIGIyOiBzdHJpbmc7XG4gICAgYjM6IHN0cmluZztcbiAgICBiNDogc3RyaW5nO1xuICAgIGI1OiBzdHJpbmc7XG4gICAgbDE6IHN0cmluZztcbiAgICBsMjogc3RyaW5nO1xuICB9O1xuXG4gIGxpbmVIZWlnaHQ/OiB7XG4gICAgdDE6IG51bWJlcjtcbiAgICB0MjogbnVtYmVyO1xuICAgIHQzOiBudW1iZXI7XG4gICAgaDE6IG51bWJlcjtcbiAgICBoMjogbnVtYmVyO1xuICAgIGgzOiBudW1iZXI7XG4gICAgYjE6IG51bWJlcjtcbiAgICBiMjogbnVtYmVyO1xuICAgIGIzOiBudW1iZXI7XG4gICAgYjQ6IG51bWJlcjtcbiAgICBiNTogbnVtYmVyO1xuICAgIGwxOiBudW1iZXI7XG4gICAgbDI6IG51bWJlcjtcbiAgfTtcbn07XG5cbnR5cGUgTG9va0FuZEZlZWxDb25maWcgPSB7XG4gIHRoZW1lOiBUaGVtZTtcbiAgYWdlbnROYW1lOiBzdHJpbmc7XG4gIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogc3RyaW5nO1xuICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBzdHJpbmc7XG4gIHdpZGdldExvZ29TcmM6IHN0cmluZztcbiAgaGlkZVdpZGdldExvZ286IGJvb2xlYW47XG4gIHZvaWNlSW5wdXRFbmFibGVkPzogYm9vbGVhbjtcbiAgZWxlbWVudFJhZGl1czogbnVtYmVyO1xuICBpbWFnZUFzcGVjdFJhdGlvOiBJbWFnZUFzcGVjdFJhdGlvO1xuICBidXR0b25Db2xvcnM6IEJ1dHRvbkNvbG9ycztcbiAgdHlwb2dyYXBoeTogVHlwb2dyYXBoeTtcbn07XG5cbmV4cG9ydCBlbnVtIENvbmZpZ1ZlcnNpb25FbnVtIHtcbiAgVjMgPSAndjMnLFxuICBEZXByZWNhdGVkID0gJ2RlcHJlY2F0ZWQnLFxufVxuXG50eXBlIENvbmZpZ1ZlcnNpb24gPSBDb25maWdWZXJzaW9uRW51bS5WMyB8IENvbmZpZ1ZlcnNpb25FbnVtLkRlcHJlY2F0ZWQgfCB1bmRlZmluZWQ7XG5cbnR5cGUgTW9kZSA9ICdkYXJrJyB8ICdsaWdodCc7XG5cbnR5cGUgU2hvd09wdGlvbnMgPSAnYWx3YXlzJyB8ICdwb3N0SW50ZXJhY3Rpb24nIHwgJ25vbmUnO1xuXG50eXBlIFN0eWxlID0gJ2F0dGFjaGVkJyB8ICdkZXRhY2hlZCc7XG5cbnR5cGUgRmxvYXRpbmdCdXR0b25Db25maWcgPSB7XG4gIHBvc2l0aW9uOiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uO1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIG1vZGU6IE1vZGU7XG4gIHNob3dPcHRpb246IFNob3dPcHRpb25zO1xuICBpY29uU1ZHU3JjPzogc3RyaW5nO1xuICBzdHlsZTogU3R5bGU7XG59O1xuXG5leHBvcnQgdHlwZSBSZWZlcnJlclBvcHVwVHJpZ2dlciA9IHtcbiAgdHlwZTogJ3JlZmVycmVyJztcbiAgcmVmZXJyZXJzOiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEF1dG9tYXRpY1BvcHVwVHJpZ2dlciA9IHtcbiAgdHlwZTogJ2F1dG9tYXRpYyc7XG59O1xuZXhwb3J0IHR5cGUgUG9wdXBUcmlnZ2VyID0gUmVmZXJyZXJQb3B1cFRyaWdnZXIgfCBBdXRvbWF0aWNQb3B1cFRyaWdnZXI7XG5leHBvcnQgdHlwZSBBdXRvUG9wdXBUcmlnZ2VyID0ge1xuICBkZWxheTogbnVtYmVyO1xuICB0cmlnZ2VyOiBQb3B1cFRyaWdnZXI7XG59O1xuZXhwb3J0IGludGVyZmFjZSBBdXRvUG9wdXBDb25maWcge1xuICB0cmlnZ2VyczogQXV0b1BvcHVwVHJpZ2dlcltdO1xufVxuXG50eXBlIEZsb2F0aW5nQ2hhdENvbmZpZyA9IHtcbiAgaGVhZGVyQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBoZWFkZXJNb2RlOiBNb2RlO1xuICB3ZWxjb21lTWVzc2FnZUljb25Db2xvcjogU3BhcmtsZUljb25Db2xvcjtcbiAgc2hvd1ZlcmlmaWVkQnV5ZXI6IGJvb2xlYW47XG4gIHVzZXJRdWVyeUlucHV0RW5hYmxlZDogYm9vbGVhbjtcbiAgc2hvd0Vudml2ZUxvZ286IGJvb2xlYW47XG4gIGlnbm9yZUZpcnN0TW9kZWxSZXNwb25zZT86IGJvb2xlYW47XG4gIG5ldmVyU2hvd1NpbmdsZVByb2R1Y3RDYXJkcz86IGJvb2xlYW47XG4gIHdlbGNvbWVNZXNzYWdlVGl0bGU6IHN0cmluZztcbiAgd2VsY29tZU1lc3NhZ2VUZXh0OiBzdHJpbmc7XG4gIGNoYXRGb290ZXJUZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6IHN0cmluZztcbiAgYXV0b1BvcHVwQ29uZmlnPzogQXV0b1BvcHVwQ29uZmlnO1xufTtcblxudHlwZSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9IHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVR5cGU7XG4gIHN1cHByZXNzTWVyY2hhbnRCdXR0b24/OiBib29sZWFuO1xufTtcblxudHlwZSBTUEFTZXR0aW5ncyA9IHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgcmVmcmVzaEludGVydmFsPzogbnVtYmVyO1xufTtcblxudHlwZSBPcmdVSUNvbmZpZ1YzID0ge1xuICBpZD86IHN0cmluZztcblxuICB2ZXJzaW9uOiBDb25maWdWZXJzaW9uO1xuXG4gIHNob3J0TmFtZTogc3RyaW5nO1xuXG4gIGxvb2tBbmRGZWVsOiBMb29rQW5kRmVlbENvbmZpZztcblxuICBmbG9hdGluZ0J1dHRvbjogRmxvYXRpbmdCdXR0b25Db25maWc7XG5cbiAgZmxvYXRpbmdDaGF0OiBGbG9hdGluZ0NoYXRDb25maWc7XG5cbiAgbWVyY2hhbnRPdmVycmlkZUNzcz86IHN0cmluZztcblxuICBjdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbj86IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uO1xuXG4gIHNpbmdsZVBhZ2VBcHBsaWNhdGlvblNldHRpbmdzPzogU1BBU2V0dGluZ3M7XG5cbiAgc2VhcmNoQ29uZmlnPzogU2VhcmNoQ29uZmlnO1xufTtcblxuZXhwb3J0IGVudW0gV2lkZ2V0VHlwZVYzIHtcbiAgUHJvbXB0Q2Fyb3VzZWxWMyA9ICdQcm9tcHRDYXJvdXNlbFYzJyxcbiAgVGl0bGVkUHJvbXB0Q2Fyb3VzZWxWMyA9ICdUaXRsZWRQcm9tcHRDYXJvdXNlbFYzJyxcbiAgU29jaWFsUHJvb2ZWMyA9ICdTb2NpYWxQcm9vZlYzJyxcbiAgVHlwaW5nQW5pbWF0aW9uVjMgPSAnVHlwaW5nQW5pbWF0aW9uVjMnLFxuICBDaGF0UHJldmlld1YzID0gJ0NoYXRQcmV2aWV3VjMnLFxuICBDaGF0UHJldmlld0NvbXBhcmlzb25WMyA9ICdDaGF0UHJldmlld0NvbXBhcmlzb25WMycsXG4gIENoYXRQcmV2aWV3TG9hZGluZ1YzID0gJ0NoYXRQcmV2aWV3TG9hZGluZ1YzJyxcbiAgSW1hZ2VQcm9tcHRDYXJkVjMgPSAnSW1hZ2VQcm9tcHRDYXJkVjMnLFxuICBQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzID0gJ1Byb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjMnLFxuICBJbWFnZUJhbm5lclYzID0gJ0ltYWdlQmFubmVyVjMnLFxuICBTaW5nbGVJbWFnZVByb21wdFYzID0gJ1NpbmdsZUltYWdlUHJvbXB0VjMnLFxuICBGbG9hdGluZ0NoYXRWMyA9ICdGbG9hdGluZ0NoYXRWMycsXG4gIEZsb2F0aW5nQnV0dG9uVjMgPSAnRmxvYXRpbmdCdXR0b25WMycsXG4gIFByb2R1Y3RDYXJkVjMgPSAnUHJvZHVjdENhcmRWMycsXG4gIEZ1bGxQYWdlU2FsZXNBZ2VudFYzID0gJ0Z1bGxQYWdlU2FsZXNBZ2VudFYzJyxcbn1cblxuaW50ZXJmYWNlIEJhc2VXaWRnZXRDb25maWc8VCBleHRlbmRzIFdpZGdldFR5cGVWMz4ge1xuICB3aWRnZXRDb25maWdJZDogc3RyaW5nO1xuICB0eXBlOiBUO1xuICBjb250ZW50SWQ/OiBzdHJpbmc7IC8vIFdpZGdldCBJRFxufVxuXG5pbnRlcmZhY2UgUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjM+IHtcbiAgcHJvbXB0QnV0dG9uVHlwZT86IFByb21wdEJ1dHRvblZhcmlhbnQ7XG4gIGJvbGRGaXJzdEJ1dHRvbj86IGJvb2xlYW47XG4gIHByb21wdENhcm91c2VsUm93cz86IFByb21wdENhcm91c2VsUm93cztcbiAgYW5pbWF0aW9uU3BlZWQ/OiBBbmltYXRpb25TcGVlZDtcbn1cblxuaW50ZXJmYWNlIFRpdGxlZFByb21wdENhcm91c2VsV2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzPiB7XG4gIHByb21wdEJ1dHRvblR5cGU/OiBQcm9tcHRCdXR0b25WYXJpYW50O1xuICBib2xkRmlyc3RCdXR0b24/OiBib29sZWFuO1xuICBwcm9tcHRDYXJvdXNlbFJvd3M/OiBQcm9tcHRDYXJvdXNlbFJvd3M7XG4gIGFuaW1hdGlvblNwZWVkPzogQW5pbWF0aW9uU3BlZWQ7XG59XG5pbnRlcmZhY2UgU29jaWFsUHJvb2ZXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjM+IHtcbiAga2luZDogV2lkZ2V0S2luZDtcbiAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQ7XG4gIGhleENhcmRDb2xvcj86IHN0cmluZztcbiAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3M7XG4gIGhpZGVJbWFnZT86IGJvb2xlYW47XG4gIGltYWdlR2FsbGVyeUxheW91dDogRXhjbHVkZTxJbWFnZUdhbGxlcnlMYXlvdXQsICdUV09fU0lERSc+O1xuICBoaWRlVGV4dEZpZWxkPzogYm9vbGVhbjtcbiAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IEV4Y2x1ZGU8UHJvbXB0QnV0dG9uVmFyaWFudCwgJ3N1Z2dlc3RlZFJlc3BvbnNlJyB8ICdnaG9zdCc+O1xuICBzZWNvbmRhcnlCdXR0b25WYXJpYW50OiBFeGNsdWRlPFByb21wdEJ1dHRvblZhcmlhbnQsICdzdWdnZXN0ZWRSZXNwb25zZScgfCAnZ2hvc3QnPjtcbiAgZHluYW1pY0xheW91dD86IER5bmFtaWNMYXlvdXQ7XG4gIGltYWdlcz86IEltYWdlR2FsbGVyeUltYWdlW107XG59XG5cbmludGVyZmFjZSBUeXBpbmdBbmltYXRpb25XaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzPiB7XG4gIHdpZGdldFZhcmlhbnQ/OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgY2FyZENvbG9yPzogc3RyaW5nO1xuICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgcHJvbXB0Q2Fyb3VzZWxSb3dzPzogUHJvbXB0Q2Fyb3VzZWxSb3dzO1xuICBzaG93VGV4dEZpZWxkPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3Q29tcGFyaXNvbldpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdDb21wYXJpc29uVjM+IHtcbiAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQ7XG4gIGhleENhcmRDb2xvcj86IHN0cmluZztcbiAgaGlkZUltYWdlPzogYm9vbGVhbjtcbiAgaGlkZVRleHRGaWVsZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDaGF0UHJldmlld0xvYWRpbmdXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3TG9hZGluZ1YzPiB7XG4gIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50O1xuICBoZXhDYXJkQ29sb3I/OiBzdHJpbmc7XG4gIGhpZGVUZXh0RmllbGQ/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3VjM+IHtcbiAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQ7XG4gIGhleENhcmRDb2xvcj86IHN0cmluZztcbiAgaGlkZVRleHRGaWVsZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVdpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuUHJvbXB0QnV0dG9uQ2Fyb3VzZWxXaXRoSW1hZ2VWMz4ge1xuICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgaW1hZ2U/OiBJbWFnZUdhbGxlcnlJbWFnZTtcbiAgaGlkZVRleHRGaWVsZD86IGJvb2xlYW47XG4gIGlzRHluYW1pYz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBGbG9hdGluZ0NoYXRXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLkZsb2F0aW5nQ2hhdFYzPiB7fVxuXG5pbnRlcmZhY2UgUHJvZHVjdENhcmRXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlByb2R1Y3RDYXJkVjM+IHtcbiAgcHJvbXB0QnV0dG9uVHlwZT86IFByb21wdEJ1dHRvblZhcmlhbnQ7XG4gIGl0YWxpY2l6ZUhlYWRsaW5lPzogYm9vbGVhbjtcbiAgZmFsbGJhY2tDb2xvcj86IHN0cmluZztcbiAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gIG1vZGU/OiBNb2RlO1xufVxuXG5pbnRlcmZhY2UgRnVsbFBhZ2VTYWxlc0FnZW50V2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5GdWxsUGFnZVNhbGVzQWdlbnRWMz4ge1xuICBoZWFkZXJDb250YWluZXI/OiBzdHJpbmc7XG4gIGF1dG9IZWlnaHQ/OiBib29sZWFuO1xuICBzcGFya2xlQ29sb3I/OiBzdHJpbmc7XG4gIHVzZUJhY2tncm91bmRJbWFnZT86IGJvb2xlYW47XG4gIG1vYmlsZUJhY2tncm91bmRJbWFnZT86IHN0cmluZztcbiAgZGVza3RvcEJhY2tncm91bmRJbWFnZT86IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBzdWdnZXN0aW9uQnV0dG9uVHlwZT86IFByb21wdEJ1dHRvblZhcmlhbnQ7XG59XG5cbnR5cGUgV2lkZ2V0Q29uZmlnVjMgPVxuICB8IFByb21wdENhcm91c2VsV2lkZ2V0VjNDb25maWdcbiAgfCBTb2NpYWxQcm9vZldpZGdldFYzQ29uZmlnXG4gIHwgVGl0bGVkUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZ1xuICB8IENoYXRQcmV2aWV3Q29tcGFyaXNvbldpZGdldFYzQ29uZmlnXG4gIHwgQ2hhdFByZXZpZXdMb2FkaW5nV2lkZ2V0VjNDb25maWdcbiAgfCBUeXBpbmdBbmltYXRpb25XaWRnZXRWM0NvbmZpZ1xuICB8IENoYXRQcmV2aWV3V2lkZ2V0VjNDb25maWdcbiAgfCBQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVdpZGdldFYzQ29uZmlnXG4gIHwgRmxvYXRpbmdDaGF0V2lkZ2V0VjNDb25maWdcbiAgfCBQcm9kdWN0Q2FyZFdpZGdldFYzQ29uZmlnXG4gIHwgRnVsbFBhZ2VTYWxlc0FnZW50V2lkZ2V0VjNDb25maWc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQ2hhdFByZXZpZXdDb21wYXJpc29uV2lkZ2V0VjNDb25maWcsXG4gIENoYXRQcmV2aWV3TG9hZGluZ1dpZGdldFYzQ29uZmlnLFxuICBDaGF0UHJldmlld1dpZGdldFYzQ29uZmlnLFxuICBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbixcbiAgRmxvYXRpbmdCdXR0b25Db25maWcsXG4gIEZsb2F0aW5nQ2hhdENvbmZpZyxcbiAgRmxvYXRpbmdDaGF0V2lkZ2V0VjNDb25maWcsXG4gIEZ1bGxQYWdlU2FsZXNBZ2VudFdpZGdldFYzQ29uZmlnLFxuICBMb29rQW5kRmVlbENvbmZpZyxcbiAgT3JnVUlDb25maWdWMyxcbiAgUHJvZHVjdENhcmRXaWRnZXRWM0NvbmZpZyxcbiAgUHJvbXB0QnV0dG9uQ2Fyb3VzZWxXaXRoSW1hZ2VXaWRnZXRWM0NvbmZpZyxcbiAgUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZyxcbiAgU29jaWFsUHJvb2ZXaWRnZXRWM0NvbmZpZyxcbiAgU1BBU2V0dGluZ3MsXG4gIFRpdGxlZFByb21wdENhcm91c2VsV2lkZ2V0VjNDb25maWcsXG4gIFR5cGluZ0FuaW1hdGlvbldpZGdldFYzQ29uZmlnLFxuICBXaWRnZXRDb25maWdWMyxcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQVlBLElBQVksc0VBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0YsSUFBWSxnRUFBTDtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHRixJQUFZLGdFQUFMO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7OztBQUdGLElBQVksNERBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0YsSUFBWSxnRUFBTDtBQUNMO0FBQ0E7QUFDQTs7O0FBR0YsSUFBWSxzREFBTDtBQUNMOzs7QUFHRixJQUFZLGtFQUFMO0FBQ0w7OztBQUdGLElBQVksb0VBQUw7QUFDTDs7O0FBR0YsSUFBa0IsOERBQVg7QUFDTCxvQ0FBYyxpQkFBaUIsV0FBVztBQUMxQyxzQ0FBZ0IsaUJBQWlCLFdBQVc7QUFDNUMsbUNBQWEsaUJBQWlCLFdBQVc7QUFDekMsaUNBQVcsaUJBQWlCLFdBQVc7QUFDdkMsa0NBQVksaUJBQWlCLFdBQVc7QUFDeEMsMENBQW9CLGlCQUFpQixXQUFXO0FBQ2hELDRDQUFzQixpQkFBaUIsV0FBVztBQUNsRCwyQ0FBcUIsaUJBQWlCLFdBQVc7QUFDakQsdUNBQWlCLGlCQUFpQixXQUFXO0FBQzdDLHdDQUFrQixpQkFBaUIsV0FBVztBQUM5QyxvQ0FBYyxpQkFBaUIsV0FBVztBQUMxQyxxQ0FBZSxpQkFBaUIsV0FBVztBQUMzQyxtQ0FBYSxpQkFBaUIsV0FBVztBQUN6QyxzQ0FBZ0IsaUJBQWlCLFdBQVc7QUFDNUMsd0NBQWtCLGlCQUFpQixXQUFXOzs7QUFHaEQsSUFBa0IsZ0VBQVg7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7O0FBd0ZGLElBQVksa0VBQUw7QUFDTDtBQUNBOzs7QUFxRkYsSUFBWSx3REFBTDtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSJ9
|
|
129
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNWMy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dHMvdHlwZXNWMy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uJztcbmltcG9ydCB7IEltYWdlR2FsbGVyeUltYWdlLCBJbWFnZUdhbGxlcnlMYXlvdXQgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvSW1hZ2VHYWxsZXJ5JztcbmltcG9ydCB7IFByb21wdEJ1dHRvblZhcmlhbnQgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvUHJvbXB0QnV0dG9uJztcbmltcG9ydCB7IEFuaW1hdGlvblNwZWVkLCBQcm9tcHRDYXJvdXNlbFJvd3MgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvUHJvbXB0Q2Fyb3VzZWwnO1xuaW1wb3J0IHsgRHluYW1pY0xheW91dCwgV2lkZ2V0S2luZCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Tb2NpYWxQcm9vZic7XG5pbXBvcnQgeyBUaGVtZSB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Ub2tlbnMnO1xuaW1wb3J0IHsgU3BhcmtsZUljb25Db2xvciB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XZWxjb21lTWVzc2FnZSc7XG5pbXBvcnQgeyBXaWRnZXRXcmFwcGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XaWRnZXRXcmFwcGVyJztcbmltcG9ydCB7IENvbG9yTmFtZXMgfSBmcm9tICcuLi9hcHBsaWNhdGlvbi9tb2RlbHMvY29sb3JzQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ3VzdG9tZXJTZXJ2aWNlVHlwZSB9IGZyb20gJy4uL3R5cGVzL2N1c3RvbWVyU2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IFNlYXJjaENvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZW51bSBMZXR0ZXJTcGFjaW5nQ1NTVmFyIHtcbiAgVDEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctdDEnLFxuICBUMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy10MicsXG4gIFQzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLXQzJyxcbiAgSDEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctaDEnLFxuICBIMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1oMicsXG4gIEgzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLWgzJyxcbiAgQjEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctYjEnLFxuICBCMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iMicsXG4gIEIzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLWIzJyxcbiAgQjQgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctYjQnLFxuICBCNSA9ICdlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iNScsXG4gIEwxID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLWwxJyxcbiAgTDIgPSAnZW52aXZlLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctbDInLFxufVxuXG5leHBvcnQgZW51bSBMaW5lSGVpZ2h0Q1NTVmFyIHtcbiAgVDEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtdDEnLFxuICBUMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC10MicsXG4gIFQzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LXQzJyxcbiAgSDEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtaDEnLFxuICBIMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1oMicsXG4gIEgzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LWgzJyxcbiAgQjEgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtYjEnLFxuICBCMiA9ICdlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iMicsXG4gIEIzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LWIzJyxcbiAgQjQgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtYjQnLFxuICBCNSA9ICdlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iNScsXG4gIEwxID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LWwxJyxcbiAgTDIgPSAnZW52aXZlLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtbDInLFxufVxuXG5leHBvcnQgZW51bSBGb250V2VpZ2h0Q1NTVmFyIHtcbiAgVGl0bGUgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdGl0bGUnLFxuICBIZWFkZXIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtaGVhZGVyJyxcbiAgQm9keUVtcGhhc2lzID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LWJvZHktZW1waGFzaXMnLFxuICBCb2R5U3RhbmRhcmQgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtYm9keS1zdGFuZGFyZCcsXG59XG5cbmV4cG9ydCBlbnVtIEZvbnRTaXplQ1NTVmFyIHtcbiAgVDEgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLXQxJyxcbiAgVDIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLXQyJyxcbiAgVDMgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLXQzJyxcbiAgSDEgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWgxJyxcbiAgSDIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWgyJyxcbiAgSDMgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWgzJyxcbiAgQjEgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWIxJyxcbiAgQjIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWIyJyxcbiAgQjMgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWIzJyxcbiAgQjQgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWI0JyxcbiAgQjUgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWI1JyxcbiAgTDEgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWwxJyxcbiAgTDIgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWwyJyxcbn1cblxuZXhwb3J0IGVudW0gRm9udEZhbWlseUNTU1ZhciB7XG4gIFRpdGxlID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LXRpdGxlJyxcbiAgSGVhZGVyID0gJ2Vudml2ZS10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LWhlYWRlcicsXG4gIEJvZHkgPSAnZW52aXZlLXR5cG9ncmFwaHktZm9udC1mYW1pbHktYm9keScsXG59XG5cbmV4cG9ydCBlbnVtIFRoZW1lQ1NTVmFyIHtcbiAgR2xvYmFsQ3VzdG9tID0gJ2Vudml2ZS1nbG9iYWwtY3VzdG9tLXRoZW1lJyxcbn1cblxuZXhwb3J0IGVudW0gQXNwZWN0UmF0aW9DU1NWYXIge1xuICBHbG9iYWxDdXN0b20gPSAnZW52aXZlLWdsb2JhbC1jdXN0b20tYXNwZWN0LXJhdGlvJyxcbn1cblxuZXhwb3J0IGVudW0gQm9yZGVyUmFkaXVzQ1NTVmFyIHtcbiAgR2xvYmFsQ3VzdG9tID0gJ2Vudml2ZS1nbG9iYWwtY3VzdG9tLWJvcmRlci1yYWRpdXMnLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBDb2xvcnNOYW1lc1ZhcnMge1xuICBUZXh0UHJpbWFyeSA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5UZXh0UHJpbWFyeX1gLFxuICBUZXh0U2Vjb25kYXJ5ID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLlRleHRTZWNvbmRhcnl9YCxcbiAgVGV4dEFjY2VudCA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5UZXh0QWNjZW50fWAsXG4gIFRleHRMaW5rID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLlRleHRMaW5rfWAsXG4gIFRleHRMaWdodCA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5UZXh0TGlnaHR9YCxcbiAgQmFja2dyb3VuZFByaW1hcnkgPSBgZW52aXZlLWNvbG9ycy0ke0NvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnl9YCxcbiAgQmFja2dyb3VuZFNlY29uZGFyeSA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5fWAsXG4gIEJhY2tncm91bmRUZXJ0aWFyeSA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5CYWNrZ3JvdW5kVGVydGlhcnl9YCxcbiAgQmFja2dyb3VuZERhcmsgPSBgZW52aXZlLWNvbG9ycy0ke0NvbG9yTmFtZXMuQmFja2dyb3VuZERhcmt9YCxcbiAgQmFja2dyb3VuZExpZ2h0ID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLkJhY2tncm91bmRMaWdodH1gLFxuICBCb3JkZXJMaWdodCA9IGBlbnZpdmUtY29sb3JzLSR7Q29sb3JOYW1lcy5Cb3JkZXJMaWdodH1gLFxuICBCb3JkZXJNZWRpdW0gPSBgZW52aXZlLWNvbG9ycy0ke0NvbG9yTmFtZXMuQm9yZGVyTWVkaXVtfWAsXG4gIEJvcmRlckRhcmsgPSBgZW52aXZlLWNvbG9ycy0ke0NvbG9yTmFtZXMuQm9yZGVyRGFya31gLFxuICBBY2NlbnRQcmltYXJ5ID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLkFjY2VudFByaW1hcnl9YCxcbiAgQWNjZW50U2Vjb25kYXJ5ID0gYGVudml2ZS1jb2xvcnMtJHtDb2xvck5hbWVzLkFjY2VudFNlY29uZGFyeX1gLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBCdXR0b25Db2xvcnNWYXJzIHtcbiAgTGlnaHRCdXR0b25CYWNrZ3JvdW5kQ29sb3IgPSAnZW52aXZlLWNvbG9ycy1idXR0b24tbGlnaHQtYmFja2dyb3VuZC1jb2xvcicsXG4gIExpZ2h0QnV0dG9uQm9yZGVyQ29sb3IgPSAnZW52aXZlLWNvbG9ycy1idXR0b24tbGlnaHQtYm9yZGVyLWNvbG9yJyxcbiAgTGlnaHRCdXR0b25JY29uQ29sb3IgPSAnZW52aXZlLWNvbG9ycy1idXR0b24tbGlnaHQtaWNvbi1jb2xvcicsXG4gIERhcmtCdXR0b25CYWNrZ3JvdW5kQ29sb3IgPSAnZW52aXZlLWNvbG9ycy1idXR0b24tZGFyay1iYWNrZ3JvdW5kLWNvbG9yJyxcbiAgRGFya0J1dHRvbkljb25Db2xvciA9ICdlbnZpdmUtY29sb3JzLWJ1dHRvbi1kYXJrLWljb24tY29sb3InLFxufVxuXG50eXBlIEltYWdlQXNwZWN0UmF0aW8gPSAnMS8xJyB8ICczLzQnO1xuXG50eXBlIEJ1dHRvbkNvbG9ycyA9IHtcbiAgbGlnaHRCdXR0b25CYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgbGlnaHRCdXR0b25Cb3JkZXJDb2xvcj86IHN0cmluZztcbiAgbGlnaHRCdXR0b25JY29uQ29sb3I6IHN0cmluZztcbiAgZGFya0J1dHRvbkJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICBkYXJrQnV0dG9uSWNvbkNvbG9yOiBzdHJpbmc7XG59O1xuXG4vLyBUT0RPOiBTZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSB0eXBvZ3JhcGh5IGNvbmZpZ3NcbnR5cGUgVHlwb2dyYXBoeSA9IHtcbiAgdGl0bGVGb250RmFtaWx5OiBzdHJpbmc7XG4gIGhlYWRlckZvbnRGYW1pbHk6IHN0cmluZztcbiAgYm9keUZvbnRGYW1pbHk6IHN0cmluZztcblxuICBmb250U2l6ZT86IHtcbiAgICB0MTogc3RyaW5nO1xuICAgIHQyOiBzdHJpbmc7XG4gICAgdDM6IHN0cmluZztcbiAgICBoMTogc3RyaW5nO1xuICAgIGgyOiBzdHJpbmc7XG4gICAgaDM6IHN0cmluZztcbiAgICBiMTogc3RyaW5nO1xuICAgIGIyOiBzdHJpbmc7XG4gICAgYjM6IHN0cmluZztcbiAgICBiNDogc3RyaW5nO1xuICAgIGI1OiBzdHJpbmc7XG4gICAgbDE6IHN0cmluZztcbiAgICBsMjogc3RyaW5nO1xuICB9O1xuXG4gIGZvbnRXZWlnaHQ/OiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBoZWFkZXI6IHN0cmluZztcbiAgICBib2R5RW1waGFzaXM6IHN0cmluZztcbiAgICBib2R5U3RhbmRhcmQ6IHN0cmluZztcbiAgfTtcblxuICBsZXR0ZXJTcGFjaW5nPzoge1xuICAgIHQxOiBzdHJpbmc7XG4gICAgdDI6IHN0cmluZztcbiAgICB0Mzogc3RyaW5nO1xuICAgIGgxOiBzdHJpbmc7XG4gICAgaDI6IHN0cmluZztcbiAgICBoMzogc3RyaW5nO1xuICAgIGIxOiBzdHJpbmc7XG4gICAgYjI6IHN0cmluZztcbiAgICBiMzogc3RyaW5nO1xuICAgIGI0OiBzdHJpbmc7XG4gICAgYjU6IHN0cmluZztcbiAgICBsMTogc3RyaW5nO1xuICAgIGwyOiBzdHJpbmc7XG4gIH07XG5cbiAgbGluZUhlaWdodD86IHtcbiAgICB0MTogbnVtYmVyO1xuICAgIHQyOiBudW1iZXI7XG4gICAgdDM6IG51bWJlcjtcbiAgICBoMTogbnVtYmVyO1xuICAgIGgyOiBudW1iZXI7XG4gICAgaDM6IG51bWJlcjtcbiAgICBiMTogbnVtYmVyO1xuICAgIGIyOiBudW1iZXI7XG4gICAgYjM6IG51bWJlcjtcbiAgICBiNDogbnVtYmVyO1xuICAgIGI1OiBudW1iZXI7XG4gICAgbDE6IG51bWJlcjtcbiAgICBsMjogbnVtYmVyO1xuICB9O1xufTtcblxudHlwZSBMb29rQW5kRmVlbENvbmZpZyA9IHtcbiAgdGhlbWU6IFRoZW1lO1xuICBhZ2VudE5hbWU6IHN0cmluZztcbiAgY2hhdEhlYWRlckxvZ29EYXJrU3JjOiBzdHJpbmc7XG4gIGNoYXRIZWFkZXJMb2dvTGlnaHRTcmM6IHN0cmluZztcbiAgd2lkZ2V0TG9nb1NyYzogc3RyaW5nO1xuICBoaWRlV2lkZ2V0TG9nbzogYm9vbGVhbjtcbiAgdm9pY2VJbnB1dEVuYWJsZWQ/OiBib29sZWFuO1xuICBlbGVtZW50UmFkaXVzOiBudW1iZXI7XG4gIGltYWdlQXNwZWN0UmF0aW86IEltYWdlQXNwZWN0UmF0aW87XG4gIGJ1dHRvbkNvbG9yczogQnV0dG9uQ29sb3JzO1xuICB0eXBvZ3JhcGh5OiBUeXBvZ3JhcGh5O1xufTtcblxuZXhwb3J0IGVudW0gQ29uZmlnVmVyc2lvbkVudW0ge1xuICBWMyA9ICd2MycsXG4gIERlcHJlY2F0ZWQgPSAnZGVwcmVjYXRlZCcsXG59XG5cbnR5cGUgQ29uZmlnVmVyc2lvbiA9IENvbmZpZ1ZlcnNpb25FbnVtLlYzIHwgQ29uZmlnVmVyc2lvbkVudW0uRGVwcmVjYXRlZCB8IHVuZGVmaW5lZDtcblxudHlwZSBNb2RlID0gJ2RhcmsnIHwgJ2xpZ2h0JztcblxudHlwZSBTaG93T3B0aW9ucyA9ICdhbHdheXMnIHwgJ3Bvc3RJbnRlcmFjdGlvbicgfCAnbm9uZSc7XG5cbnR5cGUgU3R5bGUgPSAnYXR0YWNoZWQnIHwgJ2RldGFjaGVkJztcblxudHlwZSBGbG9hdGluZ0J1dHRvbkNvbmZpZyA9IHtcbiAgcG9zaXRpb246IEZsb2F0aW5nQnV0dG9uTG9jYXRpb247XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgbW9kZTogTW9kZTtcbiAgc2hvd09wdGlvbjogU2hvd09wdGlvbnM7XG4gIGljb25TVkdTcmM/OiBzdHJpbmc7XG4gIHN0eWxlOiBTdHlsZTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlZmVycmVyUG9wdXBUcmlnZ2VyID0ge1xuICB0eXBlOiAncmVmZXJyZXInO1xuICByZWZlcnJlcnM6IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQXV0b21hdGljUG9wdXBUcmlnZ2VyID0ge1xuICB0eXBlOiAnYXV0b21hdGljJztcbn07XG5leHBvcnQgdHlwZSBQb3B1cFRyaWdnZXIgPSBSZWZlcnJlclBvcHVwVHJpZ2dlciB8IEF1dG9tYXRpY1BvcHVwVHJpZ2dlcjtcbmV4cG9ydCB0eXBlIEF1dG9Qb3B1cFRyaWdnZXIgPSB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIHRyaWdnZXI6IFBvcHVwVHJpZ2dlcjtcbn07XG5leHBvcnQgaW50ZXJmYWNlIEF1dG9Qb3B1cENvbmZpZyB7XG4gIHRyaWdnZXJzOiBBdXRvUG9wdXBUcmlnZ2VyW107XG59XG5cbnR5cGUgRmxvYXRpbmdDaGF0Q29uZmlnID0ge1xuICBoZWFkZXJCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIGhlYWRlck1vZGU6IE1vZGU7XG4gIHdlbGNvbWVNZXNzYWdlSWNvbkNvbG9yOiBTcGFya2xlSWNvbkNvbG9yO1xuICBzaG93VmVyaWZpZWRCdXllcjogYm9vbGVhbjtcbiAgdXNlclF1ZXJ5SW5wdXRFbmFibGVkOiBib29sZWFuO1xuICBzaG93RW52aXZlTG9nbzogYm9vbGVhbjtcbiAgaWdub3JlRmlyc3RNb2RlbFJlc3BvbnNlPzogYm9vbGVhbjtcbiAgbmV2ZXJTaG93U2luZ2xlUHJvZHVjdENhcmRzPzogYm9vbGVhbjtcbiAgd2VsY29tZU1lc3NhZ2VUaXRsZTogc3RyaW5nO1xuICB3ZWxjb21lTWVzc2FnZVRleHQ6IHN0cmluZztcbiAgY2hhdEZvb3RlclRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogc3RyaW5nO1xuICBhdXRvUG9wdXBDb25maWc/OiBBdXRvUG9wdXBDb25maWc7XG59O1xuXG50eXBlIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uID0ge1xuICBlbmFibGVkOiBib29sZWFuO1xuICBwcm92aWRlcjogQ3VzdG9tZXJTZXJ2aWNlVHlwZTtcbiAgc3VwcHJlc3NNZXJjaGFudEJ1dHRvbj86IGJvb2xlYW47XG59O1xuXG50eXBlIFNQQVNldHRpbmdzID0ge1xuICBlbmFibGVkOiBib29sZWFuO1xuICByZWZyZXNoSW50ZXJ2YWw/OiBudW1iZXI7XG59O1xuXG50eXBlIE9yZ1VJQ29uZmlnVjMgPSB7XG4gIGlkPzogc3RyaW5nO1xuXG4gIHZlcnNpb246IENvbmZpZ1ZlcnNpb247XG5cbiAgc2hvcnROYW1lOiBzdHJpbmc7XG5cbiAgbG9va0FuZEZlZWw6IExvb2tBbmRGZWVsQ29uZmlnO1xuXG4gIGZsb2F0aW5nQnV0dG9uOiBGbG9hdGluZ0J1dHRvbkNvbmZpZztcblxuICBmbG9hdGluZ0NoYXQ6IEZsb2F0aW5nQ2hhdENvbmZpZztcblxuICBtZXJjaGFudE92ZXJyaWRlQ3NzPzogc3RyaW5nO1xuXG4gIGN1c3RvbWVyU2VydmljZUludGVncmF0aW9uPzogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb247XG5cbiAgc2luZ2xlUGFnZUFwcGxpY2F0aW9uU2V0dGluZ3M/OiBTUEFTZXR0aW5ncztcblxuICBzZWFyY2hDb25maWc/OiBTZWFyY2hDb25maWc7XG59O1xuXG5leHBvcnQgZW51bSBXaWRnZXRUeXBlVjMge1xuICBQcm9tcHRDYXJvdXNlbFYzID0gJ1Byb21wdENhcm91c2VsVjMnLFxuICBUaXRsZWRQcm9tcHRDYXJvdXNlbFYzID0gJ1RpdGxlZFByb21wdENhcm91c2VsVjMnLFxuICBTb2NpYWxQcm9vZlYzID0gJ1NvY2lhbFByb29mVjMnLFxuICBUeXBpbmdBbmltYXRpb25WMyA9ICdUeXBpbmdBbmltYXRpb25WMycsXG4gIENoYXRQcmV2aWV3VjMgPSAnQ2hhdFByZXZpZXdWMycsXG4gIENoYXRQcmV2aWV3Q29tcGFyaXNvblYzID0gJ0NoYXRQcmV2aWV3Q29tcGFyaXNvblYzJyxcbiAgQ2hhdFByZXZpZXdMb2FkaW5nVjMgPSAnQ2hhdFByZXZpZXdMb2FkaW5nVjMnLFxuICBJbWFnZVByb21wdENhcmRWMyA9ICdJbWFnZVByb21wdENhcmRWMycsXG4gIFByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjMgPSAnUHJvbXB0QnV0dG9uQ2Fyb3VzZWxXaXRoSW1hZ2VWMycsXG4gIEltYWdlQmFubmVyVjMgPSAnSW1hZ2VCYW5uZXJWMycsXG4gIFNpbmdsZUltYWdlUHJvbXB0VjMgPSAnU2luZ2xlSW1hZ2VQcm9tcHRWMycsXG4gIEZsb2F0aW5nQ2hhdFYzID0gJ0Zsb2F0aW5nQ2hhdFYzJyxcbiAgRmxvYXRpbmdCdXR0b25WMyA9ICdGbG9hdGluZ0J1dHRvblYzJyxcbiAgUHJvZHVjdENhcmRWMyA9ICdQcm9kdWN0Q2FyZFYzJyxcbiAgRnVsbFBhZ2VTYWxlc0FnZW50VjMgPSAnRnVsbFBhZ2VTYWxlc0FnZW50VjMnLFxufVxuXG5pbnRlcmZhY2UgQmFzZVdpZGdldENvbmZpZzxUIGV4dGVuZHMgV2lkZ2V0VHlwZVYzPiB7XG4gIHdpZGdldENvbmZpZ0lkOiBzdHJpbmc7XG4gIHR5cGU6IFQ7XG4gIGNvbnRlbnRJZD86IHN0cmluZzsgLy8gV2lkZ2V0IElEXG59XG5cbmludGVyZmFjZSBQcm9tcHRDYXJvdXNlbFdpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWMz4ge1xuICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgYm9sZEZpcnN0QnV0dG9uPzogYm9vbGVhbjtcbiAgcHJvbXB0Q2Fyb3VzZWxSb3dzPzogUHJvbXB0Q2Fyb3VzZWxSb3dzO1xuICBhbmltYXRpb25TcGVlZD86IEFuaW1hdGlvblNwZWVkO1xufVxuXG5pbnRlcmZhY2UgVGl0bGVkUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjM+IHtcbiAgcHJvbXB0QnV0dG9uVHlwZT86IFByb21wdEJ1dHRvblZhcmlhbnQ7XG4gIGJvbGRGaXJzdEJ1dHRvbj86IGJvb2xlYW47XG4gIHByb21wdENhcm91c2VsUm93cz86IFByb21wdENhcm91c2VsUm93cztcbiAgYW5pbWF0aW9uU3BlZWQ/OiBBbmltYXRpb25TcGVlZDtcbn1cbmludGVyZmFjZSBTb2NpYWxQcm9vZldpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWMz4ge1xuICBraW5kOiBXaWRnZXRLaW5kO1xuICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgaGV4Q2FyZENvbG9yPzogc3RyaW5nO1xuICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cztcbiAgaGlkZUltYWdlPzogYm9vbGVhbjtcbiAgaW1hZ2VHYWxsZXJ5TGF5b3V0OiBFeGNsdWRlPEltYWdlR2FsbGVyeUxheW91dCwgJ1RXT19TSURFJz47XG4gIGhpZGVUZXh0RmllbGQ/OiBib29sZWFuO1xuICBwcmltYXJ5QnV0dG9uVmFyaWFudDogRXhjbHVkZTxQcm9tcHRCdXR0b25WYXJpYW50LCAnc3VnZ2VzdGVkUmVzcG9uc2UnIHwgJ2dob3N0Jz47XG4gIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IEV4Y2x1ZGU8UHJvbXB0QnV0dG9uVmFyaWFudCwgJ3N1Z2dlc3RlZFJlc3BvbnNlJyB8ICdnaG9zdCc+O1xuICBkeW5hbWljTGF5b3V0PzogRHluYW1pY0xheW91dDtcbiAgaW1hZ2VzPzogSW1hZ2VHYWxsZXJ5SW1hZ2VbXTtcbn1cblxuaW50ZXJmYWNlIFR5cGluZ0FuaW1hdGlvbldpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjM+IHtcbiAgd2lkZ2V0VmFyaWFudD86IFdpZGdldFdyYXBwZXJWYXJpYW50O1xuICBjYXJkQ29sb3I/OiBzdHJpbmc7XG4gIHByb21wdEJ1dHRvblR5cGU/OiBQcm9tcHRCdXR0b25WYXJpYW50O1xuICBwcm9tcHRDYXJvdXNlbFJvd3M/OiBQcm9tcHRDYXJvdXNlbFJvd3M7XG4gIHNob3dUZXh0RmllbGQ/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdDb21wYXJpc29uV2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5DaGF0UHJldmlld0NvbXBhcmlzb25WMz4ge1xuICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgaGV4Q2FyZENvbG9yPzogc3RyaW5nO1xuICBoaWRlSW1hZ2U/OiBib29sZWFuO1xuICBoaWRlVGV4dEZpZWxkPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3TG9hZGluZ1dpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdMb2FkaW5nVjM+IHtcbiAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQ7XG4gIGhleENhcmRDb2xvcj86IHN0cmluZztcbiAgaGlkZVRleHRGaWVsZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDaGF0UHJldmlld1dpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdWMz4ge1xuICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgaGV4Q2FyZENvbG9yPzogc3RyaW5nO1xuICBoaWRlVGV4dEZpZWxkPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlV2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5Qcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzPiB7XG4gIHByb21wdEJ1dHRvblR5cGU/OiBQcm9tcHRCdXR0b25WYXJpYW50O1xuICBpbWFnZT86IEltYWdlR2FsbGVyeUltYWdlO1xuICBoaWRlVGV4dEZpZWxkPzogYm9vbGVhbjtcbiAgaXNEeW5hbWljPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIEZsb2F0aW5nQ2hhdFdpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuRmxvYXRpbmdDaGF0VjM+IHt9XG5cbmludGVyZmFjZSBQcm9kdWN0Q2FyZFdpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuUHJvZHVjdENhcmRWMz4ge1xuICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgaXRhbGljaXplSGVhZGxpbmU/OiBib29sZWFuO1xuICBmYWxsYmFja0NvbG9yPzogc3RyaW5nO1xuICBpbWFnZVNyYz86IHN0cmluZztcbiAgbW9kZT86IE1vZGU7XG59XG5cbmludGVyZmFjZSBGdWxsUGFnZVNhbGVzQWdlbnRXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLkZ1bGxQYWdlU2FsZXNBZ2VudFYzPiB7XG4gIGhlYWRlckNvbnRhaW5lcj86IHN0cmluZztcbiAgYXV0b0hlaWdodD86IGJvb2xlYW47XG4gIHNwYXJrbGVDb2xvcj86IHN0cmluZztcbiAgdXNlQmFja2dyb3VuZEltYWdlPzogYm9vbGVhbjtcbiAgbW9iaWxlQmFja2dyb3VuZEltYWdlPzogc3RyaW5nO1xuICBkZXNrdG9wQmFja2dyb3VuZEltYWdlPzogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIHN1Z2dlc3Rpb25CdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbn1cblxudHlwZSBXaWRnZXRDb25maWdWMyA9XG4gIHwgUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZ1xuICB8IFNvY2lhbFByb29mV2lkZ2V0VjNDb25maWdcbiAgfCBUaXRsZWRQcm9tcHRDYXJvdXNlbFdpZGdldFYzQ29uZmlnXG4gIHwgQ2hhdFByZXZpZXdDb21wYXJpc29uV2lkZ2V0VjNDb25maWdcbiAgfCBDaGF0UHJldmlld0xvYWRpbmdXaWRnZXRWM0NvbmZpZ1xuICB8IFR5cGluZ0FuaW1hdGlvbldpZGdldFYzQ29uZmlnXG4gIHwgQ2hhdFByZXZpZXdXaWRnZXRWM0NvbmZpZ1xuICB8IFByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlV2lkZ2V0VjNDb25maWdcbiAgfCBGbG9hdGluZ0NoYXRXaWRnZXRWM0NvbmZpZ1xuICB8IFByb2R1Y3RDYXJkV2lkZ2V0VjNDb25maWdcbiAgfCBGdWxsUGFnZVNhbGVzQWdlbnRXaWRnZXRWM0NvbmZpZztcblxuZXhwb3J0IHR5cGUge1xuICBDaGF0UHJldmlld0NvbXBhcmlzb25XaWRnZXRWM0NvbmZpZyxcbiAgQ2hhdFByZXZpZXdMb2FkaW5nV2lkZ2V0VjNDb25maWcsXG4gIENoYXRQcmV2aWV3V2lkZ2V0VjNDb25maWcsXG4gIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uLFxuICBGbG9hdGluZ0J1dHRvbkNvbmZpZyxcbiAgRmxvYXRpbmdDaGF0Q29uZmlnLFxuICBGbG9hdGluZ0NoYXRXaWRnZXRWM0NvbmZpZyxcbiAgRnVsbFBhZ2VTYWxlc0FnZW50V2lkZ2V0VjNDb25maWcsXG4gIExvb2tBbmRGZWVsQ29uZmlnLFxuICBPcmdVSUNvbmZpZ1YzLFxuICBQcm9kdWN0Q2FyZFdpZGdldFYzQ29uZmlnLFxuICBQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVdpZGdldFYzQ29uZmlnLFxuICBQcm9tcHRDYXJvdXNlbFdpZGdldFYzQ29uZmlnLFxuICBTb2NpYWxQcm9vZldpZGdldFYzQ29uZmlnLFxuICBTUEFTZXR0aW5ncyxcbiAgVGl0bGVkUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZyxcbiAgVHlwaW5nQW5pbWF0aW9uV2lkZ2V0VjNDb25maWcsXG4gIFdpZGdldENvbmZpZ1YzLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBWSxzRUFBTDtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHRixJQUFZLGdFQUFMO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdGLElBQVksZ0VBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7O0FBR0YsSUFBWSw0REFBTDtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHRixJQUFZLGdFQUFMO0FBQ0w7QUFDQTtBQUNBOzs7QUFHRixJQUFZLHNEQUFMO0FBQ0w7OztBQUdGLElBQVksa0VBQUw7QUFDTDs7O0FBR0YsSUFBWSxvRUFBTDtBQUNMOzs7QUFHRixJQUFrQiw4REFBWDtBQUNMLG9DQUFjLGlCQUFpQixXQUFXO0FBQzFDLHNDQUFnQixpQkFBaUIsV0FBVztBQUM1QyxtQ0FBYSxpQkFBaUIsV0FBVztBQUN6QyxpQ0FBVyxpQkFBaUIsV0FBVztBQUN2QyxrQ0FBWSxpQkFBaUIsV0FBVztBQUN4QywwQ0FBb0IsaUJBQWlCLFdBQVc7QUFDaEQsNENBQXNCLGlCQUFpQixXQUFXO0FBQ2xELDJDQUFxQixpQkFBaUIsV0FBVztBQUNqRCx1Q0FBaUIsaUJBQWlCLFdBQVc7QUFDN0Msd0NBQWtCLGlCQUFpQixXQUFXO0FBQzlDLG9DQUFjLGlCQUFpQixXQUFXO0FBQzFDLHFDQUFlLGlCQUFpQixXQUFXO0FBQzNDLG1DQUFhLGlCQUFpQixXQUFXO0FBQ3pDLHNDQUFnQixpQkFBaUIsV0FBVztBQUM1Qyx3Q0FBa0IsaUJBQWlCLFdBQVc7OztBQUdoRCxJQUFrQixnRUFBWDtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQXlGRixJQUFZLGtFQUFMO0FBQ0w7QUFDQTs7O0FBcUZGLElBQVksd0RBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EifQ==
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let react = require("react");
|
|
3
|
+
|
|
4
|
+
//#region src/hooks/FocusTrap/useFocusTrap.ts
|
|
5
|
+
const FOCUSABLE_SELECTOR = [
|
|
6
|
+
"a[href]",
|
|
7
|
+
"button:not([disabled])",
|
|
8
|
+
"input:not([disabled]):not([type=\"hidden\"])",
|
|
9
|
+
"textarea:not([disabled])",
|
|
10
|
+
"select:not([disabled])",
|
|
11
|
+
"[tabindex]:not([tabindex=\"-1\"])"
|
|
12
|
+
].join(",");
|
|
13
|
+
const isElementVisible = (el) => {
|
|
14
|
+
if (el.hasAttribute("hidden")) return false;
|
|
15
|
+
if (typeof window === "undefined") return true;
|
|
16
|
+
const style = window.getComputedStyle(el);
|
|
17
|
+
return style.display !== "none" && style.visibility !== "hidden";
|
|
18
|
+
};
|
|
19
|
+
const getFocusableElements = (container) => Array.from(container.querySelectorAll(FOCUSABLE_SELECTOR)).filter(isElementVisible);
|
|
20
|
+
/**
|
|
21
|
+
* Returns the deepest active element across (possibly nested) shadow roots,
|
|
22
|
+
* starting from the document. Plain `document.activeElement` returns the shadow
|
|
23
|
+
* host when focus is inside an open shadow root, so we recurse into shadowRoot
|
|
24
|
+
* to find the truly focused element.
|
|
25
|
+
*/
|
|
26
|
+
const getDeepActiveElement = () => {
|
|
27
|
+
if (typeof document === "undefined") return null;
|
|
28
|
+
let active = document.activeElement;
|
|
29
|
+
while (active && active.shadowRoot && active.shadowRoot.activeElement) active = active.shadowRoot.activeElement;
|
|
30
|
+
return active;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Trap keyboard focus inside `containerRef` while `enabled` is true.
|
|
34
|
+
*
|
|
35
|
+
* On enable: moves focus to the first focusable element inside the container.
|
|
36
|
+
* If the container is empty (e.g. lazy-loaded content), waits for DOM mutations
|
|
37
|
+
* and focuses the first focusable as soon as it appears.
|
|
38
|
+
*
|
|
39
|
+
* While enabled: Tab and Shift+Tab wrap around so focus stays inside.
|
|
40
|
+
*
|
|
41
|
+
* On disable: restores focus to the previously focused element if it is still
|
|
42
|
+
* present in the document.
|
|
43
|
+
*/
|
|
44
|
+
const useFocusTrap = (containerRef, enabled) => {
|
|
45
|
+
(0, react.useEffect)(() => {
|
|
46
|
+
if (!enabled || typeof document === "undefined") return void 0;
|
|
47
|
+
const container = containerRef.current;
|
|
48
|
+
if (!container) return void 0;
|
|
49
|
+
const root = container.getRootNode();
|
|
50
|
+
const previouslyFocused = getDeepActiveElement();
|
|
51
|
+
const getActiveElement = () => root.activeElement;
|
|
52
|
+
const focusFirst = () => {
|
|
53
|
+
const first = getFocusableElements(container)[0];
|
|
54
|
+
if (first) {
|
|
55
|
+
first.focus();
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
};
|
|
60
|
+
let observer = null;
|
|
61
|
+
if (!focusFirst()) {
|
|
62
|
+
observer = new MutationObserver(() => {
|
|
63
|
+
if (focusFirst()) {
|
|
64
|
+
observer?.disconnect();
|
|
65
|
+
observer = null;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
observer.observe(container, {
|
|
69
|
+
childList: true,
|
|
70
|
+
subtree: true
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
const handleKeyDown = (e) => {
|
|
74
|
+
if (e.key !== "Tab") return;
|
|
75
|
+
const focusables = getFocusableElements(container);
|
|
76
|
+
if (focusables.length === 0) {
|
|
77
|
+
e.preventDefault();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const first = focusables[0];
|
|
81
|
+
const last = focusables[focusables.length - 1];
|
|
82
|
+
const active = getActiveElement();
|
|
83
|
+
const isInsideContainer = active ? container.contains(active) : false;
|
|
84
|
+
if (e.shiftKey) {
|
|
85
|
+
if (active === first || !isInsideContainer) {
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
last.focus();
|
|
88
|
+
}
|
|
89
|
+
} else if (active === last || !isInsideContainer) {
|
|
90
|
+
e.preventDefault();
|
|
91
|
+
first.focus();
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
container.addEventListener("keydown", handleKeyDown);
|
|
95
|
+
return () => {
|
|
96
|
+
observer?.disconnect();
|
|
97
|
+
container.removeEventListener("keydown", handleKeyDown);
|
|
98
|
+
if (previouslyFocused && typeof previouslyFocused.focus === "function" && previouslyFocused.isConnected) previouslyFocused.focus();
|
|
99
|
+
};
|
|
100
|
+
}, [enabled, containerRef]);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
//#endregion
|
|
104
|
+
exports.useFocusTrap = useFocusTrap;
|
|
105
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRm9jdXNUcmFwLmNqcyIsIm5hbWVzIjpbIm9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9Gb2N1c1RyYXAvdXNlRm9jdXNUcmFwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZk9iamVjdCwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBGT0NVU0FCTEVfU0VMRUNUT1IgPSBbXG4gICdhW2hyZWZdJyxcbiAgJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknLFxuICAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT1cImhpZGRlblwiXSknLFxuICAndGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pJyxcbiAgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSknLFxuICAnW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0pJyxcbl0uam9pbignLCcpO1xuXG5jb25zdCBpc0VsZW1lbnRWaXNpYmxlID0gKGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoZWwuaGFzQXR0cmlidXRlKCdoaWRkZW4nKSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0cnVlO1xuICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTtcbiAgcmV0dXJuIHN0eWxlLmRpc3BsYXkgIT09ICdub25lJyAmJiBzdHlsZS52aXNpYmlsaXR5ICE9PSAnaGlkZGVuJztcbn07XG5cbmNvbnN0IGdldEZvY3VzYWJsZUVsZW1lbnRzID0gKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdID0+XG4gIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KEZPQ1VTQUJMRV9TRUxFQ1RPUikpLmZpbHRlcihpc0VsZW1lbnRWaXNpYmxlKTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkZWVwZXN0IGFjdGl2ZSBlbGVtZW50IGFjcm9zcyAocG9zc2libHkgbmVzdGVkKSBzaGFkb3cgcm9vdHMsXG4gKiBzdGFydGluZyBmcm9tIHRoZSBkb2N1bWVudC4gUGxhaW4gYGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRgIHJldHVybnMgdGhlIHNoYWRvd1xuICogaG9zdCB3aGVuIGZvY3VzIGlzIGluc2lkZSBhbiBvcGVuIHNoYWRvdyByb290LCBzbyB3ZSByZWN1cnNlIGludG8gc2hhZG93Um9vdFxuICogdG8gZmluZCB0aGUgdHJ1bHkgZm9jdXNlZCBlbGVtZW50LlxuICovXG5jb25zdCBnZXREZWVwQWN0aXZlRWxlbWVudCA9ICgpOiBIVE1MRWxlbWVudCB8IG51bGwgPT4ge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIG51bGw7XG4gIGxldCBhY3RpdmUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgd2hpbGUgKGFjdGl2ZSAmJiBhY3RpdmUuc2hhZG93Um9vdCAmJiBhY3RpdmUuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KSB7XG4gICAgYWN0aXZlID0gYWN0aXZlLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuICByZXR1cm4gYWN0aXZlO1xufTtcblxuLyoqXG4gKiBUcmFwIGtleWJvYXJkIGZvY3VzIGluc2lkZSBgY29udGFpbmVyUmVmYCB3aGlsZSBgZW5hYmxlZGAgaXMgdHJ1ZS5cbiAqXG4gKiBPbiBlbmFibGU6IG1vdmVzIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBpbnNpZGUgdGhlIGNvbnRhaW5lci5cbiAqIElmIHRoZSBjb250YWluZXIgaXMgZW1wdHkgKGUuZy4gbGF6eS1sb2FkZWQgY29udGVudCksIHdhaXRzIGZvciBET00gbXV0YXRpb25zXG4gKiBhbmQgZm9jdXNlcyB0aGUgZmlyc3QgZm9jdXNhYmxlIGFzIHNvb24gYXMgaXQgYXBwZWFycy5cbiAqXG4gKiBXaGlsZSBlbmFibGVkOiBUYWIgYW5kIFNoaWZ0K1RhYiB3cmFwIGFyb3VuZCBzbyBmb2N1cyBzdGF5cyBpbnNpZGUuXG4gKlxuICogT24gZGlzYWJsZTogcmVzdG9yZXMgZm9jdXMgdG8gdGhlIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50IGlmIGl0IGlzIHN0aWxsXG4gKiBwcmVzZW50IGluIHRoZSBkb2N1bWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUZvY3VzVHJhcCA9IChjb250YWluZXJSZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LCBlbmFibGVkOiBib29sZWFuKSA9PiB7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkIHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcbiAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIC8vIFRoZSBjb250YWluZXIgbWF5IGxpdmUgaW5zaWRlIGEgU2hhZG93IERPTSAodGhlIGluamVjdGlvbiBidW5kbGUgaG9zdHNcbiAgICAvLyB0aGUgY2hhdCB0aGF0IHdheSkuIFVzZSB0aGUgY29udGFpbmVyJ3Mgcm9vdCBzbyBjb250YWlubWVudCBjaGVja3MgYW5kXG4gICAgLy8gYWN0aXZlLWVsZW1lbnQgbG9va3VwcyB3b3JrIGJvdGggaW4gdGhlIGxpZ2h0IERPTSBhbmQgaW5zaWRlIHNoYWRvdyByb290cy5cbiAgICBjb25zdCByb290ID0gY29udGFpbmVyLmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290O1xuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkID0gZ2V0RGVlcEFjdGl2ZUVsZW1lbnQoKTtcblxuICAgIGNvbnN0IGdldEFjdGl2ZUVsZW1lbnQgPSAoKTogSFRNTEVsZW1lbnQgfCBudWxsID0+IHJvb3QuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICBjb25zdCBmb2N1c0ZpcnN0ID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgY29uc3QgZm9jdXNhYmxlcyA9IGdldEZvY3VzYWJsZUVsZW1lbnRzKGNvbnRhaW5lcik7XG4gICAgICBjb25zdCBmaXJzdCA9IGZvY3VzYWJsZXNbMF07XG4gICAgICBpZiAoZmlyc3QpIHtcbiAgICAgICAgZmlyc3QuZm9jdXMoKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIGxldCBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGwgPSBudWxsO1xuICAgIGlmICghZm9jdXNGaXJzdCgpKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgaWYgKGZvY3VzRmlyc3QoKSkge1xuICAgICAgICAgIG9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgb2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChlLmtleSAhPT0gJ1RhYicpIHJldHVybjtcblxuICAgICAgY29uc3QgZm9jdXNhYmxlcyA9IGdldEZvY3VzYWJsZUVsZW1lbnRzKGNvbnRhaW5lcik7XG4gICAgICBpZiAoZm9jdXNhYmxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcnN0ID0gZm9jdXNhYmxlc1swXTtcbiAgICAgIGNvbnN0IGxhc3QgPSBmb2N1c2FibGVzW2ZvY3VzYWJsZXMubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBhY3RpdmUgPSBnZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgICBjb25zdCBpc0luc2lkZUNvbnRhaW5lciA9IGFjdGl2ZSA/IGNvbnRhaW5lci5jb250YWlucyhhY3RpdmUpIDogZmFsc2U7XG5cbiAgICAgIGlmIChlLnNoaWZ0S2V5KSB7XG4gICAgICAgIGlmIChhY3RpdmUgPT09IGZpcnN0IHx8ICFpc0luc2lkZUNvbnRhaW5lcikge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBsYXN0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoYWN0aXZlID09PSBsYXN0IHx8ICFpc0luc2lkZUNvbnRhaW5lcikge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGZpcnN0LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgb2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG5cbiAgICAgIGlmIChcbiAgICAgICAgcHJldmlvdXNseUZvY3VzZWQgJiZcbiAgICAgICAgdHlwZW9mIHByZXZpb3VzbHlGb2N1c2VkLmZvY3VzID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHByZXZpb3VzbHlGb2N1c2VkLmlzQ29ubmVjdGVkXG4gICAgICApIHtcbiAgICAgICAgcHJldmlvdXNseUZvY3VzZWQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbZW5hYmxlZCwgY29udGFpbmVyUmVmXSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBTSxxQkFBcUI7Q0FDekI7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0QsQ0FBQyxLQUFLLElBQUk7QUFFWCxNQUFNLG9CQUFvQixPQUE2QjtBQUNyRCxLQUFJLEdBQUcsYUFBYSxTQUFTLENBQUUsUUFBTztBQUN0QyxLQUFJLE9BQU8sV0FBVyxZQUFhLFFBQU87Q0FDMUMsTUFBTSxRQUFRLE9BQU8saUJBQWlCLEdBQUc7QUFDekMsUUFBTyxNQUFNLFlBQVksVUFBVSxNQUFNLGVBQWU7O0FBRzFELE1BQU0sd0JBQXdCLGNBQzVCLE1BQU0sS0FBSyxVQUFVLGlCQUE4QixtQkFBbUIsQ0FBQyxDQUFDLE9BQU8saUJBQWlCOzs7Ozs7O0FBUWxHLE1BQU0sNkJBQWlEO0FBQ3JELEtBQUksT0FBTyxhQUFhLFlBQWEsUUFBTztDQUM1QyxJQUFJLFNBQVMsU0FBUztBQUN0QixRQUFPLFVBQVUsT0FBTyxjQUFjLE9BQU8sV0FBVyxjQUN0RCxVQUFTLE9BQU8sV0FBVztBQUU3QixRQUFPOzs7Ozs7Ozs7Ozs7OztBQWVULE1BQWEsZ0JBQWdCLGNBQTZDLFlBQXFCO0FBQzdGLDRCQUFnQjtBQUNkLE1BQUksQ0FBQyxXQUFXLE9BQU8sYUFBYSxZQUFhLFFBQU87RUFFeEQsTUFBTSxZQUFZLGFBQWE7QUFDL0IsTUFBSSxDQUFDLFVBQVcsUUFBTztFQUt2QixNQUFNLE9BQU8sVUFBVSxhQUFhO0VBQ3BDLE1BQU0sb0JBQW9CLHNCQUFzQjtFQUVoRCxNQUFNLHlCQUE2QyxLQUFLO0VBRXhELE1BQU0sbUJBQTRCO0dBRWhDLE1BQU0sUUFEYSxxQkFBcUIsVUFBVSxDQUN6QjtBQUN6QixPQUFJLE9BQU87QUFDVCxVQUFNLE9BQU87QUFDYixXQUFPOztBQUVULFVBQU87O0VBR1QsSUFBSUEsV0FBb0M7QUFDeEMsTUFBSSxDQUFDLFlBQVksRUFBRTtBQUNqQixjQUFXLElBQUksdUJBQXVCO0FBQ3BDLFFBQUksWUFBWSxFQUFFO0FBQ2hCLGVBQVUsWUFBWTtBQUN0QixnQkFBVzs7S0FFYjtBQUNGLFlBQVMsUUFBUSxXQUFXO0lBQUUsV0FBVztJQUFNLFNBQVM7SUFBTSxDQUFDOztFQUdqRSxNQUFNLGlCQUFpQixNQUFxQjtBQUMxQyxPQUFJLEVBQUUsUUFBUSxNQUFPO0dBRXJCLE1BQU0sYUFBYSxxQkFBcUIsVUFBVTtBQUNsRCxPQUFJLFdBQVcsV0FBVyxHQUFHO0FBQzNCLE1BQUUsZ0JBQWdCO0FBQ2xCOztHQUdGLE1BQU0sUUFBUSxXQUFXO0dBQ3pCLE1BQU0sT0FBTyxXQUFXLFdBQVcsU0FBUztHQUM1QyxNQUFNLFNBQVMsa0JBQWtCO0dBQ2pDLE1BQU0sb0JBQW9CLFNBQVMsVUFBVSxTQUFTLE9BQU8sR0FBRztBQUVoRSxPQUFJLEVBQUUsVUFDSjtRQUFJLFdBQVcsU0FBUyxDQUFDLG1CQUFtQjtBQUMxQyxPQUFFLGdCQUFnQjtBQUNsQixVQUFLLE9BQU87O2NBRUwsV0FBVyxRQUFRLENBQUMsbUJBQW1CO0FBQ2hELE1BQUUsZ0JBQWdCO0FBQ2xCLFVBQU0sT0FBTzs7O0FBSWpCLFlBQVUsaUJBQWlCLFdBQVcsY0FBYztBQUVwRCxlQUFhO0FBQ1gsYUFBVSxZQUFZO0FBQ3RCLGFBQVUsb0JBQW9CLFdBQVcsY0FBYztBQUV2RCxPQUNFLHFCQUNBLE9BQU8sa0JBQWtCLFVBQVUsY0FDbkMsa0JBQWtCLFlBRWxCLG1CQUFrQixPQUFPOztJQUc1QixDQUFDLFNBQVMsYUFBYSxDQUFDIn0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/hooks/FocusTrap/useFocusTrap.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Trap keyboard focus inside `containerRef` while `enabled` is true.
|
|
7
|
+
*
|
|
8
|
+
* On enable: moves focus to the first focusable element inside the container.
|
|
9
|
+
* If the container is empty (e.g. lazy-loaded content), waits for DOM mutations
|
|
10
|
+
* and focuses the first focusable as soon as it appears.
|
|
11
|
+
*
|
|
12
|
+
* While enabled: Tab and Shift+Tab wrap around so focus stays inside.
|
|
13
|
+
*
|
|
14
|
+
* On disable: restores focus to the previously focused element if it is still
|
|
15
|
+
* present in the document.
|
|
16
|
+
*/
|
|
17
|
+
declare const useFocusTrap: (containerRef: RefObject<HTMLElement | null>, enabled: boolean) => void;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { useFocusTrap };
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRm9jdXNUcmFwLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9Gb2N1c1RyYXAvdXNlRm9jdXNUcmFwLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBUcmFwIGtleWJvYXJkIGZvY3VzIGluc2lkZSBgY29udGFpbmVyUmVmYCB3aGlsZSBgZW5hYmxlZGAgaXMgdHJ1ZS5cbiAqXG4gKiBPbiBlbmFibGU6IG1vdmVzIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBpbnNpZGUgdGhlIGNvbnRhaW5lci5cbiAqIElmIHRoZSBjb250YWluZXIgaXMgZW1wdHkgKGUuZy4gbGF6eS1sb2FkZWQgY29udGVudCksIHdhaXRzIGZvciBET00gbXV0YXRpb25zXG4gKiBhbmQgZm9jdXNlcyB0aGUgZmlyc3QgZm9jdXNhYmxlIGFzIHNvb24gYXMgaXQgYXBwZWFycy5cbiAqXG4gKiBXaGlsZSBlbmFibGVkOiBUYWIgYW5kIFNoaWZ0K1RhYiB3cmFwIGFyb3VuZCBzbyBmb2N1cyBzdGF5cyBpbnNpZGUuXG4gKlxuICogT24gZGlzYWJsZTogcmVzdG9yZXMgZm9jdXMgdG8gdGhlIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50IGlmIGl0IGlzIHN0aWxsXG4gKiBwcmVzZW50IGluIHRoZSBkb2N1bWVudC5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlRm9jdXNUcmFwOiAoY29udGFpbmVyUmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPiwgZW5hYmxlZDogYm9vbGVhbikgPT4gdm9pZDtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBRSxlQUFBO0NBQUE7T0FBQTtPQUFBO0NBQUEifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/hooks/FocusTrap/useFocusTrap.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Trap keyboard focus inside `containerRef` while `enabled` is true.
|
|
7
|
+
*
|
|
8
|
+
* On enable: moves focus to the first focusable element inside the container.
|
|
9
|
+
* If the container is empty (e.g. lazy-loaded content), waits for DOM mutations
|
|
10
|
+
* and focuses the first focusable as soon as it appears.
|
|
11
|
+
*
|
|
12
|
+
* While enabled: Tab and Shift+Tab wrap around so focus stays inside.
|
|
13
|
+
*
|
|
14
|
+
* On disable: restores focus to the previously focused element if it is still
|
|
15
|
+
* present in the document.
|
|
16
|
+
*/
|
|
17
|
+
declare const useFocusTrap: (containerRef: RefObject<HTMLElement | null>, enabled: boolean) => void;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { useFocusTrap };
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRm9jdXNUcmFwLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL0ZvY3VzVHJhcC91c2VGb2N1c1RyYXAuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWZPYmplY3QgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFRyYXAga2V5Ym9hcmQgZm9jdXMgaW5zaWRlIGBjb250YWluZXJSZWZgIHdoaWxlIGBlbmFibGVkYCBpcyB0cnVlLlxuICpcbiAqIE9uIGVuYWJsZTogbW92ZXMgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSB0aGUgY29udGFpbmVyLlxuICogSWYgdGhlIGNvbnRhaW5lciBpcyBlbXB0eSAoZS5nLiBsYXp5LWxvYWRlZCBjb250ZW50KSwgd2FpdHMgZm9yIERPTSBtdXRhdGlvbnNcbiAqIGFuZCBmb2N1c2VzIHRoZSBmaXJzdCBmb2N1c2FibGUgYXMgc29vbiBhcyBpdCBhcHBlYXJzLlxuICpcbiAqIFdoaWxlIGVuYWJsZWQ6IFRhYiBhbmQgU2hpZnQrVGFiIHdyYXAgYXJvdW5kIHNvIGZvY3VzIHN0YXlzIGluc2lkZS5cbiAqXG4gKiBPbiBkaXNhYmxlOiByZXN0b3JlcyBmb2N1cyB0byB0aGUgcHJldmlvdXNseSBmb2N1c2VkIGVsZW1lbnQgaWYgaXQgaXMgc3RpbGxcbiAqIHByZXNlbnQgaW4gdGhlIGRvY3VtZW50LlxuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VGb2N1c1RyYXA6IChjb250YWluZXJSZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LCBlbmFibGVkOiBib29sZWFuKSA9PiB2b2lkO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFDQSxJQUFFLGVBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQSJ9
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/hooks/FocusTrap/useFocusTrap.ts
|
|
4
|
+
const FOCUSABLE_SELECTOR = [
|
|
5
|
+
"a[href]",
|
|
6
|
+
"button:not([disabled])",
|
|
7
|
+
"input:not([disabled]):not([type=\"hidden\"])",
|
|
8
|
+
"textarea:not([disabled])",
|
|
9
|
+
"select:not([disabled])",
|
|
10
|
+
"[tabindex]:not([tabindex=\"-1\"])"
|
|
11
|
+
].join(",");
|
|
12
|
+
const isElementVisible = (el) => {
|
|
13
|
+
if (el.hasAttribute("hidden")) return false;
|
|
14
|
+
if (typeof window === "undefined") return true;
|
|
15
|
+
const style = window.getComputedStyle(el);
|
|
16
|
+
return style.display !== "none" && style.visibility !== "hidden";
|
|
17
|
+
};
|
|
18
|
+
const getFocusableElements = (container) => Array.from(container.querySelectorAll(FOCUSABLE_SELECTOR)).filter(isElementVisible);
|
|
19
|
+
/**
|
|
20
|
+
* Returns the deepest active element across (possibly nested) shadow roots,
|
|
21
|
+
* starting from the document. Plain `document.activeElement` returns the shadow
|
|
22
|
+
* host when focus is inside an open shadow root, so we recurse into shadowRoot
|
|
23
|
+
* to find the truly focused element.
|
|
24
|
+
*/
|
|
25
|
+
const getDeepActiveElement = () => {
|
|
26
|
+
if (typeof document === "undefined") return null;
|
|
27
|
+
let active = document.activeElement;
|
|
28
|
+
while (active && active.shadowRoot && active.shadowRoot.activeElement) active = active.shadowRoot.activeElement;
|
|
29
|
+
return active;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Trap keyboard focus inside `containerRef` while `enabled` is true.
|
|
33
|
+
*
|
|
34
|
+
* On enable: moves focus to the first focusable element inside the container.
|
|
35
|
+
* If the container is empty (e.g. lazy-loaded content), waits for DOM mutations
|
|
36
|
+
* and focuses the first focusable as soon as it appears.
|
|
37
|
+
*
|
|
38
|
+
* While enabled: Tab and Shift+Tab wrap around so focus stays inside.
|
|
39
|
+
*
|
|
40
|
+
* On disable: restores focus to the previously focused element if it is still
|
|
41
|
+
* present in the document.
|
|
42
|
+
*/
|
|
43
|
+
const useFocusTrap = (containerRef, enabled) => {
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
if (!enabled || typeof document === "undefined") return void 0;
|
|
46
|
+
const container = containerRef.current;
|
|
47
|
+
if (!container) return void 0;
|
|
48
|
+
const root = container.getRootNode();
|
|
49
|
+
const previouslyFocused = getDeepActiveElement();
|
|
50
|
+
const getActiveElement = () => root.activeElement;
|
|
51
|
+
const focusFirst = () => {
|
|
52
|
+
const first = getFocusableElements(container)[0];
|
|
53
|
+
if (first) {
|
|
54
|
+
first.focus();
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
};
|
|
59
|
+
let observer = null;
|
|
60
|
+
if (!focusFirst()) {
|
|
61
|
+
observer = new MutationObserver(() => {
|
|
62
|
+
if (focusFirst()) {
|
|
63
|
+
observer?.disconnect();
|
|
64
|
+
observer = null;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
observer.observe(container, {
|
|
68
|
+
childList: true,
|
|
69
|
+
subtree: true
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
const handleKeyDown = (e) => {
|
|
73
|
+
if (e.key !== "Tab") return;
|
|
74
|
+
const focusables = getFocusableElements(container);
|
|
75
|
+
if (focusables.length === 0) {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const first = focusables[0];
|
|
80
|
+
const last = focusables[focusables.length - 1];
|
|
81
|
+
const active = getActiveElement();
|
|
82
|
+
const isInsideContainer = active ? container.contains(active) : false;
|
|
83
|
+
if (e.shiftKey) {
|
|
84
|
+
if (active === first || !isInsideContainer) {
|
|
85
|
+
e.preventDefault();
|
|
86
|
+
last.focus();
|
|
87
|
+
}
|
|
88
|
+
} else if (active === last || !isInsideContainer) {
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
first.focus();
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
container.addEventListener("keydown", handleKeyDown);
|
|
94
|
+
return () => {
|
|
95
|
+
observer?.disconnect();
|
|
96
|
+
container.removeEventListener("keydown", handleKeyDown);
|
|
97
|
+
if (previouslyFocused && typeof previouslyFocused.focus === "function" && previouslyFocused.isConnected) previouslyFocused.focus();
|
|
98
|
+
};
|
|
99
|
+
}, [enabled, containerRef]);
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
//#endregion
|
|
103
|
+
export { useFocusTrap };
|
|
104
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRm9jdXNUcmFwLmpzIiwibmFtZXMiOlsib2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL0ZvY3VzVHJhcC91c2VGb2N1c1RyYXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IEZPQ1VTQUJMRV9TRUxFQ1RPUiA9IFtcbiAgJ2FbaHJlZl0nLFxuICAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScsXG4gICdpbnB1dDpub3QoW2Rpc2FibGVkXSk6bm90KFt0eXBlPVwiaGlkZGVuXCJdKScsXG4gICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSknLFxuICAnc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsXG4gICdbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknLFxuXS5qb2luKCcsJyk7XG5cbmNvbnN0IGlzRWxlbWVudFZpc2libGUgPSAoZWw6IEhUTUxFbGVtZW50KTogYm9vbGVhbiA9PiB7XG4gIGlmIChlbC5oYXNBdHRyaWJ1dGUoJ2hpZGRlbicpKSByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIHRydWU7XG4gIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpO1xuICByZXR1cm4gc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnICYmIHN0eWxlLnZpc2liaWxpdHkgIT09ICdoaWRkZW4nO1xufTtcblxuY29uc3QgZ2V0Rm9jdXNhYmxlRWxlbWVudHMgPSAoY29udGFpbmVyOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50W10gPT5cbiAgQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oRk9DVVNBQkxFX1NFTEVDVE9SKSkuZmlsdGVyKGlzRWxlbWVudFZpc2libGUpO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGRlZXBlc3QgYWN0aXZlIGVsZW1lbnQgYWNyb3NzIChwb3NzaWJseSBuZXN0ZWQpIHNoYWRvdyByb290cyxcbiAqIHN0YXJ0aW5nIGZyb20gdGhlIGRvY3VtZW50LiBQbGFpbiBgZG9jdW1lbnQuYWN0aXZlRWxlbWVudGAgcmV0dXJucyB0aGUgc2hhZG93XG4gKiBob3N0IHdoZW4gZm9jdXMgaXMgaW5zaWRlIGFuIG9wZW4gc2hhZG93IHJvb3QsIHNvIHdlIHJlY3Vyc2UgaW50byBzaGFkb3dSb290XG4gKiB0byBmaW5kIHRoZSB0cnVseSBmb2N1c2VkIGVsZW1lbnQuXG4gKi9cbmNvbnN0IGdldERlZXBBY3RpdmVFbGVtZW50ID0gKCk6IEhUTUxFbGVtZW50IHwgbnVsbCA9PiB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gbnVsbDtcbiAgbGV0IGFjdGl2ZSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAoYWN0aXZlICYmIGFjdGl2ZS5zaGFkb3dSb290ICYmIGFjdGl2ZS5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpIHtcbiAgICBhY3RpdmUgPSBhY3RpdmUuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG4gIHJldHVybiBhY3RpdmU7XG59O1xuXG4vKipcbiAqIFRyYXAga2V5Ym9hcmQgZm9jdXMgaW5zaWRlIGBjb250YWluZXJSZWZgIHdoaWxlIGBlbmFibGVkYCBpcyB0cnVlLlxuICpcbiAqIE9uIGVuYWJsZTogbW92ZXMgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSB0aGUgY29udGFpbmVyLlxuICogSWYgdGhlIGNvbnRhaW5lciBpcyBlbXB0eSAoZS5nLiBsYXp5LWxvYWRlZCBjb250ZW50KSwgd2FpdHMgZm9yIERPTSBtdXRhdGlvbnNcbiAqIGFuZCBmb2N1c2VzIHRoZSBmaXJzdCBmb2N1c2FibGUgYXMgc29vbiBhcyBpdCBhcHBlYXJzLlxuICpcbiAqIFdoaWxlIGVuYWJsZWQ6IFRhYiBhbmQgU2hpZnQrVGFiIHdyYXAgYXJvdW5kIHNvIGZvY3VzIHN0YXlzIGluc2lkZS5cbiAqXG4gKiBPbiBkaXNhYmxlOiByZXN0b3JlcyBmb2N1cyB0byB0aGUgcHJldmlvdXNseSBmb2N1c2VkIGVsZW1lbnQgaWYgaXQgaXMgc3RpbGxcbiAqIHByZXNlbnQgaW4gdGhlIGRvY3VtZW50LlxuICovXG5leHBvcnQgY29uc3QgdXNlRm9jdXNUcmFwID0gKGNvbnRhaW5lclJlZjogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD4sIGVuYWJsZWQ6IGJvb2xlYW4pID0+IHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgIGlmICghY29udGFpbmVyKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBtYXkgbGl2ZSBpbnNpZGUgYSBTaGFkb3cgRE9NICh0aGUgaW5qZWN0aW9uIGJ1bmRsZSBob3N0c1xuICAgIC8vIHRoZSBjaGF0IHRoYXQgd2F5KS4gVXNlIHRoZSBjb250YWluZXIncyByb290IHNvIGNvbnRhaW5tZW50IGNoZWNrcyBhbmRcbiAgICAvLyBhY3RpdmUtZWxlbWVudCBsb29rdXBzIHdvcmsgYm90aCBpbiB0aGUgbGlnaHQgRE9NIGFuZCBpbnNpZGUgc2hhZG93IHJvb3RzLlxuICAgIGNvbnN0IHJvb3QgPSBjb250YWluZXIuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3Q7XG4gICAgY29uc3QgcHJldmlvdXNseUZvY3VzZWQgPSBnZXREZWVwQWN0aXZlRWxlbWVudCgpO1xuXG4gICAgY29uc3QgZ2V0QWN0aXZlRWxlbWVudCA9ICgpOiBIVE1MRWxlbWVudCB8IG51bGwgPT4gcm9vdC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIGNvbnN0IGZvY3VzRmlyc3QgPSAoKTogYm9vbGVhbiA9PiB7XG4gICAgICBjb25zdCBmb2N1c2FibGVzID0gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoY29udGFpbmVyKTtcbiAgICAgIGNvbnN0IGZpcnN0ID0gZm9jdXNhYmxlc1swXTtcbiAgICAgIGlmIChmaXJzdCkge1xuICAgICAgICBmaXJzdC5mb2N1cygpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgbGV0IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKCFmb2N1c0ZpcnN0KCkpIHtcbiAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBpZiAoZm9jdXNGaXJzdCgpKSB7XG4gICAgICAgICAgb2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBvYnNlcnZlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXIsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGUua2V5ICE9PSAnVGFiJykgcmV0dXJuO1xuXG4gICAgICBjb25zdCBmb2N1c2FibGVzID0gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoY29udGFpbmVyKTtcbiAgICAgIGlmIChmb2N1c2FibGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyc3QgPSBmb2N1c2FibGVzWzBdO1xuICAgICAgY29uc3QgbGFzdCA9IGZvY3VzYWJsZXNbZm9jdXNhYmxlcy5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IGFjdGl2ZSA9IGdldEFjdGl2ZUVsZW1lbnQoKTtcbiAgICAgIGNvbnN0IGlzSW5zaWRlQ29udGFpbmVyID0gYWN0aXZlID8gY29udGFpbmVyLmNvbnRhaW5zKGFjdGl2ZSkgOiBmYWxzZTtcblxuICAgICAgaWYgKGUuc2hpZnRLZXkpIHtcbiAgICAgICAgaWYgKGFjdGl2ZSA9PT0gZmlyc3QgfHwgIWlzSW5zaWRlQ29udGFpbmVyKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGxhc3QuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChhY3RpdmUgPT09IGxhc3QgfHwgIWlzSW5zaWRlQ29udGFpbmVyKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZmlyc3QuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBvYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTtcblxuICAgICAgaWYgKFxuICAgICAgICBwcmV2aW91c2x5Rm9jdXNlZCAmJlxuICAgICAgICB0eXBlb2YgcHJldmlvdXNseUZvY3VzZWQuZm9jdXMgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgcHJldmlvdXNseUZvY3VzZWQuaXNDb25uZWN0ZWRcbiAgICAgICkge1xuICAgICAgICBwcmV2aW91c2x5Rm9jdXNlZC5mb2N1cygpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtlbmFibGVkLCBjb250YWluZXJSZWZdKTtcbn07XG4iXSwibWFwcGluZ3Mi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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react1 from "react";
|
|
2
2
|
|
|
3
3
|
//#region src/hooks/GrabAndScroll/useGrabAndScroll.d.ts
|
|
4
4
|
declare const useGrabAndScroll: (enabled: boolean, chunkWidth: number, speed?: number, offset?: number) => {
|
|
5
|
-
containerRef:
|
|
5
|
+
containerRef: react1.RefObject<HTMLDivElement | null>;
|
|
6
6
|
leftArrow: boolean;
|
|
7
7
|
rightArrow: boolean;
|
|
8
8
|
animationTrigger: () => void;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { GenerationParams } from "../../application/models/api/generationParams.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react0 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts
|
|
5
5
|
declare const useSystemSettingsContext: () => {
|
|
6
6
|
generationParams?: GenerationParams;
|
|
7
7
|
showDebugBar?: boolean;
|
|
8
8
|
endpointURL?: string;
|
|
9
|
-
setGenerationParams:
|
|
9
|
+
setGenerationParams: react0.Dispatch<react0.SetStateAction<GenerationParams | undefined>>;
|
|
10
10
|
};
|
|
11
11
|
//#endregion
|
|
12
12
|
export { useSystemSettingsContext };
|
package/dist/hooks/utils.d.cts
CHANGED
|
@@ -19,4 +19,4 @@ declare enum SearchResultsState {
|
|
|
19
19
|
declare const getSearchResultsState: (isLoadingSearch: boolean, searchData: SearchResult | null) => SearchResultsState;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { SearchResultsState, createAppLoadedEvent, createVisitUserEvent, getSearchResultsState, isElementPartiallyVisible, isWithinBusinessHours };
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3V0aWxzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvc2VhcmNoJztcbmltcG9ydCB7IFVzZXJFdmVudCwgVmFyaWFudEluZm8gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzRWxlbWVudFBhcnRpYWxseVZpc2libGU6IChlbD86IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4gYm9vbGVhbjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNyZWF0ZUFwcExvYWRlZEV2ZW50OiAoKSA9PiBVc2VyRXZlbnQ7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBjcmVhdGVWaXNpdFVzZXJFdmVudDogKHsgdmFyaWFudEluZm8sIH06IHtcbiAgICB2YXJpYW50SW5mbzogVmFyaWFudEluZm87XG59KSA9PiBVc2VyRXZlbnQgfCB1bmRlZmluZWQ7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc1dpdGhpbkJ1c2luZXNzSG91cnM6IChzdGFydFRpbWU6IHN0cmluZywgZW5kVGltZTogc3RyaW5nLCB0aW1lWm9uZTogc3RyaW5nKSA9PiBib29sZWFuO1xuZXhwb3J0IGRlY2xhcmUgZW51bSBTZWFyY2hSZXN1bHRzU3RhdGUge1xuICAgIExvYWRpbmcgPSAwLFxuICAgIFJlc3VsdHMgPSAxLFxuICAgIE5vUmVzdWx0cyA9IDJcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGdldFNlYXJjaFJlc3VsdHNTdGF0ZTogKGlzTG9hZGluZ1NlYXJjaDogYm9vbGVhbiwgc2VhcmNoRGF0YTogU2VhcmNoUmVzdWx0IHwgbnVsbCkgPT4gU2VhcmNoUmVzdWx0c1N0YXRlO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUVBLElBQVcsNEJBQTRCLENBQUMsVUFBVSxlQUFlO0FBQ2pFLElBQVcsdUJBQXVCLENBQUMsVUFBVSxVQUFVO0FBQ3ZELElBQVcsdUJBQXVCO0NBQUM7T0FBVTtPQUFpQjtPQUFBO0NBQUE7QUFDOUQsSUFBVyx3QkFBaUIsQ0FBQSxHQUFBO0FBQzVCLElBQVcscUJBQWdCLENBQUEsR0FBQTtBQUMzQixJQUFXLHdCQUF3QjtDQUFDO09BQVU7T0FBb0I7Q0FBbUIifQ==
|
package/dist/hooks/utils.d.ts
CHANGED
|
@@ -19,4 +19,4 @@ declare enum SearchResultsState {
|
|
|
19
19
|
declare const getSearchResultsState: (isLoadingSearch: boolean, searchData: SearchResult | null) => SearchResultsState;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { SearchResultsState, createAppLoadedEvent, createVisitUserEvent, getSearchResultsState, isElementPartiallyVisible, isWithinBusinessHours };
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXRpbHMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zZWFyY2gnO1xuaW1wb3J0IHsgVXNlckV2ZW50LCBWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNFbGVtZW50UGFydGlhbGx5VmlzaWJsZTogKGVsPzogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiBib29sZWFuO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgY3JlYXRlQXBwTG9hZGVkRXZlbnQ6ICgpID0+IFVzZXJFdmVudDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNyZWF0ZVZpc2l0VXNlckV2ZW50OiAoeyB2YXJpYW50SW5mbywgfToge1xuICAgIHZhcmlhbnRJbmZvOiBWYXJpYW50SW5mbztcbn0pID0+IFVzZXJFdmVudCB8IHVuZGVmaW5lZDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzV2l0aGluQnVzaW5lc3NIb3VyczogKHN0YXJ0VGltZTogc3RyaW5nLCBlbmRUaW1lOiBzdHJpbmcsIHRpbWVab25lOiBzdHJpbmcpID0+
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXRpbHMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zZWFyY2gnO1xuaW1wb3J0IHsgVXNlckV2ZW50LCBWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNFbGVtZW50UGFydGlhbGx5VmlzaWJsZTogKGVsPzogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiBib29sZWFuO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgY3JlYXRlQXBwTG9hZGVkRXZlbnQ6ICgpID0+IFVzZXJFdmVudDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNyZWF0ZVZpc2l0VXNlckV2ZW50OiAoeyB2YXJpYW50SW5mbywgfToge1xuICAgIHZhcmlhbnRJbmZvOiBWYXJpYW50SW5mbztcbn0pID0+IFVzZXJFdmVudCB8IHVuZGVmaW5lZDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzV2l0aGluQnVzaW5lc3NIb3VyczogKHN0YXJ0VGltZTogc3RyaW5nLCBlbmRUaW1lOiBzdHJpbmcsIHRpbWVab25lOiBzdHJpbmcpID0+IGJvb2xlYW47XG5leHBvcnQgZGVjbGFyZSBlbnVtIFNlYXJjaFJlc3VsdHNTdGF0ZSB7XG4gICAgTG9hZGluZyA9IDAsXG4gICAgUmVzdWx0cyA9IDEsXG4gICAgTm9SZXN1bHRzID0gMlxufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgZ2V0U2VhcmNoUmVzdWx0c1N0YXRlOiAoaXNMb2FkaW5nU2VhcmNoOiBib29sZWFuLCBzZWFyY2hEYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsKSA9PiBTZWFyY2hSZXN1bHRzU3RhdGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsSUFBVyw0QkFBNEIsQ0FBQyxXQUFXLGVBQWU7QUFDbEUsSUFBVyx1QkFBdUIsQ0FBQyxXQUFXLFVBQVU7QUFDeEQsSUFBVyx1QkFBdUI7Q0FBQztPQUFXO09BQWdCO09BQUE7Q0FBQTtBQUM5RCxJQUFXLHdCQUFpQixDQUFBLElBQUE7QUFDNUIsSUFBVyxxQkFBZ0IsQ0FBQSxJQUFBO0FBQzNCLElBQVcsd0JBQXdCO0NBQUM7T0FBVztPQUFvQjtDQUFtQiJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@envive-ai/react-hooks",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.42",
|
|
4
4
|
"description": "React hooks for connecting to Envive AI services.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -306,6 +306,10 @@
|
|
|
306
306
|
"import": "./dist/hooks/ElementObserver/index.js",
|
|
307
307
|
"require": "./dist/hooks/ElementObserver/index.cjs"
|
|
308
308
|
},
|
|
309
|
+
"./hooks/FocusTrap": {
|
|
310
|
+
"import": "./dist/hooks/FocusTrap/index.js",
|
|
311
|
+
"require": "./dist/hooks/FocusTrap/index.cjs"
|
|
312
|
+
},
|
|
309
313
|
"./hooks/GrabAndScroll": {
|
|
310
314
|
"import": "./dist/hooks/GrabAndScroll/index.js",
|
|
311
315
|
"require": "./dist/hooks/GrabAndScroll/index.cjs"
|
|
@@ -71,6 +71,7 @@ export const EnviveCssProvider: React.FC<EnviveCssProviderProps> = ({ children }
|
|
|
71
71
|
--${ColorsNamesVars.AccentSecondary}: ${colorsConfig.accentSecondary};
|
|
72
72
|
|
|
73
73
|
--${ButtonColorsVars.LightButtonBackgroundColor}: ${configV3.uiConfigs?.lookAndFeel?.buttonColors?.lightButtonBackgroundColor};
|
|
74
|
+
${configV3.uiConfigs?.lookAndFeel?.buttonColors?.lightButtonBorderColor ? `--${ButtonColorsVars.LightButtonBorderColor}: ${configV3.uiConfigs.lookAndFeel.buttonColors.lightButtonBorderColor};` : ''}
|
|
74
75
|
--${ButtonColorsVars.LightButtonIconColor}: ${configV3.uiConfigs?.lookAndFeel?.buttonColors?.lightButtonIconColor};
|
|
75
76
|
--${ButtonColorsVars.DarkButtonBackgroundColor}: ${configV3.uiConfigs?.lookAndFeel?.buttonColors?.darkButtonBackgroundColor};
|
|
76
77
|
--${ButtonColorsVars.DarkButtonIconColor}: ${configV3.uiConfigs?.lookAndFeel?.buttonColors?.darkButtonIconColor};
|
package/src/contexts/typesV3.ts
CHANGED
|
@@ -103,6 +103,7 @@ export const enum ColorsNamesVars {
|
|
|
103
103
|
|
|
104
104
|
export const enum ButtonColorsVars {
|
|
105
105
|
LightButtonBackgroundColor = 'envive-colors-button-light-background-color',
|
|
106
|
+
LightButtonBorderColor = 'envive-colors-button-light-border-color',
|
|
106
107
|
LightButtonIconColor = 'envive-colors-button-light-icon-color',
|
|
107
108
|
DarkButtonBackgroundColor = 'envive-colors-button-dark-background-color',
|
|
108
109
|
DarkButtonIconColor = 'envive-colors-button-dark-icon-color',
|
|
@@ -112,6 +113,7 @@ type ImageAspectRatio = '1/1' | '3/4';
|
|
|
112
113
|
|
|
113
114
|
type ButtonColors = {
|
|
114
115
|
lightButtonBackgroundColor: string;
|
|
116
|
+
lightButtonBorderColor?: string;
|
|
115
117
|
lightButtonIconColor: string;
|
|
116
118
|
darkButtonBackgroundColor: string;
|
|
117
119
|
darkButtonIconColor: string;
|