@nlabs/gothamui 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/MIGRATION.md +36 -0
- package/README.md +768 -0
- package/docs/assets/gothamui-app-architecture.svg +159 -0
- package/docs/assets/gothamui-logo.png +0 -0
- package/docs/assets/gothamui-logo.svg +42 -0
- package/docs/render-performance.md +34 -0
- package/lib/actions/GothamActions.d.ts +42 -0
- package/lib/actions/GothamActions.js +67 -0
- package/lib/actions/MarkdownActions.d.ts +4 -0
- package/lib/actions/MarkdownActions.js +48 -0
- package/lib/app.d.ts +1 -0
- package/lib/app.js +198 -0
- package/lib/components/Alert/Alert.d.ts +8 -0
- package/lib/components/Alert/Alert.js +24 -0
- package/lib/components/Alert/Alert.stories.js +59 -0
- package/lib/components/AuthRoute/AuthRoute.d.ts +3 -0
- package/lib/components/AuthRoute/AuthRoute.js +21 -0
- package/lib/components/AuthRoute/AuthRoute.stories.js +45 -0
- package/lib/components/AutocompleteField/AutocompleteField.d.ts +24 -0
- package/lib/components/AutocompleteField/AutocompleteField.js +148 -0
- package/lib/components/AutocompleteField/AutocompleteField.stories.js +62 -0
- package/lib/components/Avatar/Avatar.d.ts +29 -0
- package/lib/components/Avatar/Avatar.js +154 -0
- package/lib/components/Avatar/Avatar.stories.js +105 -0
- package/lib/components/Badge/Badge.d.ts +9 -0
- package/lib/components/Badge/Badge.js +22 -0
- package/lib/components/Badge/Badge.stories.js +53 -0
- package/lib/components/Breadcrumbs/Breadcrumbs.d.ts +19 -0
- package/lib/components/Breadcrumbs/Breadcrumbs.js +74 -0
- package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +95 -0
- package/lib/components/Button/Button.d.ts +25 -0
- package/lib/components/Button/Button.js +157 -0
- package/lib/components/Button/Button.stories.js +119 -0
- package/lib/components/Card/Card.d.ts +8 -0
- package/lib/components/Card/Card.js +39 -0
- package/lib/components/Card/Card.stories.js +60 -0
- package/lib/components/CategoryGrid/CategoryGrid.d.ts +15 -0
- package/lib/components/CategoryGrid/CategoryGrid.js +42 -0
- package/lib/components/CategoryGrid/CategoryGrid.stories.js +35 -0
- package/lib/components/Chat/AudioMessage/AudioMessage.css +1 -0
- package/lib/components/Chat/AudioMessage/AudioMessage.d.ts +3 -0
- package/lib/components/Chat/AudioMessage/AudioMessage.js +28 -0
- package/lib/components/Chat/Avatar/Avatar.css +1 -0
- package/lib/components/Chat/Avatar/Avatar.d.ts +3 -0
- package/lib/components/Chat/Avatar/Avatar.js +72 -0
- package/lib/components/Chat/Button/Button.css +1 -0
- package/lib/components/Chat/Button/Button.d.ts +3 -0
- package/lib/components/Chat/Button/Button.js +37 -0
- package/lib/components/Chat/Chat.stories.js +688 -0
- package/lib/components/Chat/ChatItem/ChatItem.css +1 -0
- package/lib/components/Chat/ChatItem/ChatItem.d.ts +3 -0
- package/lib/components/Chat/ChatItem/ChatItem.js +183 -0
- package/lib/components/Chat/ChatList/ChatList.css +1 -0
- package/lib/components/Chat/ChatList/ChatList.d.ts +3 -0
- package/lib/components/Chat/ChatList/ChatList.js +84 -0
- package/lib/components/Chat/Circle/Circle.d.ts +3 -0
- package/lib/components/Chat/Circle/Circle.js +27 -0
- package/lib/components/Chat/Dropdown/Dropdown.css +1 -0
- package/lib/components/Chat/Dropdown/Dropdown.d.ts +3 -0
- package/lib/components/Chat/Dropdown/Dropdown.js +66 -0
- package/lib/components/Chat/FileMessage/FileMessage.css +1 -0
- package/lib/components/Chat/FileMessage/FileMessage.d.ts +3 -0
- package/lib/components/Chat/FileMessage/FileMessage.js +77 -0
- package/lib/components/Chat/Input/Input.css +1 -0
- package/lib/components/Chat/Input/Input.d.ts +3 -0
- package/lib/components/Chat/Input/Input.js +108 -0
- package/lib/components/Chat/LocationMessage/LocationMessage.css +1 -0
- package/lib/components/Chat/LocationMessage/LocationMessage.d.ts +3 -0
- package/lib/components/Chat/LocationMessage/LocationMessage.js +36 -0
- package/lib/components/Chat/MeetingItem/MeetingItem.css +1 -0
- package/lib/components/Chat/MeetingItem/MeetingItem.d.ts +3 -0
- package/lib/components/Chat/MeetingItem/MeetingItem.js +106 -0
- package/lib/components/Chat/MeetingLink/MeetingLink.css +1 -0
- package/lib/components/Chat/MeetingLink/MeetingLink.d.ts +3 -0
- package/lib/components/Chat/MeetingLink/MeetingLink.js +26 -0
- package/lib/components/Chat/MeetingList/MeetingList.css +1 -0
- package/lib/components/Chat/MeetingList/MeetingList.d.ts +3 -0
- package/lib/components/Chat/MeetingList/MeetingList.js +52 -0
- package/lib/components/Chat/MeetingMessage/MeetingMessage.css +1 -0
- package/lib/components/Chat/MeetingMessage/MeetingMessage.d.ts +3 -0
- package/lib/components/Chat/MeetingMessage/MeetingMessage.js +227 -0
- package/lib/components/Chat/MessageBox/MessageBox.css +1 -0
- package/lib/components/Chat/MessageBox/MessageBox.d.ts +3 -0
- package/lib/components/Chat/MessageBox/MessageBox.js +263 -0
- package/lib/components/Chat/MessageList/MessageList.css +1 -0
- package/lib/components/Chat/MessageList/MessageList.d.ts +2 -0
- package/lib/components/Chat/MessageList/MessageList.js +196 -0
- package/lib/components/Chat/Navbar/Navbar.css +1 -0
- package/lib/components/Chat/Navbar/Navbar.d.ts +3 -0
- package/lib/components/Chat/Navbar/Navbar.js +21 -0
- package/lib/components/Chat/PhotoMessage/PhotoMessage.css +1 -0
- package/lib/components/Chat/PhotoMessage/PhotoMessage.d.ts +3 -0
- package/lib/components/Chat/PhotoMessage/PhotoMessage.js +73 -0
- package/lib/components/Chat/Popup/Popup.css +1 -0
- package/lib/components/Chat/Popup/Popup.d.ts +3 -0
- package/lib/components/Chat/Popup/Popup.js +45 -0
- package/lib/components/Chat/README.md +50 -0
- package/lib/components/Chat/ReplyMessage/ReplyMessage.css +1 -0
- package/lib/components/Chat/ReplyMessage/ReplyMessage.d.ts +3 -0
- package/lib/components/Chat/ReplyMessage/ReplyMessage.js +42 -0
- package/lib/components/Chat/SideBar/SideBar.css +1 -0
- package/lib/components/Chat/SideBar/SideBar.d.ts +3 -0
- package/lib/components/Chat/SideBar/SideBar.js +21 -0
- package/lib/components/Chat/SpotifyMessage/SpotifyMessage.css +1 -0
- package/lib/components/Chat/SpotifyMessage/SpotifyMessage.d.ts +3 -0
- package/lib/components/Chat/SpotifyMessage/SpotifyMessage.js +28 -0
- package/lib/components/Chat/SystemMessage/SystemMessage.css +1 -0
- package/lib/components/Chat/SystemMessage/SystemMessage.d.ts +3 -0
- package/lib/components/Chat/SystemMessage/SystemMessage.js +14 -0
- package/lib/components/Chat/VideoMessage/VideoMessage.css +1 -0
- package/lib/components/Chat/VideoMessage/VideoMessage.d.ts +3 -0
- package/lib/components/Chat/VideoMessage/VideoMessage.js +88 -0
- package/lib/components/Chat/assets/img/leftArrow.svg +6 -0
- package/lib/components/Chat/assets/img/rightArrow.svg +6 -0
- package/lib/components/Chat/index.d.ts +25 -0
- package/lib/components/Chat/index.js +27 -0
- package/lib/components/Chat/type.d.js +52 -0
- package/lib/components/Chat/utils/formatRelativeDate.d.ts +4 -0
- package/lib/components/Chat/utils/formatRelativeDate.js +110 -0
- package/lib/components/Checkbox/Checkbox.d.ts +15 -0
- package/lib/components/Checkbox/Checkbox.js +106 -0
- package/lib/components/Checkbox/Checkbox.stories.js +51 -0
- package/lib/components/ComponentUtils/renderWithAsChild.d.ts +9 -0
- package/lib/components/ComponentUtils/renderWithAsChild.js +27 -0
- package/lib/components/Container/Container.d.ts +7 -0
- package/lib/components/Container/Container.js +16 -0
- package/lib/components/Container/Container.stories.js +36 -0
- package/lib/components/DateField/DateField.d.ts +22 -0
- package/lib/components/DateField/DateField.js +145 -0
- package/lib/components/DateField/DateField.stories.js +125 -0
- package/lib/components/DateField/DatePicker.d.ts +9 -0
- package/lib/components/DateField/DatePicker.js +205 -0
- package/lib/components/DateField/DatePicker.stories.js +33 -0
- package/lib/components/DescriptionList/DescriptionList.d.ts +4 -0
- package/lib/components/DescriptionList/DescriptionList.js +19 -0
- package/lib/components/DescriptionList/DescriptionList.stories.js +34 -0
- package/lib/components/Dialog/Dialog.d.ts +25 -0
- package/lib/components/Dialog/Dialog.js +66 -0
- package/lib/components/Dialog/Dialog.stories.js +88 -0
- package/lib/components/DropUpload/DropUpload.d.ts +37 -0
- package/lib/components/DropUpload/DropUpload.js +323 -0
- package/lib/components/DropUpload/DropUpload.stories.js +48 -0
- package/lib/components/Empty/Empty.d.ts +11 -0
- package/lib/components/Empty/Empty.js +39 -0
- package/lib/components/Empty/Empty.stories.js +52 -0
- package/lib/components/EmptyState/EmptyState.d.ts +15 -0
- package/lib/components/EmptyState/EmptyState.js +44 -0
- package/lib/components/EmptyState/EmptyState.stories.js +36 -0
- package/lib/components/ErrorMessage/ErrorMessage.d.ts +7 -0
- package/lib/components/ErrorMessage/ErrorMessage.js +20 -0
- package/lib/components/ErrorMessage/ErrorMessage.stories.js +25 -0
- package/lib/components/FaqSection/FaqSection.d.ts +14 -0
- package/lib/components/FaqSection/FaqSection.js +37 -0
- package/lib/components/FaqSection/FaqSection.stories.js +31 -0
- package/lib/components/Fieldset/Fieldset.d.ts +21 -0
- package/lib/components/Fieldset/Fieldset.js +39 -0
- package/lib/components/Fieldset/Fieldset.stories.js +42 -0
- package/lib/components/Footer/Footer.d.ts +26 -0
- package/lib/components/Footer/Footer.js +119 -0
- package/lib/components/Footer/Footer.stories.js +184 -0
- package/lib/components/Form/Form.d.ts +42 -0
- package/lib/components/Form/Form.js +198 -0
- package/lib/components/Form/Form.stories.js +65 -0
- package/lib/components/Form/FormContext.d.ts +35 -0
- package/lib/components/Form/FormContext.js +71 -0
- package/lib/components/GothamRoute/GothamRoute.d.ts +0 -0
- package/lib/components/GothamRoute/GothamRoute.js +56 -0
- package/lib/components/GothamRouter/GothamRouter.d.ts +0 -0
- package/lib/components/GothamRouter/GothamRouter.js +52 -0
- package/lib/components/Heading/Heading.d.ts +7 -0
- package/lib/components/Heading/Heading.js +20 -0
- package/lib/components/Heading/Heading.stories.js +51 -0
- package/lib/components/IncentiveGrid/IncentiveGrid.d.ts +15 -0
- package/lib/components/IncentiveGrid/IncentiveGrid.js +34 -0
- package/lib/components/IncentiveGrid/IncentiveGrid.stories.js +41 -0
- package/lib/components/InputField/InputField.d.ts +25 -0
- package/lib/components/InputField/InputField.js +68 -0
- package/lib/components/InputField/InputField.stories.js +58 -0
- package/lib/components/Item/Item.d.ts +25 -0
- package/lib/components/Item/Item.js +79 -0
- package/lib/components/Item/Item.stories.js +94 -0
- package/lib/components/Kbd/Kbd.d.ts +2 -0
- package/lib/components/Kbd/Kbd.js +9 -0
- package/lib/components/Kbd/Kbd.stories.js +24 -0
- package/lib/components/Label/Label.d.ts +11 -0
- package/lib/components/Label/Label.js +23 -0
- package/lib/components/Label/Label.stories.js +38 -0
- package/lib/components/Link/Link.d.ts +7 -0
- package/lib/components/Link/Link.js +13 -0
- package/lib/components/Link/Link.stories.js +28 -0
- package/lib/components/ListContainer/ListContainer.d.ts +8 -0
- package/lib/components/ListContainer/ListContainer.js +14 -0
- package/lib/components/ListContainer/ListContainer.stories.js +45 -0
- package/lib/components/Loader/Loader.d.ts +9 -0
- package/lib/components/Loader/Loader.js +36 -0
- package/lib/components/Loader/Loader.stories.js +94 -0
- package/lib/components/LogoCloud/LogoCloud.d.ts +15 -0
- package/lib/components/LogoCloud/LogoCloud.js +43 -0
- package/lib/components/LogoCloud/LogoCloud.stories.js +28 -0
- package/lib/components/Markdown/Markdown.d.ts +8 -0
- package/lib/components/Markdown/Markdown.js +64 -0
- package/lib/components/Markdown/Markdown.stories.js +34 -0
- package/lib/components/MediaLightbox/MediaLightbox.d.ts +22 -0
- package/lib/components/MediaLightbox/MediaLightbox.js +80 -0
- package/lib/components/MediaObject/MediaObject.d.ts +8 -0
- package/lib/components/MediaObject/MediaObject.js +37 -0
- package/lib/components/MediaObject/MediaObject.stories.js +28 -0
- package/lib/components/Navbar/Navbar.d.ts +43 -0
- package/lib/components/Navbar/Navbar.js +213 -0
- package/lib/components/Navbar/Navbar.stories.js +235 -0
- package/lib/components/NotFound/NotFound.d.ts +34 -0
- package/lib/components/NotFound/NotFound.js +351 -0
- package/lib/components/NotFound/NotFound.stories.js +80 -0
- package/lib/components/Notify/Notify.d.ts +18 -0
- package/lib/components/Notify/Notify.js +178 -0
- package/lib/components/Notify/Notify.stories.js +148 -0
- package/lib/components/Notify/NotifyExample.d.ts +1 -0
- package/lib/components/Notify/NotifyExample.js +174 -0
- package/lib/components/Notify/README.md +103 -0
- package/lib/components/Pagination/Pagination.d.ts +18 -0
- package/lib/components/Pagination/Pagination.js +225 -0
- package/lib/components/Pagination/Pagination.stories.js +69 -0
- package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.d.ts +12 -0
- package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.js +88 -0
- package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.stories.js +16 -0
- package/lib/components/PaymentMethodPanel/PaymentMethodPanel.d.ts +18 -0
- package/lib/components/PaymentMethodPanel/PaymentMethodPanel.js +113 -0
- package/lib/components/PaymentMethodPanel/PaymentMethodPanel.stories.js +88 -0
- package/lib/components/Pricing/Pricing.d.ts +78 -0
- package/lib/components/Pricing/Pricing.js +764 -0
- package/lib/components/Pricing/Pricing.stories.js +146 -0
- package/lib/components/ProductGrid/ProductGrid.d.ts +23 -0
- package/lib/components/ProductGrid/ProductGrid.js +79 -0
- package/lib/components/ProductGrid/ProductGrid.stories.js +50 -0
- package/lib/components/ProgressSteps/ProgressSteps.d.ts +13 -0
- package/lib/components/ProgressSteps/ProgressSteps.js +51 -0
- package/lib/components/ProgressSteps/ProgressSteps.stories.js +35 -0
- package/lib/components/RadioField/RadioField.d.ts +16 -0
- package/lib/components/RadioField/RadioField.js +63 -0
- package/lib/components/RadioField/RadioField.stories.js +140 -0
- package/lib/components/ReviewList/ReviewList.d.ts +15 -0
- package/lib/components/ReviewList/ReviewList.js +51 -0
- package/lib/components/ReviewList/ReviewList.stories.js +29 -0
- package/lib/components/SectionHeader/SectionHeader.d.ts +9 -0
- package/lib/components/SectionHeader/SectionHeader.js +36 -0
- package/lib/components/SectionHeader/SectionHeader.stories.js +35 -0
- package/lib/components/SelectField/SelectField.d.ts +18 -0
- package/lib/components/SelectField/SelectField.js +145 -0
- package/lib/components/SelectField/SelectField.stories.js +155 -0
- package/lib/components/SelectField/SelectOption.d.ts +13 -0
- package/lib/components/SelectField/SelectOption.js +40 -0
- package/lib/components/SelectField/SelectOption.stories.js +40 -0
- package/lib/components/Separator/Separator.d.ts +6 -0
- package/lib/components/Separator/Separator.js +13 -0
- package/lib/components/Separator/Separator.stories.js +70 -0
- package/lib/components/Skeleton/Skeleton.d.ts +2 -0
- package/lib/components/Skeleton/Skeleton.js +9 -0
- package/lib/components/Skeleton/Skeleton.stories.js +24 -0
- package/lib/components/Svg/Svg.d.ts +9 -0
- package/lib/components/Svg/Svg.js +25 -0
- package/lib/components/Svg/Svg.stories.js +34 -0
- package/lib/components/Switch/Switch.d.ts +12 -0
- package/lib/components/Switch/Switch.js +54 -0
- package/lib/components/Switch/Switch.stories.js +61 -0
- package/lib/components/Table/Table.d.ts +18 -0
- package/lib/components/Table/Table.js +99 -0
- package/lib/components/Table/Table.stories.js +79 -0
- package/lib/components/Tabs/Tabs.d.ts +17 -0
- package/lib/components/Tabs/Tabs.js +85 -0
- package/lib/components/Tabs/Tabs.stories.js +45 -0
- package/lib/components/Text/Text.d.ts +5 -0
- package/lib/components/Text/Text.js +24 -0
- package/lib/components/Text/Text.stories.js +35 -0
- package/lib/components/TextField/TextField.d.ts +31 -0
- package/lib/components/TextField/TextField.js +91 -0
- package/lib/components/TextField/TextField.stories.js +158 -0
- package/lib/components/Textarea/Textarea.d.ts +5 -0
- package/lib/components/Textarea/Textarea.js +10 -0
- package/lib/components/Textarea/Textarea.stories.js +32 -0
- package/lib/components/index.d.ts +60 -0
- package/lib/components/index.js +62 -0
- package/lib/config/appConfig.d.ts +5 -0
- package/lib/config/appConfig.js +20 -0
- package/lib/constants/AuthConstants.d.ts +8 -0
- package/lib/constants/AuthConstants.js +9 -0
- package/lib/constants/GothamConstants.d.ts +24 -0
- package/lib/constants/GothamConstants.js +25 -0
- package/lib/constants/MarkdownConstants.d.ts +8 -0
- package/lib/constants/MarkdownConstants.js +9 -0
- package/lib/constants/MessageConstants.d.ts +10 -0
- package/lib/constants/MessageConstants.js +11 -0
- package/lib/docs/analytics.md +231 -0
- package/lib/docs/api-reference.md +364 -0
- package/lib/docs/comparison.md +83 -0
- package/lib/docs/containers.md +11 -0
- package/lib/docs/gettingStarted.md +338 -0
- package/lib/docs/payments.md +79 -0
- package/lib/editor/CodeEditor.d.ts +11 -0
- package/lib/editor/CodeEditor.js +15 -0
- package/lib/editor/CodeEditor.stories.js +24 -0
- package/lib/editor/index.d.ts +1 -0
- package/lib/editor/index.js +3 -0
- package/lib/errors/UserError.d.ts +8 -0
- package/lib/errors/UserError.js +12 -0
- package/lib/examples/OptimizedFormExample.d.ts +1 -0
- package/lib/examples/OptimizedFormExample.js +130 -0
- package/lib/form/index.d.ts +11 -0
- package/lib/form/index.js +13 -0
- package/lib/hooks/useIsMobile.d.ts +1 -0
- package/lib/hooks/useIsMobile.js +12 -0
- package/lib/i18n/index.d.ts +8 -0
- package/lib/i18n/index.js +7 -0
- package/lib/icons/Dual Ring-1s-100px.svg +1 -0
- package/lib/icons/gotham-logo.svg +17 -0
- package/lib/icons/gotham.svg +8 -0
- package/lib/icons/index.d.ts +5 -0
- package/lib/icons/index.js +6 -0
- package/lib/icons/pencil.svg +6 -0
- package/lib/img/arkhamjs-logo.png +0 -0
- package/lib/img/logo.png +0 -0
- package/lib/index.d.ts +25 -0
- package/lib/index.js +25 -0
- package/lib/router/index.d.ts +5 -0
- package/lib/router/index.js +6 -0
- package/lib/stores/GothamAppStore.d.ts +35 -0
- package/lib/stores/GothamAppStore.js +70 -0
- package/lib/stories/Button.d.ts +28 -0
- package/lib/stories/Button.js +22 -0
- package/lib/stories/Header.d.ts +12 -0
- package/lib/stories/Header.js +78 -0
- package/lib/stories/Page.d.ts +3 -0
- package/lib/stories/Page.js +108 -0
- package/lib/stories/assets/accessibility.png +0 -0
- package/lib/stories/assets/accessibility.svg +5 -0
- package/lib/stories/assets/addon-library.png +0 -0
- package/lib/stories/assets/assets.png +0 -0
- package/lib/stories/assets/context.png +0 -0
- package/lib/stories/assets/discord.svg +15 -0
- package/lib/stories/assets/docs.png +0 -0
- package/lib/stories/assets/figma-plugin.png +0 -0
- package/lib/stories/assets/github.svg +3 -0
- package/lib/stories/assets/share.png +0 -0
- package/lib/stories/assets/styling.png +0 -0
- package/lib/stories/assets/testing.png +0 -0
- package/lib/stories/assets/theming.png +0 -0
- package/lib/stories/assets/tutorials.svg +12 -0
- package/lib/stories/assets/youtube.svg +4 -0
- package/lib/stories/button.css +1 -0
- package/lib/stories/header.css +1 -0
- package/lib/stories/page.css +1 -0
- package/lib/styles/chat.css +1 -0
- package/lib/styles/index.css +2 -0
- package/lib/styles/tailwind.css +1 -0
- package/lib/types/assets.d.js +2 -0
- package/lib/types/gotham.d.ts +12 -0
- package/lib/types/gotham.js +3 -0
- package/lib/types/vitest-globals.d.js +3 -0
- package/lib/utils/GothamContext.d.ts +14 -0
- package/lib/utils/GothamContext.js +14 -0
- package/lib/utils/awsRum.d.ts +23 -0
- package/lib/utils/awsRum.js +50 -0
- package/lib/utils/colorUtils.d.ts +20 -0
- package/lib/utils/colorUtils.js +499 -0
- package/lib/utils/contentUtils.d.ts +2 -0
- package/lib/utils/contentUtils.js +18 -0
- package/lib/utils/i18nUtil.d.ts +1 -0
- package/lib/utils/i18nUtil.js +7 -0
- package/lib/utils/imageUtils.d.ts +5 -0
- package/lib/utils/imageUtils.js +48 -0
- package/lib/utils/interactionAnalytics.d.ts +10 -0
- package/lib/utils/interactionAnalytics.js +142 -0
- package/lib/utils/navEventQueue.d.ts +6 -0
- package/lib/utils/navEventQueue.js +50 -0
- package/lib/utils/refUtils.d.ts +2 -0
- package/lib/utils/refUtils.js +11 -0
- package/lib/utils/routeUtils.d.ts +12 -0
- package/lib/utils/routeUtils.js +109 -0
- package/lib/utils/sizeUtils.d.ts +5 -0
- package/lib/utils/sizeUtils.js +6 -0
- package/lib/utils/storyInteractions.d.ts +6 -0
- package/lib/utils/storyInteractions.js +45 -0
- package/lib/utils/storyUtils.d.ts +1 -0
- package/lib/utils/storyUtils.js +11 -0
- package/lib/utils/testUtils.d.ts +3 -0
- package/lib/utils/testUtils.js +56 -0
- package/lib/utils/timer.d.ts +21 -0
- package/lib/utils/timer.js +38 -0
- package/lib/utils/useBreakpoint.d.ts +6 -0
- package/lib/utils/useBreakpoint.js +56 -0
- package/lib/utils/viewPerformance.d.ts +34 -0
- package/lib/utils/viewPerformance.js +103 -0
- package/lib/utils/viewUtils.d.ts +9 -0
- package/lib/utils/viewUtils.js +44 -0
- package/lib/views/AuthSignInView/AuthSignInView.d.ts +20 -0
- package/lib/views/AuthSignInView/AuthSignInView.js +107 -0
- package/lib/views/AuthSignInView/AuthSignInView.stories.js +29 -0
- package/lib/views/AuthSignUpView/AuthSignUpView.d.ts +21 -0
- package/lib/views/AuthSignUpView/AuthSignUpView.js +146 -0
- package/lib/views/AuthSignUpView/AuthSignUpView.stories.js +30 -0
- package/lib/views/AuthView/AuthView.d.ts +16 -0
- package/lib/views/AuthView/AuthView.js +60 -0
- package/lib/views/AuthView/AuthView.stories.js +34 -0
- package/lib/views/DefaultView/DefaultView.d.ts +5 -0
- package/lib/views/DefaultView/DefaultView.js +134 -0
- package/lib/views/Gotham/Gotham.d.ts +44 -0
- package/lib/views/Gotham/Gotham.js +24 -0
- package/lib/views/Gotham/Gotham.stories.js +31 -0
- package/lib/views/Gotham/GothamListeners.d.ts +0 -0
- package/lib/views/Gotham/GothamListeners.js +2 -0
- package/lib/views/Gotham/GothamProvider.d.ts +43 -0
- package/lib/views/Gotham/GothamProvider.js +217 -0
- package/lib/views/Gotham/GothamRoot.d.ts +6 -0
- package/lib/views/Gotham/GothamRoot.js +69 -0
- package/lib/views/HomeView/HomeView.d.ts +10 -0
- package/lib/views/HomeView/HomeView.js +134 -0
- package/lib/views/LoaderView/LoaderView.d.ts +8 -0
- package/lib/views/LoaderView/LoaderView.js +30 -0
- package/lib/views/MenuView/MenuView.d.ts +13 -0
- package/lib/views/MenuView/MenuView.js +305 -0
- package/lib/views/NotFoundView/NotFoundView.d.ts +2 -0
- package/lib/views/NotFoundView/NotFoundView.js +12 -0
- package/lib/views/index.d.ts +11 -0
- package/lib/views/index.js +13 -0
- package/package.json +202 -0
- package/styles/tailwind.css +1 -0
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ export const colorLuminance = (hexValue, luminance = 0)=>{
|
|
5
|
+
// Validate hex string
|
|
6
|
+
let hex = String(hexValue).replace(/[^0-9a-f]/gi, '');
|
|
7
|
+
if (hex.length < 6) {
|
|
8
|
+
hex = `${hex[0]}${hex[0]}${hex[1]}${hex[1]}${hex[2]}${hex[2]}`;
|
|
9
|
+
}
|
|
10
|
+
let rgb = '#';
|
|
11
|
+
let color;
|
|
12
|
+
let colorIdx;
|
|
13
|
+
for(let index = 0; index < 3; index++){
|
|
14
|
+
colorIdx = parseInt(hex.substr(index * 2, 2), 16);
|
|
15
|
+
color = Math.round(Math.min(Math.max(0, colorIdx + colorIdx * luminance), 255)).toString(16);
|
|
16
|
+
rgb += `00${color}`.substr(color.length);
|
|
17
|
+
}
|
|
18
|
+
return rgb;
|
|
19
|
+
};
|
|
20
|
+
export const gothamColors = [
|
|
21
|
+
'primary',
|
|
22
|
+
'secondary',
|
|
23
|
+
'tertiary',
|
|
24
|
+
'link',
|
|
25
|
+
'neutral',
|
|
26
|
+
'black',
|
|
27
|
+
'white',
|
|
28
|
+
'error',
|
|
29
|
+
'warning',
|
|
30
|
+
'success',
|
|
31
|
+
'info'
|
|
32
|
+
];
|
|
33
|
+
export const getTextClasses = (color, options = {})=>{
|
|
34
|
+
const { hasFocus = false, hasHover = false } = options;
|
|
35
|
+
const classes = [];
|
|
36
|
+
if (color === 'primary') {
|
|
37
|
+
classes.push('text-primary dark:text-primary-dark');
|
|
38
|
+
if (hasHover) {
|
|
39
|
+
classes.push('hover:text-primary-700 dark:hover:text-primary-dark-300');
|
|
40
|
+
}
|
|
41
|
+
if (hasFocus) {
|
|
42
|
+
classes.push('focus:text-primary-700 dark:focus:text-primary-dark-300');
|
|
43
|
+
}
|
|
44
|
+
} else if (color === 'secondary') {
|
|
45
|
+
classes.push('text-secondary dark:text-secondary-dark');
|
|
46
|
+
if (hasHover) {
|
|
47
|
+
classes.push('hover:text-secondary-700 dark:hover:text-secondary-dark-300');
|
|
48
|
+
}
|
|
49
|
+
if (hasFocus) {
|
|
50
|
+
classes.push('focus:text-secondary-700 dark:focus:text-secondary-dark-300');
|
|
51
|
+
}
|
|
52
|
+
} else if (color === 'tertiary') {
|
|
53
|
+
classes.push('text-tertiary dark:text-tertiary-dark');
|
|
54
|
+
if (hasHover) {
|
|
55
|
+
classes.push('hover:text-tertiary-700 dark:hover:text-tertiary-dark-300');
|
|
56
|
+
}
|
|
57
|
+
if (hasFocus) {
|
|
58
|
+
classes.push('focus:text-tertiary-700 dark:focus:text-tertiary-dark-300');
|
|
59
|
+
}
|
|
60
|
+
} else if (color === 'link') {
|
|
61
|
+
classes.push('text-link dark:text-link-dark');
|
|
62
|
+
if (hasHover) {
|
|
63
|
+
classes.push('hover:text-link-700 dark:hover:text-link-dark-300');
|
|
64
|
+
}
|
|
65
|
+
if (hasFocus) {
|
|
66
|
+
classes.push('focus:text-link-700 dark:focus:text-link-dark-300');
|
|
67
|
+
}
|
|
68
|
+
} else if (color === 'neutral') {
|
|
69
|
+
classes.push('text-neutral dark:text-neutral-dark');
|
|
70
|
+
if (hasHover) {
|
|
71
|
+
classes.push('hover:text-neutral-700 dark:hover:text-neutral-dark-300');
|
|
72
|
+
}
|
|
73
|
+
if (hasFocus) {
|
|
74
|
+
classes.push('focus:text-neutral-700 dark:focus:text-neutral-dark-300');
|
|
75
|
+
}
|
|
76
|
+
} else if (color === 'white') {
|
|
77
|
+
classes.push('text-white dark:text-white-dark');
|
|
78
|
+
if (hasHover) {
|
|
79
|
+
classes.push('hover:text-white-300 dark:hover:text-white-dark-300');
|
|
80
|
+
}
|
|
81
|
+
if (hasFocus) {
|
|
82
|
+
classes.push('focus:text-white-700 dark:focus:text-white-dark-700');
|
|
83
|
+
}
|
|
84
|
+
} else if (color === 'error') {
|
|
85
|
+
classes.push('text-error dark:text-error-dark');
|
|
86
|
+
if (hasHover) {
|
|
87
|
+
classes.push('hover:text-error-700 dark:hover:text-error-dark-300');
|
|
88
|
+
}
|
|
89
|
+
if (hasFocus) {
|
|
90
|
+
classes.push('focus:text-error-700 dark:focus:text-error-dark-300');
|
|
91
|
+
}
|
|
92
|
+
} else if (color === 'warning') {
|
|
93
|
+
classes.push('text-warning dark:text-warning-dark');
|
|
94
|
+
if (hasHover) {
|
|
95
|
+
classes.push('hover:text-warning-700 dark:hover:text-warning-dark-300');
|
|
96
|
+
}
|
|
97
|
+
} else if (color === 'success') {
|
|
98
|
+
classes.push('text-success dark:text-success-dark');
|
|
99
|
+
if (hasHover) {
|
|
100
|
+
classes.push('hover:text-success-700 dark:hover:text-success-dark-300');
|
|
101
|
+
}
|
|
102
|
+
if (hasFocus) {
|
|
103
|
+
classes.push('focus:text-success-700 dark:focus:text-success-dark-300');
|
|
104
|
+
}
|
|
105
|
+
} else if (color === 'info') {
|
|
106
|
+
classes.push('text-info dark:text-info-dark');
|
|
107
|
+
if (hasHover) {
|
|
108
|
+
classes.push('hover:text-info-700 dark:hover:text-info-dark-300');
|
|
109
|
+
}
|
|
110
|
+
if (hasFocus) {
|
|
111
|
+
classes.push('focus:text-info-700 dark:focus:text-info-dark-300');
|
|
112
|
+
}
|
|
113
|
+
} else {
|
|
114
|
+
classes.push('text-black dark:text-white');
|
|
115
|
+
if (hasHover) {
|
|
116
|
+
classes.push('hover:text-black dark:hover:text-black-dark');
|
|
117
|
+
}
|
|
118
|
+
if (hasFocus) {
|
|
119
|
+
classes.push('focus:text-black-900 dark:focus:text-black-dark-900');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return classes.join(' ');
|
|
123
|
+
};
|
|
124
|
+
export const getPlaceholderClasses = (color, options = {})=>{
|
|
125
|
+
const { hasFocus = false, hasHover = false } = options;
|
|
126
|
+
const classes = [];
|
|
127
|
+
if (color === 'primary') {
|
|
128
|
+
classes.push('placeholder:text-primary dark:placeholder:text-primary-dark');
|
|
129
|
+
if (hasHover) {
|
|
130
|
+
classes.push('hover:placeholder:text-primary-700 dark:hover:placeholder:text-primary-dark-300');
|
|
131
|
+
}
|
|
132
|
+
if (hasFocus) {
|
|
133
|
+
classes.push('focus:placeholder:text-primary-700 dark:focus:placeholder:text-primary-dark-300');
|
|
134
|
+
}
|
|
135
|
+
} else if (color === 'secondary') {
|
|
136
|
+
classes.push('placeholder:text-secondary dark:placeholder:text-secondary-dark');
|
|
137
|
+
if (hasHover) {
|
|
138
|
+
classes.push('hover:placeholder:text-secondary-700 dark:hover:placeholder:text-secondary-dark-300');
|
|
139
|
+
}
|
|
140
|
+
if (hasFocus) {
|
|
141
|
+
classes.push('focus:placeholder:text-secondary-700 dark:focus:placeholder:text-secondary-dark-300');
|
|
142
|
+
}
|
|
143
|
+
} else if (color === 'tertiary') {
|
|
144
|
+
classes.push('placeholder:text-tertiary dark:placeholder:text-tertiary-dark');
|
|
145
|
+
if (hasHover) {
|
|
146
|
+
classes.push('hover:placeholder:text-tertiary-700 dark:hover:placeholder:text-tertiary-dark-300');
|
|
147
|
+
}
|
|
148
|
+
if (hasFocus) {
|
|
149
|
+
classes.push('focus:placeholder:text-tertiary-700 dark:focus:placeholder:text-tertiary-dark-300');
|
|
150
|
+
}
|
|
151
|
+
} else if (color === 'link') {
|
|
152
|
+
classes.push('placeholder:text-link dark:placeholder:text-link-dark');
|
|
153
|
+
if (hasHover) {
|
|
154
|
+
classes.push('hover:placeholder:text-link-700 dark:hover:placeholder:text-link-dark-300');
|
|
155
|
+
}
|
|
156
|
+
if (hasFocus) {
|
|
157
|
+
classes.push('focus:placeholder:text-link-700 dark:focus:placeholder:text-link-dark-300');
|
|
158
|
+
}
|
|
159
|
+
} else if (color === 'neutral') {
|
|
160
|
+
classes.push('placeholder:text-neutral dark:placeholder:text-neutral-dark');
|
|
161
|
+
if (hasHover) {
|
|
162
|
+
classes.push('hover:placeholder:text-neutral-700 dark:hover:placeholder:text-neutral-dark-300');
|
|
163
|
+
}
|
|
164
|
+
if (hasFocus) {
|
|
165
|
+
classes.push('focus:placeholder:text-neutral-700 dark:focus:placeholder:text-neutral-dark-300');
|
|
166
|
+
}
|
|
167
|
+
} else if (color === 'white') {
|
|
168
|
+
classes.push('placeholder:text-white dark:placeholder:text-black');
|
|
169
|
+
if (hasHover) {
|
|
170
|
+
classes.push('hover:placeholder:text-white-700 dark:hover:placeholder:text-black-dark-300');
|
|
171
|
+
}
|
|
172
|
+
if (hasFocus) {
|
|
173
|
+
classes.push('focus:placeholder:text-white-700 dark:focus:placeholder:text-black-dark-300');
|
|
174
|
+
}
|
|
175
|
+
} else if (color === 'error') {
|
|
176
|
+
classes.push('placeholder:text-error dark:placeholder:text-error-dark');
|
|
177
|
+
if (hasHover) {
|
|
178
|
+
classes.push('hover:placeholder:text-error-700 dark:hover:placeholder:text-error-dark-300');
|
|
179
|
+
}
|
|
180
|
+
if (hasFocus) {
|
|
181
|
+
classes.push('focus:placeholder:text-error-700 dark:focus:placeholder:text-error-dark-300');
|
|
182
|
+
}
|
|
183
|
+
} else if (color === 'warning') {
|
|
184
|
+
classes.push('placeholder:text-warning dark:placeholder:text-warning-dark');
|
|
185
|
+
if (hasHover) {
|
|
186
|
+
classes.push('hover:placeholder:text-warning-700 dark:hover:placeholder:text-warning-dark-300');
|
|
187
|
+
}
|
|
188
|
+
} else if (color === 'success') {
|
|
189
|
+
classes.push('placeholder:text-success dark:placeholder:text-success-dark');
|
|
190
|
+
if (hasHover) {
|
|
191
|
+
classes.push('hover:placeholder:text-success-700 dark:hover:placeholder:text-success-dark-300');
|
|
192
|
+
}
|
|
193
|
+
if (hasFocus) {
|
|
194
|
+
classes.push('focus:placeholder:text-success-700 dark:focus:placeholder:text-success-dark-300');
|
|
195
|
+
}
|
|
196
|
+
} else if (color === 'info') {
|
|
197
|
+
classes.push('placeholder:text-info dark:placeholder:text-info-dark');
|
|
198
|
+
if (hasHover) {
|
|
199
|
+
classes.push('hover:placeholder:text-info-700 dark:hover:placeholder:text-info-dark-300');
|
|
200
|
+
}
|
|
201
|
+
if (hasFocus) {
|
|
202
|
+
classes.push('focus:placeholder:text-info-700 dark:focus:placeholder:text-info-dark-300');
|
|
203
|
+
}
|
|
204
|
+
} else {
|
|
205
|
+
classes.push('placeholder:text-black dark:placeholder:text-white');
|
|
206
|
+
if (hasHover) {
|
|
207
|
+
classes.push('hover:placeholder:text-black dark:hover:placeholder:text-white');
|
|
208
|
+
}
|
|
209
|
+
if (hasFocus) {
|
|
210
|
+
classes.push('focus:placeholder:text-black dark:focus:placeholder:text-white');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return classes.join(' ');
|
|
214
|
+
};
|
|
215
|
+
export const getErrorClasses = (errorColor)=>{
|
|
216
|
+
if (errorColor === 'error') {
|
|
217
|
+
return 'text-error dark:text-error-dark';
|
|
218
|
+
} else if (errorColor === 'warning') {
|
|
219
|
+
return 'text-warning dark:text-warning-dark';
|
|
220
|
+
} else if (errorColor === 'success') {
|
|
221
|
+
return 'text-success dark:text-success-dark';
|
|
222
|
+
}
|
|
223
|
+
return 'text-info dark:text-info-dark';
|
|
224
|
+
};
|
|
225
|
+
export const getBorderClasses = (color, options = {})=>{
|
|
226
|
+
const { hasFocus = false, hasHover = false } = options;
|
|
227
|
+
const classes = [];
|
|
228
|
+
if (color === 'primary') {
|
|
229
|
+
classes.push('border-primary dark:border-primary-dark');
|
|
230
|
+
if (hasHover) {
|
|
231
|
+
classes.push('hover:border-primary-700 dark:hover:border-primary-dark-300');
|
|
232
|
+
}
|
|
233
|
+
if (hasFocus) {
|
|
234
|
+
classes.push('focus:border-primary-700 dark:focus:border-primary-dark-300');
|
|
235
|
+
}
|
|
236
|
+
} else if (color === 'secondary') {
|
|
237
|
+
classes.push('border-secondary dark:border-secondary-dark');
|
|
238
|
+
if (hasHover) {
|
|
239
|
+
classes.push('hover:border-secondary-700 dark:hover:border-secondary-dark-300');
|
|
240
|
+
}
|
|
241
|
+
if (hasFocus) {
|
|
242
|
+
classes.push('focus:border-secondary-700 dark:focus:border-secondary-dark-300');
|
|
243
|
+
}
|
|
244
|
+
} else if (color === 'tertiary') {
|
|
245
|
+
classes.push('border-tertiary dark:border-tertiary-dark');
|
|
246
|
+
if (hasHover) {
|
|
247
|
+
classes.push('hover:border-tertiary-700 dark:hover:border-tertiary-dark-300');
|
|
248
|
+
}
|
|
249
|
+
if (hasFocus) {
|
|
250
|
+
classes.push('focus:border-tertiary-700 dark:focus:border-tertiary-dark-300');
|
|
251
|
+
}
|
|
252
|
+
} else if (color === 'error') {
|
|
253
|
+
classes.push('border-error dark:border-error-dark');
|
|
254
|
+
if (hasHover) {
|
|
255
|
+
classes.push('hover:border-error-700 dark:hover:border-error-dark-300');
|
|
256
|
+
}
|
|
257
|
+
if (hasFocus) {
|
|
258
|
+
classes.push('focus:border-error-700 dark:focus:border-error-dark-300');
|
|
259
|
+
}
|
|
260
|
+
} else if (color === 'warning') {
|
|
261
|
+
classes.push('border-warning dark:border-warning-dark');
|
|
262
|
+
if (hasHover) {
|
|
263
|
+
classes.push('hover:border-warning-700 dark:hover:border-warning-dark-300');
|
|
264
|
+
}
|
|
265
|
+
if (hasFocus) {
|
|
266
|
+
classes.push('focus:border-warning-700 dark:focus:border-warning-dark-300');
|
|
267
|
+
}
|
|
268
|
+
} else if (color === 'success') {
|
|
269
|
+
classes.push('border-success dark:border-success-dark');
|
|
270
|
+
if (hasHover) {
|
|
271
|
+
classes.push('hover:border-success-700 dark:hover:border-success-dark-300');
|
|
272
|
+
}
|
|
273
|
+
if (hasFocus) {
|
|
274
|
+
classes.push('focus:border-success-700 dark:focus:border-success-dark-300');
|
|
275
|
+
}
|
|
276
|
+
} else if (color === 'info') {
|
|
277
|
+
classes.push('border-info dark:border-info-dark');
|
|
278
|
+
if (hasHover) {
|
|
279
|
+
classes.push('hover:border-info-700 dark:hover:border-info-dark-300');
|
|
280
|
+
}
|
|
281
|
+
if (hasFocus) {
|
|
282
|
+
classes.push('focus:border-info-700 dark:focus:border-info-dark-300');
|
|
283
|
+
}
|
|
284
|
+
} else {
|
|
285
|
+
classes.push('border-black dark:border-white');
|
|
286
|
+
if (hasHover) {
|
|
287
|
+
classes.push('hover:border-black dark:hover:border-white');
|
|
288
|
+
}
|
|
289
|
+
if (hasFocus) {
|
|
290
|
+
classes.push('focus:border-black dark:focus:border-white');
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return classes.join(' ');
|
|
294
|
+
};
|
|
295
|
+
export const getOutlineClasses = (color, options = {})=>{
|
|
296
|
+
const { hasFocus = false, hasHover = false } = options;
|
|
297
|
+
const classes = [];
|
|
298
|
+
if (color === 'primary') {
|
|
299
|
+
classes.push('outline-primary dark:outline-primary-dark');
|
|
300
|
+
if (hasHover) {
|
|
301
|
+
classes.push('hover:outline-primary-700 dark:hover:outline-primary-dark-300');
|
|
302
|
+
}
|
|
303
|
+
if (hasFocus) {
|
|
304
|
+
classes.push('focus:outline-primary-700 dark:focus:outline-primary-dark-300');
|
|
305
|
+
}
|
|
306
|
+
} else if (color === 'secondary') {
|
|
307
|
+
classes.push('outline-secondary dark:outline-secondary-dark');
|
|
308
|
+
if (hasHover) {
|
|
309
|
+
classes.push('hover:outline-secondary-700 dark:hover:outline-secondary-dark-300');
|
|
310
|
+
}
|
|
311
|
+
if (hasFocus) {
|
|
312
|
+
classes.push('focus:outline-secondary-700 dark:focus:outline-secondary-dark-300');
|
|
313
|
+
}
|
|
314
|
+
} else if (color === 'tertiary') {
|
|
315
|
+
classes.push('outline-tertiary dark:outline-tertiary-dark');
|
|
316
|
+
if (hasHover) {
|
|
317
|
+
classes.push('hover:outline-tertiary-700 dark:hover:outline-tertiary-dark-300');
|
|
318
|
+
}
|
|
319
|
+
if (hasFocus) {
|
|
320
|
+
classes.push('focus:outline-tertiary-700 dark:focus:outline-tertiary-dark-300');
|
|
321
|
+
}
|
|
322
|
+
} else if (color === 'error') {
|
|
323
|
+
classes.push('outline-error dark:outline-error-dark');
|
|
324
|
+
if (hasHover) {
|
|
325
|
+
classes.push('hover:outline-error-700 dark:hover:outline-error-dark-300');
|
|
326
|
+
}
|
|
327
|
+
if (hasFocus) {
|
|
328
|
+
classes.push('focus:outline-error-700 dark:focus:outline-error-dark-300');
|
|
329
|
+
}
|
|
330
|
+
} else if (color === 'warning') {
|
|
331
|
+
classes.push('outline-warning dark:outline-warning-dark');
|
|
332
|
+
if (hasHover) {
|
|
333
|
+
classes.push('hover:outline-warning-700 dark:hover:outline-warning-dark-300');
|
|
334
|
+
}
|
|
335
|
+
if (hasFocus) {
|
|
336
|
+
classes.push('focus:outline-warning-700 dark:focus:outline-warning-dark-300');
|
|
337
|
+
}
|
|
338
|
+
} else if (color === 'success') {
|
|
339
|
+
classes.push('outline-success dark:outline-success-dark');
|
|
340
|
+
if (hasHover) {
|
|
341
|
+
classes.push('hover:outline-success-700 dark:hover:outline-success-dark-300');
|
|
342
|
+
}
|
|
343
|
+
if (hasFocus) {
|
|
344
|
+
classes.push('focus:outline-success-700 dark:focus:outline-success-dark-300');
|
|
345
|
+
}
|
|
346
|
+
} else if (color === 'info') {
|
|
347
|
+
classes.push('outline-info dark:outline-info-dark');
|
|
348
|
+
if (hasHover) {
|
|
349
|
+
classes.push('hover:outline-info-700 dark:hover:outline-info-dark-300');
|
|
350
|
+
}
|
|
351
|
+
if (hasFocus) {
|
|
352
|
+
classes.push('focus:outline-info-700 dark:focus:outline-info-dark-300');
|
|
353
|
+
}
|
|
354
|
+
} else {
|
|
355
|
+
classes.push('outline-black dark:outline-white');
|
|
356
|
+
if (hasHover) {
|
|
357
|
+
classes.push('hover:outline-black dark:hover:outline-white');
|
|
358
|
+
}
|
|
359
|
+
if (hasFocus) {
|
|
360
|
+
classes.push('focus:outline-black dark:focus:outline-white');
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
return classes.join(' ');
|
|
364
|
+
};
|
|
365
|
+
export const getCheckedClasses = (color)=>{
|
|
366
|
+
const classes = [];
|
|
367
|
+
if (color === 'primary') {
|
|
368
|
+
classes.push('checked:border-primary-700 dark:checked:border-primary-dark-300 checked:bg-primary-700 dark:checked:bg-primary-dark-300');
|
|
369
|
+
} else if (color === 'secondary') {
|
|
370
|
+
classes.push('checked:border-secondary-700 dark:checked:border-secondary-dark-300 checked:bg-secondary-700 dark:checked:bg-secondary-dark-300');
|
|
371
|
+
} else if (color === 'tertiary') {
|
|
372
|
+
classes.push('checked:border-tertiary-700 dark:checked:border-tertiary-dark-300 checked:bg-tertiary-700 dark:checked:bg-tertiary-dark-300');
|
|
373
|
+
} else if (color === 'neutral') {
|
|
374
|
+
classes.push('checked:border-neutral-700 dark:checked:border-neutral-dark-300 checked:bg-neutral-700 dark:checked:bg-neutral-dark-300');
|
|
375
|
+
} else if (color === 'error') {
|
|
376
|
+
classes.push('checked:border-error-700 dark:checked:border-error-dark-300 checked:bg-error-700 dark:checked:bg-error-dark-300');
|
|
377
|
+
} else if (color === 'warning') {
|
|
378
|
+
classes.push('checked:border-warning-700 dark:checked:border-warning-dark-300 checked:bg-warning-700 dark:checked:bg-warning-dark-300');
|
|
379
|
+
} else if (color === 'success') {
|
|
380
|
+
classes.push('checked:border-success-700 dark:checked:border-success-dark-300 checked:bg-success-700 dark:checked:bg-success-dark-300');
|
|
381
|
+
} else if (color === 'white') {
|
|
382
|
+
classes.push('checked:border-white-700 dark:checked:border-black-dark-300 checked:bg-white-700 dark:checked:bg-black-dark-300');
|
|
383
|
+
} else if (color === 'black') {
|
|
384
|
+
classes.push('checked:border-black-700 dark:checked:border-white-dark-300 checked:bg-black-700 dark:checked:bg-white-dark-300');
|
|
385
|
+
}
|
|
386
|
+
return classes.join(' ');
|
|
387
|
+
};
|
|
388
|
+
export const getBackgroundClasses = (color, options = {})=>{
|
|
389
|
+
const { hasFocus = false, hasHover = false } = options;
|
|
390
|
+
const classes = [];
|
|
391
|
+
if (color === 'primary') {
|
|
392
|
+
classes.push('bg-primary dark:bg-primary-dark');
|
|
393
|
+
if (hasHover) {
|
|
394
|
+
classes.push('hover:bg-primary-700 dark:hover:bg-primary-dark-300');
|
|
395
|
+
}
|
|
396
|
+
if (hasFocus) {
|
|
397
|
+
classes.push('focus:bg-primary-700 dark:focus:bg-primary-dark-300');
|
|
398
|
+
}
|
|
399
|
+
} else if (color === 'secondary') {
|
|
400
|
+
classes.push('bg-secondary dark:bg-secondary-dark');
|
|
401
|
+
if (hasHover) {
|
|
402
|
+
classes.push('hover:bg-secondary-700 dark:hover:bg-secondary-dark-300');
|
|
403
|
+
}
|
|
404
|
+
if (hasFocus) {
|
|
405
|
+
classes.push('focus:bg-secondary-700 dark:focus:bg-secondary-dark-300');
|
|
406
|
+
}
|
|
407
|
+
} else if (color === 'tertiary') {
|
|
408
|
+
classes.push('bg-tertiary dark:bg-tertiary-dark');
|
|
409
|
+
if (hasHover) {
|
|
410
|
+
classes.push('hover:bg-tertiary-700 dark:hover:bg-tertiary-dark-300');
|
|
411
|
+
}
|
|
412
|
+
if (hasFocus) {
|
|
413
|
+
classes.push('focus:bg-tertiary-700 dark:focus:bg-tertiary-dark-300');
|
|
414
|
+
}
|
|
415
|
+
} else if (color === 'neutral') {
|
|
416
|
+
classes.push('bg-neutral dark:bg-neutral-dark');
|
|
417
|
+
if (hasHover) {
|
|
418
|
+
classes.push('hover:bg-neutral-700 dark:hover:bg-neutral-dark-300');
|
|
419
|
+
}
|
|
420
|
+
if (hasFocus) {
|
|
421
|
+
classes.push('focus:bg-neutral-700 dark:focus:bg-neutral-dark-300');
|
|
422
|
+
}
|
|
423
|
+
} else if (color === 'white') {
|
|
424
|
+
classes.push('bg-white dark:bg-black');
|
|
425
|
+
if (hasHover) {
|
|
426
|
+
classes.push('hover:bg-white-700 dark:hover:bg-black-dark-300');
|
|
427
|
+
}
|
|
428
|
+
if (hasFocus) {
|
|
429
|
+
classes.push('focus:bg-white-700 dark:focus:bg-black-dark-300');
|
|
430
|
+
}
|
|
431
|
+
} else if (color === 'black') {
|
|
432
|
+
classes.push('bg-black dark:bg-white');
|
|
433
|
+
if (hasHover) {
|
|
434
|
+
classes.push('hover:bg-black-700 dark:hover:bg-white-dark-300');
|
|
435
|
+
}
|
|
436
|
+
if (hasFocus) {
|
|
437
|
+
classes.push('focus:bg-black-700 dark:focus:bg-white-dark-300');
|
|
438
|
+
}
|
|
439
|
+
} else if (color === 'transparent') {
|
|
440
|
+
classes.push('bg-transparent');
|
|
441
|
+
}
|
|
442
|
+
return classes.join(' ');
|
|
443
|
+
};
|
|
444
|
+
export const getBackgroundViewClasses = (color, options = {})=>{
|
|
445
|
+
const { hasFocus = false, hasHover = false } = options;
|
|
446
|
+
const classes = [];
|
|
447
|
+
if (color === 'primary') {
|
|
448
|
+
classes.push('bg-background-primary dark:bg-background-primary-dark');
|
|
449
|
+
if (hasHover) {
|
|
450
|
+
classes.push('hover:bg-background-primary-700 dark:hover:bg-background-primary-300');
|
|
451
|
+
}
|
|
452
|
+
if (hasFocus) {
|
|
453
|
+
classes.push('focus:bg-background-primary-700 dark:focus:bg-background-primary-300');
|
|
454
|
+
}
|
|
455
|
+
} else if (color === 'secondary') {
|
|
456
|
+
classes.push('bg-background-secondary dark:bg-background-secondary-dark');
|
|
457
|
+
if (hasHover) {
|
|
458
|
+
classes.push('hover:bg-background-secondary-700 dark:hover:bg-background-secondary-300');
|
|
459
|
+
}
|
|
460
|
+
if (hasFocus) {
|
|
461
|
+
classes.push('focus:bg-background-secondary-700 dark:focus:bg-background-secondary-300');
|
|
462
|
+
}
|
|
463
|
+
} else if (color === 'tertiary') {
|
|
464
|
+
classes.push('bg-background-tertiary dark:bg-background-tertiary-dark');
|
|
465
|
+
if (hasHover) {
|
|
466
|
+
classes.push('hover:bg-background-tertiary-700 dark:hover:bg-background-tertiary-300');
|
|
467
|
+
}
|
|
468
|
+
if (hasFocus) {
|
|
469
|
+
classes.push('focus:bg-background-tertiary-700 dark:focus:bg-background-tertiary-300');
|
|
470
|
+
}
|
|
471
|
+
} else if (color === 'neutral') {
|
|
472
|
+
classes.push('bg-background-neutral dark:bg-background-neutral-dark');
|
|
473
|
+
if (hasHover) {
|
|
474
|
+
classes.push('hover:bg-background-neutral-700 dark:hover:bg-background-neutral-300');
|
|
475
|
+
}
|
|
476
|
+
if (hasFocus) {
|
|
477
|
+
classes.push('focus:bg-background-neutral-700 dark:focus:bg-background-neutral-300');
|
|
478
|
+
}
|
|
479
|
+
} else if (color === 'white') {
|
|
480
|
+
classes.push('bg-white dark:bg-black');
|
|
481
|
+
if (hasHover) {
|
|
482
|
+
classes.push('hover:bg-white-700 dark:hover:bg-black-300');
|
|
483
|
+
}
|
|
484
|
+
if (hasFocus) {
|
|
485
|
+
classes.push('focus:bg-white-700 dark:focus:bg-black-300');
|
|
486
|
+
}
|
|
487
|
+
} else if (color === 'black') {
|
|
488
|
+
classes.push('bg-black dark:bg-white');
|
|
489
|
+
if (hasHover) {
|
|
490
|
+
classes.push('hover:bg-black-700 dark:hover:bg-white-300');
|
|
491
|
+
}
|
|
492
|
+
if (hasFocus) {
|
|
493
|
+
classes.push('focus:bg-black-700 dark:focus:bg-white-300');
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
return classes.join(' ');
|
|
497
|
+
};
|
|
498
|
+
|
|
499
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy91dGlscy9jb2xvclV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQgdHlwZSBHb3RoYW1Db2xvciA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5JyB8ICdsaW5rJyB8ICduZXV0cmFsJyB8ICd3aGl0ZScgfCAnYmxhY2snIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd0cmFuc3BhcmVudCc7XG5cbmV4cG9ydCBjb25zdCBjb2xvckx1bWluYW5jZSA9IChoZXhWYWx1ZTogc3RyaW5nLCBsdW1pbmFuY2U6IG51bWJlciA9IDApOiBzdHJpbmcgPT4ge1xuICAvLyBWYWxpZGF0ZSBoZXggc3RyaW5nXG4gIGxldCBoZXg6IHN0cmluZyA9IFN0cmluZyhoZXhWYWx1ZSkucmVwbGFjZSgvW14wLTlhLWZdL2dpLCAnJyk7XG5cbiAgaWYoaGV4Lmxlbmd0aCA8IDYpIHtcbiAgICBoZXggPSBgJHtoZXhbMF19JHtoZXhbMF19JHtoZXhbMV19JHtoZXhbMV19JHtoZXhbMl19JHtoZXhbMl19YDtcbiAgfVxuXG4gIGxldCByZ2IgPSAnIyc7XG4gIGxldCBjb2xvcjogc3RyaW5nO1xuICBsZXQgY29sb3JJZHg6IG51bWJlcjtcblxuICBmb3IobGV0IGluZGV4OiBudW1iZXIgPSAwOyBpbmRleCA8IDM7IGluZGV4KyspIHtcbiAgICBjb2xvcklkeCA9IHBhcnNlSW50KGhleC5zdWJzdHIoaW5kZXggKiAyLCAyKSwgMTYpO1xuICAgIGNvbG9yID0gTWF0aC5yb3VuZChNYXRoLm1pbihNYXRoLm1heCgwLCBjb2xvcklkeCArIChjb2xvcklkeCAqIGx1bWluYW5jZSkpLCAyNTUpKS50b1N0cmluZygxNik7XG4gICAgcmdiICs9IChgMDAke2NvbG9yfWApLnN1YnN0cihjb2xvci5sZW5ndGgpO1xuICB9XG5cbiAgcmV0dXJuIHJnYjtcbn07XG5cbmV4cG9ydCBjb25zdCBnb3RoYW1Db2xvcnMgPSBbXG4gICdwcmltYXJ5JyxcbiAgJ3NlY29uZGFyeScsXG4gICd0ZXJ0aWFyeScsXG4gICdsaW5rJyxcbiAgJ25ldXRyYWwnLFxuICAnYmxhY2snLFxuICAnd2hpdGUnLFxuICAnZXJyb3InLFxuICAnd2FybmluZycsXG4gICdzdWNjZXNzJyxcbiAgJ2luZm8nXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlQ2xhc3NPcHRpb25zIHtcbiAgcmVhZG9ubHkgaGFzRXJyb3I/OiBib29sZWFuO1xuICByZWFkb25seSBoYXNGb2N1cz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGhhc0hvdmVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFRleHRDbGFzc2VzID0gKGNvbG9yOiBHb3RoYW1Db2xvciwgb3B0aW9uczogU3R5bGVDbGFzc09wdGlvbnMgPSB7fSkgPT4ge1xuICBjb25zdCB7XG4gICAgaGFzRm9jdXMgPSBmYWxzZSxcbiAgICBoYXNIb3ZlciA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGlmKGNvbG9yID09PSAncHJpbWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3RleHQtcHJpbWFyeSBkYXJrOnRleHQtcHJpbWFyeS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LXByaW1hcnktNzAwIGRhcms6aG92ZXI6dGV4dC1wcmltYXJ5LWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6dGV4dC1wcmltYXJ5LTcwMCBkYXJrOmZvY3VzOnRleHQtcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnc2Vjb25kYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgndGV4dC1zZWNvbmRhcnkgZGFyazp0ZXh0LXNlY29uZGFyeS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LXNlY29uZGFyeS03MDAgZGFyazpob3Zlcjp0ZXh0LXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtc2Vjb25kYXJ5LTcwMCBkYXJrOmZvY3VzOnRleHQtc2Vjb25kYXJ5LWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd0ZXJ0aWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3RleHQtdGVydGlhcnkgZGFyazp0ZXh0LXRlcnRpYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOnRleHQtdGVydGlhcnktNzAwIGRhcms6aG92ZXI6dGV4dC10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtdGVydGlhcnktNzAwIGRhcms6Zm9jdXM6dGV4dC10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnbGluaycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3RleHQtbGluayBkYXJrOnRleHQtbGluay1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LWxpbmstNzAwIGRhcms6aG92ZXI6dGV4dC1saW5rLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6dGV4dC1saW5rLTcwMCBkYXJrOmZvY3VzOnRleHQtbGluay1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnbmV1dHJhbCcpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3RleHQtbmV1dHJhbCBkYXJrOnRleHQtbmV1dHJhbC1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LW5ldXRyYWwtNzAwIGRhcms6aG92ZXI6dGV4dC1uZXV0cmFsLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6dGV4dC1uZXV0cmFsLTcwMCBkYXJrOmZvY3VzOnRleHQtbmV1dHJhbC1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnd2hpdGUnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCd0ZXh0LXdoaXRlIGRhcms6dGV4dC13aGl0ZS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LXdoaXRlLTMwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGUtZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czp0ZXh0LXdoaXRlLTcwMCBkYXJrOmZvY3VzOnRleHQtd2hpdGUtZGFyay03MDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2Vycm9yJykge1xuICAgIGNsYXNzZXMucHVzaCgndGV4dC1lcnJvciBkYXJrOnRleHQtZXJyb3ItZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6dGV4dC1lcnJvci03MDAgZGFyazpob3Zlcjp0ZXh0LWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6dGV4dC1lcnJvci03MDAgZGFyazpmb2N1czp0ZXh0LWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd3YXJuaW5nJykge1xuICAgIGNsYXNzZXMucHVzaCgndGV4dC13YXJuaW5nIGRhcms6dGV4dC13YXJuaW5nLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOnRleHQtd2FybmluZy03MDAgZGFyazpob3Zlcjp0ZXh0LXdhcm5pbmctZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCd0ZXh0LXN1Y2Nlc3MgZGFyazp0ZXh0LXN1Y2Nlc3MtZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6dGV4dC1zdWNjZXNzLTcwMCBkYXJrOmhvdmVyOnRleHQtc3VjY2Vzcy1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtc3VjY2Vzcy03MDAgZGFyazpmb2N1czp0ZXh0LXN1Y2Nlc3MtZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2luZm8nKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCd0ZXh0LWluZm8gZGFyazp0ZXh0LWluZm8tZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6dGV4dC1pbmZvLTcwMCBkYXJrOmhvdmVyOnRleHQtaW5mby1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtaW5mby03MDAgZGFyazpmb2N1czp0ZXh0LWluZm8tZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY2xhc3Nlcy5wdXNoKCd0ZXh0LWJsYWNrIGRhcms6dGV4dC13aGl0ZScpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6dGV4dC1ibGFjayBkYXJrOmhvdmVyOnRleHQtYmxhY2stZGFyaycpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtYmxhY2stOTAwIGRhcms6Zm9jdXM6dGV4dC1ibGFjay1kYXJrLTkwMCcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbn07XG5cblxuZXhwb3J0IGNvbnN0IGdldFBsYWNlaG9sZGVyQ2xhc3NlcyA9IChjb2xvcjogR290aGFtQ29sb3IsIG9wdGlvbnM6IFN0eWxlQ2xhc3NPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGhhc0ZvY3VzID0gZmFsc2UsXG4gICAgaGFzSG92ZXIgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICBpZihjb2xvciA9PT0gJ3ByaW1hcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LXByaW1hcnkgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LXByaW1hcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1wcmltYXJ5LTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtcHJpbWFyeS03MDAgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXByaW1hcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3BsYWNlaG9sZGVyOnRleHQtc2Vjb25kYXJ5IGRhcms6cGxhY2Vob2xkZXI6dGV4dC1zZWNvbmRhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1zZWNvbmRhcnktNzAwIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1zZWNvbmRhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXNlY29uZGFyeS03MDAgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAndGVydGlhcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LXRlcnRpYXJ5IGRhcms6cGxhY2Vob2xkZXI6dGV4dC10ZXJ0aWFyeS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LXRlcnRpYXJ5LTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXRlcnRpYXJ5LTcwMCBkYXJrOmZvY3VzOnBsYWNlaG9sZGVyOnRleHQtdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2xpbmsnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LWxpbmsgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LWxpbmstZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1saW5rLTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtbGluay1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtbGluay03MDAgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LWxpbmstZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ25ldXRyYWwnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LW5ldXRyYWwgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LW5ldXRyYWwtZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1uZXV0cmFsLTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtbmV1dHJhbC1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtbmV1dHJhbC03MDAgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LW5ldXRyYWwtZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3doaXRlJykge1xuICAgIGNsYXNzZXMucHVzaCgncGxhY2Vob2xkZXI6dGV4dC13aGl0ZSBkYXJrOnBsYWNlaG9sZGVyOnRleHQtYmxhY2snKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOnBsYWNlaG9sZGVyOnRleHQtd2hpdGUtNzAwIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1ibGFjay1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtd2hpdGUtNzAwIGRhcms6Zm9jdXM6cGxhY2Vob2xkZXI6dGV4dC1ibGFjay1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnZXJyb3InKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LWVycm9yIGRhcms6cGxhY2Vob2xkZXI6dGV4dC1lcnJvci1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LWVycm9yLTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtZXJyb3ItZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LWVycm9yLTcwMCBkYXJrOmZvY3VzOnBsYWNlaG9sZGVyOnRleHQtZXJyb3ItZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3dhcm5pbmcnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LXdhcm5pbmcgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LXdhcm5pbmctZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC13YXJuaW5nLTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtd2FybmluZy1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnc3VjY2VzcycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3BsYWNlaG9sZGVyOnRleHQtc3VjY2VzcyBkYXJrOnBsYWNlaG9sZGVyOnRleHQtc3VjY2Vzcy1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LXN1Y2Nlc3MtNzAwIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1zdWNjZXNzLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6cGxhY2Vob2xkZXI6dGV4dC1zdWNjZXNzLTcwMCBkYXJrOmZvY3VzOnBsYWNlaG9sZGVyOnRleHQtc3VjY2Vzcy1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnaW5mbycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3BsYWNlaG9sZGVyOnRleHQtaW5mbyBkYXJrOnBsYWNlaG9sZGVyOnRleHQtaW5mby1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LWluZm8tNzAwIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1pbmZvLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6cGxhY2Vob2xkZXI6dGV4dC1pbmZvLTcwMCBkYXJrOmZvY3VzOnBsYWNlaG9sZGVyOnRleHQtaW5mby1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjbGFzc2VzLnB1c2goJ3BsYWNlaG9sZGVyOnRleHQtYmxhY2sgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LXdoaXRlJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LWJsYWNrIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC13aGl0ZScpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtYmxhY2sgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXdoaXRlJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVycm9yQ2xhc3NlcyA9IChlcnJvckNvbG9yOiBHb3RoYW1Db2xvcikgPT4ge1xuICBpZihlcnJvckNvbG9yID09PSAnZXJyb3InKSB7XG4gICAgcmV0dXJuICd0ZXh0LWVycm9yIGRhcms6dGV4dC1lcnJvci1kYXJrJztcbiAgfSBlbHNlIGlmKGVycm9yQ29sb3IgPT09ICd3YXJuaW5nJykge1xuICAgIHJldHVybiAndGV4dC13YXJuaW5nIGRhcms6dGV4dC13YXJuaW5nLWRhcmsnO1xuICB9IGVsc2UgaWYoZXJyb3JDb2xvciA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgcmV0dXJuICd0ZXh0LXN1Y2Nlc3MgZGFyazp0ZXh0LXN1Y2Nlc3MtZGFyayc7XG4gIH1cbiAgcmV0dXJuICd0ZXh0LWluZm8gZGFyazp0ZXh0LWluZm8tZGFyayc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Qm9yZGVyQ2xhc3NlcyA9IChjb2xvcjogR290aGFtQ29sb3IsIG9wdGlvbnM6IFN0eWxlQ2xhc3NPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGhhc0ZvY3VzID0gZmFsc2UsXG4gICAgaGFzSG92ZXIgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICBpZihjb2xvciA9PT0gJ3ByaW1hcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdib3JkZXItcHJpbWFyeSBkYXJrOmJvcmRlci1wcmltYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJvcmRlci1wcmltYXJ5LTcwMCBkYXJrOmhvdmVyOmJvcmRlci1wcmltYXJ5LWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6Ym9yZGVyLXByaW1hcnktNzAwIGRhcms6Zm9jdXM6Ym9yZGVyLXByaW1hcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JvcmRlci1zZWNvbmRhcnkgZGFyazpib3JkZXItc2Vjb25kYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJvcmRlci1zZWNvbmRhcnktNzAwIGRhcms6aG92ZXI6Ym9yZGVyLXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci1zZWNvbmRhcnktNzAwIGRhcms6Zm9jdXM6Ym9yZGVyLXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAndGVydGlhcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdib3JkZXItdGVydGlhcnkgZGFyazpib3JkZXItdGVydGlhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6Ym9yZGVyLXRlcnRpYXJ5LTcwMCBkYXJrOmhvdmVyOmJvcmRlci10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci10ZXJ0aWFyeS03MDAgZGFyazpmb2N1czpib3JkZXItdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2Vycm9yJykge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLWVycm9yIGRhcms6Ym9yZGVyLWVycm9yLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJvcmRlci1lcnJvci03MDAgZGFyazpob3Zlcjpib3JkZXItZXJyb3ItZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpib3JkZXItZXJyb3ItNzAwIGRhcms6Zm9jdXM6Ym9yZGVyLWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd3YXJuaW5nJykge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLXdhcm5pbmcgZGFyazpib3JkZXItd2FybmluZy1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjpib3JkZXItd2FybmluZy03MDAgZGFyazpob3Zlcjpib3JkZXItd2FybmluZy1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci13YXJuaW5nLTcwMCBkYXJrOmZvY3VzOmJvcmRlci13YXJuaW5nLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdzdWNjZXNzJykge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLXN1Y2Nlc3MgZGFyazpib3JkZXItc3VjY2Vzcy1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjpib3JkZXItc3VjY2Vzcy03MDAgZGFyazpob3Zlcjpib3JkZXItc3VjY2Vzcy1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci1zdWNjZXNzLTcwMCBkYXJrOmZvY3VzOmJvcmRlci1zdWNjZXNzLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdpbmZvJykge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLWluZm8gZGFyazpib3JkZXItaW5mby1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjpib3JkZXItaW5mby03MDAgZGFyazpob3Zlcjpib3JkZXItaW5mby1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci1pbmZvLTcwMCBkYXJrOmZvY3VzOmJvcmRlci1pbmZvLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLWJsYWNrIGRhcms6Ym9yZGVyLXdoaXRlJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjpib3JkZXItYmxhY2sgZGFyazpob3Zlcjpib3JkZXItd2hpdGUnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpib3JkZXItYmxhY2sgZGFyazpmb2N1czpib3JkZXItd2hpdGUnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBnZXRPdXRsaW5lQ2xhc3NlcyA9IChjb2xvcjogR290aGFtQ29sb3IsIG9wdGlvbnM6IFN0eWxlQ2xhc3NPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGhhc0ZvY3VzID0gZmFsc2UsXG4gICAgaGFzSG92ZXIgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICBpZihjb2xvciA9PT0gJ3ByaW1hcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdvdXRsaW5lLXByaW1hcnkgZGFyazpvdXRsaW5lLXByaW1hcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6b3V0bGluZS1wcmltYXJ5LTcwMCBkYXJrOmhvdmVyOm91dGxpbmUtcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOm91dGxpbmUtcHJpbWFyeS03MDAgZGFyazpmb2N1czpvdXRsaW5lLXByaW1hcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ291dGxpbmUtc2Vjb25kYXJ5IGRhcms6b3V0bGluZS1zZWNvbmRhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6b3V0bGluZS1zZWNvbmRhcnktNzAwIGRhcms6aG92ZXI6b3V0bGluZS1zZWNvbmRhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLXNlY29uZGFyeS03MDAgZGFyazpmb2N1czpvdXRsaW5lLXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAndGVydGlhcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdvdXRsaW5lLXRlcnRpYXJ5IGRhcms6b3V0bGluZS10ZXJ0aWFyeS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpvdXRsaW5lLXRlcnRpYXJ5LTcwMCBkYXJrOmhvdmVyOm91dGxpbmUtdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLXRlcnRpYXJ5LTcwMCBkYXJrOmZvY3VzOm91dGxpbmUtdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2Vycm9yJykge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS1lcnJvciBkYXJrOm91dGxpbmUtZXJyb3ItZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6b3V0bGluZS1lcnJvci03MDAgZGFyazpob3ZlcjpvdXRsaW5lLWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6b3V0bGluZS1lcnJvci03MDAgZGFyazpmb2N1czpvdXRsaW5lLWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd3YXJuaW5nJykge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS13YXJuaW5nIGRhcms6b3V0bGluZS13YXJuaW5nLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOm91dGxpbmUtd2FybmluZy03MDAgZGFyazpob3ZlcjpvdXRsaW5lLXdhcm5pbmctZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLXdhcm5pbmctNzAwIGRhcms6Zm9jdXM6b3V0bGluZS13YXJuaW5nLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdzdWNjZXNzJykge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS1zdWNjZXNzIGRhcms6b3V0bGluZS1zdWNjZXNzLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOm91dGxpbmUtc3VjY2Vzcy03MDAgZGFyazpob3ZlcjpvdXRsaW5lLXN1Y2Nlc3MtZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLXN1Y2Nlc3MtNzAwIGRhcms6Zm9jdXM6b3V0bGluZS1zdWNjZXNzLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdpbmZvJykge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS1pbmZvIGRhcms6b3V0bGluZS1pbmZvLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOm91dGxpbmUtaW5mby03MDAgZGFyazpob3ZlcjpvdXRsaW5lLWluZm8tZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLWluZm8tNzAwIGRhcms6Zm9jdXM6b3V0bGluZS1pbmZvLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS1ibGFjayBkYXJrOm91dGxpbmUtd2hpdGUnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOm91dGxpbmUtYmxhY2sgZGFyazpob3ZlcjpvdXRsaW5lLXdoaXRlJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6b3V0bGluZS1ibGFjayBkYXJrOmZvY3VzOm91dGxpbmUtd2hpdGUnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q2hlY2tlZENsYXNzZXMgPSAoY29sb3I6IEdvdGhhbUNvbG9yKSA9PiB7XG4gIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYoY29sb3IgPT09ICdwcmltYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgnY2hlY2tlZDpib3JkZXItcHJpbWFyeS03MDAgZGFyazpjaGVja2VkOmJvcmRlci1wcmltYXJ5LWRhcmstMzAwIGNoZWNrZWQ6YmctcHJpbWFyeS03MDAgZGFyazpjaGVja2VkOmJnLXByaW1hcnktZGFyay0zMDAnKTtcbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnc2Vjb25kYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgnY2hlY2tlZDpib3JkZXItc2Vjb25kYXJ5LTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLXNlY29uZGFyeS1kYXJrLTMwMCBjaGVja2VkOmJnLXNlY29uZGFyeS03MDAgZGFyazpjaGVja2VkOmJnLXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICB9IGVsc2UgaWYoY29sb3IgPT09ICd0ZXJ0aWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2NoZWNrZWQ6Ym9yZGVyLXRlcnRpYXJ5LTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLXRlcnRpYXJ5LWRhcmstMzAwIGNoZWNrZWQ6YmctdGVydGlhcnktNzAwIGRhcms6Y2hlY2tlZDpiZy10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICB9IGVsc2UgaWYoY29sb3IgPT09ICduZXV0cmFsJykge1xuICAgIGNsYXNzZXMucHVzaCgnY2hlY2tlZDpib3JkZXItbmV1dHJhbC03MDAgZGFyazpjaGVja2VkOmJvcmRlci1uZXV0cmFsLWRhcmstMzAwIGNoZWNrZWQ6YmctbmV1dHJhbC03MDAgZGFyazpjaGVja2VkOmJnLW5ldXRyYWwtZGFyay0zMDAnKTtcbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnZXJyb3InKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdjaGVja2VkOmJvcmRlci1lcnJvci03MDAgZGFyazpjaGVja2VkOmJvcmRlci1lcnJvci1kYXJrLTMwMCBjaGVja2VkOmJnLWVycm9yLTcwMCBkYXJrOmNoZWNrZWQ6YmctZXJyb3ItZGFyay0zMDAnKTtcbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnd2FybmluZycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2NoZWNrZWQ6Ym9yZGVyLXdhcm5pbmctNzAwIGRhcms6Y2hlY2tlZDpib3JkZXItd2FybmluZy1kYXJrLTMwMCBjaGVja2VkOmJnLXdhcm5pbmctNzAwIGRhcms6Y2hlY2tlZDpiZy13YXJuaW5nLWRhcmstMzAwJyk7XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdjaGVja2VkOmJvcmRlci1zdWNjZXNzLTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLXN1Y2Nlc3MtZGFyay0zMDAgY2hlY2tlZDpiZy1zdWNjZXNzLTcwMCBkYXJrOmNoZWNrZWQ6Ymctc3VjY2Vzcy1kYXJrLTMwMCcpO1xuICB9IGVsc2UgaWYoY29sb3IgPT09ICd3aGl0ZScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2NoZWNrZWQ6Ym9yZGVyLXdoaXRlLTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLWJsYWNrLWRhcmstMzAwIGNoZWNrZWQ6Ymctd2hpdGUtNzAwIGRhcms6Y2hlY2tlZDpiZy1ibGFjay1kYXJrLTMwMCcpO1xuICB9IGVsc2UgaWYoY29sb3IgPT09ICdibGFjaycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2NoZWNrZWQ6Ym9yZGVyLWJsYWNrLTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLXdoaXRlLWRhcmstMzAwIGNoZWNrZWQ6YmctYmxhY2stNzAwIGRhcms6Y2hlY2tlZDpiZy13aGl0ZS1kYXJrLTMwMCcpO1xuICB9XG5cbiAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJhY2tncm91bmRDbGFzc2VzID0gKGNvbG9yOiBHb3RoYW1Db2xvciwgb3B0aW9uczogU3R5bGVDbGFzc09wdGlvbnMgPSB7fSkgPT4ge1xuICBjb25zdCB7XG4gICAgaGFzRm9jdXMgPSBmYWxzZSxcbiAgICBoYXNIb3ZlciA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGlmKGNvbG9yID09PSAncHJpbWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLXByaW1hcnkgZGFyazpiZy1wcmltYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLXByaW1hcnktNzAwIGRhcms6aG92ZXI6YmctcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJnLXByaW1hcnktNzAwIGRhcms6Zm9jdXM6YmctcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnc2Vjb25kYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctc2Vjb25kYXJ5IGRhcms6Ymctc2Vjb25kYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLXNlY29uZGFyeS03MDAgZGFyazpob3ZlcjpiZy1zZWNvbmRhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpiZy1zZWNvbmRhcnktNzAwIGRhcms6Zm9jdXM6Ymctc2Vjb25kYXJ5LWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd0ZXJ0aWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLXRlcnRpYXJ5IGRhcms6YmctdGVydGlhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6YmctdGVydGlhcnktNzAwIGRhcms6aG92ZXI6YmctdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpiZy10ZXJ0aWFyeS03MDAgZGFyazpmb2N1czpiZy10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnbmV1dHJhbCcpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLW5ldXRyYWwgZGFyazpiZy1uZXV0cmFsLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLW5ldXRyYWwtNzAwIGRhcms6aG92ZXI6YmctbmV1dHJhbC1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJnLW5ldXRyYWwtNzAwIGRhcms6Zm9jdXM6YmctbmV1dHJhbC1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnd2hpdGUnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdiZy13aGl0ZSBkYXJrOmJnLWJsYWNrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpiZy13aGl0ZS03MDAgZGFyazpob3ZlcjpiZy1ibGFjay1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJnLXdoaXRlLTcwMCBkYXJrOmZvY3VzOmJnLWJsYWNrLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdibGFjaycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLWJsYWNrIGRhcms6Ymctd2hpdGUnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJsYWNrLTcwMCBkYXJrOmhvdmVyOmJnLXdoaXRlLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6YmctYmxhY2stNzAwIGRhcms6Zm9jdXM6Ymctd2hpdGUtZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3RyYW5zcGFyZW50Jykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctdHJhbnNwYXJlbnQnKTtcbiAgfVxuXG4gIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCYWNrZ3JvdW5kVmlld0NsYXNzZXMgPSAoY29sb3I6IEdvdGhhbUNvbG9yLCBvcHRpb25zOiBTdHlsZUNsYXNzT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBoYXNGb2N1cyA9IGZhbHNlLFxuICAgIGhhc0hvdmVyID0gZmFsc2VcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYoY29sb3IgPT09ICdwcmltYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctYmFja2dyb3VuZC1wcmltYXJ5IGRhcms6YmctYmFja2dyb3VuZC1wcmltYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJhY2tncm91bmQtcHJpbWFyeS03MDAgZGFyazpob3ZlcjpiZy1iYWNrZ3JvdW5kLXByaW1hcnktMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6YmctYmFja2dyb3VuZC1wcmltYXJ5LTcwMCBkYXJrOmZvY3VzOmJnLWJhY2tncm91bmQtcHJpbWFyeS0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLWJhY2tncm91bmQtc2Vjb25kYXJ5IGRhcms6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktNzAwIGRhcms6aG92ZXI6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktNzAwIGRhcms6Zm9jdXM6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd0ZXJ0aWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLWJhY2tncm91bmQtdGVydGlhcnkgZGFyazpiZy1iYWNrZ3JvdW5kLXRlcnRpYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJhY2tncm91bmQtdGVydGlhcnktNzAwIGRhcms6aG92ZXI6YmctYmFja2dyb3VuZC10ZXJ0aWFyeS0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpiZy1iYWNrZ3JvdW5kLXRlcnRpYXJ5LTcwMCBkYXJrOmZvY3VzOmJnLWJhY2tncm91bmQtdGVydGlhcnktMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICduZXV0cmFsJykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctYmFja2dyb3VuZC1uZXV0cmFsIGRhcms6YmctYmFja2dyb3VuZC1uZXV0cmFsLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJhY2tncm91bmQtbmV1dHJhbC03MDAgZGFyazpob3ZlcjpiZy1iYWNrZ3JvdW5kLW5ldXRyYWwtMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6YmctYmFja2dyb3VuZC1uZXV0cmFsLTcwMCBkYXJrOmZvY3VzOmJnLWJhY2tncm91bmQtbmV1dHJhbC0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3doaXRlJykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctd2hpdGUgZGFyazpiZy1ibGFjaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6Ymctd2hpdGUtNzAwIGRhcms6aG92ZXI6YmctYmxhY2stMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6Ymctd2hpdGUtNzAwIGRhcms6Zm9jdXM6YmctYmxhY2stMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdibGFjaycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLWJsYWNrIGRhcms6Ymctd2hpdGUnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJsYWNrLTcwMCBkYXJrOmhvdmVyOmJnLXdoaXRlLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJnLWJsYWNrLTcwMCBkYXJrOmZvY3VzOmJnLXdoaXRlLTMwMCcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbn07Il0sIm5hbWVzIjpbImNvbG9yTHVtaW5hbmNlIiwiaGV4VmFsdWUiLCJsdW1pbmFuY2UiLCJoZXgiLCJTdHJpbmciLCJyZXBsYWNlIiwibGVuZ3RoIiwicmdiIiwiY29sb3IiLCJjb2xvcklkeCIsImluZGV4IiwicGFyc2VJbnQiLCJzdWJzdHIiLCJNYXRoIiwicm91bmQiLCJtaW4iLCJtYXgiLCJ0b1N0cmluZyIsImdvdGhhbUNvbG9ycyIsImdldFRleHRDbGFzc2VzIiwib3B0aW9ucyIsImhhc0ZvY3VzIiwiaGFzSG92ZXIiLCJjbGFzc2VzIiwicHVzaCIsImpvaW4iLCJnZXRQbGFjZWhvbGRlckNsYXNzZXMiLCJnZXRFcnJvckNsYXNzZXMiLCJlcnJvckNvbG9yIiwiZ2V0Qm9yZGVyQ2xhc3NlcyIsImdldE91dGxpbmVDbGFzc2VzIiwiZ2V0Q2hlY2tlZENsYXNzZXMiLCJnZXRCYWNrZ3JvdW5kQ2xhc3NlcyIsImdldEJhY2tncm91bmRWaWV3Q2xhc3NlcyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBR0QsT0FBTyxNQUFNQSxpQkFBaUIsQ0FBQ0MsVUFBa0JDLFlBQW9CLENBQUM7SUFDcEUsc0JBQXNCO0lBQ3RCLElBQUlDLE1BQWNDLE9BQU9ILFVBQVVJLE9BQU8sQ0FBQyxlQUFlO0lBRTFELElBQUdGLElBQUlHLE1BQU0s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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import { get } from '@nlabs/rip-hunter';
|
|
5
|
+
export const fetchJsonFromUrl = async (url)=>{
|
|
6
|
+
try {
|
|
7
|
+
const response = await get(url);
|
|
8
|
+
return response.data;
|
|
9
|
+
} catch (error) {
|
|
10
|
+
throw new Error(`Failed to fetch JSON from ${url}: ${error.message}`);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export const parseTemplate = (markdown = '', values = {})=>markdown.replace(/\{\{(\w+)\}\}/g, (match, key)=>{
|
|
14
|
+
const value = values[key];
|
|
15
|
+
return value !== undefined ? String(value) : match;
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy91dGlscy9jb250ZW50VXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Z2V0fSBmcm9tICdAbmxhYnMvcmlwLWh1bnRlcic7XG5cbmV4cG9ydCBjb25zdCBmZXRjaEpzb25Gcm9tVXJsID0gYXN5bmMgPFQgPSB1bmtub3duPih1cmw6IHN0cmluZyk6IFByb21pc2U8VD4gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0KHVybCk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgYXMgVDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEpTT04gZnJvbSAke3VybH06ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVGVtcGxhdGUgPSAoXG4gIG1hcmtkb3duOiBzdHJpbmcgPSAnJyxcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG4pOiBzdHJpbmcgPT4gbWFya2Rvd24ucmVwbGFjZSgvXFx7XFx7KFxcdyspXFx9XFx9L2csIChtYXRjaCwga2V5KSA9PiB7XG4gIGNvbnN0IHZhbHVlID0gdmFsdWVzW2tleV07XG4gIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gU3RyaW5nKHZhbHVlKSA6IG1hdGNoO1xufSk7XG4iXSwibmFtZXMiOlsiZ2V0IiwiZmV0Y2hKc29uRnJvbVVybCIsInVybCIsInJlc3BvbnNlIiwiZGF0YSIsImVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwicGFyc2VUZW1wbGF0ZSIsIm1hcmtkb3duIiwidmFsdWVzIiwicmVwbGFjZSIsIm1hdGNoIiwia2V5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLEdBQUcsUUFBTyxvQkFBb0I7QUFFdEMsT0FBTyxNQUFNQyxtQkFBbUIsT0FBb0JDO0lBQ2xELElBQUk7UUFDRixNQUFNQyxXQUFXLE1BQU1ILElBQUlFO1FBQzNCLE9BQU9DLFNBQVNDLElBQUk7SUFDdEIsRUFBRSxPQUFNQyxPQUFPO1FBQ2IsTUFBTSxJQUFJQyxNQUFNLENBQUMsMEJBQTBCLEVBQUVKLElBQUksRUFBRSxFQUFFRyxNQUFNRSxPQUFPLEVBQUU7SUFDdEU7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNQyxnQkFBZ0IsQ0FDM0JDLFdBQW1CLEVBQUUsRUFDckJDLFNBQWtDLENBQUMsQ0FBQyxHQUN6QkQsU0FBU0UsT0FBTyxDQUFDLGtCQUFrQixDQUFDQyxPQUFPQztRQUN0RCxNQUFNQyxRQUFRSixNQUFNLENBQUNHLElBQUk7UUFDekIsT0FBT0MsVUFBVUMsWUFBWUMsT0FBT0YsU0FBU0Y7SUFDL0MsR0FBRyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const i18n: (key: string | string[], defaultValue?: string, options?: Record<string, unknown>, locale?: string) => string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import { t } from 'i18next';
|
|
5
|
+
export const i18n = (key, defaultValue, options, locale)=>t(key, options);
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy91dGlscy9pMThuVXRpbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHt0fSBmcm9tICdpMThuZXh0JztcblxuZXhwb3J0IGNvbnN0IGkxOG4gPSAoXG4gIGtleTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZyxcbiAgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBsb2NhbGU/OiBzdHJpbmdcbik6IHN0cmluZyA9PiB0KGtleSwgb3B0aW9ucyk7XG4iXSwibmFtZXMiOlsidCIsImkxOG4iLCJrZXkiLCJkZWZhdWx0VmFsdWUiLCJvcHRpb25zIiwibG9jYWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxDQUFDLFFBQU8sVUFBVTtBQUUxQixPQUFPLE1BQU1DLE9BQU8sQ0FDbEJDLEtBQ0FDLGNBQ0FDLFNBQ0FDLFNBQ1dMLEVBQUVFLEtBQUtFLFNBQVMifQ==
|