@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.
Files changed (53) hide show
  1. package/dist/atoms/app/index.d.cts +1 -1
  2. package/dist/atoms/app/index.d.ts +6 -6
  3. package/dist/atoms/chat/chatState.d.cts +18 -18
  4. package/dist/atoms/chat/chatState.d.ts +19 -19
  5. package/dist/atoms/chat/form.d.ts +2 -2
  6. package/dist/atoms/chat/index.d.cts +3 -3
  7. package/dist/atoms/chat/index.d.ts +3 -3
  8. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  9. package/dist/atoms/chat/messageQueue.d.ts +6 -6
  10. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  11. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  12. package/dist/atoms/chat/replies.d.cts +3 -3
  13. package/dist/atoms/chat/replies.d.ts +3 -3
  14. package/dist/atoms/chat/suggestions.d.ts +2 -2
  15. package/dist/atoms/envive/enviveConfig.d.cts +12 -12
  16. package/dist/atoms/envive/enviveConfig.d.ts +13 -13
  17. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  18. package/dist/atoms/org/customerService.d.cts +6 -6
  19. package/dist/atoms/org/customerService.d.ts +6 -6
  20. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  21. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  22. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  23. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  24. package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
  25. package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
  26. package/dist/atoms/search/chatSearch.d.cts +17 -17
  27. package/dist/atoms/search/chatSearch.d.ts +17 -17
  28. package/dist/atoms/search/searchAPI.d.cts +13 -13
  29. package/dist/atoms/search/searchAPI.d.ts +13 -13
  30. package/dist/atoms/search/types.d.cts +1 -1
  31. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  32. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  33. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
  34. package/dist/contexts/types.d.cts +1 -1
  35. package/dist/contexts/types.d.ts +1 -1
  36. package/dist/contexts/typesV3.d.cts +1 -1
  37. package/dist/contexts/typesV3.d.ts +1 -1
  38. package/dist/hooks/FocusTrap/index.cjs +3 -0
  39. package/dist/hooks/FocusTrap/index.d.cts +2 -0
  40. package/dist/hooks/FocusTrap/index.d.ts +2 -0
  41. package/dist/hooks/FocusTrap/index.js +3 -0
  42. package/dist/hooks/FocusTrap/useFocusTrap.cjs +105 -0
  43. package/dist/hooks/FocusTrap/useFocusTrap.d.cts +20 -0
  44. package/dist/hooks/FocusTrap/useFocusTrap.d.ts +20 -0
  45. package/dist/hooks/FocusTrap/useFocusTrap.js +104 -0
  46. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  47. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  48. package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
  49. package/dist/hooks/utils.d.ts +1 -1
  50. package/package.json +5 -1
  51. package/src/hooks/FocusTrap/__tests__/useFocusTrap.test.tsx +236 -0
  52. package/src/hooks/FocusTrap/index.ts +1 -0
  53. 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,3 @@
1
+ const require_useFocusTrap = require('./useFocusTrap.cjs');
2
+
3
+ exports.useFocusTrap = require_useFocusTrap.useFocusTrap;
@@ -0,0 +1,2 @@
1
+ import { useFocusTrap } from "./useFocusTrap.cjs";
2
+ export { useFocusTrap };
@@ -0,0 +1,2 @@
1
+ import { useFocusTrap } from "./useFocusTrap.js";
2
+ export { useFocusTrap };
@@ -0,0 +1,3 @@
1
+ import { useFocusTrap } from "./useFocusTrap.js";
2
+
3
+ export { useFocusTrap };
@@ -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 react0 from "react";
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: react0.RefObject<HTMLDivElement | null>;
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 react1 from "react";
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: react1.RefObject<HTMLDivElement | null>;
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 react1 from "react";
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: react1.Dispatch<react1.SetStateAction<GenerationParams | undefined>>;
9
+ setGenerationParams: react0.Dispatch<react0.SetStateAction<GenerationParams | undefined>>;
10
10
  };
11
11
  //#endregion
12
12
  export { useSystemSettingsContext };
@@ -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+IGJvb2xlYW47XG5leHBvcnQgZGVjbGFyZSBlbnVtIFNlYXJjaFJlc3VsdHNTdGF0ZSB7XG4gICAgTG9hZGluZyA9IDAsXG4gICAgUmVzdWx0cyA9IDEsXG4gICAgTm9SZXN1bHRzID0gMlxufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgZ2V0U2VhcmNoUmVzdWx0c1N0YXRlOiAoaXNMb2FkaW5nU2VhcmNoOiBib29sZWFuLCBzZWFyY2hEYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsKSA9PiBTZWFyY2hSZXN1bHRzU3RhdGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsSUFBVyw0QkFBNEIsQ0FBQyxTQUFTLGVBQWU7QUFDaEUsSUFBVyx1QkFBdUIsQ0FBQyxTQUFTLFVBQVU7QUFDdEQsSUFBVyx1QkFBdUI7Q0FBQztPQUFTO09BQWtCO09BQUE7Q0FBQTtBQUM5RCxJQUFXLHdCQUFpQixDQUFBLEVBQUE7QUFDNUIsSUFBVyxxQkFBZ0IsQ0FBQSxFQUFBO0FBQzNCLElBQVcsd0JBQXdCO0NBQUM7T0FBUztPQUFvQjtDQUFtQiJ9
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.40",
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"