├── .gitignore ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── admin └── src │ ├── all.d.ts │ ├── all.js │ ├── components │ ├── Initializer │ │ └── index.tsx │ ├── PluginIcon │ │ └── index.tsx │ └── ReactIconsSelector │ │ ├── IconComponent.tsx │ │ ├── IconLibraryComponent.tsx │ │ └── index.tsx │ ├── data │ └── default.json │ ├── hooks │ └── usePermissions.ts │ ├── index.tsx │ ├── pages │ └── HomePage │ │ └── index.tsx │ ├── pluginId.ts │ ├── translations │ └── en.json │ ├── types.d.ts │ └── utils │ └── getTrad.ts ├── custom.d.ts ├── dist ├── server │ ├── bootstrap.js │ ├── content-types │ │ ├── iconlibrary │ │ │ ├── index.js │ │ │ └── schema.json │ │ └── index.js │ ├── controllers │ │ ├── iconLibraryController.js │ │ └── index.js │ ├── index.js │ ├── register.js │ ├── routes │ │ └── index.js │ └── services │ │ ├── iconLibraryService.js │ │ └── index.js └── tsconfig.server.tsbuildinfo ├── package-lock.json ├── package.json ├── server ├── bootstrap.ts ├── content-types │ ├── iconlibrary │ │ ├── index.ts │ │ └── schema.json │ └── index.ts ├── controllers │ ├── iconLibraryController.ts │ └── index.ts ├── index.ts ├── register.ts ├── routes │ └── index.ts └── services │ ├── iconLibraryService.ts │ └── index.ts ├── strapi-admin.js ├── strapi-server.js ├── tsconfig.json └── tsconfig.server.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false, 4 | "endOfLine": "lf", 5 | "semi": true, 6 | "singleQuote": true, 7 | "trailingComma": "es5", 8 | "printWidth": 100, 9 | "arrowParens": "always" 10 | } 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 DanielPantle 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Strapi plugin react-icons 2 | 3 | A plugin for strapi to select react icons. 4 | 5 | ![grafik](https://user-images.githubusercontent.com/34894514/234541590-5146511b-82ad-471f-aaf9-8475c91fc894.png) 6 | ![react-icons](https://github.com/DanielPantle/strapi-plugin-react-icons/assets/34894514/895596d2-b0b8-4dc9-8129-bd5449dfee72) 7 | ![grafik](https://user-images.githubusercontent.com/34894514/234541742-0b257d6c-d38e-43ca-af83-bd6af1dcff9e.png) 8 | 9 | ## Installation 10 | 11 | To install this plugin, you need to add an NPM dependency to your Strapi application: 12 | 13 | ```sh 14 | # Using Yarn 15 | yarn add strapi-plugin-react-icons 16 | 17 | # Or using NPM 18 | npm install strapi-plugin-react-icons 19 | ``` 20 | 21 | Then, you'll need to build your admin panel: 22 | 23 | ```sh 24 | # Using Yarn 25 | yarn build 26 | 27 | # Or using NPM 28 | npm run build 29 | ``` 30 | 31 | ### Strapi plugins config file 32 | Add `"react-icons": true,` in you strapi plugins file. 33 | 34 | If you do not have this file, create a file: 35 | ``` 36 | # in TypeScript: "/config/plugins.ts" 37 | export default ({ env }) => ({ "react-icons": true, }); 38 | 39 | # in JavaScript: "/config/plugins.js" 40 | module.exports = ({ env }) => ({ "react-icons": true, }); 41 | ``` 42 | 43 | ## Usage 44 | 45 | ### Usage in strapi 46 | 47 | - Select your prefered icon libraries on the settings page. 48 | - Add react-icon as custom field to your content type. 49 | - Press the search icon to select an icon from any of the selected icon libraries. 50 | 51 | ### Usage in React / Next.js 52 | 53 | Create the following IconComponent to dynamically show the icon: 54 | 55 |
56 | Show code 57 | 58 | ``` 59 | 'use client'; 60 | 61 | import { DOMAttributes } from 'react'; 62 | 63 | export type IReactIcon = string; 64 | 65 | import loadable from '@loadable/component'; 66 | import { IconType } from 'react-icons'; 67 | 68 | const iconComponents = { 69 | Ai: () => import('react-icons/ai'), 70 | Bs: () => import('react-icons/bs'), 71 | Bi: () => import('react-icons/bi'), 72 | Ci: () => import('react-icons/ci'), 73 | Di: () => import('react-icons/di'), 74 | Fi: () => import('react-icons/fi'), 75 | Fc: () => import('react-icons/fc'), 76 | Fa: () => import('react-icons/fa6'), 77 | Gi: () => import('react-icons/gi'), 78 | Go: () => import('react-icons/go'), 79 | Gr: () => import('react-icons/gr'), 80 | Hi: () => import('react-icons/hi2'), 81 | Im: () => import('react-icons/im'), 82 | Lia: () => import('react-icons/lia'), 83 | Io: () => import('react-icons/io5'), 84 | Lu: () => import('react-icons/lu'), 85 | Md: () => import('react-icons/md'), 86 | Pi: () => import('react-icons/pi'), 87 | Rx: () => import('react-icons/rx'), 88 | Ri: () => import('react-icons/ri'), 89 | Si: () => import('react-icons/si'), 90 | Sl: () => import('react-icons/sl'), 91 | Tb: () => import('react-icons/tb'), 92 | Tfi: () => import('react-icons/tfi'), 93 | Ti: () => import('react-icons/ti'), 94 | Vsc: () => import('react-icons/vsc'), 95 | Wi: () => import('react-icons/wi'), 96 | Cg: () => import('react-icons/cg'), 97 | } as unknown as { [x: string]: () => Promise<{ [key: string]: IconType }> }; 98 | 99 | export interface IDynamicReactIcon extends DOMAttributes { 100 | name: IReactIcon; 101 | } 102 | 103 | const DynamicReactIcon: React.FC = ({ 104 | name, 105 | ...rest 106 | }: IDynamicReactIcon) => { 107 | const lib = name.replace(/([a-z0-9])([A-Z])/g, '$1 $2').split(' ')[0]; 108 | const iconComponent = iconComponents[lib]; 109 | 110 | if (!iconComponent) return <>; 111 | 112 | const DynamicIcon = loadable(iconComponent, { 113 | resolveComponent: (el) => el[name], 114 | }) as IconType; 115 | 116 | return ; 117 | }; 118 | 119 | export default DynamicReactIcon; 120 | ``` 121 |
122 | 123 | ## Planned features 124 | 125 | - [x] custom field for react-icons 126 | - [x] selection modal for the custom field 127 | - [x] settings page for enabling / disabling icon libraries 128 | - [ ] default selection for icon library 129 | - [x] search in the selection modal 130 | 131 | ## Contributing and developing 132 | 133 | Feel free to post any PR or issues :) 134 | -------------------------------------------------------------------------------- /admin/src/all.d.ts: -------------------------------------------------------------------------------- 1 | export * from 'react-icons/ci'; 2 | export * from 'react-icons/fa6'; 3 | export * from 'react-icons/io5'; 4 | export * from 'react-icons/md'; 5 | export * from 'react-icons/ti'; 6 | export * from 'react-icons/go'; 7 | export * from 'react-icons/fi'; 8 | export * from 'react-icons/gi'; 9 | export * from 'react-icons/wi'; 10 | export * from 'react-icons/di'; 11 | export * from 'react-icons/ai'; 12 | export * from 'react-icons/bs'; 13 | export * from 'react-icons/ri'; 14 | export * from 'react-icons/fc'; 15 | export * from 'react-icons/gr'; 16 | export * from 'react-icons/hi2'; 17 | export * from 'react-icons/si'; 18 | export * from 'react-icons/sl'; 19 | export * from 'react-icons/im'; 20 | export * from 'react-icons/bi'; 21 | export * from 'react-icons/cg'; 22 | export * from 'react-icons/vsc'; 23 | export * from 'react-icons/tb'; 24 | export * from 'react-icons/tfi'; 25 | export * from 'react-icons/rx'; 26 | -------------------------------------------------------------------------------- /admin/src/all.js: -------------------------------------------------------------------------------- 1 | export * from 'react-icons/ci'; 2 | export * from 'react-icons/fa6'; 3 | export * from 'react-icons/io5'; 4 | export * from 'react-icons/md'; 5 | export * from 'react-icons/ti'; 6 | export * from 'react-icons/go'; 7 | export * from 'react-icons/fi'; 8 | export * from 'react-icons/gi'; 9 | export * from 'react-icons/wi'; 10 | export * from 'react-icons/di'; 11 | export * from 'react-icons/ai'; 12 | export * from 'react-icons/bs'; 13 | export * from 'react-icons/ri'; 14 | export * from 'react-icons/fc'; 15 | export * from 'react-icons/gr'; 16 | export * from 'react-icons/hi2'; 17 | export * from 'react-icons/si'; 18 | export * from 'react-icons/sl'; 19 | export * from 'react-icons/im'; 20 | export * from 'react-icons/bi'; 21 | export * from 'react-icons/cg'; 22 | export * from 'react-icons/vsc'; 23 | export * from 'react-icons/tb'; 24 | export * from 'react-icons/tfi'; 25 | export * from 'react-icons/rx'; 26 | -------------------------------------------------------------------------------- /admin/src/components/Initializer/index.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Initializer 4 | * 5 | */ 6 | 7 | import { useEffect, useRef } from 'react'; 8 | import pluginId from '../../pluginId'; 9 | 10 | type InitializerProps = { 11 | setPlugin: (id: string) => void; 12 | }; 13 | 14 | const Initializer = ({ setPlugin }: InitializerProps) => { 15 | const ref = useRef(setPlugin); 16 | 17 | useEffect(() => { 18 | ref.current(pluginId); 19 | }, []); 20 | 21 | return null; 22 | }; 23 | 24 | export default Initializer; 25 | -------------------------------------------------------------------------------- /admin/src/components/PluginIcon/index.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * PluginIcon 4 | * 5 | */ 6 | 7 | import React from 'react'; 8 | import { DiReact } from 'react-icons/di'; 9 | 10 | const PluginIcon = () => ; 11 | 12 | export default PluginIcon; 13 | -------------------------------------------------------------------------------- /admin/src/components/ReactIconsSelector/IconComponent.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { IconContext } from 'react-icons/lib'; 3 | import * as ReactIcons from '../../all'; 4 | import { IReactIcon } from '.'; 5 | 6 | interface IIconComponent { 7 | icon: string; 8 | size?: number; 9 | } 10 | 11 | const strapiTheme = window.localStorage.STRAPI_THEME; 12 | 13 | export const IconComponent: React.FC = ({ icon, size }) => { 14 | const DynamicIconComponent = ReactIcons[icon as IReactIcon]; 15 | 16 | if (undefined === DynamicIconComponent) return <>; 17 | 18 | return ( 19 | 20 | 21 | 22 | ); 23 | }; 24 | -------------------------------------------------------------------------------- /admin/src/components/ReactIconsSelector/IconLibraryComponent.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Box } from '@strapi/design-system'; 3 | import { IconComponent } from './IconComponent'; 4 | 5 | export interface IIconLibraryComponent { 6 | icons: string[]; 7 | onSelectIcon: (newIcon: string) => void; 8 | } 9 | 10 | export const IconLibraryComponent: React.FC = ({ icons, onSelectIcon }) => { 11 | return ( 12 | <> 13 | {icons.map((icon) => ( 14 | { 18 | onSelectIcon(icon); 19 | }} 20 | title={icon} 21 | > 22 | 23 | 24 | ))} 25 | 26 | ); 27 | }; 28 | -------------------------------------------------------------------------------- /admin/src/components/ReactIconsSelector/index.tsx: -------------------------------------------------------------------------------- 1 | import React, {useEffect, useState} from 'react'; 2 | import { 3 | Accordion, 4 | AccordionContent, 5 | AccordionGroup, 6 | AccordionToggle, 7 | Badge, 8 | Box, 9 | Button, 10 | FieldAction, 11 | Flex, 12 | ModalBody, 13 | ModalFooter, 14 | ModalHeader, 15 | ModalLayout, 16 | Option, 17 | Searchbar, 18 | SearchForm, 19 | Select, 20 | TextInput, 21 | Typography, 22 | Grid, 23 | GridItem, 24 | } from '@strapi/design-system'; 25 | import * as ReactIcons from '../../all'; 26 | import {MessageDescriptor, useIntl} from 'react-intl'; 27 | import {useFetchClient} from '@strapi/helper-plugin'; 28 | import getTrad from '../../utils/getTrad'; 29 | import {IconLibraryComponent} from './IconLibraryComponent'; 30 | import {IconComponent} from './IconComponent'; 31 | import {Minus, Plus} from "@strapi/icons"; 32 | import { icons } from 'react-icons'; 33 | 34 | interface IReactIconsSelector { 35 | description: null | MessageDescriptor; 36 | intlLabel: null | MessageDescriptor; 37 | placeholder: null | MessageDescriptor; 38 | name: string; 39 | error: string; 40 | required: boolean; 41 | onChange: any; 42 | value: string; 43 | } 44 | 45 | export type IReactIcon = keyof typeof ReactIcons; 46 | 47 | const ReactIconsSelector: React.FC = ({ 48 | description, 49 | error, 50 | intlLabel, 51 | placeholder, 52 | name, 53 | required, 54 | onChange, 55 | value, 56 | }) => { 57 | const {formatMessage} = useIntl(); 58 | const {get} = useFetchClient() 59 | 60 | const [iconLibraries, setIconLibraries] = useState([]); 61 | const [selectedIconLibrary, setSelectedIconLibrary] = useState(null); 62 | const allReactIcons = Object.keys(ReactIcons) as IReactIcon[]; 63 | const [isModalVisible, setIsModalVisible] = useState(false); 64 | const [searchTerm, setSearchTerm] = useState(''); 65 | 66 | const toggleModal = () => setIsModalVisible((prev) => !prev); 67 | 68 | const changeIcon = (newIcon: string) => 69 | onChange({ 70 | target: { 71 | name, 72 | type: 'string', 73 | value: newIcon, 74 | }, 75 | }); 76 | 77 | const onSelectIcon = (newIcon: string) => { 78 | toggleModal(); 79 | changeIcon(newIcon); 80 | }; 81 | 82 | useEffect(() => { 83 | const getIconLibraries = async () => { 84 | setIconLibraries( 85 | ( 86 | (await get('/react-icons/iconlibrary/find')).data 87 | ).filter((iconLibrary: IIconLibrary) => iconLibrary.isEnabled) 88 | ); 89 | }; 90 | 91 | getIconLibraries(); 92 | }, []); 93 | 94 | const [expandedIDs, setExpandedID] = useState([]); 95 | const handleToggle = (id: string) => () => { 96 | expandedIDs?.includes(id) ? 97 | setExpandedID(expandedIDs.filter((i) => i !== id)) : 98 | setExpandedID([...expandedIDs, id]); 99 | }; 100 | 101 | const handleExpand = () => { 102 | if(iconLibraries.length === expandedIDs.length){ 103 | setExpandedID([]) 104 | } else{ 105 | setExpandedID(iconLibraries.map((iconLibrary, index) => 'acc-' + index )); 106 | } 107 | } 108 | 109 | return ( 110 | <> 111 | 125 | {value ? : } 126 | 127 | } 128 | endAction={ 129 | !!value && ( 130 | changeIcon('')}> 131 | 132 | 133 | ) 134 | } 135 | /> 136 | 137 | {isModalVisible && ( 138 | 139 | 140 | 141 | Select icon 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | setSearchTerm('')} 151 | value={searchTerm} 152 | onChange={(e: React.ChangeEvent) => 153 | setSearchTerm(e.target.value) 154 | } 155 | placeholder={formatMessage({ 156 | id: getTrad('react-icons.iconSelector.search'), 157 | })} 158 | > 159 | {formatMessage({ 160 | id: getTrad('react-icons.iconSelector.search'), 161 | })} 162 | 163 | 164 | 165 | { 166 | iconLibraries.length === expandedIDs.length ? 167 | : 169 | 171 | } 172 | 173 | 174 | 175 | 176 | {iconLibraries.length > 0 ? ( 177 | 178 | 179 | { 180 | iconLibraries 181 | .filter( 182 | (iconLibrary) => 183 | !selectedIconLibrary || iconLibrary.abbreviation === selectedIconLibrary 184 | ) 185 | .map((iconLibrary, index) => ( 186 | allReactIcons.filter( 187 | (icon) => 188 | icon.toLowerCase().startsWith(iconLibrary.abbreviation) && 189 | icon.toLowerCase().includes(searchTerm.toLowerCase()) 190 | ).length > 0 && 191 | 193 | {`${iconLibrary.name} (${iconLibrary.abbreviation})`}} 196 | action={{allReactIcons.filter( 197 | (icon) => 198 | icon.toLowerCase().startsWith(iconLibrary.abbreviation) && 199 | icon.toLowerCase().includes(searchTerm.toLowerCase()) 200 | ).length}} 201 | > 202 | 203 | 204 | 205 | 206 | 209 | icon.toLowerCase().startsWith(iconLibrary.abbreviation) && 210 | icon.toLowerCase().includes(searchTerm.toLowerCase()) 211 | )} 212 | onSelectIcon={onSelectIcon} 213 | /> 214 | 215 | 216 | 217 | 218 | )) 219 | } 220 | 221 | 222 | ) : ( 223 | 224 | {formatMessage({ 225 | id: getTrad('react-icons.iconSelector.noIconLibrariesAvailable'), 226 | })} 227 | 228 | )} 229 | 230 | 231 | 240 | 243 | 244 | {iconLibraries.map((iconLibrary) => ( 245 | 248 | ))} 249 | 250 | } 251 | endActions={ 252 | 255 | } 256 | /> 257 | 258 | )} 259 | 260 | ); 261 | }; 262 | 263 | export default ReactIconsSelector; 264 | -------------------------------------------------------------------------------- /admin/src/data/default.json: -------------------------------------------------------------------------------- 1 | [ 2 | { "abbreviation": "ai", "name": "Ant Design Icons" }, 3 | { "abbreviation": "bs", "name": "Bootstrap Icons" }, 4 | { "abbreviation": "bi", "name": "BoxIcons" }, 5 | { "abbreviation": "ci", "name": "Circum Icons" }, 6 | { "abbreviation": "di", "name": "Devicons" }, 7 | { "abbreviation": "fi", "name": "Feather" }, 8 | { "abbreviation": "fc", "name": "Flat Color Icons" }, 9 | { "abbreviation": "fa", "name": "Font Awesome 6" }, 10 | { "abbreviation": "gi", "name": "Game Icons" }, 11 | { "abbreviation": "go", "name": "Github Octicons icons" }, 12 | { "abbreviation": "gr", "name": "Grommet-Icons" }, 13 | { "abbreviation": "hi", "name": "Heroicons 2" }, 14 | { "abbreviation": "im", "name": "IcoMoon Free" }, 15 | { "abbreviation": "io", "name": "Ionicons 5" }, 16 | { "abbreviation": "md", "name": "Material Design icons" }, 17 | { "abbreviation": "rx", "name": "Radix Icons" }, 18 | { "abbreviation": "ri", "name": "Remix Icon" }, 19 | { "abbreviation": "si", "name": "Simple Icons" }, 20 | { "abbreviation": "sl", "name": "Simple Line Icons" }, 21 | { "abbreviation": "tb", "name": "Tabler Icons" }, 22 | { "abbreviation": "tfi", "name": "Themify Icons" }, 23 | { "abbreviation": "ti", "name": "Typicons" }, 24 | { "abbreviation": "vsc", "name": "VS Code Icons" }, 25 | { "abbreviation": "wi", "name": "Weather Icons" }, 26 | { "abbreviation": "cg", "name": "css.gg" } 27 | ] 28 | -------------------------------------------------------------------------------- /admin/src/hooks/usePermissions.ts: -------------------------------------------------------------------------------- 1 | import { useRBAC } from '@strapi/helper-plugin'; 2 | 3 | const perms = { read: [{ action: 'plugin::react-icons.read', subject: null }] }; 4 | 5 | interface IUserPermissions { 6 | loading: boolean; 7 | canCreate: boolean; 8 | canRead: boolean; 9 | canUpdate: boolean; 10 | canDelete: boolean; 11 | canPublish: boolean; 12 | } 13 | 14 | function usePermissions() { 15 | const { allowedActions, isLoading: loading } = useRBAC(perms); 16 | return { ...allowedActions, loading } as IUserPermissions; 17 | } 18 | 19 | export default usePermissions; 20 | -------------------------------------------------------------------------------- /admin/src/index.tsx: -------------------------------------------------------------------------------- 1 | import { prefixPluginTranslations } from '@strapi/helper-plugin'; 2 | 3 | import pluginPkg from '../../package.json'; 4 | import pluginId from './pluginId'; 5 | import Initializer from './components/Initializer'; 6 | import PluginIcon from './components/PluginIcon'; 7 | import getTrad from './utils/getTrad'; 8 | 9 | const name = pluginPkg.strapi.name; 10 | 11 | export default { 12 | register(app: any) { 13 | app.customFields.register({ 14 | name: 'icon', 15 | pluginId, 16 | icon: PluginIcon, 17 | type: 'string', 18 | intlLabel: { 19 | id: getTrad('react-icons.label'), 20 | defaultMessage: 'react-icon', 21 | }, 22 | intlDescription: { 23 | id: getTrad('react-icons.description'), 24 | defaultMessage: 'Select a react-icon', 25 | }, 26 | components: { 27 | Input: async () => 28 | import( 29 | /* webpackChunkName: "react-icons-input-component" */ './components/ReactIconsSelector' 30 | ), 31 | }, 32 | options: { 33 | advanced: [ 34 | { 35 | sectionTitle: { 36 | id: 'global.settings', 37 | defaultMessage: 'Settings', 38 | }, 39 | items: [ 40 | { 41 | name: 'required', 42 | type: 'checkbox', 43 | intlLabel: { 44 | id: getTrad('react-icons.options.advanced.requiredField'), 45 | defaultMessage: 'Required field', 46 | }, 47 | description: { 48 | id: getTrad('react-icons.options.advanced.requiredField.description'), 49 | defaultMessage: "You won't be able to create an entry if this field is empty", 50 | }, 51 | }, 52 | ], 53 | }, 54 | ], 55 | }, 56 | }); 57 | app.addMenuLink({ 58 | to: `/plugins/${pluginId}`, 59 | icon: PluginIcon, 60 | intlLabel: { 61 | id: `${pluginId}.plugin.name`, 62 | defaultMessage: name, 63 | }, 64 | Component: async () => await import(/* webpackChunkName: "[request]" */ './pages/HomePage'), 65 | permissions: [ 66 | { 67 | action: 'plugin::react-icons.read', 68 | subject: null, 69 | }, 70 | ], 71 | }); 72 | const plugin = { 73 | id: pluginId, 74 | initializer: Initializer, 75 | isReady: false, 76 | name, 77 | }; 78 | 79 | app.registerPlugin(plugin); 80 | }, 81 | 82 | async registerTrads(app: any) { 83 | const { locales } = app; 84 | 85 | const importedTrads = await Promise.all( 86 | (locales as any[]).map((locale) => { 87 | return import(`./translations/${locale}.json`) 88 | .then(({ default: data }) => { 89 | return { 90 | data: prefixPluginTranslations(data, pluginId), 91 | locale, 92 | }; 93 | }) 94 | .catch(() => { 95 | return { 96 | data: {}, 97 | locale, 98 | }; 99 | }); 100 | }) 101 | ); 102 | 103 | return Promise.resolve(importedTrads); 104 | }, 105 | }; 106 | -------------------------------------------------------------------------------- /admin/src/pages/HomePage/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * HomePage 4 | * 5 | */ 6 | 7 | import React, { useEffect, useState } from 'react'; 8 | import { useFetchClient } from '@strapi/helper-plugin'; 9 | import { 10 | Button, 11 | IconButton, 12 | Checkbox, 13 | Table, 14 | Thead, 15 | Tbody, 16 | Box, 17 | Flex, 18 | Tr, 19 | Td, 20 | Th, 21 | HeaderLayout, 22 | Layout, 23 | ContentLayout, 24 | ActionLayout, 25 | Typography, 26 | VisuallyHidden, 27 | } from '@strapi/design-system'; 28 | import { Trash } from '@strapi/icons'; 29 | import { Redirect } from 'react-router-dom'; 30 | import * as ReactIcons from '../../all'; 31 | import usePermissions from '../../hooks/usePermissions'; 32 | 33 | const HomePage = () => { 34 | const { canRead, loading } = usePermissions(); 35 | const { get, put, del, post } = useFetchClient(); 36 | const [iconLibraries, setIconLibraries] = useState([]); 37 | 38 | const getIconLibraries = async () => { 39 | setIconLibraries([ 40 | ...(await get('/react-icons/iconlibrary/find')).data, 41 | ]); 42 | }; 43 | 44 | const updateIconLibrary = async (id: string, isEnabled: boolean) => { 45 | await put(`/react-icons/iconlibrary/update/${id}`, { 46 | data: { isEnabled: isEnabled } 47 | }); 48 | setIconLibraries((current) => { 49 | return current.map((iconLibrary) => 50 | iconLibrary.id === id 51 | ? { 52 | ...iconLibrary, 53 | isEnabled: isEnabled, 54 | } 55 | : iconLibrary 56 | ); 57 | }); 58 | }; 59 | 60 | const deleteIconLibrary = async (id: string) => { 61 | await del(`/react-icons/iconlibrary/delete/${id}`); 62 | setIconLibraries((current) => current.filter((iconLibrary) => iconLibrary.id !== id)); 63 | }; 64 | 65 | const importDefaultIconLibraries = async () => { 66 | (await import('../../data/default.json')).default.forEach(async (entry) => { 67 | await post('/react-icons/iconlibrary/post', { 68 | data: entry, 69 | }); 70 | }); 71 | 72 | getIconLibraries(); 73 | }; 74 | 75 | useEffect(() => { 76 | if (!canRead) return; 77 | 78 | getIconLibraries(); 79 | }, [canRead]); 80 | 81 | const getIconCount = (abbreviation: string) => { 82 | return Object.keys(ReactIcons).filter((icon) => icon.toLowerCase().startsWith(abbreviation)) 83 | .length; 84 | }; 85 | 86 | if (loading) return null; 87 | 88 | if (!canRead) return ; 89 | 90 | return ( 91 | 98 | Import default icon libraries 104 | } 105 | /> 106 | 107 | 110 | 124 | 136 | 137 | } 138 | /> 139 | 140 | 141 | 142 | 143 | 144 | 147 | 150 | 153 | 156 | 159 | 160 | 161 | 162 | 163 | {iconLibraries.length > 0 ? ( 164 | iconLibraries.map((iconLibrary) => { 165 | return ( 166 | 167 | 174 | 175 | 178 | 179 | 182 | 183 | 188 | 189 | 196 | 197 | ); 198 | }) 199 | ) : ( 200 | 201 | No icon libraries added yet 202 | 203 | )} 204 | 205 |
145 | is enabled 146 | 148 | abbreviation 149 | 151 | name 152 | 154 | icon count 155 | 157 | Actions 158 |
168 | updateIconLibrary(iconLibrary.id, !iconLibrary.isEnabled)} 172 | /> 173 | 176 | {iconLibrary.abbreviation} 177 | 180 | {iconLibrary.name} 181 | 184 | 185 | {getIconCount(iconLibrary.abbreviation)} 186 | 187 | 190 | deleteIconLibrary(iconLibrary.id)} 192 | label="Delete" 193 | icon={} 194 | /> 195 |
206 |
207 |
208 | ); 209 | }; 210 | 211 | export default HomePage; 212 | -------------------------------------------------------------------------------- /admin/src/pluginId.ts: -------------------------------------------------------------------------------- 1 | import pluginPkg from '../../package.json'; 2 | 3 | const pluginId = pluginPkg.name.replace(/^(@[^-,.][\w,-]+\/|strapi-)plugin-/i, ''); 4 | 5 | export default pluginId; 6 | -------------------------------------------------------------------------------- /admin/src/translations/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "react-icons.label": "react-icon", 3 | "react-icons.description": "Select a react-icon", 4 | "react-icons.options.advanced.requiredField": "Required field", 5 | "react-icons.options.advanced.requiredField.description": "You won't be able to create an entry if this field is empty", 6 | "react-icons.iconSelector.noIconsAvailable": "No icons available in this library.", 7 | "react-icons.iconSelector.noIconLibrariesAvailable": "No icon libraries available. Please import them on the plugin page.", 8 | "react-icons.iconSelector.allIconLibraries": "All icon libraries", 9 | "react-icons.iconSelector.search": "Search icons..." 10 | } 11 | -------------------------------------------------------------------------------- /admin/src/types.d.ts: -------------------------------------------------------------------------------- 1 | interface IIconLibrary { 2 | id: string; 3 | name: string; 4 | abbreviation: string; 5 | isEnabled: boolean; 6 | } 7 | -------------------------------------------------------------------------------- /admin/src/utils/getTrad.ts: -------------------------------------------------------------------------------- 1 | import pluginId from '../pluginId'; 2 | 3 | const getTrad = (id: string) => `${pluginId}.${id}`; 4 | 5 | export default getTrad; 6 | -------------------------------------------------------------------------------- /custom.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@strapi/design-system/*'; 2 | declare module '@strapi/design-system'; 3 | declare module '@strapi/icons'; 4 | declare module '@strapi/icons/*'; 5 | declare module '@strapi/helper-plugin'; 6 | -------------------------------------------------------------------------------- /dist/server/bootstrap.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.default = async ({ strapi }) => { 4 | var _a; 5 | const actions = [ 6 | { 7 | section: 'plugins', 8 | displayName: 'Access react-icons menu', 9 | uid: 'read', 10 | pluginName: 'react-icons', 11 | } 12 | ]; 13 | await ((_a = strapi.admin) === null || _a === void 0 ? void 0 : _a.services.permission.actionProvider.registerMany(actions)); 14 | }; 15 | -------------------------------------------------------------------------------- /dist/server/content-types/iconlibrary/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | const schema = require('./schema'); 4 | exports.default = { 5 | schema, 6 | }; 7 | -------------------------------------------------------------------------------- /dist/server/content-types/iconlibrary/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "kind": "collectionType", 3 | "collectionName": "iconlibrary", 4 | "info": { 5 | "singularName": "iconlibrary", 6 | "pluralName": "iconlibraries", 7 | "displayName": "IconLibrary" 8 | }, 9 | "options": { 10 | "draftAndPublish": false, 11 | "comment": "" 12 | }, 13 | "pluginOptions": { 14 | "content-manager": { 15 | "visible": false 16 | }, 17 | "content-type-builder": { 18 | "visible": false 19 | } 20 | }, 21 | "attributes": { 22 | "name": { 23 | "type": "string", 24 | "required": true 25 | }, 26 | "abbreviation": { 27 | "type": "string", 28 | "required": true, 29 | "unique": true, 30 | "maxLength": 3 31 | }, 32 | "isEnabled": { 33 | "type": "boolean", 34 | "default": true 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /dist/server/content-types/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __importDefault = (this && this.__importDefault) || function (mod) { 3 | return (mod && mod.__esModule) ? mod : { "default": mod }; 4 | }; 5 | Object.defineProperty(exports, "__esModule", { value: true }); 6 | const iconlibrary_1 = __importDefault(require("./iconlibrary")); 7 | exports.default = { 8 | iconlibrary: iconlibrary_1.default, 9 | }; 10 | -------------------------------------------------------------------------------- /dist/server/controllers/iconLibraryController.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | const getService = (strapi) => strapi.plugin('react-icons').service('iconLibraryService'); 4 | exports.default = ({ strapi }) => ({ 5 | async find(ctx) { 6 | try { 7 | ctx.body = await getService(strapi).find(ctx.query); 8 | } 9 | catch (error) { 10 | ctx.throw(500, error); 11 | } 12 | }, 13 | async create(ctx) { 14 | try { 15 | await getService(strapi).create(ctx.request.body); 16 | ctx.body = await getService(strapi).find(); 17 | } 18 | catch (error) { 19 | ctx.throw(500, error); 20 | } 21 | }, 22 | async update(ctx) { 23 | try { 24 | await getService(strapi).update(ctx.params.id, ctx.request.body); 25 | ctx.body = await getService(strapi).find(); 26 | } 27 | catch (error) { 28 | ctx.throw(500, error); 29 | } 30 | }, 31 | async delete(ctx) { 32 | try { 33 | ctx.body = await getService(strapi).delete(ctx.params.id); 34 | } 35 | catch (error) { 36 | ctx.throw(500, error); 37 | } 38 | }, 39 | }); 40 | -------------------------------------------------------------------------------- /dist/server/controllers/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __importDefault = (this && this.__importDefault) || function (mod) { 3 | return (mod && mod.__esModule) ? mod : { "default": mod }; 4 | }; 5 | Object.defineProperty(exports, "__esModule", { value: true }); 6 | const iconLibraryController_1 = __importDefault(require("./iconLibraryController")); 7 | exports.default = { 8 | iconLibraryController: iconLibraryController_1.default, 9 | }; 10 | -------------------------------------------------------------------------------- /dist/server/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __importDefault = (this && this.__importDefault) || function (mod) { 3 | return (mod && mod.__esModule) ? mod : { "default": mod }; 4 | }; 5 | Object.defineProperty(exports, "__esModule", { value: true }); 6 | const register_1 = __importDefault(require("./register")); 7 | const bootstrap_1 = __importDefault(require("./bootstrap")); 8 | const content_types_1 = __importDefault(require("./content-types")); 9 | const controllers_1 = __importDefault(require("./controllers")); 10 | const routes_1 = __importDefault(require("./routes")); 11 | const services_1 = __importDefault(require("./services")); 12 | exports.default = { 13 | register: register_1.default, 14 | bootstrap: bootstrap_1.default, 15 | controllers: controllers_1.default, 16 | routes: routes_1.default, 17 | services: services_1.default, 18 | contentTypes: content_types_1.default, 19 | }; 20 | -------------------------------------------------------------------------------- /dist/server/register.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.default = ({ strapi }) => { 4 | strapi.customFields.register({ 5 | name: 'icon', 6 | plugin: 'react-icons', 7 | type: 'string', 8 | }); 9 | }; 10 | -------------------------------------------------------------------------------- /dist/server/routes/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.default = [ 4 | { 5 | method: 'GET', 6 | path: '/iconlibrary/find', 7 | handler: 'iconLibraryController.find', 8 | }, 9 | { 10 | method: 'POST', 11 | path: '/iconlibrary/post', 12 | handler: 'iconLibraryController.create', 13 | }, 14 | { 15 | method: 'PUT', 16 | path: '/iconlibrary/update/:id', 17 | handler: 'iconLibraryController.update', 18 | }, 19 | { 20 | method: 'DELETE', 21 | path: '/iconlibrary/delete/:id', 22 | handler: 'iconLibraryController.delete', 23 | }, 24 | ]; 25 | -------------------------------------------------------------------------------- /dist/server/services/iconLibraryService.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.default = ({ strapi }) => ({ 4 | async find(query) { 5 | return await strapi.entityService.findMany('plugin::react-icons.iconlibrary', query); 6 | }, 7 | async create(data) { 8 | return await strapi.entityService.create('plugin::react-icons.iconlibrary', data); 9 | }, 10 | async update(id, data) { 11 | return await strapi.entityService.update('plugin::react-icons.iconlibrary', id, data); 12 | }, 13 | async delete(id) { 14 | return await strapi.entityService.delete('plugin::react-icons.iconlibrary', id); 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /dist/server/services/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __importDefault = (this && this.__importDefault) || function (mod) { 3 | return (mod && mod.__esModule) ? mod : { "default": mod }; 4 | }; 5 | Object.defineProperty(exports, "__esModule", { value: true }); 6 | const iconLibraryService_1 = __importDefault(require("./iconLibraryService")); 7 | exports.default = { 8 | iconLibraryService: iconLibraryService_1.default, 9 | }; 10 | -------------------------------------------------------------------------------- /dist/tsconfig.server.tsbuildinfo: -------------------------------------------------------------------------------- 1 | {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/buffer/index.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/triple-beam/index.d.ts","../node_modules/logform/index.d.ts","../node_modules/winston-transport/index.d.ts","../node_modules/winston/lib/winston/config/index.d.ts","../node_modules/winston/lib/winston/transports/index.d.ts","../node_modules/winston/index.d.ts","../node_modules/@strapi/logger/dist/configs/default-configuration.d.ts","../node_modules/@strapi/logger/dist/configs/output-file-configuration.d.ts","../node_modules/@strapi/logger/dist/configs/index.d.ts","../node_modules/@strapi/logger/dist/formats/pretty-print.d.ts","../node_modules/@strapi/logger/dist/formats/level-filter.d.ts","../node_modules/@strapi/logger/dist/formats/exclude-colors.d.ts","../node_modules/@strapi/logger/dist/formats/index.d.ts","../node_modules/@strapi/logger/dist/index.d.ts","../node_modules/tarn/dist/promiseinspection.d.ts","../node_modules/tarn/dist/utils.d.ts","../node_modules/tarn/dist/pendingoperation.d.ts","../node_modules/tarn/dist/resource.d.ts","../node_modules/tarn/dist/pool.d.ts","../node_modules/tarn/dist/timeouterror.d.ts","../node_modules/tarn/dist/tarn.d.ts","../node_modules/knex/types/result.d.ts","../node_modules/knex/types/tables.d.ts","../node_modules/knex/types/index.d.ts","../node_modules/@strapi/database/dist/schema/types.d.ts","../node_modules/@strapi/database/dist/schema/builder.d.ts","../node_modules/@strapi/database/dist/schema/diff.d.ts","../node_modules/@strapi/database/dist/schema/storage.d.ts","../node_modules/@strapi/database/dist/schema/index.d.ts","../node_modules/@strapi/database/dist/dialects/dialect.d.ts","../node_modules/@strapi/database/dist/dialects/index.d.ts","../node_modules/@strapi/database/dist/lifecycles/types.d.ts","../node_modules/@strapi/database/dist/lifecycles/index.d.ts","../node_modules/@strapi/database/dist/types/index.d.ts","../node_modules/@strapi/database/dist/metadata/metadata.d.ts","../node_modules/@strapi/database/dist/metadata/relations.d.ts","../node_modules/@strapi/database/dist/metadata/index.d.ts","../node_modules/@strapi/database/dist/query/types.d.ts","../node_modules/@strapi/database/dist/query/helpers/search.d.ts","../node_modules/@strapi/database/dist/query/helpers/order-by.d.ts","../node_modules/@strapi/database/dist/query/helpers/join.d.ts","../node_modules/@strapi/database/dist/query/helpers/populate/apply.d.ts","../node_modules/@strapi/database/dist/query/helpers/populate/process.d.ts","../node_modules/@strapi/database/dist/query/helpers/populate/index.d.ts","../node_modules/@strapi/database/dist/query/helpers/where.d.ts","../node_modules/@strapi/database/dist/query/helpers/transform.d.ts","../node_modules/@strapi/database/dist/query/helpers/streams/readable.d.ts","../node_modules/@strapi/database/dist/query/helpers/streams/index.d.ts","../node_modules/@strapi/database/dist/query/helpers/index.d.ts","../node_modules/@strapi/database/dist/query/query-builder.d.ts","../node_modules/@strapi/database/dist/entity-manager/types.d.ts","../node_modules/@strapi/database/dist/entity-manager/index.d.ts","../node_modules/@strapi/database/dist/migrations/index.d.ts","../node_modules/@strapi/database/dist/errors/database.d.ts","../node_modules/@strapi/database/dist/errors/not-null.d.ts","../node_modules/@strapi/database/dist/errors/invalid-time.d.ts","../node_modules/@strapi/database/dist/errors/invalid-date.d.ts","../node_modules/@strapi/database/dist/errors/invalid-datetime.d.ts","../node_modules/@strapi/database/dist/errors/invalid-relation.d.ts","../node_modules/@strapi/database/dist/errors/index.d.ts","../node_modules/@strapi/database/dist/transaction-context.d.ts","../node_modules/@strapi/database/dist/utils/knex.d.ts","../node_modules/@strapi/database/dist/utils/content-types.d.ts","../node_modules/@strapi/database/dist/index.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/base.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/biginteger.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/boolean.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/blocks.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/component.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/decimal.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/dynamic-zone.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/enumeration.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/float.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/integer.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/json.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/media.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/password.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/relation.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/richtext.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/string.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/text.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/uid.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/email.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/date.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/date-time.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/timestamp.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/time.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/common.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/utils.d.ts","../node_modules/@strapi/types/dist/types/core/attributes/index.d.ts","../node_modules/@strapi/types/dist/types/core/schemas/index.d.ts","../node_modules/@types/formidable/formidable.d.ts","../node_modules/@types/formidable/parsers/index.d.ts","../node_modules/@types/formidable/persistentfile.d.ts","../node_modules/@types/formidable/volatilefile.d.ts","../node_modules/@types/formidable/formidableerror.d.ts","../node_modules/@types/formidable/index.d.ts","../node_modules/@strapi/utils/dist/parse-multipart.d.ts","../node_modules/@strapi/utils/dist/parse-type.d.ts","../node_modules/@types/lodash/common/common.d.ts","../node_modules/@types/lodash/common/array.d.ts","../node_modules/@types/lodash/common/collection.d.ts","../node_modules/@types/lodash/common/date.d.ts","../node_modules/@types/lodash/common/function.d.ts","../node_modules/@types/lodash/common/lang.d.ts","../node_modules/@types/lodash/common/math.d.ts","../node_modules/@types/lodash/common/number.d.ts","../node_modules/@types/lodash/common/object.d.ts","../node_modules/@types/lodash/common/seq.d.ts","../node_modules/@types/lodash/common/string.d.ts","../node_modules/@types/lodash/common/util.d.ts","../node_modules/@types/lodash/index.d.ts","../node_modules/@types/lodash/fp.d.ts","../node_modules/@strapi/utils/dist/policy.d.ts","../node_modules/@strapi/utils/dist/template-configuration.d.ts","../node_modules/yup/lib/reference.d.ts","../node_modules/yup/lib/condition.d.ts","../node_modules/yup/lib/validationerror.d.ts","../node_modules/yup/lib/util/createvalidation.d.ts","../node_modules/yup/lib/util/types.d.ts","../node_modules/yup/lib/util/referenceset.d.ts","../node_modules/yup/lib/schema.d.ts","../node_modules/yup/lib/lazy.d.ts","../node_modules/yup/lib/types.d.ts","../node_modules/yup/lib/locale.d.ts","../node_modules/yup/lib/mixed.d.ts","../node_modules/yup/lib/boolean.d.ts","../node_modules/yup/lib/string.d.ts","../node_modules/yup/lib/number.d.ts","../node_modules/yup/lib/date.d.ts","../node_modules/yup/lib/object.d.ts","../node_modules/yup/lib/array.d.ts","../node_modules/yup/lib/util/reach.d.ts","../node_modules/yup/lib/util/isschema.d.ts","../node_modules/yup/lib/setlocale.d.ts","../node_modules/yup/lib/index.d.ts","../node_modules/@strapi/utils/dist/validators.d.ts","../node_modules/@strapi/utils/dist/yup.d.ts","../node_modules/@strapi/utils/dist/errors.d.ts","../node_modules/@sindresorhus/slugify/index.d.ts","../node_modules/@strapi/utils/dist/string-formatting.d.ts","../node_modules/@strapi/utils/dist/object-formatting.d.ts","../node_modules/@strapi/utils/dist/types.d.ts","../node_modules/@strapi/utils/dist/config.d.ts","../node_modules/@strapi/utils/dist/code-generator.d.ts","../node_modules/@strapi/utils/dist/content-types.d.ts","../node_modules/@strapi/utils/dist/env-helper.d.ts","../node_modules/@strapi/utils/dist/relations.d.ts","../node_modules/@strapi/utils/dist/set-creator-fields.d.ts","../node_modules/@strapi/utils/dist/hooks.d.ts","../node_modules/@strapi/utils/dist/provider-factory.d.ts","../node_modules/@strapi/utils/dist/pagination.d.ts","../node_modules/@strapi/utils/dist/traverse/factory.d.ts","../node_modules/@strapi/utils/dist/sanitize/visitors/remove-password.d.ts","../node_modules/@strapi/utils/dist/sanitize/visitors/remove-private.d.ts","../node_modules/@strapi/utils/dist/sanitize/visitors/remove-restricted-relations.d.ts","../node_modules/@strapi/utils/dist/sanitize/visitors/remove-morph-to-relations.d.ts","../node_modules/@strapi/utils/dist/sanitize/visitors/remove-dynamic-zones.d.ts","../node_modules/@strapi/utils/dist/sanitize/visitors/remove-disallowed-fields.d.ts","../node_modules/@strapi/utils/dist/sanitize/visitors/remove-restricted-fields.d.ts","../node_modules/@strapi/utils/dist/sanitize/visitors/index.d.ts","../node_modules/@strapi/utils/dist/sanitize/sanitizers.d.ts","../node_modules/@strapi/utils/dist/sanitize/index.d.ts","../node_modules/@strapi/utils/dist/validate/visitors/throw-password.d.ts","../node_modules/@strapi/utils/dist/validate/visitors/throw-private.d.ts","../node_modules/@strapi/utils/dist/validate/visitors/throw-restricted-relations.d.ts","../node_modules/@strapi/utils/dist/validate/visitors/throw-morph-to-relations.d.ts","../node_modules/@strapi/utils/dist/validate/visitors/throw-dynamic-zones.d.ts","../node_modules/@strapi/utils/dist/validate/visitors/throw-disallowed-fields.d.ts","../node_modules/@strapi/utils/dist/validate/visitors/throw-restricted-fields.d.ts","../node_modules/@strapi/utils/dist/validate/visitors/index.d.ts","../node_modules/@strapi/utils/dist/validate/validators.d.ts","../node_modules/@strapi/utils/dist/validate/index.d.ts","../node_modules/@strapi/utils/dist/traverse-entity.d.ts","../node_modules/p-map/index.d.ts","../node_modules/@strapi/utils/dist/async.d.ts","../node_modules/@strapi/utils/dist/convert-query-params.d.ts","../node_modules/@strapi/utils/dist/import-default.d.ts","../node_modules/@strapi/utils/dist/template.d.ts","../node_modules/@strapi/utils/dist/file.d.ts","../node_modules/@strapi/utils/dist/traverse/query-filters.d.ts","../node_modules/@strapi/utils/dist/traverse/query-sort.d.ts","../node_modules/@strapi/utils/dist/traverse/query-populate.d.ts","../node_modules/@strapi/utils/dist/traverse/query-fields.d.ts","../node_modules/@strapi/utils/dist/traverse/index.d.ts","../node_modules/@strapi/utils/dist/webhook.d.ts","../node_modules/@strapi/utils/dist/operators.d.ts","../node_modules/@strapi/utils/dist/index.d.ts","../node_modules/@strapi/types/dist/types/core/plugins/config/strapi-admin/index.d.ts","../node_modules/@strapi/types/dist/types/core/plugins/config/strapi-server/config.d.ts","../node_modules/@strapi/types/dist/types/core/plugins/config/strapi-server/routes.d.ts","../node_modules/@strapi/types/dist/types/core/plugins/config/strapi-server/content-types.d.ts","../node_modules/@strapi/types/dist/types/core/plugins/config/strapi-server/controllers.d.ts","../node_modules/@strapi/types/dist/types/core/plugins/config/strapi-server/lifecycle.d.ts","../node_modules/@strapi/types/dist/types/core/plugins/config/strapi-server/index.d.ts","../node_modules/@strapi/types/dist/types/core/plugins/config/index.d.ts","../node_modules/@strapi/types/dist/types/core/plugins/index.d.ts","../node_modules/@strapi/types/dist/types/core/entity/index.d.ts","../node_modules/@strapi/permissions/dist/domain/permission/index.d.ts","../node_modules/@strapi/permissions/dist/domain/index.d.ts","../node_modules/@ucast/core/dist/types/condition.d.ts","../node_modules/@ucast/core/dist/types/types.d.ts","../node_modules/@ucast/core/dist/types/interpreter.d.ts","../node_modules/@ucast/core/dist/types/translator.d.ts","../node_modules/@ucast/core/dist/types/builder.d.ts","../node_modules/@ucast/core/dist/types/utils.d.ts","../node_modules/@ucast/core/dist/types/parsers/objectqueryparser.d.ts","../node_modules/@ucast/core/dist/types/parsers/defaultinstructionparsers.d.ts","../node_modules/@ucast/core/dist/types/index.d.ts","../node_modules/@ucast/mongo/dist/types/types.d.ts","../node_modules/@ucast/mongo/dist/types/instructions.d.ts","../node_modules/@ucast/mongo/dist/types/mongoqueryparser.d.ts","../node_modules/@ucast/mongo/dist/types/index.d.ts","../node_modules/@ucast/js/dist/types/types.d.ts","../node_modules/@ucast/js/dist/types/utils.d.ts","../node_modules/@ucast/js/dist/types/interpreters.d.ts","../node_modules/@ucast/js/dist/types/interpreter.d.ts","../node_modules/@ucast/js/dist/types/defaults.d.ts","../node_modules/@ucast/js/dist/types/index.d.ts","../node_modules/@ucast/mongo2js/dist/types/factory.d.ts","../node_modules/@ucast/mongo2js/dist/types/index.d.ts","../node_modules/@casl/ability/dist/types/hkt.d.ts","../node_modules/@casl/ability/dist/types/types.d.ts","../node_modules/@casl/ability/dist/types/rawrule.d.ts","../node_modules/@casl/ability/dist/types/rule.d.ts","../node_modules/@casl/ability/dist/types/structures/linkeditem.d.ts","../node_modules/@casl/ability/dist/types/ruleindex.d.ts","../node_modules/@casl/ability/dist/types/pureability.d.ts","../node_modules/@casl/ability/dist/types/matchers/conditions.d.ts","../node_modules/@casl/ability/dist/types/ability.d.ts","../node_modules/@casl/ability/dist/types/abilitybuilder.d.ts","../node_modules/@casl/ability/dist/types/forbiddenerror.d.ts","../node_modules/@casl/ability/dist/types/matchers/field.d.ts","../node_modules/@casl/ability/dist/types/utils.d.ts","../node_modules/@casl/ability/dist/types/index.d.ts","../node_modules/@casl/ability/index.d.ts","../node_modules/@strapi/permissions/dist/types.d.ts","../node_modules/@strapi/permissions/dist/engine/hooks.d.ts","../node_modules/@strapi/permissions/dist/engine/abilities/casl-ability.d.ts","../node_modules/@strapi/permissions/dist/engine/abilities/index.d.ts","../node_modules/@strapi/permissions/dist/engine/index.d.ts","../node_modules/@strapi/permissions/dist/index.d.ts","../node_modules/@strapi/types/dist/types/core/permissions/index.d.ts","../node_modules/@strapi/types/dist/types/core/strapi/index.d.ts","../node_modules/@strapi/types/dist/types/core/common/controller.d.ts","../node_modules/@strapi/types/dist/types/core/common/middleware.d.ts","../node_modules/@strapi/types/dist/types/core/common/policy.d.ts","../node_modules/@strapi/types/dist/types/core/common/service.d.ts","../node_modules/@strapi/types/dist/types/core/common/router.d.ts","../node_modules/@strapi/types/dist/types/shared/registries.d.ts","../node_modules/@strapi/types/dist/types/shared/index.d.ts","../node_modules/@strapi/types/dist/types/core/common/schema.d.ts","../node_modules/@strapi/types/dist/types/core/common/uid.d.ts","../node_modules/@strapi/types/dist/types/core/common/plugin.d.ts","../node_modules/@strapi/types/dist/types/core/common/module.d.ts","../node_modules/@strapi/types/dist/types/core/common/api.d.ts","../node_modules/@strapi/types/dist/types/core/common/index.d.ts","../node_modules/@strapi/types/dist/types/utils/array.d.ts","../node_modules/@strapi/types/dist/types/utils/guard.d.ts","../node_modules/@strapi/types/dist/types/utils/object.d.ts","../node_modules/@strapi/types/dist/types/utils/string.d.ts","../node_modules/@strapi/types/dist/types/utils/function.d.ts","../node_modules/@strapi/types/dist/types/utils/tuple.d.ts","../node_modules/@strapi/types/dist/types/utils/expression.d.ts","../node_modules/@strapi/types/dist/types/utils/index.d.ts","../node_modules/@strapi/types/dist/types/core/namespace.d.ts","../node_modules/@strapi/types/dist/types/core/uid.d.ts","../node_modules/@strapi/types/dist/types/core/registry.d.ts","../node_modules/@strapi/types/dist/types/core/index.d.ts","../node_modules/@strapi/types/dist/types/core-api/controller.d.ts","../node_modules/@strapi/types/dist/types/core-api/service.d.ts","../node_modules/@strapi/types/dist/types/core-api/router.d.ts","../node_modules/@strapi/types/dist/types/core-api/index.d.ts","../node_modules/@strapi/types/dist/types/index.d.ts","../node_modules/@strapi/types/dist/modules/server.d.ts","../node_modules/@strapi/types/dist/modules/event-hub.d.ts","../node_modules/@strapi/types/dist/modules/cron.d.ts","../node_modules/@strapi/types/dist/modules/webhook-store.d.ts","../node_modules/@strapi/types/dist/modules/webhook-runner.d.ts","../node_modules/@strapi/types/dist/modules/core-store.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/result.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/sort.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/pagination.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/fields.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/filters/operators.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/attributes/id.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/attributes/relation.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/attributes/literals.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/attributes/utils.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/attributes/index.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/filters/index.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/populate.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/publication-state.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/data.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/search.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/params/index.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/plugin.d.ts","../node_modules/@strapi/types/dist/modules/entity-service/index.d.ts","../node_modules/@strapi/types/dist/modules/entity-validator.d.ts","../node_modules/@strapi/types/dist/modules/metrics.d.ts","../node_modules/@strapi/types/dist/modules/request-context.d.ts","../node_modules/@strapi/types/dist/modules/custom-fields.d.ts","../node_modules/agent-base/dist/src/index.d.ts","../node_modules/https-proxy-agent/dist/agent.d.ts","../node_modules/https-proxy-agent/dist/index.d.ts","../node_modules/@strapi/types/dist/modules/fetch.d.ts","../node_modules/@strapi/types/dist/modules/auth.d.ts","../node_modules/@strapi/types/dist/modules/content-api.d.ts","../node_modules/@strapi/types/dist/modules/sanitizers.d.ts","../node_modules/@strapi/types/dist/modules/validators.d.ts","../node_modules/@strapi/types/dist/container.d.ts","../node_modules/@strapi/types/dist/modules/features.d.ts","../node_modules/@strapi/types/dist/index.d.ts","../node_modules/@strapi/strapi/dist/factories.d.ts","../node_modules/@strapi/strapi/dist/compile.d.ts","../node_modules/@strapi/strapi/dist/services/webhook-store.d.ts","../node_modules/@strapi/strapi/dist/services/event-hub.d.ts","../node_modules/@strapi/strapi/dist/utils/fetch.d.ts","../node_modules/@strapi/strapi/dist/services/webhook-runner.d.ts","../node_modules/@strapi/strapi/dist/services/features.d.ts","../node_modules/@strapi/strapi/dist/strapi.d.ts","../node_modules/commander/typings/index.d.ts","../node_modules/cli-spinners/index.d.ts","../node_modules/ora/index.d.ts","../node_modules/@strapi/strapi/dist/commands/utils/logger.d.ts","../node_modules/@strapi/strapi/node_modules/typescript/lib/typescript.d.ts","../node_modules/@strapi/strapi/dist/commands/utils/tsconfig.d.ts","../node_modules/@strapi/strapi/dist/commands/types.d.ts","../node_modules/@strapi/strapi/dist/index.d.ts","../server/bootstrap.ts","../server/register.ts","../server/content-types/iconlibrary/index.ts","../server/content-types/index.ts","../server/controllers/iconlibrarycontroller.ts","../server/controllers/index.ts","../server/routes/index.ts","../server/services/iconlibraryservice.ts","../server/services/index.ts","../server/index.ts","../server/content-types/iconlibrary/schema.json","../node_modules/@types/argparse/index.d.ts","../node_modules/keyv/src/index.d.ts","../node_modules/@types/http-cache-semantics/index.d.ts","../node_modules/@types/responselike/index.d.ts","../node_modules/@types/cacheable-request/index.d.ts","../node_modules/@types/eslint/helpers.d.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/eslint/index.d.ts","../node_modules/@types/eslint-scope/index.d.ts","../node_modules/@types/fined/index.d.ts","../node_modules/@types/minimatch/index.d.ts","../node_modules/@types/glob/index.d.ts","../node_modules/@types/history/domutils.d.ts","../node_modules/@types/history/createbrowserhistory.d.ts","../node_modules/@types/history/createhashhistory.d.ts","../node_modules/@types/history/creatememoryhistory.d.ts","../node_modules/@types/history/locationutils.d.ts","../node_modules/@types/history/pathutils.d.ts","../node_modules/@types/history/index.d.ts","../node_modules/@types/react/global.d.ts","../node_modules/csstype/index.d.ts","../node_modules/@types/prop-types/index.d.ts","../node_modules/@types/react/index.d.ts","../node_modules/@types/hoist-non-react-statics/index.d.ts","../node_modules/@types/html-minifier-terser/index.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/subscription.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/types.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/subscriber.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/operator.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/iif.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/throwerror.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/subject.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/connectableobservable.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/operators/groupby.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/symbol/observable.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/behaviorsubject.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/replaysubject.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/asyncsubject.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/action.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/asyncaction.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/asapscheduler.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/asap.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/async.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/queuescheduler.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/queue.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/animationframe.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/notification.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/util/pipe.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/util/noop.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/util/identity.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/util/isobservable.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/util/argumentoutofrangeerror.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/util/emptyerror.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/util/objectunsubscribederror.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/util/unsubscriptionerror.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/util/timeouterror.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/bindcallback.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/bindnodecallback.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/innersubscriber.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/outersubscriber.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/combinelatest.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/concat.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/defer.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/empty.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/forkjoin.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/from.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/fromevent.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/fromeventpattern.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/generate.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/interval.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/merge.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/never.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/of.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/onerrorresumenext.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/pairs.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/partition.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/race.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/range.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/timer.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/using.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/observable/zip.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/scheduled/scheduled.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/internal/config.d.ts","../node_modules/@types/inquirer/node_modules/rxjs/index.d.ts","../node_modules/@types/through/index.d.ts","../node_modules/@types/inquirer/lib/objects/choice.d.ts","../node_modules/@types/inquirer/lib/objects/separator.d.ts","../node_modules/@types/inquirer/lib/objects/choices.d.ts","../node_modules/@types/inquirer/lib/utils/screen-manager.d.ts","../node_modules/@types/inquirer/lib/prompts/base.d.ts","../node_modules/@types/inquirer/lib/utils/paginator.d.ts","../node_modules/@types/inquirer/lib/prompts/checkbox.d.ts","../node_modules/@types/inquirer/lib/prompts/confirm.d.ts","../node_modules/@types/inquirer/lib/prompts/editor.d.ts","../node_modules/@types/inquirer/lib/prompts/expand.d.ts","../node_modules/@types/inquirer/lib/prompts/input.d.ts","../node_modules/@types/inquirer/lib/prompts/list.d.ts","../node_modules/@types/inquirer/lib/prompts/number.d.ts","../node_modules/@types/inquirer/lib/prompts/password.d.ts","../node_modules/@types/inquirer/lib/prompts/rawlist.d.ts","../node_modules/@types/inquirer/lib/ui/baseui.d.ts","../node_modules/@types/inquirer/lib/ui/bottom-bar.d.ts","../node_modules/@types/inquirer/lib/ui/prompt.d.ts","../node_modules/@types/inquirer/lib/utils/events.d.ts","../node_modules/@types/inquirer/lib/utils/readline.d.ts","../node_modules/@types/inquirer/lib/utils/utils.d.ts","../node_modules/@types/inquirer/index.d.ts","../node_modules/@types/interpret/index.d.ts","../node_modules/@types/is-hotkey/index.d.ts","../node_modules/@types/keyv/index.d.ts","../node_modules/@types/liftoff/index.d.ts","../node_modules/@types/normalize-package-data/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/react-dom/index.d.ts","../node_modules/@types/react-router/index.d.ts","../node_modules/@types/react-router-dom/index.d.ts","../node_modules/@types/react-transition-group/config.d.ts","../node_modules/@types/react-transition-group/transition.d.ts","../node_modules/@types/react-transition-group/csstransition.d.ts","../node_modules/@types/react-transition-group/switchtransition.d.ts","../node_modules/@types/react-transition-group/transitiongroup.d.ts","../node_modules/@types/react-transition-group/index.d.ts","../node_modules/@types/styled-components/index.d.ts","../node_modules/@types/use-sync-external-store/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"d78c698fa755ef94e3af591883bfee3a330ffec36392e00aaacdff3541cf5382","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"6968359c8dbc693224fd1ea0b1f96b135f14d8eee3d6e23296d68c3a9da3ea00",{"version":"79d75a353f29d9f7fc63e879ccebe213baaaea26676fb3e47cc96cf221b27b4f","affectsGlobalScope":true},"dfdc7699360a0d512d7e31c69f75cb6a419cf415c98673e24499793170db5d6b","dcf46daa1e04481b1c2f360c7a77bf019885bd70353a92aa698b9c22b7fe3d6b",{"version":"033350619c2cfcbeab2a483f4b221e0866e17cc4ac514240d285d35c35eecf7c","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"b197fb2d5fa71cebc66e5d10e15c7d02f15fcd3194fbdaafeb964262582f2a82","affectsGlobalScope":true},"1a7f593d587f49ca97710c021c453ab1b95db5e39e58567f4af644f97a5fb0e0","dd4705d1d78af32c407e93e5df009962bed324599d6a5b2a9d661ba44dd99e43","3a02975d4a7034567425e529a0770f7f895ed605d2b576f7831668b7beea9fea","7525257b4aa35efc7a1bbc00f205a9a96c4e4ab791da90db41b77938c4e0c18e","cf87b355c4f531e98a9bba2b0e62d413b49b58b26bf8a9865e60a22d3af1fcd3",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"1a08fe5930473dcae34b831b3440cd51ff2c682cf03bd70e28812751dd1644dd","affectsGlobalScope":true},"6f3e00b838cf23f7837ffca5da88ae25f0a81742af9ccadce5cb85ac72050929","304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","cbcb993f1fa22b7769074eb09c1307756e6380659a2990d6f50cfd8943bd8333","55a93997681797056da069cfac92878bff4d2a35e61c1c16280ee0cba38702f2","ea25afcaf96904668f7eebc1b834f89b5b5e5acafd430c29990028a1aaa0bcbe","df981b2ce32930887db27eeae29e48b9b841e4ba0bbba1162ebed04c778cd7e1",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"3be96458790a77cb357856dab45d1cc8383ac63ba4e085f620b202fb62a6e1db","02d85d03fd4a4f63cba0b133f0e0192368dfeb4338bd33f87788a4f6302de873","bb3a0ce56babb71d7c208ed848b4aafe545e7a7e06304fc0c8cfe3ad328cab7a",{"version":"43bb766c0dc5f1150021f161aa6831eb2cc75dab278172408515cb6e47f697a9","affectsGlobalScope":true},{"version":"8bcf09ba67bd0ec12a9f1efc1e58e1ba2cb1ff78920ce6cf67ebfe6003c54b82","affectsGlobalScope":true},"13ce7518e39051544dd1e3124c185665adda05a5021676f2606c2c74ad2c964f","4ac5899be65d5e2cabe3aaf3dfc2cf7641e54dde23db198d9f683dfabe228145","124dacf89c97915479ed6ad81b09ba42fd40962d069c0642fed42e2d9719f2ba","139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","ad06959073c066bb9543ef9c1dee37fc3140d2ecaae42b97bf4e27f2f03d6511","9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","782abaae13e868dee4ea9c16d44499af251d112fba535c558d10ff5279b34678","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","98e7b7220dad76c509d584c9b7b1ec4dcbd7df5e3a2d37d28c54f74461ec0975",{"version":"c61b5fad633f25bb0de0f95612191c1df9a6671cd66f451507b5223bff41b50d","affectsGlobalScope":true},{"version":"d21966ba3284ade60cb94eb2c533ab5b2af7fd0b4b28462043f6ebcb8400bd21","affectsGlobalScope":true},"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","b8e9e44ce8eba70af569523ff31d669cc239a93f548899a259f3224392a75e6c","005d1caa2a5d9bc096f75b598d0fd184bc848dd2665b050a17a17d5dc1ef652d","619735e4e221e1bf137ae3efa5330beee4a06039dccb876c822f9d8913a392da",{"version":"3560d0809b0677d77e39d0459ae6129c0e045cb3d43d1f345df06cf7ab7d6029","affectsGlobalScope":true},{"version":"5ab086d9457abbc69cca270e5475073f2e8eb35b2fb810c516400de7b7c7d575","affectsGlobalScope":true},"2a2fd53f2d963624b596fb720b390cbfe8d744e92cb55b48a8090a8fd42a302d","1f01c8fde66abc4ff6aed1db050a928b3bcb6f29bc89630a0d748a0649e14074","60223439b7ee9b26a08d527cacc8b34ea6c6741589ef4949f4669c9aeb97978e",{"version":"48fffe7824c2e8cf8c812f528c33d4c4f502767582083df35920a7f56fe794b3","affectsGlobalScope":true},"561bf7d1d3163db272980f9167b4b98f6a9ee8698c5955e9d9584e84088aad51",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","908217c4f2244ec402b73533ebfcc46d6dcd34fc1c807ff403d7f98702abb3bc","201ced2ca97d71fe47afdaebc656c2fa63ef2784256e4dfc9eb83930f7aac2c2","d8b8a5a6bf623239d5374ad4a7ff6f3b195ab5ee61293f59f1957e90d2a22809","35d283eca7dc0a0c7b099f5fbbf0678b87f3d837572cd5e539ba297ad9837e68","ad177b0f7f54b6bc55c05e854ebe18075b4b8030dce7f0a01d8bc94ce7e144e5","26ec2c615ee349154b9cdb180a9bbd2d3e28a2646242e936cf79c1a44847ade7","b0e9ec904636a821b6d2d9ef8c5331f66e750fe3bbdf43b5b358179042757516","41d59467489efb9cb03bc7f63759520fd2d9e9651c012d2b9b25cffad1aa2763","d7e6495f73dc732649734a1a7622ad61c2e1dc37a9a03dc56186c77671c02d4a","a489abe827f2079430bc57a377048ccf7c8dbddf093327c53ad16573bb317bfe","38f65900b274e6c71b01a715591aa017080f3a88bbf2e3a5ae18f3f3b2228cb8","441534fba664b3d050296b18c66928c6c708a026c2d97a0da52fa67bfa1eb0ae","4203cdb6f594c89000a2c999bf46719d8ae053e5e83dd755bc2b9404b3fe2b90","04803436fd593e3796dc47bb4829040672769798f6b7f9c0febeef3c5832abe2","7c54c4b7f7752b0315f14b9ae63f00d7a3f39308e598c670d8a96afdcb8e0a4e","9f559e612c27cce4bc181decc88ba90b00e5be42b6ed7fe9316d6c61476d7439","03dfcf3d00c60a769e705eb5b080c3674cd59ae830ee7ad82aed8f1883f60f06","ca8cec5a09c4323e1fcd9e0f0f84727c9b0818802fabae4ecf7f42a380483037","92d06124389a259ec6f17fa490dd2da4a8aff8fd9055047036e63211793a556b","aa8c0e10f176c156cfea40f5acdbc08cb44a43ba5411c743be645743ed3b1c02","b1bf7de0413303c8bd9424cf4955b433606e90eb31339202c8bffdb1dec982e9","4d3dbd2452166fcdd12b710b48e94c98d9fd9a7139224d463ca453d2c6469d08","7d287e218096794119bb5efaf874cc4f14a9433b335d65ee04497bff2dc19a01","cded33ec25ece8f3746baf528caf277a45ca031eee8661b92b852218b6eb4a96","ad177dfe0b1c89f97f18722027e413cb048fff1f3b44f0db7f50a1f80608d0e1","b97e444d4ea440dfc03674d1641bb45389238a751d144a09ce847115928f7e57","c0e0062ea271249864316b50067993003ea1b0e57b26e1b47d5e9e94721cfc14","bc1b3316984e3e39f892e135c0a709136089edd270a2392a5b06adc34ce517b4","daae4740ecef5062aca2eb56fc94d1d46d7f4404ecfd961b38aa841f24042507","cf2d6cfbbf84b12eb429548ecb93e0d3e72d741b77eb712e5d23bd4390e02843","8c9526cb31ab9b07a080b8980f364d505ee621a54ffc852adbcf803c65accd04","0117402b14016e2957538e19bcfceaebcb7a8288b4624c60f6dc3d9b3641986b","5afc85615f4ea54e9d539bdc1db767821084048bbc2fdc419e3ca63787e8fb32","fdfa6c90858e129ed221f1ae7e6729730fd9042c8c9e6f0732da861dd42b428b","d8cccc04d9ca91b37549b6715d98e1d3cfb6d8682f24724ba1776df1299d3a60","2072ec6a14f4f94dac4db335abf2e16c6ab7631064238de856b997b16bbb7c43","0651fee832187db4edbf19811cbb7e816658f7d0de5b3590ef18522a5efc8a9b","584c885bde6367eb1ac576b999946a2aa115d19438195703d242d5217d7273a7","0e86848036c32df7277868cc13cdf1a7d1659a6813c8d74d259c3752b968c443","e764dc7b4d12d48ab6e517f6af3b605fd4f31bc803b55ee099d9860417ed8246","0a18c9bae324928ca997b952b804ca4976a33425783f46e25f78d2d96c39ee05","c88fda77d48cbbe4115455f02c19f6c7cf7d6c7ef7b4e4e969b998c6bdffcd61","f5e59566831de4e32db5bc86e314f242aff771257496728c36101cc895a7711a","fafa7628d3f2549182cac255117fa18b8d1f6e85d2b25d7bf6b998ef413c472f","88281f96533f664899e6964f4e67a1ffb02b3ef0c25da680811a655e6f3d95c1","219341297d0dcd99e9115b4bb303ef62e0bead9a74041f3c2f411af9c72d961d","4c2fa67aa9169526e6068bdee85449a86c11f1eeeb499038d9f54ca3411e3329","06bbba15e518cb1699d0ce24ee5fe64790e7a8fa95f56caace6ab825a90e1aaa","878a65c064b8425593fed9d6d9b2831382f4967f1968fa816aba151698c07e45","1e6e5c4b5a48261b939155a162d638f32dd2315623610789c03e976145f3740e","6c0284c824cf443208a3bac627195efc31a3ae57eade7d31909cd43971190ffc","0ae9f3746ba27d9dc123d19c6a34e886dac9811d393cb974aa5392053bb0299f","f57e7d2fcc75db5badbf465136d0d4eef96e69c49f9476e1ac3aef6dbafa57c0","092b6598b2f3320c6fc8b18827fed3838b24dee00c8a9a5ab2bb96e29151124f","4d321ab8809c40bdcd1d36a2d9327e559d7827fdc5e5aa3ad5a004a9af2c5a27","a9c4d0da8394dc50620dc9b3aa126ea3716de9c01f18d57c04ea7276aa1547bf","e13744b03b525bfba3e6d84fff89c0689971ad004d213c22a6529a3f77435e06","c12dfdc1dd2279c9f21d17772e1118574bbddf7d7a01af915001e7b69e47d80d","0664f3f4e5a67eba5301618f48849d07a2d0dfcf98cf09a91aaf6c33979fc8ad","43935f5037bbc2c3845204457dcb2b38c3dcec8bd4d502fe4de38ff15d5615fe","7a2ec4c6f1259dc8816e3d61022c11a4b8b0e120b349cb3c1a4af51169572d73","1ebf0e7e0b4d04e888b36dde981e8d56a7d800959a323b67bc2f406669874649","feed61abfd5f957b107c70da03876d16238907a176fd0f1dca08d6e3547363f1","75119379e81f8387f2f12a93894b9eb3f80e7a7390f405d8cc7f7ca1c5eaada3","cf5ab204b02a590c0053b91ab1dc4f467b5586dfa915bd3e823a23dc3f053c56","2f112dd95d32f4c4bce5c8577bd87d4e3d50cf1f46a71a9d0f21e0f84321f3c0","5b2e0662996d53a826edf8eee21204c997c19b2394db0ae88fc4cb6cfb03a02c","8ead8384ea346aa9294f889b3bded7411dfab1345159dee07435284e63dacb4e","75ea7afcd4f1ec243272571b02131f136ded11732395f4a89abaef92bd1c2512","aaa18970d00857cbd51518b32eeadf0c107be9325e2f0201c06aa17fafa710ae","e609664567f809798c9721cf95316abbdf1d3f0429d414cb537526c3b915febe","edbaefaa7f1f32a860c40f18889e5c9f18d2c195e576c2ef475ef05f4f1b57d4","88018eb915a59f27dbcfe3c23dd2e207a4effeaab3ca0975b02d2cd802626be6","0c98fd2d9101313884dae67024698ce4b4ec3626db891758d1a3a6ab0ec83b7b","cbdc7606e0feb578ed14ea5cae8ecc3c2a146e2ee143b4804a672cc3937bafe0","c10dded52c07335db3a6b8156bd410629b4ef4b45a20c27f220e61a70445773f","9d6f70779bfdb03703e55c28fb06762dd65b5ce982808c8593ba4116c0b6cde6","4f7b691dc72305cc0aa2d22be0da8afa84b682dc1e32e75bb163414c9b3cbd9d","4873dea9167ef58cf41f49442c562a18808f8ecfe1352c6d3c5dc81e8cd35a08","054a083038b7fb38e29789af1a26bea25ac44e294d9e08278d820e7ec2fc6aec","8f72ccd85e2128aca506b81f14c9a0a648e66c4eb5f3cc193690ad2acd5480d5","b805b9f5020f2d88393ba2bdf31a821f2ffe76fb82abb7548d82d921fb311349","f19b6232a8dbd9538f9e6fff298b8076d0672f5822d2185d7eec9cae599d1d61","714fa22403d0df4c2a668ac3fd911ab88f68e4282bc9875e8fad5cb34f9addda","bec7cc680d2a7334e59bb572de9fdea196a42be55c4313849f9ddae0156f6eb1","f28e01b58dcd10cdc9239b4964644435f329fe6d6256677059f43c1a3f9e51a8","a77b75f1ac3ea617d34ba03d7065af6a0d1f6f97ba9d8fecff7625b93451567c","7c25a2662139ad3230862d458aeb2c69ecf0849b0462e5f65e99ba32bcd59139","2eee2d01d95e8855569adc2b3c80ca41a8d6056eee4b0d80f8b24db80ff088e9","cb2f415bbbee46ca82761d8adb4f0cc3f4b4c31a3f2365a8988a87976780f259","2099e7c76060ed954b53b9b1d6bcaf90dc90bcb9cc2d8f19e3cad3a4eee854ce","f346a76dbcae3b99e70c60864e7fee4cfcfc426fb0f71118693eaff10b914726","5a08c5b7b4a9e7a649c8b1e62cc35ed6fb7f10db4379aa905237cfc3a10e9e57","1c55ee4b5d547aa4390b96df6a4d2c10753b2ee2feded87529c5b7962eef7e52","b6e465de1852a328392b432b13ee8334b209f3493053e85aa8f0b5f78368d634","e9b16b70ab0ddc251e2b2fe6f6434947d740eade52f97da7422d162d262d1aca","dd881bea8b6fbef302ea21e97bda30e6a1a3048c4b19dcb0e668872d2f928eea","2a265e9467a8bd4cee176e5a4c11f0ff985983ce232bc09c3d2df7572e2bc510","2067d9de060b5c0d3056ca498565faee795516cd043e7ef7921a5dcb39fb1c8f","b8442e9db28157344d1bc5d8a5a256f1692de213f0c0ddeb84359834015a008c","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","4f6baaf93d43c3772ca8bd8bdb7cccfc710e614135ac8491fff3f6f120497488","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","b4dcc9b437aa35d6ff7fd3ba85c6cbbdb42787b8b253b9b683af4270a1e78229","01703712d256afbb942d936d0e02a1b0a875ba060ee1ca2ef423b83ef834245d","02588958200fede1685074e5fc2e30f3644f21fcb38ef3949f1cb9c57f1c9754","08955a210c63ab8cd7e27028403a54760dcf9010b401946664627acc8d14cd4c","0baf3b364a794c5d00e97fdfa6da7298ce3533cbf4c7b0b3d831f85936d75aef","6c9bb2e6a6bbd1f2a97d23ffa80f9b583f6883a92e670e6f02ebe20234e2509a","d220213d35c376ec9e8ad27ac0f14280f270f13ae3d323a226ad4435810707fb","09b369e0621728733772ab1277891812cbfc71f0a0e520c21b55c3bdf4e94464","2936ae87e948adcccf09679bd31395bf3c2bd933342b312b6a61444552fd72ee","161e73719adcf55a378341b87611b146ff76b96c53c228ad0c9e48c876bcbf40","024d77dfe9faa588e031051d5cc667bdc77ff521f84ee0d39186140fa1704149","c95f7fc243bd30b30ce21fa0712a198f5d24c86d5fbdb43dc6563942141b67a0","e54ec9dc3a1aa7c27abbf1924ce0bdf4930b67d092495f0e4d3e2525ac5f3008","fdf618d99943480d700e294e9da3d9a70772ef88cc3149630442377d5d1cfc06","59801df72e607b9cd847a41614d86449570a8af759134f212c7a306ae4e26205","1da58f6ef253ba1f6fafefb7174c008b794a1ec24dab7e7ac1ae5adad3c28e70","9a664aedbe50d6bef1ea688442d21e91f4498b587c017856c5a39fad0ac36929","0c10ba41abbf1754e0eaf6912ce95a86cf43ba4229a85a88b9ba27f956701507","e0652a60c6451d0ab280f594a4e3eac2651d8e135dec8514c68f480781569f77","08a80c8e6621da115605805b13ed0ffd38fb93f9ac4e38f10263c21deda53e2c","9f52a7a1692f4728eed184232c433e2d02873c395a45166c81b143c41a091000","5d8dfca11555499044c9bdd515b59396fbe864732eb2ca7d156c59f0a742fd76","0ecd190758a8434b15fe652a69ddf619c9e83d0cdbe353c5ca55c97ebdd783e2","7f600f7df7cdd0d750380b529896681416e977ea51eac877d2cd75bd619a1ae3","fb4aeb10021ff392e3aa497f0fa18799b3c603c9ae034a393fdab91cdc3fc1f6","a0b0ef3f75da9bd7e72f9da6980bed957f1fcd53c85aef5de9e8b640a1cdcb55","02928426a0c8bc29945962661239cadf70aac44e7685afd5f807b4e46d40ccf4","43b74cd1e194e8340c4661cf0294d9d6f3051ac5e52642863df5aac148ad1b4f","f962ee9964e9dcfc80cd4a61e8b9f9cd161f92e2aafdbcd7ddf9927741ad1d84","7c379cc6f9af849bb2439876c00158771ab9119b3ed3a9500d3539fa5da9e829","6c6e9c75154c14e14753c084b94db2581cde6c895dc03602e75dd28dfbe08de8","8846233a5356c7b55d17b9942807ceaef13a0f275516e903a142546326344984","1139cf5b32dfe46a8c12aac2ec952ed904bee8667a18768bb8d212368f90d2f0","745aaa702c93bf76439fe3618ee45fafbcce611f7e4b4e6ccb16e38594485d19","5d2a692828fc7c45ae17d8365c804a25856ed5b6bc8c14099127ca47b8aa48b2","1f756cbc2254e2ed8713c109edf5b1964973db46ece3ef69ad11f1dbf80bc2ab","e6306d7a91c17b6de2e7410ca652ab73ef7b5883afdddc6b6297010cd229d3f0","207a43eebfe8356440533476faab439b19c00461b03bee8e70008c4d1e518f30","a5c0b0e678a033ee4025a095a337bb0403637627e9e18e46b8c6cc09621e3ed7","a5272d43beaa44024ffcf5450353b47540174b68455b6c149727f8f6402ce215","d69a07d8091bcb5390d4393256148d3381ad2435fd192f2b8833f34c47cb74ab","cb684bdb19095840a5bbfb24a82a632c6269c137994bd002425fbd8dcb65c05e","cb684bdb19095840a5bbfb24a82a632c6269c137994bd002425fbd8dcb65c05e","be1d8a82d0bde3217efe382aa3b4ff21a9c5aa44d44de4ecbd5a2bb4eaad4705","cb684bdb19095840a5bbfb24a82a632c6269c137994bd002425fbd8dcb65c05e","cb684bdb19095840a5bbfb24a82a632c6269c137994bd002425fbd8dcb65c05e","514f4a70623b3f1124eca1f5507492941b2dd929966587f9a84d7758d823c147","5accd07c641cce9963403ef33f084b6c8cab8e0241f94eca737cc46c48d63257","473f4e83f53e227f24864810c47210877e3391ac212cae359fecd6df5e43d6ad","cee0de1066a660f586561771550185c4943efe1708a8797fd301cb7f76a2c890","42e2245def71bd63bb5ad35430777e3e1c1be73f34e3482a3fd8bc8ba679818f","cb684bdb19095840a5bbfb24a82a632c6269c137994bd002425fbd8dcb65c05e","cb684bdb19095840a5bbfb24a82a632c6269c137994bd002425fbd8dcb65c05e","be1d8a82d0bde3217efe382aa3b4ff21a9c5aa44d44de4ecbd5a2bb4eaad4705","cb684bdb19095840a5bbfb24a82a632c6269c137994bd002425fbd8dcb65c05e","cb684bdb19095840a5bbfb24a82a632c6269c137994bd002425fbd8dcb65c05e","514f4a70623b3f1124eca1f5507492941b2dd929966587f9a84d7758d823c147","5accd07c641cce9963403ef33f084b6c8cab8e0241f94eca737cc46c48d63257","c1974dbb7f571150aa86c6215025f6cf18cfbd73c0c86fae386aa3742262f781","150e236a16e819077d7296a2636361623efd36a5c7ff3f26e8dcba7512f27ded","e0b08d08794af1cd4a2003ad92e23f433d771ffcf5f2ad311ca194c3f1ecf8f0","d02af0c45ce5c41ed448c969cd73e14196cb48871d85b281f4440669c2458ed8","f90d0c7fe2c168261737c9bf9366c9cab1296717557143b0593ffd78d60c5652","d17eba5f633b0900b81e08053f00fba24b01541a1ca5dcf70025f267263dea85","387c75bd8fcd657fcf3c1697eb907b2ef811d139f86534bfe8d4012175cc65da","d84d056802f3523061c1183f323cc8083e4e2e7694bbef2342b717c637d6a9e2","55a5c89882bfe19926f71ef2e59593433323622ee5a60c2f925d2c8ce0fdef0c","b52372c4762831e5f56d33650a87c86b14a3382f206a7e5c19b1d145c4ad1d69","091cde946ed01837b346727023da5d54edcc7eb44a6cf82dd959387241ad8311","091cde946ed01837b346727023da5d54edcc7eb44a6cf82dd959387241ad8311","091cde946ed01837b346727023da5d54edcc7eb44a6cf82dd959387241ad8311","091cde946ed01837b346727023da5d54edcc7eb44a6cf82dd959387241ad8311","aa042f27496dc46291cb1b4f13ce114e4c7b91f6ff962d185af8f537ce51c4c5","2f9434140ef633218dd53551d53e4cb68c1c85544b50ea5a1a1bf68b0b87d4bd","dc9c91705813fa9362d15b26caa90d639b943ceddffe8fb1b54ef47445b599f0","e78112ca3b5452d442ffe497a5b1da3660fae7a515cf09f08fa5324471b0a375","3632ce42aa8ba4bb78185a3db704f9600a355cc1e30751fd9b448109e1209413","3290aca7c9b93f33be0108e6c87f26e2796ede9ab37e8340a0db596cff8e6099","29bdbe19addf0ff03a3ae18bc7ff1e95f12ccd2bc139a003422a06736c4c6071","3de71d7e507d396ed99d525f837db19b8c5eeae2f28778d24b267d021c0fa3da","aac141d941379af79daf286732d46e869299e246fcca3edd0bcb8dfe98609367","b4f81d08c552ef4427bdaf4f48a64dc589fcf2d1a606e2c07cf9ca8cc2fcebf3","11ed75d41d8a5e98d0fb47742c01b1504f4befd6344c7608333c436b8d2b15fa","f6cc241ca68363a83c574d63fa9708eaacfd2f87074e6f18e3e3a242fe54d76c","0fd0bbef56c42014ca854b70a76a32f28509eb5fb486b3b6afef9287aedd020c","44494c7bc6bfb837bf1c9e3c0b089b51d227708c7bca8338cc249e660ec71a3b","669b12588b09cf9025cde60306e9cc5c685a3e1293fe97b56ce45a9f78bc7cbd","2f1f82856e2fe5dfd48d7cd15dac8579804e34423c8d04b96f2aef0b23ce4bd9","7d630f207a66aaa4ad2e3e5e6dac1dc40585ca012ea60cb8ccb292e425882899","cc42f8b3aeaf33e44edcc6ac736d81a1cfb10611832d25701ab96f389db4adf5","51858552745d17efa808ac92b37b0ad7a151e0a4dd2898987e0ddaac43ed875e","3991442ac433a969fb5a453979cf62917d3997bedbc508525ae8e439523ef76b","e5d0c5dcdff8b4b7dbcc1b1d6d06fa2f0905a33869b8cd0b8d3dbd085d7b56d5","a85b6368a73819f345b8e75cf73c5dce69d41fd5984afbbbb70de5085fcb27c0","46ba72d2350cc0bd82f6a2a80cf0a95665ec42f2e1303fb0a104b0622df2a320","3814a023edef4bd7ce0b5ff309ba955bd045779fccf87834acf72fa3394afcaa","9778da922b0fea985c1c57eed0294d3ee3cad4af31f7a1af88eb19e90495e976","e7d2e8448600b8605597199b1d83c93db15d80367a03e0b58ac08ef76cf9d237","85ea7c3e9f3b7d93d11e8082e2aac95a0c56c28cad863108d94ac7660027e23c","6dd643f03f95644c51ade4d1569d4b6af7d701d7cc2b456b23c0ac27fae63aed","87d444caec5135116657d8cfd09fc3a9a4a8bd1e375cc80325459de4a598f22e","1ecd2a7fd8ba4a1d18c4933a2216b4ffc1fcbc5f97ce6cbc55f5588b092dcf50","272aa6064ef79f6d561e1111cc0269f0daffafef6550c59d42f4b235d362de71","d3faf237654bb007931951f8a783b8c1982a3a62659ce6833d23eefd1bf2a7ec","9cb4625b02253cf3c0818f59c70d19c542175ceba18ec1e18318de0bc0932727","45c48571bfd80f129ef9e5f143c7dc8f228b381d87af7cb9a796f4865b30bc33","e9da0698eb51c586e4f210be87cd7ce957d403517dba89b3697fec2f539413a4","5a85c6c8966322f562748f32a0e30ed212fa08661d4d8759ee56e660fd04be9c","966f01c60963e2c2e1a455d187feff969fd13768dda55542d77bb57e266910b2","6e6fcdaa0430e3146d284a497007168aaade41e17c174faf6127b477df6269f6","148ad7e52856c6460d8d3b3d5d591dec56f079893a2ceea50f3e2d5cd0d8123f","6929240c1a63a9b345c994ae24ffb36a22ec635289edbd022cdc56cc0d594f36","c0b13d633194ecebddcc6ec4579f2bd1b76aff9af6ebd59005b0488a7dd83669","0c2323f5b4f199bb05dabde25a2482a54cdd85ae4a4bda168a117a704bb216cf","bc5004d0f2cbd492f1bd751cda5676b4a509d0d9491e644cfbc787fe7a1e2702","db44af901ae5759d2d93c3f08eee22aa657dde26686aaa52d7c804605c3487b9","b4e5f7d51cc72f51759916b311f42cd698f45e95b22305ad285aeb4cb275e444","ed1227c3fec8eb4708eb484c48f14552a0af67bec7c710d009310f672ec2793f","b38f7cee19b160c8251568112a7e4ccedefed8f8c4e9a34e19b9f942858cdd7b","7ec2d9b26ce9effad7d2aeab41bbbfc1436cff3c6a517da53c78283abc640952","bed94765baccbd1c3a797d09836ae7ecd5a3408cb7bcf8d39262f970bedc3a77","e34917229731cf48264fc6f017fc19ad302ac3510e5ec02531711e23da2a5e94","651049fa0972283d78f0c77d0538c404c0da5beed42c6d75674b77ab72d00b5a","33ca55bdff472d604b62d87cf15440de57d634b27da84b457ae13ab106414a77","3bab9cee88b35997ebfaee02b0be2dc886906742703450d7c54ab495a7f15bf0","c32fcc19f4e09acb11777b30551ad3633fd1ea542d5ba7d67fecdae169af7772","628d5f1a3cb47e1e0a4e412e52ea0f9023bca323b4f262b8192c44c18cd61a51","cf8ecf700c61a65ae573b6aae0bb948093335fbbe1dea460c2ccbb66af9b8961","55d25596b8fdfb23b7978d4310ddff41272532665336aa06b9c20dfda303ccfb","a8941a736f339b9e01bd14f54ef9fd609e1fdd77aaa25b39929a86be1a001a19","e47d2646747719745b853a1d4965992b0ca561b716df4236def971dcd0f72ad7","d8bf6cc6685770a5161eb8f7039c534b062a91194e957e0a91963f8eb0b5efad","e6335267b9131d5c2fc786299e1c2e47a00a18ccf320d3d511886c4ede97838b","73483d8aff0568c8a43cd8a058557321caa6e33d5a74f957b539814099f85a9e","624c629f0ca9841d34328fe0917bd7787059368c41556405113b68486a02caf0","e9f97992da646e9348db339e43bed2fdf17b9fde2e08366a8c5e448b86236b49","9f105eb8efa92b1790f6597f9f9690852b791f493c3a7ec1ee44e96855875c59","86358a59414b2d04f631c5522debab6e464d0b5c8ebec9b53bd498c7f9de0632","c91910fa1f86a2c73028bab243f4e85653cec3ddb8aae8370313937703f743b7","90336ad7c7fe8fc629e0042e6b5eac5ceff9c76747493ba7fafa0b858859c649","f8f1d03a34670daed95bea687d2c8067cb1d7941933569f23e617b962269ff3e","d5641cf50d95d566fda5028aae68d253e9679e1aadb7ea271d9d22e26e00435a","3d6a528d32311a248d6cc1e09a4889ccc2a62713707e07844b863baf3479d793","31cbcfd72fb48adef8ce7f11a63fe5428f1b5cf454df83da43ff18f0eddd556c","604937003cf83f02dd9888cd6aee8762efca24566999cc8bcde14e83101e70f5","65b39e236cde641f9addb678e4202cfdf09f782085275638d6debb5fbea7cd88","4c350da5c5801bb9d416abcd94772c90826cfc7ca4383550132f5a49a5eb2d56","fcc5a89ede2c8ff68f8e8062110282002f70d8886ad8c354ae263f94a38159d7","f86eb73d13209c9249db7a47cfe4e74c46444e441963fd0cc135e340c2200e90","f516fdcb9a2eae646e174cd65612993194b2942268eadcdaa2d816849c693214","7fae0276759948d0c8d2ed8b940bac5b07fcdf743f271ae10a30c4b51fe4f25b","3483f3ae0e862a79ca5f64d1d2ea0fccc016ac02e5c22af069a57b6e40e46851","96cdeb7cd7130d5a0b14f72a7ee3e73641af6d206d10864b08e569efa31ef9ab","52ae8bfb5a68fc0ef676c6b3d13cac3a6529614cbe559cc56ce1744972213b86","2ad989ff17358752b287a3d1ed6608bbf900aa7f58deb600fa2c76ee552ce908","fbd22a67048157ffc461778982b9e2c550e6d0448c08afc0d7b6712ae0bda616","67d7960e6f65d532bb1eb991737944d6bf6fae078c85567f8cbec69ff73f6a0c","1b0d2ef2eb36061a98643383e45a59d74ee1a3bec34a61f1e28e9bebe3ce7c1b","eac70049db2d40f927a4cc614627c56f534ddf683f6079a2ae6985e9a6ec03e1","4664629807e6a76bcc49a6f723664e6c77b4b6603af26c61f069eb3b825db11a","b811f741325447b7dd02ad638794131090d37287f07aaad1a61b6efb54a47aa3","f7cd1a6098c129050c4035e050740d02737484a12ffe9c7d4ae5a1b3814d8d74","7ff7300645bfaabea0c4e1cad546a4a427e19c160ae537cf14238457d5d927e3","f5086c21a700db6569617fb974699c4fb45d8007d4a698296b8dc313bbf66f80","17e4bed3493f531e72d7418a42d66a8ca286aacef83f08cbfea8c8fad1530773","35137f006eb860c963e701800a307ff3361624bd7ed80f4a250b87d0f4ff14bf","b00607a60eab8b9def3ec72a89c38f53a48b148b93e4419648342afbd582e91a","0154da801b0c51b847f7f351e051409ae340c26f7b069096ce4864283beb2341","d410aebf2402ead6ca06ed93d63647e1dd14576ad69098198b5fff84f4a4d4f1","342fdf807e959d8d8778cad55709e3b5d01743bc270c309becb9106c8e978115","4dc1305d01115d834046116faea10067618f05d0d2c21c5f3345d6aea759b55c","30652b5875484403127f18f2f2ff219066a99bfc6c7fe7be9bab53ace25eb391","8f9d45ea20dc7dc09153b0c09278e8c163d5c2a862ff6c73234efda395dccb6f","598d6202e5fd3e823796e1fdfd3cf6411bd97664d7cbe3c6a30258371ec4d868","e808375832ad37f2ce07b5942d2b99654a8f88d7766916ea42f490f26f0fe3e6","8bcad08202cf8c46cdad31000f3483fbb84aafd45b6dbd2a68700174f6deea0c","c2410350bd27eaec692b10c89332002edc51ca32c0c1937e53b07be890e920b5","eee8e64621f790c959b085ba70a79d5c255ba5050b3899537c03fccae533f9fd","4fa6ebb37fff78f78ec47542bda3a048ca73701ab21914be75b5c5a629c41e18","f26ab26b158bdd304b155dab89439515c327ad9c105d6be98f470e58de5edb15","7396cdaa52e479994d89e140973ee1b3efc199522e910c67362b25deb5dd69b9","2bbe8befc1e4713e44367b9a3f868c61a6c38ffc3138f24592e2c163f82bf60f","62519b55ca3ad825b412aa440f49d06323488068ba05e8e22827bc3a6fb172fb","9989d849f0c09e79a8a1cac3244c990e4a53a119755ad7a163a608023bbd8d5e","70d408bdb0f05c09bcf4235f4b413843119afccf1dba6f35196e03ae7145ad1a","217069060e4d0ce0a115bb9fbdebc9e7071eae98c34c3cf94c4bf570a7e9a3c9","57e09123f822ae26ce5187b917002b7016fdc32120ac35eda8e6d84f3e3b6491","1309a3d5e8ae3959227290939c9e3b5e34fb2e6cf827cf5904c84803d8df9aa3","8f9663d702e09cfb9ce295b7a4fa24bcc7973d87b58234b5ed326433abf6250b","e512f35cf56ddcd85544ef5d27ea7091ca2047faef8965892047ef82356ede34","27dddbe3a7e8f45bc30547499461c74851580b74556570a4d7daa90ba90e2af0","ce0c414305ae2797f220adcd5e83079802d0b9879e62ca476f000b56a5d31adf","67918f0ddd6271a88574dfe495942f4a6e982b9c3c1a2ce14c273f103691394d","2f4f3aece5c01070a10f3708b37f8569ea3e3bfbc1f7ca9fa55ea041cb92e85b","04aa340185286cd12f7f392424271ef5499b91575557fdd35898633690bdb983","ddf40a13ee0a3b1f83caa330f5ee6115920fe3ecba6edfe29b67bde52d87481e","244bafdf8ac62ad1b3a98af182ceee430cbc92d0c16080fbb042cb159053e30f","0ed25fd918b5e6359c52d7beced6cc9fd10508fae64c799378b2a29d10de05a8","3a8c6198259d9e862beb13d04d5ab74c3727d2d55914c6e1c070f7717d709834","e35f93f71617bf21058c64b190e08bfd0e93feb0d78311d915d61fe181d163c5",{"version":"7323bf993459924839090b740cc86783a0709312c05c69cd77fcd9c054d781a7","affectsGlobalScope":true},"667dfd5ba3cfca47588abe5ec0096643d103d16a4b7fb9c2f102c75fd78a5b72","de9ca8fc26dd15e347a0a909490bd0fe35343c4cdbf45632a6606f63f2f7f32b","fd62ba82775e3afcbe8e8fcb497e63a65e06c6563801a3fb193d6af6bc7d0103","c2ac97e30071c8e70a96c729bc1d5e1cb2b3779da836b61fa25739f6982e6d5c","9826b8407f63f87a42bf25e73cc61444152415f826135c6b309f496654438861","8e35102031c6b2820227d1fac1b7260b38b20423b0120e9219538754b33de110","f4e262807c4a822b1f38018eb57ca2a90ebd93f121bfb08cbba027ca442aaeb6","e993904c9ef891327f8254695eaf21c12f14246e3be4f072c8858d6e9fdc06fe","051ae0b0bda811703875e6f2e466b9344cfe320b39087676327dc0c109f26d32","b85d57f7dfd39ab2b001ecc3312dfa05259192683a81880749cbca3b28772e42","437ce3def325725c84c242f916886e634ff8f133356ea88ccb4bdd425792bb36","80715bf18ca764f6e69a5ea025c94a7290f8f39295d4051ab25f2e9193a66cd7","375387db607fc72d59f4e65e3cfd86cbfa636aecf33d9d4c6015fd7d95ca42af","6462d9c1943546c9858fc559ccc94f68c47ac8d548f832e1c96a0802ea7b337d","b46689d9a37baca71db92d0e69f6dcaa5228b633a0120b37029f76ec9a3a400e","b11964decca4dadbb2e2884cd19bf785a080835ddfbaf750c71e6a5ec2a90268","aa88207d65211eae5dbea48ddb93241b2698dd827746178643da347f7806254c","9e991934ca4bc201ddf035c30ee28635d54c6135754c6b3baf5d5de773b24f54","496255e4f82535ed884c38dc5b96f65e8278d6291355f9ebc7f16015b7314c71","393b4238310576b017b6c086fa28b1d3b31b12d9431633961ae1699de1db45ad","de973d509cbf9bcf9985deee185c8e401ebea55dccd0cf74a7ace7c2aa399256","5fa23eae934159e9927ad582daff337b060ac01c9ebd7d5debf4abd5b16cb445","d5177bd871ae79195bf175dce52200612c2aaabcd783f8bed1a15f9aa3210ef8","956be5bebf8ab24942e555cbfeec93286b28ac198c9a5cd03cc70ae1663ff7ad","3e81b38f3c2864aa1cc26582faaa4c16ef19ad5eceb8ac6dfb1aefb97134ac6a","8e4a9882aa648252c10535df886b06611836580c6d639ebff5f304447f8984aa","269d22a253e4b134b022e9a50aad4b5327c385d6dfe55cb9f28b95dd1542e5a1","dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","42baf4ca38c38deaf411ea73f37bc39ff56c6e5c761a968b64ac1b25c92b5cd8","d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","8718fa41d7cf4aa91de4e8f164c90f88e0bf343aa92a1b9b725a9c675c64e16b","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","7852500a7dc3f9cb6b73d619f6e0249119211ea662fd5e16c59ee5aba3deeb80","1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe","037817934c90357f71eea18fb643b1fd7e6763fec011f5da1f0fb17acad09d62","963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33",{"version":"271cde49dfd9b398ccc91bb3aaa43854cf76f4d14e10fed91cbac649aa6cbc63","affectsGlobalScope":true},"2bcecd31f1b4281710c666843fc55133a0ee25b143e59f35f49c62e168123f4b","a6273756fa05f794b64fe1aff45f4371d444f51ed0257f9364a8b25f3501915d","9c4e644fe9bf08d93c93bd892705842189fe345163f8896849d5964d21b56b78","25d91fb9ed77a828cc6c7a863236fb712dafcd52f816eec481bd0c1f589f4404","4cd14cea22eed1bfb0dc76183e56989f897ac5b14c0e2a819e5162eafdcfe243","8d32432f68ca4ce93ad717823976f2db2add94c70c19602bf87ee67fe51df48b",{"version":"55461596dc873b866911ef4e640fae4c39da7ac1fbc7ef5e649cb2f2fb42c349","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","247a952efd811d780e5630f8cfd76f495196f5fa74f6f0fee39ac8ba4a3c9800",{"version":"8ca4709dbd22a34bcc1ebf93e1877645bdb02ebd3f3d9a211a299a8db2ee4ba1","affectsGlobalScope":true},"a7ca2a9e61286d74bc37fe64e5dcd7da04607f7f5432f7c651b47b573fc76cef","ee65fe452abe1309389c5f50710f24114e08a302d40708101c4aa950a2a7d044","6cb35d83d21a7e72bd00398c93302749bcd38349d0cc5e76ff3a90c6d1498a4d",{"version":"369dd7668d0e6c91550bce0c325f37ce6402e5dd40ecfca66fbb5283e23e559d","affectsGlobalScope":true},"2632057d8b983ee33295566088c080384d7d69a492bc60b008d6a6dfd3508d6b","4bf71cf2a94492fc71e97800bdf2bcb0a9a0fa5fce921c8fe42c67060780cbfa","0996ff06f64cb05b6dac158a6ada2e16f8c2ccd20f9ff6f3c3e871f1ba5fb6d9","5c492d01a19fea5ebfff9d27e786bc533e5078909521ca17ae41236f16f9686a","a6ee930b81c65ec79aca49025b797817dde6f2d2e9b0e0106f0844e18e2cc819","84fce15473e993e6b656db9dd3c9196b80f545647458e6621675e840fd700d29","7d5336ee766aa72dffb1cc2a515f61d18a4fb61b7a2757cbccfb7b286b783dfb","63e96248ab63f6e7a86e31aa3e654ed6de1c3f99e3b668e04800df05874e8b77","80da0f61195385d22b666408f6cccbc261c066d401611a286f07dfddf7764017","06a20cc7d937074863861ea1159ac783ff97b13952b4b5d1811c7d8ab5c94776","ab6de4af0e293eae73b67dad251af097d7bcc0b8b62de84e3674e831514cb056","18cbd79079af97af66c9c07c61b481fce14a4e7282eca078c474b40c970ba1d0","e7b45405689d87e745a217b648d3646fb47a6aaba9c8d775204de90c7ea9ff35","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","bcfaca4a8ff50f57fd36df91fba5d34056883f213baff7192cbfc4d3805d2084","76a564b360b267502219a89514953058494713ee0923a63b2024e542c18b40e5","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","a20629551ed7923f35f7556c4c15d0c8b2ebe7afaa68ceaab079a1707ba64be2","d6de66600c97cd499526ddecea6e12166ab1c0e8d9bf36fb2339fd39c8b3372a","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","a8932876de2e3138a5a27f9426b225a4d27f0ba0a1e2764ba20930b4c3faf4b9","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","027d600e00c5f5e1816c207854285d736f2f5fa28276e2829db746d5d6811ba1","5443113a16ef378446e08d6500bb48b35de582426459abdb5c9704f5c7d327d9","0fb581ecb53304a3c95bb930160b4fa610537470cce850371cbaad5a458ca0d9","7da4e290c009d7967343a7f8c3f145a3d2c157c62483362183ba9f637a536489","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","914560d0c4c6aa947cfe7489fe970c94ba25383c414bbe0168b44fd20dbf0df4","4fb3405055b54566dea2135845c3a776339e7e170d692401d97fd41ad9a20e5d","8d607832a6ef0eac30657173441367dd76c96bf7800d77193428b922e060c3af","20ff7207f0bb5cdde5fee8e83315ade7e5b8100cfa2087d20d39069a3d7d06f4","7ca4c534eab7cff43d81327e369a23464bc37ef38ce5337ceff24a42c6c84eb2","5252dec18a34078398be4e321dee884dc7f47930e5225262543a799b591b36d2","23caed4dff98bd28157d2b798b43f1dfefe727f18641648c01ce4e0e929a1630","f67e013d5374826596d7c23dbae1cdb14375a27cd72e16c5fb46a4b445059329","ea3401b70e2302683bbf4c18b69ef2292b60f4d8f8e6d920413b81fb7bde0f65","71afe26642c0fb86b9f8b1af4af5deb5181b43b6542a3ff2314871b53d04c749","0d7f01634e6234d84cf0106508efdb8ae00e5ed126eff9606d37b031ac1de654","f8d209086bad78af6bd7fef063c1ed449c815e6f8d36058115f222d9f788b848","3ad003278d569d1953779e2f838f7798f02e793f6a1eceac8e0065f1a202669b","fb2c5eceffcd918dbb86332afa0199f5e7b6cf6ee42809e930a827b28ef25afe","f664aaff6a981eeca68f1ff2d9fd21b6664f47bf45f3ae19874df5a6683a8d8a","ce066f85d73e09e9adbd0049bcf6471c7eefbfc2ec4b5692b5bcef1e36babd2a","09d302513cacfbcc54b67088739bd8ac1c3c57917f83f510b2d1adcb99fd7d2a","3faa54e978b92a6f726440c13fe3ab35993dc74d697c7709681dc1764a25219f","2bd0489e968925eb0c4c0fb12ef090be5165c86bd088e1e803102c38d4a717d8","88924207132b9ba339c1adb1ed3ea07e47b3149ff8a2e21a3ea1f91cee68589d","b8800b93d8ab532f8915be73f8195b9d4ef06376d8a82e8cdc17c400553172d6","d7d469703b78beba76d511957f8c8b534c3bbb02bea7ab4705c65ef573532fb8","74c8c3057669c03264263d911d0f82e876cef50b05be21c54fef23c900de0420","b303eda2ff2d582a9c3c5ecb708fb57355cdc25e8c8197a9f66d4d1bf09fda19","4e5dc89fa22ff43da3dee1db97d5add0591ebaff9e4adef6c8b6f0b41f0f60f0","ec4e82cb42a902fe83dc13153c7a260bee95684541f8d7ef26cb0629a2f4ca31","5f36e24cd92b0ff3e2a243685a8a780c9413941c36739f04b428cc4e15de629d","40a26494e6ab10a91851791169582ab77fed4fbd799518968177e7eefe08c7a9","208e125b45bc561765a74f6f1019d88e44e94678769824cf93726e1bac457961","b3985971de086ef3aa698ef19009a53527b72e65851b782dc188ac341a1e1390","c81d421aabb6113cd98b9d4f11e9a03273b363b841f294b457f37c15d513151d","30063e3a184ff31254bbafa782c78a2d6636943dfe59e1a34f451827fd7a68dc","c05d4cae0bceed02c9d013360d3e65658297acb1b7a90252fe366f2bf4f9ccc9","6f14b92848889abba03a474e0750f7350cc91fc190c107408ca48679a03975ae","a588d0765b1d18bf00a498b75a83e095aef75a9300b6c1e91cbf39e408f2fe2f","08323a8971cb5b2632b532cba1636ad4ca0d76f9f7d0b8d1a0c706fdf5c77b45","5d2651c679f59706bf484e7d423f0ec2d9c79897e2e68c91a3f582f21328d193","30d49e69cb62f350ff0bc5dda1c557429c425014955c19c557f101c0de9272e7","d3747dbed45540212e9a906c2fb8b5beb691f2cd0861af58a66dc01871004f38","05a21cbb7cbe1ec502e7baca1f4846a4e860d96bad112f3e316b995ba99715b7","1eaee2b52f1c0e1848845a79050c1d06ae554d8050c35e3bf479f13d6ee19dd5","fd219904eea67c470dfebbaf44129b0db858207c3c3b55514bdc84de547b1687","4de232968f584b960b4101b4cdae593456aff149c5d0c70c2389248e9eb9fbac","933c42f6ed2768265dfb42faa817ce8d902710c57a21a1859a9c3fe5e985080e","c5430542eeebb207d651e8b00a08e4bb680c47ecb73dd388d8fa597a1fc5de5b","a6c5c9906262cf10549989c0061e5a44afdc1f61da77d5e09418a9ecea0018fe","bc6e433cb982bf63eaa523dbbbd30fe12960a09861b352d77baf77ad6dd8886d","9af64ab00918f552388252977c1569fe31890686ca1fdb8e20f58d3401c9a50c","3d3cc03b5c6e056c24aac76789f4bc67caee98a4f0774ab82bc8ba34d16be916","747ce36fa27a750a05096f3610e59c9b5a55e13defec545c01a75fd13d67b620","1a8f503c64bdb36308f245960d9e4acac4cf65d8b6bd0534f88230ebf0be7883","a2c1f4012459547d62116d724e7ec820bb2e6848da40ea0747bf160ffd99b283","0dc197e52512a7cbea4823cc33c23b0337af97bd59b38bf83be047f37cd8c9a8","492c93ade227fe4545fabb3035b9dd5d57d8b4fde322e5217fdaef20aa1b80a8","83c54a3b3e836d1773b8c23ff76ce6e0aae1a2209fc772b75e9de173fec9eac0","475e411f48f74c14b1f6e50cc244387a5cc8ce52340dddfae897c96e03f86527","5573ce7aa683a81c9a727294ffdb47d82d7715a148bfe9f4ddcf2f6cdfef1f0a","2cd9edbb4a6411a9f5258237dd73323db978d7aa9ebf1d1b0ac79771ac233e24","ff954afaefd9bd5fad03678cae63fd23e0aaaf4d311b27bfb35e1d6d83833997","0112a7f3c11fc4792e70f5d0d5c9f80ee6a1c5c548723714433da6a03307e87b","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","81af781a1d9eb264b8955538935874d6e60944e6285127d43ac07c6320d1d98f","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","adb17fea4d847e1267ae1241fa1ac3917c7e332999ebdab388a24d82d4f58240","1d4bc73751d6ec6285331d1ca378904f55d9e5e8aeaa69bc45b675c3df83e778","8017277c3843df85296d8730f9edf097d68d7d5f9bc9d8124fcacf17ecfd487e","960a68ced7820108787135bdae5265d2cc4b511b7dcfd5b8f213432a8483daf1","e27ecc0d7bbbb4b12c9688e2f728e09c0be5a73dff4257008790f60cc6df5d54","2e7ebdc7d8af978c263890bbde991e88d6aa31cc29d46735c9c5f45f0a41243b","b57fd1c0a680d220e714b76d83eff51a08670f56efcc5d68abc82f5a2684f0c0","8cf121e98669f724256d06bebafec912b92bb042a06d4944f7fb27a56c545109","1084565c68b2aed5d6d5cea394799bd688afdf4dc99f4e3615957857c15bb231",{"version":"cfb95dbcdee02402fb9373c62ec4ba735b5479e5d879f39e7c23fe1d58186e31","affectsGlobalScope":true},"61f41da9aaa809e5142b1d849d4e70f3e09913a5cb32c629bf6e61ef27967ff7"],"root":[[463,473]],"options":{"esModuleInterop":true,"module":1,"noEmitOnError":true,"noImplicitThis":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"strict":false,"target":6},"fileIdsList":[[356,357,360,361,362],[355,356,360,361,363],[356,360,361],[355,356,357,360,361,362,363,364,365,366,367],[354,355,356],[356],[356,358,360],[354,356,357],[356,357,358,359],[354,355],[368],[162,197],[163,197],[184,197],[157,167,183],[187,188,189,190,191,192],[187],[157,162,164,166,167,170,183,185,186,193,194,195,196],[165,197],[170],[167,168,169],[158,166,167],[167,168],[197],[172,173,174,177,178,179,181],[157,171],[171],[183,197],[175,176],[180],[114,133,157,170,183,197],[157,174,182,197],[157,158,197],[158,197],[158,159,160,161,197],[157],[158,166],[167],[157,197],[139],[140,141],[135],[143,144,145],[139,142,146],[332],[245,246],[369,370],[372],[321,332,333,370],[321,332,369,370,371,373],[333,374],[369],[455,458,460],[457],[458,459],[446],[446,447,454,461],[147,449,450,451],[147,185,197,446,447,448,452,453],[438,446],[147,197,407,408,409,410,411,412,413,431,432,433,434,435,439,440,441,442,443,444,445],[407],[321,375,407],[407,414,429,430],[407,419,420,421,422],[407,419],[407,423],[407,418,423,429],[407,415,416,417,423,424,425,426,427,428,431],[407,431],[438],[98,133,407],[411],[403,404,405],[407,446],[402],[402,407],[198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222],[378,379,380,381,382,385,386,387,388,389,407],[402,446],[379],[384],[223,224,330,331,376,377,390,399,400,401],[398],[375],[322,328],[321],[224],[323,324,325,326,327],[321,329,407,446],[400],[398,399],[384,398,402,406],[383],[391,392,393,394,395,396,397],[394],[308],[276],[269,271],[114,133],[231,232,247,248,270,271,272,274,275,277,278,279,280,281,282,283,284,285,296,306,307,309,310,311,312,313,318,319,320],[230],[246],[283],[276,294,295],[245,276],[287,288,289,290,291,292,293],[286],[273],[286,314,315,316,317],[245,286],[276,304,305],[297,298,299,300,301,302,303],[95,98,125,133,475,476,477],[480,482],[479,480,481],[98,230],[114,133,225,226,227,228,229],[114,230],[95,230],[227],[95,96,133,485],[487,493],[488,489,490,491,492],[493],[497],[110,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,581,582,583,584,585],[586],[565,566,586],[110,563,568,586],[110,569,570,586],[110,569,586],[110,563,569,586],[110,575,586],[110,586],[564,580,586],[563,580,586],[110,563],[568],[110],[563,586],[500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,519,520,522,524,525,526,527,528,529,530,531,532,533,534,535,536,537,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562],[500,502,507],[502,539],[501,506],[500,501,502,503,504,505],[501,502,503,506,539],[500,502,506,507],[506],[506,546],[500,501,502,506],[501,502,503,506],[501,502],[500,501,502,506,507],[502,538],[500,501,502,507],[563],[500,501,515],[500,501,514],[523],[516,517],[518],[516],[500,501,515,516],[500,501,514,515,517],[521],[500,501,516,517],[500,501,502,503,506],[500,501],[501],[500,506],[133],[95,133],[95,133,484,587],[233,235,236,237,238,239,240,241,242,243,244,245],[233,234,236,237,238,239,240,241,242,243,244,245],[234,235,236,237,238,239,240,241,242,243,244,245],[233,234,235,237,238,239,240,241,242,243,244,245],[233,234,235,236,238,239,240,241,242,243,244,245],[233,234,235,236,237,239,240,241,242,243,244,245],[233,234,235,236,237,238,240,241,242,243,244,245],[233,234,235,236,237,238,239,241,242,243,244,245],[233,234,235,236,237,238,239,240,242,243,244,245],[233,234,235,236,237,238,239,240,241,243,244,245],[233,234,235,236,237,238,239,240,241,242,244,245],[233,234,235,236,237,238,239,240,241,242,243,245],[245],[233,234,235,236,237,238,239,240,241,242,243,244],[46],[82],[83,88,117],[84,95,96,103,114,125],[84,85,95,103],[86,126],[87,88,96,104],[88,114,122],[89,91,95,103],[82,90],[91,92],[95],[93,95],[82,95],[95,96,97,114,125],[95,96,97,110,114,117],[80,83,130],[91,95,98,103,114,125],[95,96,98,99,103,114,122,125],[98,100,114,122,125],[46,47,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[95,101],[102,125,130],[91,95,103,114],[104],[105],[82,106],[103,104,107,124,130],[108],[109],[95,110,111],[110,112,126,128],[83,95,114,115,116,117],[83,114,116],[114,115],[117],[118],[82,114],[95,120,121],[120,121],[88,103,114,122],[123],[103,124],[83,98,109,125],[88,126],[114,127],[102,128],[129],[83,88,95,97,106,114,125,128,130],[114,131],[493,497,594],[493,497],[497,597],[596,597,598,599,600],[494,495,496],[98,114,133],[495,497,498],[334],[334,335,336,337,338,339,340,341],[335],[334,335],[334,335,336],[342,347],[347,349,350,351],[342,347,348],[342],[342,343,344,345],[342,343],[342,346,352],[342,346,352,353],[95,98,100,103,114,133],[103,133,436,438],[98,103,122,125,133,436,437],[95,114,122,154,155,156],[134],[456],[149],[95,133,148,150,151],[152,153],[148],[57,61,125],[57,114,125],[52],[54,57,122,125],[103,122],[52,133],[54,57,103,125],[49,50,53,56,83,95,114,125],[49,55],[53,57,83,117,125,133],[83,133],[73,83,133],[51,52,133],[57],[51,52,53,54,55,56,57,58,59,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,79],[57,64,65],[55,57,65,66],[56],[49,52,57],[57,61,65,66],[61],[55,57,60,125],[49,54,55,57,61,64],[83,114],[52,57,73,83,130,133],[114,133,135],[114,133,135,136,137,138],[98,133,136],[249,253,255,256,257,258],[253,255,257,258],[249,257],[249,253,255,257,258],[249,251,252,253,255,256,257,259,260,261,262,263,264,265,266,267,268],[250,253,255,257],[257],[255],[249,250,252,253,254,257],[255,256],[249,251,255,257],[249],[462],[465],[467],[463,464,466,468,469,471],[470]],"referencedMap":[[363,1],[364,2],[365,3],[368,4],[362,5],[366,6],[361,7],[357,6],[358,8],[360,9],[356,10],[367,6],[369,11],[163,12],[164,13],[185,14],[184,15],[193,16],[190,17],[191,17],[192,17],[189,17],[188,17],[197,18],[166,19],[165,20],[170,21],[168,22],[169,23],[186,24],[182,25],[174,26],[173,27],[175,28],[177,29],[176,28],[172,26],[181,30],[180,31],[179,20],[178,26],[183,32],[171,28],[159,33],[160,34],[162,35],[161,34],[194,36],[167,37],[196,38],[195,39],[140,40],[142,41],[141,40],[145,42],[146,43],[144,42],[143,40],[147,44],[333,45],[332,46],[372,47],[373,48],[371,49],[374,50],[375,51],[370,52],[461,53],[458,54],[460,55],[447,56],[462,57],[453,56],[452,58],[449,24],[454,59],[451,60],[446,61],[440,62],[441,63],[410,56],[431,64],[419,62],[423,65],[421,62],[420,66],[422,62],[427,67],[417,62],[424,68],[429,69],[416,62],[425,70],[426,62],[415,62],[430,62],[414,70],[432,70],[439,71],[408,72],[412,73],[403,62],[406,74],[405,75],[404,62],[199,76],[201,76],[200,76],[221,76],[202,77],[218,76],[217,76],[203,76],[204,77],[216,76],[205,77],[206,76],[223,78],[207,76],[208,76],[209,77],[210,76],[211,77],[212,76],[213,76],[214,76],[220,76],[219,76],[215,76],[222,77],[389,76],[390,79],[379,56],[388,80],[387,76],[380,56],[382,81],[385,82],[386,56],[402,83],[399,84],[376,85],[329,86],[323,87],[325,88],[326,56],[328,89],[327,56],[324,76],[330,90],[401,91],[224,62],[400,92],[407,93],[384,94],[383,62],[391,62],[397,62],[392,62],[398,95],[394,62],[396,96],[309,97],[277,98],[279,98],[310,98],[272,99],[313,100],[321,101],[231,102],[247,103],[284,104],[281,98],[296,105],[295,106],[294,107],[292,108],[291,108],[290,108],[287,108],[288,108],[293,108],[289,108],[274,109],[307,106],[286,98],[318,110],[317,111],[314,111],[316,111],[315,111],[306,112],[305,106],[304,113],[302,108],[301,108],[300,108],[297,108],[298,108],[303,108],[299,108],[270,99],[271,99],[478,114],[483,115],[482,116],[225,117],[230,118],[226,119],[227,120],[228,121],[486,122],[488,123],[489,123],[490,123],[493,124],[491,125],[492,125],[498,126],[586,127],[565,128],[567,129],[566,128],[569,130],[571,131],[572,132],[573,133],[574,131],[575,132],[576,131],[577,134],[578,132],[579,131],[580,135],[581,136],[582,137],[583,138],[570,139],[584,140],[568,140],[585,141],[563,142],[513,143],[511,143],[538,144],[526,145],[506,146],[536,145],[537,145],[540,147],[541,145],[508,148],[542,145],[543,145],[544,145],[545,145],[546,149],[547,150],[548,145],[504,145],[549,145],[550,145],[551,149],[552,145],[553,145],[554,151],[555,145],[556,147],[557,145],[505,145],[558,145],[559,145],[560,152],[503,153],[509,154],[539,155],[512,156],[561,157],[514,158],[515,159],[524,160],[523,161],[519,162],[518,161],[520,163],[517,164],[516,165],[522,166],[521,163],[525,167],[507,168],[502,169],[500,170],[501,171],[530,149],[527,170],[587,172],[589,173],[590,174],[234,175],[235,176],[233,177],[236,178],[237,179],[238,180],[239,181],[240,182],[241,183],[242,184],[243,185],[244,186],[246,187],[245,188],[46,189],[47,189],[82,190],[83,191],[84,192],[85,193],[86,194],[87,195],[88,196],[89,197],[90,198],[91,199],[92,199],[94,200],[93,201],[95,202],[96,203],[97,204],[81,205],[98,206],[99,207],[100,208],[133,209],[101,210],[102,211],[103,212],[104,213],[105,214],[106,215],[107,216],[108,217],[109,218],[110,219],[111,219],[112,220],[114,221],[116,222],[115,223],[117,224],[118,225],[119,226],[120,227],[121,228],[122,229],[123,230],[124,231],[125,232],[126,233],[127,234],[128,235],[129,236],[130,237],[131,238],[593,126],[595,239],[594,240],[598,241],[601,242],[599,126],[597,126],[600,241],[497,243],[477,244],[602,245],[564,100],[338,246],[342,247],[336,246],[341,248],[340,249],[337,250],[335,246],[339,246],[351,251],[352,252],[350,253],[349,253],[347,254],[348,251],[346,255],[344,256],[345,256],[343,254],[353,257],[354,258],[436,259],[437,260],[438,261],[475,200],[157,262],[135,263],[457,264],[150,265],[152,266],[151,265],[154,267],[149,268],[64,269],[71,270],[63,269],[78,271],[55,272],[54,273],[77,172],[72,274],[75,275],[57,276],[56,277],[52,278],[51,279],[74,280],[53,281],[58,282],[62,282],[80,283],[79,282],[66,284],[67,285],[69,286],[65,287],[68,288],[73,172],[60,289],[61,290],[70,291],[50,292],[76,293],[136,294],[139,295],[137,172],[138,296],[265,297],[260,298],[250,299],[263,300],[269,301],[256,302],[258,303],[259,298],[262,300],[264,297],[249,304],[255,305],[261,300],[257,306],[252,307],[267,303],[254,308],[463,309],[466,310],[467,309],[468,311],[472,312],[464,309],[470,309],[471,313]],"exportedModulesMap":[[363,1],[364,2],[365,3],[368,4],[362,5],[366,6],[361,7],[357,6],[358,8],[360,9],[356,10],[367,6],[369,11],[163,12],[164,13],[185,14],[184,15],[193,16],[190,17],[191,17],[192,17],[189,17],[188,17],[197,18],[166,19],[165,20],[170,21],[168,22],[169,23],[186,24],[182,25],[174,26],[173,27],[175,28],[177,29],[176,28],[172,26],[181,30],[180,31],[179,20],[178,26],[183,32],[171,28],[159,33],[160,34],[162,35],[161,34],[194,36],[167,37],[196,38],[195,39],[140,40],[142,41],[141,40],[145,42],[146,43],[144,42],[143,40],[147,44],[333,45],[332,46],[372,47],[373,48],[371,49],[374,50],[375,51],[370,52],[461,53],[458,54],[460,55],[447,56],[462,57],[453,56],[452,58],[449,24],[454,59],[451,60],[446,61],[440,62],[441,63],[410,56],[431,64],[419,62],[423,65],[421,62],[420,66],[422,62],[427,67],[417,62],[424,68],[429,69],[416,62],[425,70],[426,62],[415,62],[430,62],[414,70],[432,70],[439,71],[408,72],[412,73],[403,62],[406,74],[405,75],[404,62],[199,76],[201,76],[200,76],[221,76],[202,77],[218,76],[217,76],[203,76],[204,77],[216,76],[205,77],[206,76],[223,78],[207,76],[208,76],[209,77],[210,76],[211,77],[212,76],[213,76],[214,76],[220,76],[219,76],[215,76],[222,77],[389,76],[390,79],[379,56],[388,80],[387,76],[380,56],[382,81],[385,82],[386,56],[402,83],[399,84],[376,85],[329,86],[323,87],[325,88],[326,56],[328,89],[327,56],[324,76],[330,90],[401,91],[224,62],[400,92],[407,93],[384,94],[383,62],[391,62],[397,62],[392,62],[398,95],[394,62],[396,96],[309,97],[277,98],[279,98],[310,98],[272,99],[313,100],[321,101],[231,102],[247,103],[284,104],[281,98],[296,105],[295,106],[294,107],[292,108],[291,108],[290,108],[287,108],[288,108],[293,108],[289,108],[274,109],[307,106],[286,98],[318,110],[317,111],[314,111],[316,111],[315,111],[306,112],[305,106],[304,113],[302,108],[301,108],[300,108],[297,108],[298,108],[303,108],[299,108],[270,99],[271,99],[478,114],[483,115],[482,116],[225,117],[230,118],[226,119],[227,120],[228,121],[486,122],[488,123],[489,123],[490,123],[493,124],[491,125],[492,125],[498,126],[586,127],[565,128],[567,129],[566,128],[569,130],[571,131],[572,132],[573,133],[574,131],[575,132],[576,131],[577,134],[578,132],[579,131],[580,135],[581,136],[582,137],[583,138],[570,139],[584,140],[568,140],[585,141],[563,142],[513,143],[511,143],[538,144],[526,145],[506,146],[536,145],[537,145],[540,147],[541,145],[508,148],[542,145],[543,145],[544,145],[545,145],[546,149],[547,150],[548,145],[504,145],[549,145],[550,145],[551,149],[552,145],[553,145],[554,151],[555,145],[556,147],[557,145],[505,145],[558,145],[559,145],[560,152],[503,153],[509,154],[539,155],[512,156],[561,157],[514,158],[515,159],[524,160],[523,161],[519,162],[518,161],[520,163],[517,164],[516,165],[522,166],[521,163],[525,167],[507,168],[502,169],[500,170],[501,171],[530,149],[527,170],[587,172],[589,173],[590,174],[234,175],[235,176],[233,177],[236,178],[237,179],[238,180],[239,181],[240,182],[241,183],[242,184],[243,185],[244,186],[246,187],[245,188],[46,189],[47,189],[82,190],[83,191],[84,192],[85,193],[86,194],[87,195],[88,196],[89,197],[90,198],[91,199],[92,199],[94,200],[93,201],[95,202],[96,203],[97,204],[81,205],[98,206],[99,207],[100,208],[133,209],[101,210],[102,211],[103,212],[104,213],[105,214],[106,215],[107,216],[108,217],[109,218],[110,219],[111,219],[112,220],[114,221],[116,222],[115,223],[117,224],[118,225],[119,226],[120,227],[121,228],[122,229],[123,230],[124,231],[125,232],[126,233],[127,234],[128,235],[129,236],[130,237],[131,238],[593,126],[595,239],[594,240],[598,241],[601,242],[599,126],[597,126],[600,241],[497,243],[477,244],[602,245],[564,100],[338,246],[342,247],[336,246],[341,248],[340,249],[337,250],[335,246],[339,246],[351,251],[352,252],[350,253],[349,253],[347,254],[348,251],[346,255],[344,256],[345,256],[343,254],[353,257],[354,258],[436,259],[437,260],[438,261],[475,200],[157,262],[135,263],[457,264],[150,265],[152,266],[151,265],[154,267],[149,268],[64,269],[71,270],[63,269],[78,271],[55,272],[54,273],[77,172],[72,274],[75,275],[57,276],[56,277],[52,278],[51,279],[74,280],[53,281],[58,282],[62,282],[80,283],[79,282],[66,284],[67,285],[69,286],[65,287],[68,288],[73,172],[60,289],[61,290],[70,291],[50,292],[76,293],[136,294],[139,295],[137,172],[138,296],[265,297],[260,298],[250,299],[263,300],[269,301],[256,302],[258,303],[259,298],[262,300],[264,297],[249,304],[255,305],[261,300],[257,306],[252,307],[267,303],[254,308],[463,309],[466,310],[467,309],[468,311],[472,312],[464,309],[470,309],[471,313]],"semanticDiagnosticsPerFile":[363,364,365,355,368,362,366,361,357,358,360,359,356,367,369,273,163,164,185,184,187,193,190,191,192,189,188,197,166,165,170,168,169,186,182,174,173,175,177,176,172,181,180,179,178,183,171,159,160,162,161,158,194,167,196,195,140,142,141,145,146,144,143,147,333,332,372,373,371,374,375,370,461,458,460,448,447,462,450,453,452,449,454,451,459,444,446,440,441,413,410,435,431,419,423,421,420,422,427,417,424,418,429,416,425,426,428,415,430,414,432,409,445,439,433,434,442,408,443,412,411,403,406,405,404,198,199,201,200,221,202,218,217,203,204,216,205,206,223,207,208,209,210,211,212,213,214,220,219,215,222,389,378,390,379,388,387,380,382,385,381,386,331,402,399,376,329,322,323,325,326,328,327,324,330,401,224,377,400,407,384,383,391,397,395,392,398,393,394,396,309,278,277,279,310,280,272,313,283,311,321,275,320,285,231,232,247,284,281,296,295,294,292,291,290,287,288,293,289,282,274,248,312,307,286,318,317,314,316,315,276,306,305,304,302,301,300,297,298,303,299,270,319,271,474,478,483,479,482,480,484,225,229,230,226,227,228,486,488,489,490,487,493,491,492,498,499,476,586,565,567,566,569,571,572,573,574,575,576,577,578,579,580,581,582,583,570,584,568,585,563,513,511,562,538,526,506,536,537,540,541,508,542,543,544,545,546,547,548,504,549,550,551,552,553,554,555,556,557,505,558,559,560,503,509,539,512,561,514,515,524,523,519,518,520,517,516,522,521,525,507,502,500,510,501,531,532,529,530,528,533,527,535,534,587,588,481,589,590,234,235,233,236,237,238,239,240,241,242,243,244,246,245,485,46,47,82,83,84,85,86,87,88,89,90,91,92,94,93,95,96,97,81,132,98,99,100,133,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,591,592,496,593,595,594,596,598,601,599,597,600,494,497,477,602,564,134,603,338,334,342,336,341,340,337,335,339,351,352,350,349,347,348,346,344,345,343,353,354,436,48,456,455,495,437,438,475,157,155,156,135,457,308,150,152,148,151,154,153,149,44,45,9,8,2,10,11,12,13,14,15,16,17,3,18,4,19,23,20,21,22,24,25,26,5,27,28,29,30,6,34,31,32,33,35,7,36,41,42,37,38,39,40,1,43,64,71,63,78,55,54,77,72,75,57,56,52,51,74,53,58,59,62,49,80,79,66,67,69,65,68,73,60,61,70,50,76,136,139,137,138,265,260,250,263,269,256,258,259,262,264,249,255,268,261,257,252,267,266,254,253,251,463,465,473,466,467,468,472,464,469,470,471]},"version":"5.4.5"} -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "strapi-plugin-react-icons", 3 | "version": "0.3.0", 4 | "description": "A plugin for strapi to select react icons.", 5 | "license": "MIT", 6 | "author": { 7 | "name": "Daniel Pantle" 8 | }, 9 | "maintainers": [ 10 | { 11 | "name": "Daniel Pantle" 12 | } 13 | ], 14 | "scripts": { 15 | "build": "tsc -p tsconfig.server.json", 16 | "develop": "tsc -p tsconfig.server.json -w" 17 | }, 18 | "dependencies": { 19 | "@strapi/design-system": "^1.13.1", 20 | "@strapi/helper-plugin": "^4.16.2", 21 | "@strapi/icons": "^1.13.0", 22 | "prop-types": "^15.8.1", 23 | "react-icons": "^5.2.1" 24 | }, 25 | "devDependencies": { 26 | "@strapi/typescript-utils": "^4.16.2", 27 | "@types/react": "^18.3.2", 28 | "@types/react-dom": "^18.3.0", 29 | "@types/react-router-dom": "^5.3.3", 30 | "@types/styled-components": "^5.1.34", 31 | "react": "^18.3.1", 32 | "react-dom": "^18.3.1", 33 | "react-router-dom": "^5.3.4", 34 | "styled-components": "^5.3.11", 35 | "typescript": "^5.4.5" 36 | }, 37 | "peerDependencies": { 38 | "@strapi/strapi": "^4.14.5", 39 | "react": "^17.0.0 || ^18.0.0", 40 | "react-dom": "^17.0.0 || ^18.0.0", 41 | "react-router-dom": "^5.3.4", 42 | "styled-components": "^5.3.3 || ^6.1.0" 43 | }, 44 | "engines": { 45 | "node": ">=14.19.1 <=20.x.x", 46 | "npm": ">=6.0.0" 47 | }, 48 | "strapi": { 49 | "name": "react-icons", 50 | "displayName": "React Icons", 51 | "description": "A plugin for strapi to select react icons.", 52 | "kind": "plugin" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /server/bootstrap.ts: -------------------------------------------------------------------------------- 1 | import { Strapi } from "@strapi/strapi"; 2 | 3 | export default async ({ strapi }: { strapi: Strapi }) => { 4 | const actions = [ 5 | { 6 | section: 'plugins', 7 | displayName: 'Access react-icons menu', 8 | uid: 'read', 9 | pluginName: 'react-icons', 10 | } 11 | ]; 12 | 13 | await (strapi as any).admin?.services.permission.actionProvider.registerMany(actions); 14 | }; 15 | -------------------------------------------------------------------------------- /server/content-types/iconlibrary/index.ts: -------------------------------------------------------------------------------- 1 | const schema = require('./schema'); 2 | 3 | export default { 4 | schema, 5 | }; 6 | -------------------------------------------------------------------------------- /server/content-types/iconlibrary/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "kind": "collectionType", 3 | "collectionName": "iconlibrary", 4 | "info": { 5 | "singularName": "iconlibrary", 6 | "pluralName": "iconlibraries", 7 | "displayName": "IconLibrary" 8 | }, 9 | "options": { 10 | "draftAndPublish": false, 11 | "comment": "" 12 | }, 13 | 14 | "pluginOptions": { 15 | "content-manager": { 16 | "visible": false 17 | }, 18 | 19 | "content-type-builder": { 20 | "visible": false 21 | } 22 | }, 23 | 24 | "attributes": { 25 | "name": { 26 | "type": "string", 27 | "required": true 28 | }, 29 | "abbreviation": { 30 | "type": "string", 31 | "required": true, 32 | "unique": true, 33 | "maxLength": 3 34 | }, 35 | "isEnabled": { 36 | "type": "boolean", 37 | "default": true 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /server/content-types/index.ts: -------------------------------------------------------------------------------- 1 | import iconlibrary from './iconlibrary'; 2 | 3 | export default { 4 | iconlibrary, 5 | }; 6 | -------------------------------------------------------------------------------- /server/controllers/iconLibraryController.ts: -------------------------------------------------------------------------------- 1 | import { Strapi } from '@strapi/strapi'; 2 | 3 | const getService = (strapi) => strapi.plugin('react-icons').service('iconLibraryService'); 4 | 5 | export default ({ strapi }: { strapi: Strapi }) => ({ 6 | async find(ctx: any) { 7 | try { 8 | ctx.body = await getService(strapi).find(ctx.query); 9 | } catch (error) { 10 | ctx.throw(500, error); 11 | } 12 | }, 13 | async create(ctx: any) { 14 | try { 15 | await getService(strapi).create(ctx.request.body); 16 | ctx.body = await getService(strapi).find(); 17 | } catch (error) { 18 | ctx.throw(500, error); 19 | } 20 | }, 21 | async update(ctx: any) { 22 | try { 23 | await getService(strapi).update(ctx.params.id, ctx.request.body); 24 | ctx.body = await getService(strapi).find(); 25 | } catch (error) { 26 | ctx.throw(500, error); 27 | } 28 | }, 29 | async delete(ctx: any) { 30 | try { 31 | ctx.body = await getService(strapi).delete(ctx.params.id); 32 | } catch (error) { 33 | ctx.throw(500, error); 34 | } 35 | }, 36 | }); 37 | -------------------------------------------------------------------------------- /server/controllers/index.ts: -------------------------------------------------------------------------------- 1 | import iconLibraryController from './iconLibraryController'; 2 | 3 | export default { 4 | iconLibraryController, 5 | }; 6 | -------------------------------------------------------------------------------- /server/index.ts: -------------------------------------------------------------------------------- 1 | import register from './register'; 2 | import bootstrap from './bootstrap'; 3 | import contentTypes from './content-types'; 4 | import controllers from './controllers'; 5 | import routes from './routes'; 6 | import services from './services'; 7 | 8 | export default { 9 | register, 10 | bootstrap, 11 | controllers, 12 | routes, 13 | services, 14 | contentTypes, 15 | }; 16 | -------------------------------------------------------------------------------- /server/register.ts: -------------------------------------------------------------------------------- 1 | import { Strapi } from '@strapi/strapi'; 2 | 3 | export default ({ strapi }: { strapi: Strapi }) => { 4 | strapi.customFields.register({ 5 | name: 'icon', 6 | plugin: 'react-icons', 7 | type: 'string', 8 | }); 9 | }; 10 | -------------------------------------------------------------------------------- /server/routes/index.ts: -------------------------------------------------------------------------------- 1 | export default [ 2 | { 3 | method: 'GET', 4 | path: '/iconlibrary/find', 5 | handler: 'iconLibraryController.find', 6 | }, 7 | { 8 | method: 'POST', 9 | path: '/iconlibrary/post', 10 | handler: 'iconLibraryController.create', 11 | }, 12 | { 13 | method: 'PUT', 14 | path: '/iconlibrary/update/:id', 15 | handler: 'iconLibraryController.update', 16 | }, 17 | { 18 | method: 'DELETE', 19 | path: '/iconlibrary/delete/:id', 20 | handler: 'iconLibraryController.delete', 21 | }, 22 | ]; 23 | -------------------------------------------------------------------------------- /server/services/iconLibraryService.ts: -------------------------------------------------------------------------------- 1 | import { Strapi } from '@strapi/strapi'; 2 | 3 | export default ({ strapi }: { strapi: Strapi }) => ({ 4 | async find(query) { 5 | return await strapi.entityService.findMany('plugin::react-icons.iconlibrary', query); 6 | }, 7 | async create(data) { 8 | return await strapi.entityService.create('plugin::react-icons.iconlibrary', data); 9 | }, 10 | async update(id, data) { 11 | return await strapi.entityService.update('plugin::react-icons.iconlibrary', id, data); 12 | }, 13 | async delete(id) { 14 | return await strapi.entityService.delete('plugin::react-icons.iconlibrary', id); 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /server/services/index.ts: -------------------------------------------------------------------------------- 1 | import iconLibraryService from './iconLibraryService'; 2 | 3 | export default { 4 | iconLibraryService, 5 | }; 6 | -------------------------------------------------------------------------------- /strapi-admin.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./admin/src').default; 4 | -------------------------------------------------------------------------------- /strapi-server.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./dist/server'); 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@strapi/typescript-utils/tsconfigs/admin", 3 | 4 | "compilerOptions": { 5 | "target": "ESNext", 6 | "strict": true 7 | }, 8 | 9 | "include": ["admin", "custom.d.ts"], 10 | 11 | "exclude": [ 12 | "node_modules/", 13 | "dist/", 14 | 15 | // Do not include server files in the server compilation 16 | "server/", 17 | // Do not include test files 18 | "**/*.test.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@strapi/typescript-utils/tsconfigs/server", 3 | 4 | "compilerOptions": { 5 | "outDir": "dist", 6 | "rootDir": "." 7 | }, 8 | 9 | "include": [ 10 | // Include the root directory 11 | "server", 12 | // Force the JSON files in the src folder to be included 13 | "server/**/*.json" 14 | ], 15 | 16 | "exclude": [ 17 | "node_modules/", 18 | "dist/", 19 | 20 | // Do not include admin files in the server compilation 21 | "admin/", 22 | // Do not include test files 23 | "**/*.test.ts" 24 | ] 25 | } 26 | --------------------------------------------------------------------------------