@envive-ai/react-hooks 0.3.40 → 0.3.41
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/atoms/app/index.d.cts +1 -1
- package/dist/atoms/app/index.d.ts +6 -6
- package/dist/atoms/chat/chatState.d.cts +18 -18
- package/dist/atoms/chat/chatState.d.ts +19 -19
- 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.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.ts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
- package/dist/atoms/chat/replies.d.cts +3 -3
- package/dist/atoms/chat/replies.d.ts +3 -3
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/envive/enviveConfig.d.cts +12 -12
- package/dist/atoms/envive/enviveConfig.d.ts +13 -13
- 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.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- 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.d.cts +1 -1
- package/dist/contexts/typesV3.d.ts +1 -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/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
- package/dist/hooks/utils.d.ts +1 -1
- package/package.json +5 -1
- 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
|
@@ -337,4 +337,4 @@ interface FullPageSalesAgentWidgetV3Config extends BaseWidgetConfig<WidgetTypeV3
|
|
|
337
337
|
type WidgetConfigV3 = PromptCarouselWidgetV3Config | SocialProofWidgetV3Config | TitledPromptCarouselWidgetV3Config | ChatPreviewComparisonWidgetV3Config | ChatPreviewLoadingWidgetV3Config | TypingAnimationWidgetV3Config | ChatPreviewWidgetV3Config | PromptButtonCarouselWithImageWidgetV3Config | FloatingChatWidgetV3Config | ProductCardWidgetV3Config | FullPageSalesAgentWidgetV3Config;
|
|
338
338
|
//#endregion
|
|
339
339
|
export { AspectRatioCSSVar, AutoPopupConfig, AutoPopupTrigger, AutomaticPopupTrigger, BorderRadiusCSSVar, ButtonColorsVars, type ChatPreviewComparisonWidgetV3Config, type ChatPreviewLoadingWidgetV3Config, type ChatPreviewWidgetV3Config, ColorsNamesVars, ConfigVersionEnum, type CustomerServiceIntegration, type FloatingButtonConfig, type FloatingChatConfig, type FloatingChatWidgetV3Config, FontFamilyCSSVar, FontSizeCSSVar, FontWeightCSSVar, type FullPageSalesAgentWidgetV3Config, LetterSpacingCSSVar, LineHeightCSSVar, type LookAndFeelConfig, type OrgUIConfigV3, PopupTrigger, type ProductCardWidgetV3Config, type PromptButtonCarouselWithImageWidgetV3Config, type PromptCarouselWidgetV3Config, ReferrerPopupTrigger, type SPASettings, type SocialProofWidgetV3Config, ThemeCSSVar, type TitledPromptCarouselWidgetV3Config, type TypingAnimationWidgetV3Config, type WidgetConfigV3, WidgetTypeV3 };
|
|
340
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNWMy5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0cy90eXBlc1YzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBJbWFnZUdhbGxlcnlJbWFnZSwgSW1hZ2VHYWxsZXJ5TGF5b3V0IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0ltYWdlR2FsbGVyeSc7XG5pbXBvcnQgeyBQcm9tcHRCdXR0b25WYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdEJ1dHRvbic7XG5pbXBvcnQgeyBBbmltYXRpb25TcGVlZCwgUHJvbXB0Q2Fyb3VzZWxSb3dzIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdENhcm91c2VsJztcbmltcG9ydCB7IER5bmFtaWNMYXlvdXQsIFdpZGdldEtpbmQgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvU29jaWFsUHJvb2YnO1xuaW1wb3J0IHsgVGhlbWUgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvVG9rZW5zJztcbmltcG9ydCB7IFNwYXJrbGVJY29uQ29sb3IgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvV2VsY29tZU1lc3NhZ2UnO1xuaW1wb3J0IHsgV2lkZ2V0V3JhcHBlclZhcmlhbnQgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvV2lkZ2V0V3JhcHBlcic7XG5pbXBvcnQgeyBDdXN0b21lclNlcnZpY2VUeXBlIH0gZnJvbSAnLi4vdHlwZXMvY3VzdG9tZXJTZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgU2VhcmNoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBlbnVtIExldHRlclNwYWNpbmdDU1NWYXIge1xuICAgIFQxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy10MVwiLFxuICAgIFQyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy10MlwiLFxuICAgIFQzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy10M1wiLFxuICAgIEgxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1oMVwiLFxuICAgIEgyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1oMlwiLFxuICAgIEgzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1oM1wiLFxuICAgIEIxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iMVwiLFxuICAgIEIyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iMlwiLFxuICAgIEIzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iM1wiLFxuICAgIEI0ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iNFwiLFxuICAgIEI1ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iNVwiLFxuICAgIEwxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1sMVwiLFxuICAgIEwyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1sMlwiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIExpbmVIZWlnaHRDU1NWYXIge1xuICAgIFQxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC10MVwiLFxuICAgIFQyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC10MlwiLFxuICAgIFQzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC10M1wiLFxuICAgIEgxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1oMVwiLFxuICAgIEgyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1oMlwiLFxuICAgIEgzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1oM1wiLFxuICAgIEIxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iMVwiLFxuICAgIEIyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iMlwiLFxuICAgIEIzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iM1wiLFxuICAgIEI0ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iNFwiLFxuICAgIEI1ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iNVwiLFxuICAgIEwxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1sMVwiLFxuICAgIEwyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1sMlwiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIEZvbnRXZWlnaHRDU1NWYXIge1xuICAgIFRpdGxlID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXdlaWdodC10aXRsZVwiLFxuICAgIEhlYWRlciA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtaGVhZGVyXCIsXG4gICAgQm9keUVtcGhhc2lzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXdlaWdodC1ib2R5LWVtcGhhc2lzXCIsXG4gICAgQm9keVN0YW5kYXJkID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXdlaWdodC1ib2R5LXN0YW5kYXJkXCJcbn1cbmV4cG9ydCBkZWNsYXJlIGVudW0gRm9udFNpemVDU1NWYXIge1xuICAgIFQxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtdDFcIixcbiAgICBUMiA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLXQyXCIsXG4gICAgVDMgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtc2l6ZS10M1wiLFxuICAgIEgxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtaDFcIixcbiAgICBIMiA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWgyXCIsXG4gICAgSDMgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtc2l6ZS1oM1wiLFxuICAgIEIxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtYjFcIixcbiAgICBCMiA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWIyXCIsXG4gICAgQjMgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtc2l6ZS1iM1wiLFxuICAgIEI0ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtYjRcIixcbiAgICBCNSA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWI1XCIsXG4gICAgTDEgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtc2l6ZS1sMVwiLFxuICAgIEwyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtbDJcIlxufVxuZXhwb3J0IGRlY2xhcmUgZW51bSBGb250RmFtaWx5Q1NTVmFyIHtcbiAgICBUaXRsZSA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1mYW1pbHktdGl0bGVcIixcbiAgICBIZWFkZXIgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LWhlYWRlclwiLFxuICAgIEJvZHkgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LWJvZHlcIlxufVxuZXhwb3J0IGRlY2xhcmUgZW51bSBUaGVtZUNTU1ZhciB7XG4gICAgR2xvYmFsQ3VzdG9tID0gXCJlbnZpdmUtZ2xvYmFsLWN1c3RvbS10aGVtZVwiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIEFzcGVjdFJhdGlvQ1NTVmFyIHtcbiAgICBHbG9iYWxDdXN0b20gPSBcImVudml2ZS1nbG9iYWwtY3VzdG9tLWFzcGVjdC1yYXRpb1wiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIEJvcmRlclJhZGl1c0NTU1ZhciB7XG4gICAgR2xvYmFsQ3VzdG9tID0gXCJlbnZpdmUtZ2xvYmFsLWN1c3RvbS1ib3JkZXItcmFkaXVzXCJcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGVudW0gQ29sb3JzTmFtZXNWYXJzIHtcbiAgICBUZXh0UHJpbWFyeSA9IFwiZW52aXZlLWNvbG9ycy10ZXh0LXByaW1hcnlcIixcbiAgICBUZXh0U2Vjb25kYXJ5ID0gXCJlbnZpdmUtY29sb3JzLXRleHQtc2Vjb25kYXJ5XCIsXG4gICAgVGV4dEFjY2VudCA9IFwiZW52aXZlLWNvbG9ycy10ZXh0LWFjY2VudFwiLFxuICAgIFRleHRMaW5rID0gXCJlbnZpdmUtY29sb3JzLXRleHQtbGlua1wiLFxuICAgIFRleHRMaWdodCA9IFwiZW52aXZlLWNvbG9ycy10ZXh0LWxpZ2h0XCIsXG4gICAgQmFja2dyb3VuZFByaW1hcnkgPSBcImVudml2ZS1jb2xvcnMtYmFja2dyb3VuZC1wcmltYXJ5XCIsXG4gICAgQmFja2dyb3VuZFNlY29uZGFyeSA9IFwiZW52aXZlLWNvbG9ycy1iYWNrZ3JvdW5kLXNlY29uZGFyeVwiLFxuICAgIEJhY2tncm91bmRUZXJ0aWFyeSA9IFwiZW52aXZlLWNvbG9ycy1iYWNrZ3JvdW5kLXRlcnRpYXJ5XCIsXG4gICAgQmFja2dyb3VuZERhcmsgPSBcImVudml2ZS1jb2xvcnMtYmFja2dyb3VuZC1kYXJrXCIsXG4gICAgQmFja2dyb3VuZExpZ2h0ID0gXCJlbnZpdmUtY29sb3JzLWJhY2tncm91bmQtbGlnaHRcIixcbiAgICBCb3JkZXJMaWdodCA9IFwiZW52aXZlLWNvbG9ycy1ib3JkZXItbGlnaHRcIixcbiAgICBCb3JkZXJNZWRpdW0gPSBcImVudml2ZS1jb2xvcnMtYm9yZGVyLW1lZGl1bVwiLFxuICAgIEJvcmRlckRhcmsgPSBcImVudml2ZS1jb2xvcnMtYm9yZGVyLWRhcmtcIixcbiAgICBBY2NlbnRQcmltYXJ5ID0gXCJlbnZpdmUtY29sb3JzLWFjY2VudC1wcmltYXJ5XCIsXG4gICAgQWNjZW50U2Vjb25kYXJ5ID0gXCJlbnZpdmUtY29sb3JzLWFjY2VudC1zZWNvbmRhcnlcIlxufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgZW51bSBCdXR0b25Db2xvcnNWYXJzIHtcbiAgICBMaWdodEJ1dHRvbkJhY2tncm91bmRDb2xvciA9IFwiZW52aXZlLWNvbG9ycy1idXR0b24tbGlnaHQtYmFja2dyb3VuZC1jb2xvclwiLFxuICAgIExpZ2h0QnV0dG9uSWNvbkNvbG9yID0gXCJlbnZpdmUtY29sb3JzLWJ1dHRvbi1saWdodC1pY29uLWNvbG9yXCIsXG4gICAgRGFya0J1dHRvbkJhY2tncm91bmRDb2xvciA9IFwiZW52aXZlLWNvbG9ycy1idXR0b24tZGFyay1iYWNrZ3JvdW5kLWNvbG9yXCIsXG4gICAgRGFya0J1dHRvbkljb25Db2xvciA9IFwiZW52aXZlLWNvbG9ycy1idXR0b24tZGFyay1pY29uLWNvbG9yXCJcbn1cbnR5cGUgSW1hZ2VBc3BlY3RSYXRpbyA9ICcxLzEnIHwgJzMvNCc7XG50eXBlIEJ1dHRvbkNvbG9ycyA9IHtcbiAgICBsaWdodEJ1dHRvbkJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICAgIGxpZ2h0QnV0dG9uSWNvbkNvbG9yOiBzdHJpbmc7XG4gICAgZGFya0J1dHRvbkJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICAgIGRhcmtCdXR0b25JY29uQ29sb3I6IHN0cmluZztcbn07XG50eXBlIFR5cG9ncmFwaHkgPSB7XG4gICAgdGl0bGVGb250RmFtaWx5OiBzdHJpbmc7XG4gICAgaGVhZGVyRm9udEZhbWlseTogc3RyaW5nO1xuICAgIGJvZHlGb250RmFtaWx5OiBzdHJpbmc7XG4gICAgZm9udFNpemU/OiB7XG4gICAgICAgIHQxOiBzdHJpbmc7XG4gICAgICAgIHQyOiBzdHJpbmc7XG4gICAgICAgIHQzOiBzdHJpbmc7XG4gICAgICAgIGgxOiBzdHJpbmc7XG4gICAgICAgIGgyOiBzdHJpbmc7XG4gICAgICAgIGgzOiBzdHJpbmc7XG4gICAgICAgIGIxOiBzdHJpbmc7XG4gICAgICAgIGIyOiBzdHJpbmc7XG4gICAgICAgIGIzOiBzdHJpbmc7XG4gICAgICAgIGI0OiBzdHJpbmc7XG4gICAgICAgIGI1OiBzdHJpbmc7XG4gICAgICAgIGwxOiBzdHJpbmc7XG4gICAgICAgIGwyOiBzdHJpbmc7XG4gICAgfTtcbiAgICBmb250V2VpZ2h0Pzoge1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICBoZWFkZXI6IHN0cmluZztcbiAgICAgICAgYm9keUVtcGhhc2lzOiBzdHJpbmc7XG4gICAgICAgIGJvZHlTdGFuZGFyZDogc3RyaW5nO1xuICAgIH07XG4gICAgbGV0dGVyU3BhY2luZz86IHtcbiAgICAgICAgdDE6IHN0cmluZztcbiAgICAgICAgdDI6IHN0cmluZztcbiAgICAgICAgdDM6IHN0cmluZztcbiAgICAgICAgaDE6IHN0cmluZztcbiAgICAgICAgaDI6IHN0cmluZztcbiAgICAgICAgaDM6IHN0cmluZztcbiAgICAgICAgYjE6IHN0cmluZztcbiAgICAgICAgYjI6IHN0cmluZztcbiAgICAgICAgYjM6IHN0cmluZztcbiAgICAgICAgYjQ6IHN0cmluZztcbiAgICAgICAgYjU6IHN0cmluZztcbiAgICAgICAgbDE6IHN0cmluZztcbiAgICAgICAgbDI6IHN0cmluZztcbiAgICB9O1xuICAgIGxpbmVIZWlnaHQ/OiB7XG4gICAgICAgIHQxOiBudW1iZXI7XG4gICAgICAgIHQyOiBudW1iZXI7XG4gICAgICAgIHQzOiBudW1iZXI7XG4gICAgICAgIGgxOiBudW1iZXI7XG4gICAgICAgIGgyOiBudW1iZXI7XG4gICAgICAgIGgzOiBudW1iZXI7XG4gICAgICAgIGIxOiBudW1iZXI7XG4gICAgICAgIGIyOiBudW1iZXI7XG4gICAgICAgIGIzOiBudW1iZXI7XG4gICAgICAgIGI0OiBudW1iZXI7XG4gICAgICAgIGI1OiBudW1iZXI7XG4gICAgICAgIGwxOiBudW1iZXI7XG4gICAgICAgIGwyOiBudW1iZXI7XG4gICAgfTtcbn07XG50eXBlIExvb2tBbmRGZWVsQ29uZmlnID0ge1xuICAgIHRoZW1lOiBUaGVtZTtcbiAgICBhZ2VudE5hbWU6IHN0cmluZztcbiAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IHN0cmluZztcbiAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBzdHJpbmc7XG4gICAgd2lkZ2V0TG9nb1NyYzogc3RyaW5nO1xuICAgIGhpZGVXaWRnZXRMb2dvOiBib29sZWFuO1xuICAgIHZvaWNlSW5wdXRFbmFibGVkPzogYm9vbGVhbjtcbiAgICBlbGVtZW50UmFkaXVzOiBudW1iZXI7XG4gICAgaW1hZ2VBc3BlY3RSYXRpbzogSW1hZ2VBc3BlY3RSYXRpbztcbiAgICBidXR0b25Db2xvcnM6IEJ1dHRvbkNvbG9ycztcbiAgICB0eXBvZ3JhcGh5OiBUeXBvZ3JhcGh5O1xufTtcbmV4cG9ydCBkZWNsYXJlIGVudW0gQ29uZmlnVmVyc2lvbkVudW0ge1xuICAgIFYzID0gXCJ2M1wiLFxuICAgIERlcHJlY2F0ZWQgPSBcImRlcHJlY2F0ZWRcIlxufVxudHlwZSBDb25maWdWZXJzaW9uID0gQ29uZmlnVmVyc2lvbkVudW0uVjMgfCBDb25maWdWZXJzaW9uRW51bS5EZXByZWNhdGVkIHwgdW5kZWZpbmVkO1xudHlwZSBNb2RlID0gJ2RhcmsnIHwgJ2xpZ2h0JztcbnR5cGUgU2hvd09wdGlvbnMgPSAnYWx3YXlzJyB8ICdwb3N0SW50ZXJhY3Rpb24nIHwgJ25vbmUnO1xudHlwZSBTdHlsZSA9ICdhdHRhY2hlZCcgfCAnZGV0YWNoZWQnO1xudHlwZSBGbG9hdGluZ0J1dHRvbkNvbmZpZyA9IHtcbiAgICBwb3NpdGlvbjogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbjtcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgbW9kZTogTW9kZTtcbiAgICBzaG93T3B0aW9uOiBTaG93T3B0aW9ucztcbiAgICBpY29uU1ZHU3JjPzogc3RyaW5nO1xuICAgIHN0eWxlOiBTdHlsZTtcbn07XG5leHBvcnQgdHlwZSBSZWZlcnJlclBvcHVwVHJpZ2dlciA9IHtcbiAgICB0eXBlOiAncmVmZXJyZXInO1xuICAgIHJlZmVycmVyczogc3RyaW5nW107XG59O1xuZXhwb3J0IHR5cGUgQXV0b21hdGljUG9wdXBUcmlnZ2VyID0ge1xuICAgIHR5cGU6ICdhdXRvbWF0aWMnO1xufTtcbmV4cG9ydCB0eXBlIFBvcHVwVHJpZ2dlciA9IFJlZmVycmVyUG9wdXBUcmlnZ2VyIHwgQXV0b21hdGljUG9wdXBUcmlnZ2VyO1xuZXhwb3J0IHR5cGUgQXV0b1BvcHVwVHJpZ2dlciA9IHtcbiAgICBkZWxheTogbnVtYmVyO1xuICAgIHRyaWdnZXI6IFBvcHVwVHJpZ2dlcjtcbn07XG5leHBvcnQgaW50ZXJmYWNlIEF1dG9Qb3B1cENvbmZpZyB7XG4gICAgdHJpZ2dlcnM6IEF1dG9Qb3B1cFRyaWdnZXJbXTtcbn1cbnR5cGUgRmxvYXRpbmdDaGF0Q29uZmlnID0ge1xuICAgIGhlYWRlckJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICBoZWFkZXJNb2RlOiBNb2RlO1xuICAgIHdlbGNvbWVNZXNzYWdlSWNvbkNvbG9yOiBTcGFya2xlSWNvbkNvbG9yO1xuICAgIHNob3dWZXJpZmllZEJ1eWVyOiBib29sZWFuO1xuICAgIHVzZXJRdWVyeUlucHV0RW5hYmxlZDogYm9vbGVhbjtcbiAgICBzaG93RW52aXZlTG9nbzogYm9vbGVhbjtcbiAgICBpZ25vcmVGaXJzdE1vZGVsUmVzcG9uc2U/OiBib29sZWFuO1xuICAgIG5ldmVyU2hvd1NpbmdsZVByb2R1Y3RDYXJkcz86IGJvb2xlYW47XG4gICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogc3RyaW5nO1xuICAgIHdlbGNvbWVNZXNzYWdlVGV4dDogc3RyaW5nO1xuICAgIGNoYXRGb290ZXJUZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6IHN0cmluZztcbiAgICBhdXRvUG9wdXBDb25maWc/OiBBdXRvUG9wdXBDb25maWc7XG59O1xudHlwZSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9IHtcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICAgIHN1cHByZXNzTWVyY2hhbnRCdXR0b24/OiBib29sZWFuO1xufTtcbnR5cGUgU1BBU2V0dGluZ3MgPSB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICByZWZyZXNoSW50ZXJ2YWw/OiBudW1iZXI7XG59O1xudHlwZSBPcmdVSUNvbmZpZ1YzID0ge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHZlcnNpb246IENvbmZpZ1ZlcnNpb247XG4gICAgc2hvcnROYW1lOiBzdHJpbmc7XG4gICAgbG9va0FuZEZlZWw6IExvb2tBbmRGZWVsQ29uZmlnO1xuICAgIGZsb2F0aW5nQnV0dG9uOiBGbG9hdGluZ0J1dHRvbkNvbmZpZztcbiAgICBmbG9hdGluZ0NoYXQ6IEZsb2F0aW5nQ2hhdENvbmZpZztcbiAgICBtZXJjaGFudE92ZXJyaWRlQ3NzPzogc3RyaW5nO1xuICAgIGN1c3RvbWVyU2VydmljZUludGVncmF0aW9uPzogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb247XG4gICAgc2luZ2xlUGFnZUFwcGxpY2F0aW9uU2V0dGluZ3M/OiBTUEFTZXR0aW5ncztcbiAgICBzZWFyY2hDb25maWc/OiBTZWFyY2hDb25maWc7XG59O1xuZXhwb3J0IGRlY2xhcmUgZW51bSBXaWRnZXRUeXBlVjMge1xuICAgIFByb21wdENhcm91c2VsVjMgPSBcIlByb21wdENhcm91c2VsVjNcIixcbiAgICBUaXRsZWRQcm9tcHRDYXJvdXNlbFYzID0gXCJUaXRsZWRQcm9tcHRDYXJvdXNlbFYzXCIsXG4gICAgU29jaWFsUHJvb2ZWMyA9IFwiU29jaWFsUHJvb2ZWM1wiLFxuICAgIFR5cGluZ0FuaW1hdGlvblYzID0gXCJUeXBpbmdBbmltYXRpb25WM1wiLFxuICAgIENoYXRQcmV2aWV3VjMgPSBcIkNoYXRQcmV2aWV3VjNcIixcbiAgICBDaGF0UHJldmlld0NvbXBhcmlzb25WMyA9IFwiQ2hhdFByZXZpZXdDb21wYXJpc29uVjNcIixcbiAgICBDaGF0UHJldmlld0xvYWRpbmdWMyA9IFwiQ2hhdFByZXZpZXdMb2FkaW5nVjNcIixcbiAgICBJbWFnZVByb21wdENhcmRWMyA9IFwiSW1hZ2VQcm9tcHRDYXJkVjNcIixcbiAgICBQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzID0gXCJQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzXCIsXG4gICAgSW1hZ2VCYW5uZXJWMyA9IFwiSW1hZ2VCYW5uZXJWM1wiLFxuICAgIFNpbmdsZUltYWdlUHJvbXB0VjMgPSBcIlNpbmdsZUltYWdlUHJvbXB0VjNcIixcbiAgICBGbG9hdGluZ0NoYXRWMyA9IFwiRmxvYXRpbmdDaGF0VjNcIixcbiAgICBGbG9hdGluZ0J1dHRvblYzID0gXCJGbG9hdGluZ0J1dHRvblYzXCIsXG4gICAgUHJvZHVjdENhcmRWMyA9IFwiUHJvZHVjdENhcmRWM1wiLFxuICAgIEZ1bGxQYWdlU2FsZXNBZ2VudFYzID0gXCJGdWxsUGFnZVNhbGVzQWdlbnRWM1wiXG59XG5pbnRlcmZhY2UgQmFzZVdpZGdldENvbmZpZzxUIGV4dGVuZHMgV2lkZ2V0VHlwZVYzPiB7XG4gICAgd2lkZ2V0Q29uZmlnSWQ6IHN0cmluZztcbiAgICB0eXBlOiBUO1xuICAgIGNvbnRlbnRJZD86IHN0cmluZztcbn1cbmludGVyZmFjZSBQcm9tcHRDYXJvdXNlbFdpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWMz4ge1xuICAgIHByb21wdEJ1dHRvblR5cGU/OiBQcm9tcHRCdXR0b25WYXJpYW50O1xuICAgIGJvbGRGaXJzdEJ1dHRvbj86IGJvb2xlYW47XG4gICAgcHJvbXB0Q2Fyb3VzZWxSb3dzPzogUHJvbXB0Q2Fyb3VzZWxSb3dzO1xuICAgIGFuaW1hdGlvblNwZWVkPzogQW5pbWF0aW9uU3BlZWQ7XG59XG5pbnRlcmZhY2UgVGl0bGVkUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjM+IHtcbiAgICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgICBib2xkRmlyc3RCdXR0b24/OiBib29sZWFuO1xuICAgIHByb21wdENhcm91c2VsUm93cz86IFByb21wdENhcm91c2VsUm93cztcbiAgICBhbmltYXRpb25TcGVlZD86IEFuaW1hdGlvblNwZWVkO1xufVxuaW50ZXJmYWNlIFNvY2lhbFByb29mV2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzPiB7XG4gICAga2luZDogV2lkZ2V0S2luZDtcbiAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgICBoZXhDYXJkQ29sb3I/OiBzdHJpbmc7XG4gICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3M7XG4gICAgaGlkZUltYWdlPzogYm9vbGVhbjtcbiAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEV4Y2x1ZGU8SW1hZ2VHYWxsZXJ5TGF5b3V0LCAnVFdPX1NJREUnPjtcbiAgICBoaWRlVGV4dEZpZWxkPzogYm9vbGVhbjtcbiAgICBwcmltYXJ5QnV0dG9uVmFyaWFudDogRXhjbHVkZTxQcm9tcHRCdXR0b25WYXJpYW50LCAnc3VnZ2VzdGVkUmVzcG9uc2UnIHwgJ2dob3N0Jz47XG4gICAgc2Vjb25kYXJ5QnV0dG9uVmFyaWFudDogRXhjbHVkZTxQcm9tcHRCdXR0b25WYXJpYW50LCAnc3VnZ2VzdGVkUmVzcG9uc2UnIHwgJ2dob3N0Jz47XG4gICAgZHluYW1pY0xheW91dD86IER5bmFtaWNMYXlvdXQ7XG4gICAgaW1hZ2VzPzogSW1hZ2VHYWxsZXJ5SW1hZ2VbXTtcbn1cbmludGVyZmFjZSBUeXBpbmdBbmltYXRpb25XaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzPiB7XG4gICAgd2lkZ2V0VmFyaWFudD86IFdpZGdldFdyYXBwZXJWYXJpYW50O1xuICAgIGNhcmRDb2xvcj86IHN0cmluZztcbiAgICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgICBwcm9tcHRDYXJvdXNlbFJvd3M/OiBQcm9tcHRDYXJvdXNlbFJvd3M7XG4gICAgc2hvd1RleHRGaWVsZD86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdDb21wYXJpc29uV2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5DaGF0UHJldmlld0NvbXBhcmlzb25WMz4ge1xuICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50O1xuICAgIGhleENhcmRDb2xvcj86IHN0cmluZztcbiAgICBoaWRlSW1hZ2U/OiBib29sZWFuO1xuICAgIGhpZGVUZXh0RmllbGQ/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIENoYXRQcmV2aWV3TG9hZGluZ1dpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdMb2FkaW5nVjM+IHtcbiAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgICBoZXhDYXJkQ29sb3I/OiBzdHJpbmc7XG4gICAgaGlkZVRleHRGaWVsZD86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3VjM+IHtcbiAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgICBoZXhDYXJkQ29sb3I/OiBzdHJpbmc7XG4gICAgaGlkZVRleHRGaWVsZD86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgUHJvbXB0QnV0dG9uQ2Fyb3VzZWxXaXRoSW1hZ2VXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjM+IHtcbiAgICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgICBpbWFnZT86IEltYWdlR2FsbGVyeUltYWdlO1xuICAgIGhpZGVUZXh0RmllbGQ/OiBib29sZWFuO1xuICAgIGlzRHluYW1pYz86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgRmxvYXRpbmdDaGF0V2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5GbG9hdGluZ0NoYXRWMz4ge1xufVxuaW50ZXJmYWNlIFByb2R1Y3RDYXJkV2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5Qcm9kdWN0Q2FyZFYzPiB7XG4gICAgcHJvbXB0QnV0dG9uVHlwZT86IFByb21wdEJ1dHRvblZhcmlhbnQ7XG4gICAgaXRhbGljaXplSGVhZGxpbmU/OiBib29sZWFuO1xuICAgIGZhbGxiYWNrQ29sb3I/OiBzdHJpbmc7XG4gICAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gICAgbW9kZT86IE1vZGU7XG59XG5pbnRlcmZhY2UgRnVsbFBhZ2VTYWxlc0FnZW50V2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5GdWxsUGFnZVNhbGVzQWdlbnRWMz4ge1xuICAgIGhlYWRlckNvbnRhaW5lcj86IHN0cmluZztcbiAgICBhdXRvSGVpZ2h0PzogYm9vbGVhbjtcbiAgICBzcGFya2xlQ29sb3I/OiBzdHJpbmc7XG4gICAgdXNlQmFja2dyb3VuZEltYWdlPzogYm9vbGVhbjtcbiAgICBtb2JpbGVCYWNrZ3JvdW5kSW1hZ2U/OiBzdHJpbmc7XG4gICAgZGVza3RvcEJhY2tncm91bmRJbWFnZT86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgc3VnZ2VzdGlvbkJ1dHRvblR5cGU/OiBQcm9tcHRCdXR0b25WYXJpYW50O1xufVxudHlwZSBXaWRnZXRDb25maWdWMyA9IFByb21wdENhcm91c2VsV2lkZ2V0VjNDb25maWcgfCBTb2NpYWxQcm9vZldpZGdldFYzQ29uZmlnIHwgVGl0bGVkUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZyB8IENoYXRQcmV2aWV3Q29tcGFyaXNvbldpZGdldFYzQ29uZmlnIHwgQ2hhdFByZXZpZXdMb2FkaW5nV2lkZ2V0VjNDb25maWcgfCBUeXBpbmdBbmltYXRpb25XaWRnZXRWM0NvbmZpZyB8IENoYXRQcmV2aWV3V2lkZ2V0VjNDb25maWcgfCBQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVdpZGdldFYzQ29uZmlnIHwgRmxvYXRpbmdDaGF0V2lkZ2V0VjNDb25maWcgfCBQcm9kdWN0Q2FyZFdpZGdldFYzQ29uZmlnIHwgRnVsbFBhZ2VTYWxlc0FnZW50V2lkZ2V0VjNDb25maWc7XG5leHBvcnQgdHlwZSB7IENoYXRQcmV2aWV3Q29tcGFyaXNvbldpZGdldFYzQ29uZmlnLCBDaGF0UHJldmlld0xvYWRpbmdXaWRnZXRWM0NvbmZpZywgQ2hhdFByZXZpZXdXaWRnZXRWM0NvbmZpZywgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24sIEZsb2F0aW5nQnV0dG9uQ29uZmlnLCBGbG9hdGluZ0NoYXRDb25maWcsIEZsb2F0aW5nQ2hhdFdpZGdldFYzQ29uZmlnLCBGdWxsUGFnZVNhbGVzQWdlbnRXaWRnZXRWM0NvbmZpZywgTG9va0FuZEZlZWxDb25maWcsIE9yZ1VJQ29uZmlnVjMsIFByb2R1Y3RDYXJkV2lkZ2V0VjNDb25maWcsIFByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlV2lkZ2V0VjNDb25maWcsIFByb21wdENhcm91c2VsV2lkZ2V0VjNDb25maWcsIFNvY2lhbFByb29mV2lkZ2V0VjNDb25maWcsIFNQQVNldHRpbmdzLCBUaXRsZWRQcm9tcHRDYXJvdXNlbFdpZGdldFYzQ29uZmlnLCBUeXBpbmdBbmltYXRpb25XaWRnZXRWM0NvbmZpZywgV2lkZ2V0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
|
|
340
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNWMy5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0cy90eXBlc1YzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBJbWFnZUdhbGxlcnlJbWFnZSwgSW1hZ2VHYWxsZXJ5TGF5b3V0IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0ltYWdlR2FsbGVyeSc7XG5pbXBvcnQgeyBQcm9tcHRCdXR0b25WYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdEJ1dHRvbic7XG5pbXBvcnQgeyBBbmltYXRpb25TcGVlZCwgUHJvbXB0Q2Fyb3VzZWxSb3dzIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdENhcm91c2VsJztcbmltcG9ydCB7IER5bmFtaWNMYXlvdXQsIFdpZGdldEtpbmQgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvU29jaWFsUHJvb2YnO1xuaW1wb3J0IHsgVGhlbWUgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvVG9rZW5zJztcbmltcG9ydCB7IFNwYXJrbGVJY29uQ29sb3IgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvV2VsY29tZU1lc3NhZ2UnO1xuaW1wb3J0IHsgV2lkZ2V0V3JhcHBlclZhcmlhbnQgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvV2lkZ2V0V3JhcHBlcic7XG5pbXBvcnQgeyBDdXN0b21lclNlcnZpY2VUeXBlIH0gZnJvbSAnLi4vdHlwZXMvY3VzdG9tZXJTZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgU2VhcmNoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBlbnVtIExldHRlclNwYWNpbmdDU1NWYXIge1xuICAgIFQxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy10MVwiLFxuICAgIFQyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy10MlwiLFxuICAgIFQzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy10M1wiLFxuICAgIEgxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1oMVwiLFxuICAgIEgyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1oMlwiLFxuICAgIEgzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1oM1wiLFxuICAgIEIxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iMVwiLFxuICAgIEIyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iMlwiLFxuICAgIEIzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iM1wiLFxuICAgIEI0ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iNFwiLFxuICAgIEI1ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1iNVwiLFxuICAgIEwxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1sMVwiLFxuICAgIEwyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy1sMlwiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIExpbmVIZWlnaHRDU1NWYXIge1xuICAgIFQxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC10MVwiLFxuICAgIFQyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC10MlwiLFxuICAgIFQzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC10M1wiLFxuICAgIEgxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1oMVwiLFxuICAgIEgyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1oMlwiLFxuICAgIEgzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1oM1wiLFxuICAgIEIxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iMVwiLFxuICAgIEIyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iMlwiLFxuICAgIEIzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iM1wiLFxuICAgIEI0ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iNFwiLFxuICAgIEI1ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1iNVwiLFxuICAgIEwxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1sMVwiLFxuICAgIEwyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1saW5lLWhlaWdodC1sMlwiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIEZvbnRXZWlnaHRDU1NWYXIge1xuICAgIFRpdGxlID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXdlaWdodC10aXRsZVwiLFxuICAgIEhlYWRlciA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtaGVhZGVyXCIsXG4gICAgQm9keUVtcGhhc2lzID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXdlaWdodC1ib2R5LWVtcGhhc2lzXCIsXG4gICAgQm9keVN0YW5kYXJkID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXdlaWdodC1ib2R5LXN0YW5kYXJkXCJcbn1cbmV4cG9ydCBkZWNsYXJlIGVudW0gRm9udFNpemVDU1NWYXIge1xuICAgIFQxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtdDFcIixcbiAgICBUMiA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLXQyXCIsXG4gICAgVDMgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtc2l6ZS10M1wiLFxuICAgIEgxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtaDFcIixcbiAgICBIMiA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWgyXCIsXG4gICAgSDMgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtc2l6ZS1oM1wiLFxuICAgIEIxID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtYjFcIixcbiAgICBCMiA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWIyXCIsXG4gICAgQjMgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtc2l6ZS1iM1wiLFxuICAgIEI0ID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtYjRcIixcbiAgICBCNSA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1zaXplLWI1XCIsXG4gICAgTDEgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtc2l6ZS1sMVwiLFxuICAgIEwyID0gXCJlbnZpdmUtdHlwb2dyYXBoeS1mb250LXNpemUtbDJcIlxufVxuZXhwb3J0IGRlY2xhcmUgZW51bSBGb250RmFtaWx5Q1NTVmFyIHtcbiAgICBUaXRsZSA9IFwiZW52aXZlLXR5cG9ncmFwaHktZm9udC1mYW1pbHktdGl0bGVcIixcbiAgICBIZWFkZXIgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LWhlYWRlclwiLFxuICAgIEJvZHkgPSBcImVudml2ZS10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LWJvZHlcIlxufVxuZXhwb3J0IGRlY2xhcmUgZW51bSBUaGVtZUNTU1ZhciB7XG4gICAgR2xvYmFsQ3VzdG9tID0gXCJlbnZpdmUtZ2xvYmFsLWN1c3RvbS10aGVtZVwiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIEFzcGVjdFJhdGlvQ1NTVmFyIHtcbiAgICBHbG9iYWxDdXN0b20gPSBcImVudml2ZS1nbG9iYWwtY3VzdG9tLWFzcGVjdC1yYXRpb1wiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIEJvcmRlclJhZGl1c0NTU1ZhciB7XG4gICAgR2xvYmFsQ3VzdG9tID0gXCJlbnZpdmUtZ2xvYmFsLWN1c3RvbS1ib3JkZXItcmFkaXVzXCJcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGVudW0gQ29sb3JzTmFtZXNWYXJzIHtcbiAgICBUZXh0UHJpbWFyeSA9IFwiZW52aXZlLWNvbG9ycy10ZXh0LXByaW1hcnlcIixcbiAgICBUZXh0U2Vjb25kYXJ5ID0gXCJlbnZpdmUtY29sb3JzLXRleHQtc2Vjb25kYXJ5XCIsXG4gICAgVGV4dEFjY2VudCA9IFwiZW52aXZlLWNvbG9ycy10ZXh0LWFjY2VudFwiLFxuICAgIFRleHRMaW5rID0gXCJlbnZpdmUtY29sb3JzLXRleHQtbGlua1wiLFxuICAgIFRleHRMaWdodCA9IFwiZW52aXZlLWNvbG9ycy10ZXh0LWxpZ2h0XCIsXG4gICAgQmFja2dyb3VuZFByaW1hcnkgPSBcImVudml2ZS1jb2xvcnMtYmFja2dyb3VuZC1wcmltYXJ5XCIsXG4gICAgQmFja2dyb3VuZFNlY29uZGFyeSA9IFwiZW52aXZlLWNvbG9ycy1iYWNrZ3JvdW5kLXNlY29uZGFyeVwiLFxuICAgIEJhY2tncm91bmRUZXJ0aWFyeSA9IFwiZW52aXZlLWNvbG9ycy1iYWNrZ3JvdW5kLXRlcnRpYXJ5XCIsXG4gICAgQmFja2dyb3VuZERhcmsgPSBcImVudml2ZS1jb2xvcnMtYmFja2dyb3VuZC1kYXJrXCIsXG4gICAgQmFja2dyb3VuZExpZ2h0ID0gXCJlbnZpdmUtY29sb3JzLWJhY2tncm91bmQtbGlnaHRcIixcbiAgICBCb3JkZXJMaWdodCA9IFwiZW52aXZlLWNvbG9ycy1ib3JkZXItbGlnaHRcIixcbiAgICBCb3JkZXJNZWRpdW0gPSBcImVudml2ZS1jb2xvcnMtYm9yZGVyLW1lZGl1bVwiLFxuICAgIEJvcmRlckRhcmsgPSBcImVudml2ZS1jb2xvcnMtYm9yZGVyLWRhcmtcIixcbiAgICBBY2NlbnRQcmltYXJ5ID0gXCJlbnZpdmUtY29sb3JzLWFjY2VudC1wcmltYXJ5XCIsXG4gICAgQWNjZW50U2Vjb25kYXJ5ID0gXCJlbnZpdmUtY29sb3JzLWFjY2VudC1zZWNvbmRhcnlcIlxufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgZW51bSBCdXR0b25Db2xvcnNWYXJzIHtcbiAgICBMaWdodEJ1dHRvbkJhY2tncm91bmRDb2xvciA9IFwiZW52aXZlLWNvbG9ycy1idXR0b24tbGlnaHQtYmFja2dyb3VuZC1jb2xvclwiLFxuICAgIExpZ2h0QnV0dG9uSWNvbkNvbG9yID0gXCJlbnZpdmUtY29sb3JzLWJ1dHRvbi1saWdodC1pY29uLWNvbG9yXCIsXG4gICAgRGFya0J1dHRvbkJhY2tncm91bmRDb2xvciA9IFwiZW52aXZlLWNvbG9ycy1idXR0b24tZGFyay1iYWNrZ3JvdW5kLWNvbG9yXCIsXG4gICAgRGFya0J1dHRvbkljb25Db2xvciA9IFwiZW52aXZlLWNvbG9ycy1idXR0b24tZGFyay1pY29uLWNvbG9yXCJcbn1cbnR5cGUgSW1hZ2VBc3BlY3RSYXRpbyA9ICcxLzEnIHwgJzMvNCc7XG50eXBlIEJ1dHRvbkNvbG9ycyA9IHtcbiAgICBsaWdodEJ1dHRvbkJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICAgIGxpZ2h0QnV0dG9uSWNvbkNvbG9yOiBzdHJpbmc7XG4gICAgZGFya0J1dHRvbkJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICAgIGRhcmtCdXR0b25JY29uQ29sb3I6IHN0cmluZztcbn07XG50eXBlIFR5cG9ncmFwaHkgPSB7XG4gICAgdGl0bGVGb250RmFtaWx5OiBzdHJpbmc7XG4gICAgaGVhZGVyRm9udEZhbWlseTogc3RyaW5nO1xuICAgIGJvZHlGb250RmFtaWx5OiBzdHJpbmc7XG4gICAgZm9udFNpemU/OiB7XG4gICAgICAgIHQxOiBzdHJpbmc7XG4gICAgICAgIHQyOiBzdHJpbmc7XG4gICAgICAgIHQzOiBzdHJpbmc7XG4gICAgICAgIGgxOiBzdHJpbmc7XG4gICAgICAgIGgyOiBzdHJpbmc7XG4gICAgICAgIGgzOiBzdHJpbmc7XG4gICAgICAgIGIxOiBzdHJpbmc7XG4gICAgICAgIGIyOiBzdHJpbmc7XG4gICAgICAgIGIzOiBzdHJpbmc7XG4gICAgICAgIGI0OiBzdHJpbmc7XG4gICAgICAgIGI1OiBzdHJpbmc7XG4gICAgICAgIGwxOiBzdHJpbmc7XG4gICAgICAgIGwyOiBzdHJpbmc7XG4gICAgfTtcbiAgICBmb250V2VpZ2h0Pzoge1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICBoZWFkZXI6IHN0cmluZztcbiAgICAgICAgYm9keUVtcGhhc2lzOiBzdHJpbmc7XG4gICAgICAgIGJvZHlTdGFuZGFyZDogc3RyaW5nO1xuICAgIH07XG4gICAgbGV0dGVyU3BhY2luZz86IHtcbiAgICAgICAgdDE6IHN0cmluZztcbiAgICAgICAgdDI6IHN0cmluZztcbiAgICAgICAgdDM6IHN0cmluZztcbiAgICAgICAgaDE6IHN0cmluZztcbiAgICAgICAgaDI6IHN0cmluZztcbiAgICAgICAgaDM6IHN0cmluZztcbiAgICAgICAgYjE6IHN0cmluZztcbiAgICAgICAgYjI6IHN0cmluZztcbiAgICAgICAgYjM6IHN0cmluZztcbiAgICAgICAgYjQ6IHN0cmluZztcbiAgICAgICAgYjU6IHN0cmluZztcbiAgICAgICAgbDE6IHN0cmluZztcbiAgICAgICAgbDI6IHN0cmluZztcbiAgICB9O1xuICAgIGxpbmVIZWlnaHQ/OiB7XG4gICAgICAgIHQxOiBudW1iZXI7XG4gICAgICAgIHQyOiBudW1iZXI7XG4gICAgICAgIHQzOiBudW1iZXI7XG4gICAgICAgIGgxOiBudW1iZXI7XG4gICAgICAgIGgyOiBudW1iZXI7XG4gICAgICAgIGgzOiBudW1iZXI7XG4gICAgICAgIGIxOiBudW1iZXI7XG4gICAgICAgIGIyOiBudW1iZXI7XG4gICAgICAgIGIzOiBudW1iZXI7XG4gICAgICAgIGI0OiBudW1iZXI7XG4gICAgICAgIGI1OiBudW1iZXI7XG4gICAgICAgIGwxOiBudW1iZXI7XG4gICAgICAgIGwyOiBudW1iZXI7XG4gICAgfTtcbn07XG50eXBlIExvb2tBbmRGZWVsQ29uZmlnID0ge1xuICAgIHRoZW1lOiBUaGVtZTtcbiAgICBhZ2VudE5hbWU6IHN0cmluZztcbiAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IHN0cmluZztcbiAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBzdHJpbmc7XG4gICAgd2lkZ2V0TG9nb1NyYzogc3RyaW5nO1xuICAgIGhpZGVXaWRnZXRMb2dvOiBib29sZWFuO1xuICAgIHZvaWNlSW5wdXRFbmFibGVkPzogYm9vbGVhbjtcbiAgICBlbGVtZW50UmFkaXVzOiBudW1iZXI7XG4gICAgaW1hZ2VBc3BlY3RSYXRpbzogSW1hZ2VBc3BlY3RSYXRpbztcbiAgICBidXR0b25Db2xvcnM6IEJ1dHRvbkNvbG9ycztcbiAgICB0eXBvZ3JhcGh5OiBUeXBvZ3JhcGh5O1xufTtcbmV4cG9ydCBkZWNsYXJlIGVudW0gQ29uZmlnVmVyc2lvbkVudW0ge1xuICAgIFYzID0gXCJ2M1wiLFxuICAgIERlcHJlY2F0ZWQgPSBcImRlcHJlY2F0ZWRcIlxufVxudHlwZSBDb25maWdWZXJzaW9uID0gQ29uZmlnVmVyc2lvbkVudW0uVjMgfCBDb25maWdWZXJzaW9uRW51bS5EZXByZWNhdGVkIHwgdW5kZWZpbmVkO1xudHlwZSBNb2RlID0gJ2RhcmsnIHwgJ2xpZ2h0JztcbnR5cGUgU2hvd09wdGlvbnMgPSAnYWx3YXlzJyB8ICdwb3N0SW50ZXJhY3Rpb24nIHwgJ25vbmUnO1xudHlwZSBTdHlsZSA9ICdhdHRhY2hlZCcgfCAnZGV0YWNoZWQnO1xudHlwZSBGbG9hdGluZ0J1dHRvbkNvbmZpZyA9IHtcbiAgICBwb3NpdGlvbjogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbjtcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgbW9kZTogTW9kZTtcbiAgICBzaG93T3B0aW9uOiBTaG93T3B0aW9ucztcbiAgICBpY29uU1ZHU3JjPzogc3RyaW5nO1xuICAgIHN0eWxlOiBTdHlsZTtcbn07XG5leHBvcnQgdHlwZSBSZWZlcnJlclBvcHVwVHJpZ2dlciA9IHtcbiAgICB0eXBlOiAncmVmZXJyZXInO1xuICAgIHJlZmVycmVyczogc3RyaW5nW107XG59O1xuZXhwb3J0IHR5cGUgQXV0b21hdGljUG9wdXBUcmlnZ2VyID0ge1xuICAgIHR5cGU6ICdhdXRvbWF0aWMnO1xufTtcbmV4cG9ydCB0eXBlIFBvcHVwVHJpZ2dlciA9IFJlZmVycmVyUG9wdXBUcmlnZ2VyIHwgQXV0b21hdGljUG9wdXBUcmlnZ2VyO1xuZXhwb3J0IHR5cGUgQXV0b1BvcHVwVHJpZ2dlciA9IHtcbiAgICBkZWxheTogbnVtYmVyO1xuICAgIHRyaWdnZXI6IFBvcHVwVHJpZ2dlcjtcbn07XG5leHBvcnQgaW50ZXJmYWNlIEF1dG9Qb3B1cENvbmZpZyB7XG4gICAgdHJpZ2dlcnM6IEF1dG9Qb3B1cFRyaWdnZXJbXTtcbn1cbnR5cGUgRmxvYXRpbmdDaGF0Q29uZmlnID0ge1xuICAgIGhlYWRlckJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICBoZWFkZXJNb2RlOiBNb2RlO1xuICAgIHdlbGNvbWVNZXNzYWdlSWNvbkNvbG9yOiBTcGFya2xlSWNvbkNvbG9yO1xuICAgIHNob3dWZXJpZmllZEJ1eWVyOiBib29sZWFuO1xuICAgIHVzZXJRdWVyeUlucHV0RW5hYmxlZDogYm9vbGVhbjtcbiAgICBzaG93RW52aXZlTG9nbzogYm9vbGVhbjtcbiAgICBpZ25vcmVGaXJzdE1vZGVsUmVzcG9uc2U/OiBib29sZWFuO1xuICAgIG5ldmVyU2hvd1NpbmdsZVByb2R1Y3RDYXJkcz86IGJvb2xlYW47XG4gICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogc3RyaW5nO1xuICAgIHdlbGNvbWVNZXNzYWdlVGV4dDogc3RyaW5nO1xuICAgIGNoYXRGb290ZXJUZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6IHN0cmluZztcbiAgICBhdXRvUG9wdXBDb25maWc/OiBBdXRvUG9wdXBDb25maWc7XG59O1xudHlwZSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9IHtcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICAgIHN1cHByZXNzTWVyY2hhbnRCdXR0b24/OiBib29sZWFuO1xufTtcbnR5cGUgU1BBU2V0dGluZ3MgPSB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICByZWZyZXNoSW50ZXJ2YWw/OiBudW1iZXI7XG59O1xudHlwZSBPcmdVSUNvbmZpZ1YzID0ge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHZlcnNpb246IENvbmZpZ1ZlcnNpb247XG4gICAgc2hvcnROYW1lOiBzdHJpbmc7XG4gICAgbG9va0FuZEZlZWw6IExvb2tBbmRGZWVsQ29uZmlnO1xuICAgIGZsb2F0aW5nQnV0dG9uOiBGbG9hdGluZ0J1dHRvbkNvbmZpZztcbiAgICBmbG9hdGluZ0NoYXQ6IEZsb2F0aW5nQ2hhdENvbmZpZztcbiAgICBtZXJjaGFudE92ZXJyaWRlQ3NzPzogc3RyaW5nO1xuICAgIGN1c3RvbWVyU2VydmljZUludGVncmF0aW9uPzogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb247XG4gICAgc2luZ2xlUGFnZUFwcGxpY2F0aW9uU2V0dGluZ3M/OiBTUEFTZXR0aW5ncztcbiAgICBzZWFyY2hDb25maWc/OiBTZWFyY2hDb25maWc7XG59O1xuZXhwb3J0IGRlY2xhcmUgZW51bSBXaWRnZXRUeXBlVjMge1xuICAgIFByb21wdENhcm91c2VsVjMgPSBcIlByb21wdENhcm91c2VsVjNcIixcbiAgICBUaXRsZWRQcm9tcHRDYXJvdXNlbFYzID0gXCJUaXRsZWRQcm9tcHRDYXJvdXNlbFYzXCIsXG4gICAgU29jaWFsUHJvb2ZWMyA9IFwiU29jaWFsUHJvb2ZWM1wiLFxuICAgIFR5cGluZ0FuaW1hdGlvblYzID0gXCJUeXBpbmdBbmltYXRpb25WM1wiLFxuICAgIENoYXRQcmV2aWV3VjMgPSBcIkNoYXRQcmV2aWV3VjNcIixcbiAgICBDaGF0UHJldmlld0NvbXBhcmlzb25WMyA9IFwiQ2hhdFByZXZpZXdDb21wYXJpc29uVjNcIixcbiAgICBDaGF0UHJldmlld0xvYWRpbmdWMyA9IFwiQ2hhdFByZXZpZXdMb2FkaW5nVjNcIixcbiAgICBJbWFnZVByb21wdENhcmRWMyA9IFwiSW1hZ2VQcm9tcHRDYXJkVjNcIixcbiAgICBQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzID0gXCJQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzXCIsXG4gICAgSW1hZ2VCYW5uZXJWMyA9IFwiSW1hZ2VCYW5uZXJWM1wiLFxuICAgIFNpbmdsZUltYWdlUHJvbXB0VjMgPSBcIlNpbmdsZUltYWdlUHJvbXB0VjNcIixcbiAgICBGbG9hdGluZ0NoYXRWMyA9IFwiRmxvYXRpbmdDaGF0VjNcIixcbiAgICBGbG9hdGluZ0J1dHRvblYzID0gXCJGbG9hdGluZ0J1dHRvblYzXCIsXG4gICAgUHJvZHVjdENhcmRWMyA9IFwiUHJvZHVjdENhcmRWM1wiLFxuICAgIEZ1bGxQYWdlU2FsZXNBZ2VudFYzID0gXCJGdWxsUGFnZVNhbGVzQWdlbnRWM1wiXG59XG5pbnRlcmZhY2UgQmFzZVdpZGdldENvbmZpZzxUIGV4dGVuZHMgV2lkZ2V0VHlwZVYzPiB7XG4gICAgd2lkZ2V0Q29uZmlnSWQ6IHN0cmluZztcbiAgICB0eXBlOiBUO1xuICAgIGNvbnRlbnRJZD86IHN0cmluZztcbn1cbmludGVyZmFjZSBQcm9tcHRDYXJvdXNlbFdpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWMz4ge1xuICAgIHByb21wdEJ1dHRvblR5cGU/OiBQcm9tcHRCdXR0b25WYXJpYW50O1xuICAgIGJvbGRGaXJzdEJ1dHRvbj86IGJvb2xlYW47XG4gICAgcHJvbXB0Q2Fyb3VzZWxSb3dzPzogUHJvbXB0Q2Fyb3VzZWxSb3dzO1xuICAgIGFuaW1hdGlvblNwZWVkPzogQW5pbWF0aW9uU3BlZWQ7XG59XG5pbnRlcmZhY2UgVGl0bGVkUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjM+IHtcbiAgICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgICBib2xkRmlyc3RCdXR0b24/OiBib29sZWFuO1xuICAgIHByb21wdENhcm91c2VsUm93cz86IFByb21wdENhcm91c2VsUm93cztcbiAgICBhbmltYXRpb25TcGVlZD86IEFuaW1hdGlvblNwZWVkO1xufVxuaW50ZXJmYWNlIFNvY2lhbFByb29mV2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzPiB7XG4gICAga2luZDogV2lkZ2V0S2luZDtcbiAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgICBoZXhDYXJkQ29sb3I/OiBzdHJpbmc7XG4gICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3M7XG4gICAgaGlkZUltYWdlPzogYm9vbGVhbjtcbiAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEV4Y2x1ZGU8SW1hZ2VHYWxsZXJ5TGF5b3V0LCAnVFdPX1NJREUnPjtcbiAgICBoaWRlVGV4dEZpZWxkPzogYm9vbGVhbjtcbiAgICBwcmltYXJ5QnV0dG9uVmFyaWFudDogRXhjbHVkZTxQcm9tcHRCdXR0b25WYXJpYW50LCAnc3VnZ2VzdGVkUmVzcG9uc2UnIHwgJ2dob3N0Jz47XG4gICAgc2Vjb25kYXJ5QnV0dG9uVmFyaWFudDogRXhjbHVkZTxQcm9tcHRCdXR0b25WYXJpYW50LCAnc3VnZ2VzdGVkUmVzcG9uc2UnIHwgJ2dob3N0Jz47XG4gICAgZHluYW1pY0xheW91dD86IER5bmFtaWNMYXlvdXQ7XG4gICAgaW1hZ2VzPzogSW1hZ2VHYWxsZXJ5SW1hZ2VbXTtcbn1cbmludGVyZmFjZSBUeXBpbmdBbmltYXRpb25XaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzPiB7XG4gICAgd2lkZ2V0VmFyaWFudD86IFdpZGdldFdyYXBwZXJWYXJpYW50O1xuICAgIGNhcmRDb2xvcj86IHN0cmluZztcbiAgICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgICBwcm9tcHRDYXJvdXNlbFJvd3M/OiBQcm9tcHRDYXJvdXNlbFJvd3M7XG4gICAgc2hvd1RleHRGaWVsZD86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdDb21wYXJpc29uV2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5DaGF0UHJldmlld0NvbXBhcmlzb25WMz4ge1xuICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50O1xuICAgIGhleENhcmRDb2xvcj86IHN0cmluZztcbiAgICBoaWRlSW1hZ2U/OiBib29sZWFuO1xuICAgIGhpZGVUZXh0RmllbGQ/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIENoYXRQcmV2aWV3TG9hZGluZ1dpZGdldFYzQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdMb2FkaW5nVjM+IHtcbiAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgICBoZXhDYXJkQ29sb3I/OiBzdHJpbmc7XG4gICAgaGlkZVRleHRGaWVsZD86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3VjM+IHtcbiAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudDtcbiAgICBoZXhDYXJkQ29sb3I/OiBzdHJpbmc7XG4gICAgaGlkZVRleHRGaWVsZD86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgUHJvbXB0QnV0dG9uQ2Fyb3VzZWxXaXRoSW1hZ2VXaWRnZXRWM0NvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZVYzLlByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjM+IHtcbiAgICBwcm9tcHRCdXR0b25UeXBlPzogUHJvbXB0QnV0dG9uVmFyaWFudDtcbiAgICBpbWFnZT86IEltYWdlR2FsbGVyeUltYWdlO1xuICAgIGhpZGVUZXh0RmllbGQ/OiBib29sZWFuO1xuICAgIGlzRHluYW1pYz86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgRmxvYXRpbmdDaGF0V2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5GbG9hdGluZ0NoYXRWMz4ge1xufVxuaW50ZXJmYWNlIFByb2R1Y3RDYXJkV2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5Qcm9kdWN0Q2FyZFYzPiB7XG4gICAgcHJvbXB0QnV0dG9uVHlwZT86IFByb21wdEJ1dHRvblZhcmlhbnQ7XG4gICAgaXRhbGljaXplSGVhZGxpbmU/OiBib29sZWFuO1xuICAgIGZhbGxiYWNrQ29sb3I/OiBzdHJpbmc7XG4gICAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gICAgbW9kZT86IE1vZGU7XG59XG5pbnRlcmZhY2UgRnVsbFBhZ2VTYWxlc0FnZW50V2lkZ2V0VjNDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGVWMy5GdWxsUGFnZVNhbGVzQWdlbnRWMz4ge1xuICAgIGhlYWRlckNvbnRhaW5lcj86IHN0cmluZztcbiAgICBhdXRvSGVpZ2h0PzogYm9vbGVhbjtcbiAgICBzcGFya2xlQ29sb3I/OiBzdHJpbmc7XG4gICAgdXNlQmFja2dyb3VuZEltYWdlPzogYm9vbGVhbjtcbiAgICBtb2JpbGVCYWNrZ3JvdW5kSW1hZ2U/OiBzdHJpbmc7XG4gICAgZGVza3RvcEJhY2tncm91bmRJbWFnZT86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgc3VnZ2VzdGlvbkJ1dHRvblR5cGU/OiBQcm9tcHRCdXR0b25WYXJpYW50O1xufVxudHlwZSBXaWRnZXRDb25maWdWMyA9IFByb21wdENhcm91c2VsV2lkZ2V0VjNDb25maWcgfCBTb2NpYWxQcm9vZldpZGdldFYzQ29uZmlnIHwgVGl0bGVkUHJvbXB0Q2Fyb3VzZWxXaWRnZXRWM0NvbmZpZyB8IENoYXRQcmV2aWV3Q29tcGFyaXNvbldpZGdldFYzQ29uZmlnIHwgQ2hhdFByZXZpZXdMb2FkaW5nV2lkZ2V0VjNDb25maWcgfCBUeXBpbmdBbmltYXRpb25XaWRnZXRWM0NvbmZpZyB8IENoYXRQcmV2aWV3V2lkZ2V0VjNDb25maWcgfCBQcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVdpZGdldFYzQ29uZmlnIHwgRmxvYXRpbmdDaGF0V2lkZ2V0VjNDb25maWcgfCBQcm9kdWN0Q2FyZFdpZGdldFYzQ29uZmlnIHwgRnVsbFBhZ2VTYWxlc0FnZW50V2lkZ2V0VjNDb25maWc7XG5leHBvcnQgdHlwZSB7IENoYXRQcmV2aWV3Q29tcGFyaXNvbldpZGdldFYzQ29uZmlnLCBDaGF0UHJldmlld0xvYWRpbmdXaWRnZXRWM0NvbmZpZywgQ2hhdFByZXZpZXdXaWRnZXRWM0NvbmZpZywgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24sIEZsb2F0aW5nQnV0dG9uQ29uZmlnLCBGbG9hdGluZ0NoYXRDb25maWcsIEZsb2F0aW5nQ2hhdFdpZGdldFYzQ29uZmlnLCBGdWxsUGFnZVNhbGVzQWdlbnRXaWRnZXRWM0NvbmZpZywgTG9va0FuZEZlZWxDb25maWcsIE9yZ1VJQ29uZmlnVjMsIFByb2R1Y3RDYXJkV2lkZ2V0VjNDb25maWcsIFByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlV2lkZ2V0VjNDb25maWcsIFByb21wdENhcm91c2VsV2lkZ2V0VjNDb25maWcsIFNvY2lhbFByb29mV2lkZ2V0VjNDb25maWcsIFNQQVNldHRpbmdzLCBUaXRsZWRQcm9tcHRDYXJvdXNlbFdpZGdldFYzQ29uZmlnLCBUeXBpbmdBbmltYXRpb25XaWRnZXRWM0NvbmZpZywgV2lkZ2V0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
|
|
@@ -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/LmRpc2Nvbm5lY3QoKTtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG5cbiAgICAgIGlmIChcbiAgICAgICAgcHJldmlvdXNseUZvY3VzZWQgJiZcbiAgICAgICAgdHlwZW9mIHByZXZpb3VzbHlGb2N1c2VkLmZvY3VzID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHByZXZpb3VzbHlGb2N1c2VkLmlzQ29ubmVjdGVkXG4gICAgICApIHtcbiAgICAgICAgcHJldmlvdXNseUZvY3VzZWQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbZW5hYmxlZCwgY29udGFpbmVyUmVmXSk7XG59O1xuIl0sIm1hcHBpbmdz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
|
|
@@ -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 react2 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: react2.RefObject<HTMLDivElement | null>;
|
|
6
6
|
leftArrow: boolean;
|
|
7
7
|
rightArrow: boolean;
|
|
8
8
|
animationTrigger: () => void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react2 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: react2.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.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+IGJvb2xlYW47XG5leHBvcnQgZGVjbGFyZSBlbnVtIFNlYXJjaFJlc3VsdHNTdGF0ZSB7XG4gICAgTG9hZGluZyA9IDAsXG4gICAgUmVzdWx0cyA9IDEsXG4gICAgTm9SZXN1bHRzID0gMlxufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgZ2V0U2VhcmNoUmVzdWx0c1N0YXRlOiAoaXNMb2FkaW5nU2VhcmNoOiBib29sZWFuLCBzZWFyY2hEYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsKSA9PiBTZWFyY2hSZXN1bHRzU3RhdGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsSUFBVyw0QkFBNEIsQ0FBQyxVQUFVLGVBQWU7QUFDakUsSUFBVyx1QkFBdUIsQ0FBQyxVQUFVLFVBQVU7QUFDdkQsSUFBVyx1QkFBdUI7Q0FBQztPQUFVO09BQWlCO09BQUE7Q0FBQTtBQUM5RCxJQUFXLHdCQUFpQixDQUFBLEdBQUE7QUFDNUIsSUFBVyxxQkFBZ0IsQ0FBQSxHQUFBO0FBQzNCLElBQVcsd0JBQXdCO0NBQUM7T0FBVTtPQUFvQjtDQUFtQiJ9
|
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.41",
|
|
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"
|