From dcc29ae273852ae5417bbd0679ba0383521db79d Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Mon, 2 Sep 2019 14:44:55 -0500 Subject: [PATCH] replace UI with new UI --- src/FilterLists.Web.V2/.gitignore | 21 ---- src/FilterLists.Web.V2/package-lock.json | Bin 562738 -> 0 bytes src/FilterLists.Web.V2/package.json | 43 ------- .../public/icon_filterlists.png | Bin 2163 -> 0 bytes src/FilterLists.Web.V2/public/index.html | 42 ------- .../public/logo_filterlists.png | Bin 3953 -> 0 bytes src/FilterLists.Web.V2/public/manifest.json | 15 --- src/FilterLists.Web.V2/src/App.test.tsx | 10 -- src/FilterLists.Web.V2/src/App.tsx | 90 -------------- src/FilterLists.Web.V2/src/index.css | 13 -- src/FilterLists.Web.V2/src/index.tsx | 8 -- src/FilterLists.Web.V2/src/react-app-env.d.ts | 1 - src/FilterLists.Web.V2/src/utils/index.ts | 3 - src/FilterLists.Web.V2/tsconfig.json | 26 ---- src/FilterLists.Web/.gitignore | 4 +- src/FilterLists.Web/Dockerfile | 21 ---- .../config-overrides.js | 0 src/FilterLists.Web/package-lock.json | Bin 520899 -> 562738 bytes src/FilterLists.Web/package.json | 43 ++++--- src/FilterLists.Web/public/index.html | 63 ++++++---- src/FilterLists.Web/src/App.css | 14 --- src/FilterLists.Web/src/App.test.tsx | 5 +- src/FilterLists.Web/src/App.tsx | 94 +++++++++++++-- src/FilterLists.Web/src/Layout.tsx | 60 ---------- src/FilterLists.Web/src/Router.tsx | 13 -- .../src/components/Description.tsx | 0 .../src/components/LicenseTag.tsx | 0 .../src/components/LinkButton.tsx | 0 .../src/components/ListInfoButton.tsx | 0 .../src/components/ListInfoDrawer.tsx | 0 .../src/components/PublishedDate.tsx | 0 .../src/components/SubscribeButtons.tsx | 0 .../src/components/SyntaxTag.tsx | 0 .../src/components/index.ts | 0 .../languageCloud/LanguageCloud.module.css | 0 .../languageCloud/LanguageCloud.tsx | 0 .../src/components/languageCloud/index.ts | 0 .../src/components/listsTable/ListDrawer.tsx | 0 .../listsTable/ListsTable.module.css | 0 .../src/components/listsTable/ListsTable.tsx | 0 .../components/listsTable/ListsTableHoc.tsx | 0 .../src/components/listsTable/arraySorter.ts | 0 .../src/components/listsTable/index.ts | 0 .../softwareCloud/SoftwareCloud.module.css | 0 .../softwareCloud/SoftwareCloud.tsx | 0 .../components/softwareCloud/SoftwareIcon.tsx | 0 .../softwareCloud/imgs/01-uBlock-Origin.svg | 0 .../softwareCloud/imgs/02-Adblock-Plus.svg | 0 .../softwareCloud/imgs/03-AdGuard.svg | 0 .../softwareCloud/imgs/04-DNS66.png | Bin .../softwareCloud/imgs/05-Nano-Adblocker.png | Bin .../softwareCloud/imgs/06-AdBlock.png | Bin .../softwareCloud/imgs/07-AdAway.png | Bin .../imgs/08-Personal-Blocklist.png | Bin .../softwareCloud/imgs/10-Redirector.png | Bin .../imgs/11-Hosts-File-Editor.png | Bin .../softwareCloud/imgs/12-Gas-Mask.png | Bin .../softwareCloud/imgs/13-MinerBlock.svg | 0 .../softwareCloud/imgs/14-Pi-hole.svg | 0 .../softwareCloud/imgs/15-uBlock.svg | 0 .../imgs/16-Internet-Explorer-TPL.svg | 0 .../imgs/17-Google-Hit-Hider-by-Domain.png | Bin .../softwareCloud/imgs/18-FireHOL.png | Bin .../softwareCloud/imgs/19-Samsung-Knox.png | Bin .../softwareCloud/imgs/20-Little-Snitch.png | Bin .../softwareCloud/imgs/21-Privoxy.png | Bin .../softwareCloud/imgs/22-Diversion.png | Bin .../softwareCloud/imgs/23-dnsmasq.png | Bin .../softwareCloud/imgs/24-Slimjet.png | Bin .../softwareCloud/imgs/25-uMatrix.png | Bin .../softwareCloud/imgs/26-Blokada.png | Bin .../softwareCloud/imgs/27-hostsmgr.png | Bin .../imgs/28-personalDNSfilter.svg | 0 .../softwareCloud/imgs/29-Unbound.png | Bin .../components/softwareCloud/imgs/30-BIND.png | Bin .../softwareCloud/imgs/31-AdGuard-Home.png | Bin .../softwareCloud/imgs/32-AdNauseam.png | Bin .../imgs/33-Legacy-Unix-Derivatives.png | Bin .../imgs/34-Windows-command-line.png | Bin .../components/softwareCloud/imgs/imgs.d.ts | 0 .../components/softwareCloud/imgs/index.ts | 0 .../src/components/softwareCloud/index.ts | 0 .../components/tagCloud/TagCloud.module.css | 0 .../src/components/tagCloud/TagCloud.tsx | 0 .../src/components/tagCloud/index.ts | 0 .../src/hooks/index.ts | 0 .../src/hooks/useApiData.tsx | 0 .../src/hooks/useLanguages.tsx | 0 .../src/hooks/useLicenses.tsx | 0 .../src/hooks/useLists.tsx | 0 .../src/hooks/useSearchColumnFilter.tsx | 0 .../src/hooks/useSoftware.tsx | 0 .../src/hooks/useSyntaxes.tsx | 0 .../src/hooks/useTablePageSizer.tsx | 0 .../src/hooks/useTags.tsx | 0 src/FilterLists.Web/src/index.tsx | 9 +- .../src/interfaces/Language.ts | 0 .../src/interfaces/License.ts | 0 .../src/interfaces/List.ts | 0 .../src/interfaces/Software.ts | 0 .../src/interfaces/Syntax.ts | 0 .../src/interfaces/Tag.ts | 0 src/FilterLists.Web/src/modules/home/Home.tsx | 111 ------------------ .../src/modules/home/HomeContainer.tsx | 92 --------------- .../modules/home/components/IListDetails.ts | 28 ----- .../src/modules/home/components/Oneliner.tsx | 14 --- .../src/modules/home/components/TagGroup.tsx | 67 ----------- .../detailsExpander/DetailsExpander.tsx | 28 ----- .../detailsExpander/LinkButtonGroup.tsx | 31 ----- .../home/components/detailsExpander/index.ts | 3 - .../detailsExpander/infoCard/Description.tsx | 16 --- .../detailsExpander/infoCard/InfoCard.tsx | 51 -------- .../detailsExpander/infoCard/Languages.tsx | 20 ---- .../detailsExpander/infoCard/License.tsx | 17 --- .../infoCard/PublishedDate.tsx | 13 -- .../detailsExpander/infoCard/RuleCount.tsx | 12 -- .../detailsExpander/infoCard/Syntax.tsx | 17 --- .../detailsExpander/infoCard/UpdatedDate.tsx | 15 --- .../detailsExpander/infoCard/description.css | 1 - .../detailsExpander/infoCard/index.ts | 3 - .../detailsExpander/linkButtonGroup.css | 3 - .../MaintainerInfoCard.tsx | 21 ---- .../MaintainerLinkButtonGroup.tsx | 16 --- .../MaintainersInfoCard.tsx | 14 --- .../maintainersInfoCard/index.ts | 3 - .../src/modules/home/components/index.ts | 5 - .../components/linkButtons/ChatButton.tsx | 14 --- .../components/linkButtons/DonateButton.tsx | 14 --- .../components/linkButtons/EmailButton.tsx | 14 --- .../components/linkButtons/ForumButton.tsx | 14 --- .../components/linkButtons/HomeButton.tsx | 14 --- .../components/linkButtons/IssuesButton.tsx | 14 --- .../components/linkButtons/LinkButton.tsx | 20 ---- .../components/linkButtons/PolicyButton.tsx | 14 --- .../components/linkButtons/SubmitButton.tsx | 14 --- .../SubscribeButton/SubscribeButton.tsx | 56 --------- .../SubscribeButton/SubscribeButtonGroup.tsx | 16 --- .../SubscribeButtonGroupDropdown.tsx | 30 ----- .../linkButtons/SubscribeButton/index.ts | 3 - .../components/linkButtons/TwitterButton.tsx | 14 --- .../linkButtons/ViewButton/ViewButton.tsx | 24 ---- .../ViewButton/ViewButtonGroup.tsx | 16 --- .../ViewButton/ViewButtonGroupDropdown.tsx | 30 ----- .../linkButtons/ViewButton/index.ts | 3 - .../home/components/linkButtons/index.ts | 13 -- .../home/components/listsTable/ListsTable.tsx | 96 --------------- .../listsTable/columns/DetailsButton.tsx | 30 ----- .../listsTable/columns/Languages.tsx | 72 ------------ .../components/listsTable/columns/License.tsx | 69 ----------- .../listsTable/columns/Maintainers.tsx | 69 ----------- .../components/listsTable/columns/Name.tsx | 22 ---- .../listsTable/columns/RuleCount.tsx | 28 ----- .../listsTable/columns/Software.tsx | 75 ------------ .../listsTable/columns/SubscribeButton.tsx | 24 ---- .../components/listsTable/columns/Syntax.tsx | 47 -------- .../components/listsTable/columns/Tags.tsx | 64 ---------- .../listsTable/columns/UpdatedDate.tsx | 33 ------ .../components/listsTable/columns/index.ts | 13 -- .../home/components/listsTable/index.ts | 3 - .../home/components/listsTable/listsTable.css | 16 --- .../components/softwareIcon/SoftwareIcon.tsx | 55 --------- .../softwareIcon/imgs/01-uBlock-Origin.svg | 1 - .../softwareIcon/imgs/02-Adblock-Plus.svg | 15 --- .../softwareIcon/imgs/03-AdGuard.png | Bin 893 -> 0 bytes .../softwareIcon/imgs/03-AdGuard.svg | 5 - .../components/softwareIcon/imgs/04-DNS66.png | Bin 851 -> 0 bytes .../softwareIcon/imgs/05-Nano-Adblocker.png | Bin 698 -> 0 bytes .../softwareIcon/imgs/06-AdBlock.png | Bin 1268 -> 0 bytes .../softwareIcon/imgs/07-AdAway.png | Bin 658 -> 0 bytes .../imgs/08-Personal-Blocklist.png | Bin 1295 -> 0 bytes .../softwareIcon/imgs/10-Redirector.png | Bin 547 -> 0 bytes .../imgs/11-Hosts-File-Editor.png | Bin 1113 -> 0 bytes .../softwareIcon/imgs/12-Gas-Mask.png | Bin 424 -> 0 bytes .../softwareIcon/imgs/13-MinerBlock.svg | 34 ------ .../softwareIcon/imgs/14-Pi-hole.png | Bin 700 -> 0 bytes .../softwareIcon/imgs/14-Pi-hole.svg | 1 - .../softwareIcon/imgs/15-uBlock.svg | 18 --- .../imgs/16-Internet-Explorer-TPL.png | Bin 1056 -> 0 bytes .../imgs/16-Internet-Explorer-TPL.svg | 1 - .../imgs/17-Google-Hit-Hider-by-Domain.png | Bin 636 -> 0 bytes .../softwareIcon/imgs/18-FireHOL.png | Bin 617 -> 0 bytes .../softwareIcon/imgs/19-Samsung-Knox.png | Bin 476 -> 0 bytes .../softwareIcon/imgs/20-Little-Snitch.png | Bin 1168 -> 0 bytes .../softwareIcon/imgs/21-Privoxy.png | Bin 1286 -> 0 bytes .../softwareIcon/imgs/22-Diversion.png | Bin 403 -> 0 bytes .../softwareIcon/imgs/23-dnsmasq.png | Bin 789 -> 0 bytes .../softwareIcon/imgs/24-Slimjet.png | Bin 1419 -> 0 bytes .../softwareIcon/imgs/25-uMatrix.png | Bin 917 -> 0 bytes .../softwareIcon/imgs/26-Blokada.png | Bin 998 -> 0 bytes .../softwareIcon/imgs/27-hostsmgr.png | Bin 750 -> 0 bytes .../imgs/28-personalDNSfilter.png | Bin 831 -> 0 bytes .../imgs/28-personalDNSfilter.svg | 20 ---- .../softwareIcon/imgs/29-Unbound.png | Bin 565 -> 0 bytes .../components/softwareIcon/imgs/30-BIND.png | Bin 520 -> 0 bytes .../softwareIcon/imgs/31-AdGuard-Home.png | Bin 878 -> 0 bytes .../softwareIcon/imgs/32-AdNauseam.png | Bin 713 -> 0 bytes .../imgs/33-Legacy-Unix-Derivatives.png | Bin 867 -> 0 bytes .../imgs/34-Windows-command-line.png | Bin 470 -> 0 bytes .../components/softwareIcon/imgs/imgs.d.ts | 9 -- .../components/softwareIcon/imgs/index.ts | 36 ------ .../home/components/softwareIcon/index.ts | 3 - src/FilterLists.Web/src/modules/home/index.ts | 3 - .../home/interfaces/IColumnVisibility.ts | 4 - .../src/modules/home/interfaces/ILicense.ts | 6 - .../src/modules/home/interfaces/IList.ts | 22 ---- .../modules/home/interfaces/IMaintainer.ts | 8 -- .../src/modules/home/interfaces/ISoftware.ts | 7 -- .../src/modules/home/interfaces/ISyntax.ts | 7 -- .../src/modules/home/interfaces/ITag.ts | 6 - .../src/modules/home/interfaces/Language.ts | 6 - src/FilterLists.Web/src/modules/index.ts | 3 - src/FilterLists.Web/src/react-app-env.d.ts | 2 +- src/FilterLists.Web/src/utils/GetContrast.ts | 8 -- src/FilterLists.Web/src/utils/index.ts | 4 +- src/FilterLists.Web/src/utils/loader.css | 70 ----------- .../src/utils/nameof.ts | 0 src/FilterLists.Web/tsconfig.json | 5 +- 217 files changed, 159 insertions(+), 2397 deletions(-) delete mode 100644 src/FilterLists.Web.V2/.gitignore delete mode 100644 src/FilterLists.Web.V2/package-lock.json delete mode 100644 src/FilterLists.Web.V2/package.json delete mode 100644 src/FilterLists.Web.V2/public/icon_filterlists.png delete mode 100644 src/FilterLists.Web.V2/public/index.html delete mode 100644 src/FilterLists.Web.V2/public/logo_filterlists.png delete mode 100644 src/FilterLists.Web.V2/public/manifest.json delete mode 100644 src/FilterLists.Web.V2/src/App.test.tsx delete mode 100644 src/FilterLists.Web.V2/src/App.tsx delete mode 100644 src/FilterLists.Web.V2/src/index.css delete mode 100644 src/FilterLists.Web.V2/src/index.tsx delete mode 100644 src/FilterLists.Web.V2/src/react-app-env.d.ts delete mode 100644 src/FilterLists.Web.V2/src/utils/index.ts delete mode 100644 src/FilterLists.Web.V2/tsconfig.json delete mode 100644 src/FilterLists.Web/Dockerfile rename src/{FilterLists.Web.V2 => FilterLists.Web}/config-overrides.js (100%) delete mode 100644 src/FilterLists.Web/src/App.css delete mode 100644 src/FilterLists.Web/src/Layout.tsx delete mode 100644 src/FilterLists.Web/src/Router.tsx rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/Description.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/LicenseTag.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/LinkButton.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/ListInfoButton.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/ListInfoDrawer.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/PublishedDate.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/SubscribeButtons.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/SyntaxTag.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/index.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/languageCloud/LanguageCloud.module.css (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/languageCloud/LanguageCloud.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/languageCloud/index.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/listsTable/ListDrawer.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/listsTable/ListsTable.module.css (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/listsTable/ListsTable.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/listsTable/ListsTableHoc.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/listsTable/arraySorter.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/listsTable/index.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/SoftwareCloud.module.css (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/SoftwareCloud.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/SoftwareIcon.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/01-uBlock-Origin.svg (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/02-Adblock-Plus.svg (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/03-AdGuard.svg (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/04-DNS66.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/05-Nano-Adblocker.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/06-AdBlock.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/07-AdAway.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/08-Personal-Blocklist.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/10-Redirector.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/11-Hosts-File-Editor.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/12-Gas-Mask.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/13-MinerBlock.svg (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/14-Pi-hole.svg (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/15-uBlock.svg (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/16-Internet-Explorer-TPL.svg (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/17-Google-Hit-Hider-by-Domain.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/18-FireHOL.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/19-Samsung-Knox.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/20-Little-Snitch.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/21-Privoxy.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/22-Diversion.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/23-dnsmasq.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/24-Slimjet.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/25-uMatrix.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/26-Blokada.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/27-hostsmgr.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/28-personalDNSfilter.svg (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/29-Unbound.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/30-BIND.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/31-AdGuard-Home.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/32-AdNauseam.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/33-Legacy-Unix-Derivatives.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/34-Windows-command-line.png (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/imgs.d.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/imgs/index.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/softwareCloud/index.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/tagCloud/TagCloud.module.css (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/tagCloud/TagCloud.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/components/tagCloud/index.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/index.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/useApiData.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/useLanguages.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/useLicenses.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/useLists.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/useSearchColumnFilter.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/useSoftware.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/useSyntaxes.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/useTablePageSizer.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/hooks/useTags.tsx (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/interfaces/Language.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/interfaces/License.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/interfaces/List.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/interfaces/Software.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/interfaces/Syntax.ts (100%) rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/interfaces/Tag.ts (100%) delete mode 100644 src/FilterLists.Web/src/modules/home/Home.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/HomeContainer.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/IListDetails.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/Oneliner.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/TagGroup.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/DetailsExpander.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/LinkButtonGroup.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Description.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/InfoCard.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Languages.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/License.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/PublishedDate.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/RuleCount.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Syntax.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/UpdatedDate.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/description.css delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/linkButtonGroup.css delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainerInfoCard.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainerLinkButtonGroup.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainersInfoCard.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/ChatButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/DonateButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/EmailButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/ForumButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/HomeButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/IssuesButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/LinkButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/PolicyButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/SubmitButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButtonGroup.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButtonGroupDropdown.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/TwitterButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButtonGroup.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButtonGroupDropdown.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/linkButtons/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/ListsTable.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/DetailsButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/Languages.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/License.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/Maintainers.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/Name.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/RuleCount.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/Software.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/SubscribeButton.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/Syntax.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/Tags.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/UpdatedDate.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/columns/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/listsTable/listsTable.css delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/SoftwareIcon.tsx delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/01-uBlock-Origin.svg delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/02-Adblock-Plus.svg delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/03-AdGuard.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/03-AdGuard.svg delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/04-DNS66.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/05-Nano-Adblocker.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/06-AdBlock.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/07-AdAway.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/08-Personal-Blocklist.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/10-Redirector.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/11-Hosts-File-Editor.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/12-Gas-Mask.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/13-MinerBlock.svg delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/14-Pi-hole.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/14-Pi-hole.svg delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/15-uBlock.svg delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/16-Internet-Explorer-TPL.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/16-Internet-Explorer-TPL.svg delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/17-Google-Hit-Hider-by-Domain.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/18-FireHOL.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/19-Samsung-Knox.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/20-Little-Snitch.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/21-Privoxy.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/22-Diversion.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/23-dnsmasq.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/24-Slimjet.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/25-uMatrix.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/26-Blokada.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/27-hostsmgr.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/28-personalDNSfilter.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/28-personalDNSfilter.svg delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/29-Unbound.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/30-BIND.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/31-AdGuard-Home.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/32-AdNauseam.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/33-Legacy-Unix-Derivatives.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/34-Windows-command-line.png delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/imgs.d.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/components/softwareIcon/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/index.ts delete mode 100644 src/FilterLists.Web/src/modules/home/interfaces/IColumnVisibility.ts delete mode 100644 src/FilterLists.Web/src/modules/home/interfaces/ILicense.ts delete mode 100644 src/FilterLists.Web/src/modules/home/interfaces/IList.ts delete mode 100644 src/FilterLists.Web/src/modules/home/interfaces/IMaintainer.ts delete mode 100644 src/FilterLists.Web/src/modules/home/interfaces/ISoftware.ts delete mode 100644 src/FilterLists.Web/src/modules/home/interfaces/ISyntax.ts delete mode 100644 src/FilterLists.Web/src/modules/home/interfaces/ITag.ts delete mode 100644 src/FilterLists.Web/src/modules/home/interfaces/Language.ts delete mode 100644 src/FilterLists.Web/src/modules/index.ts delete mode 100644 src/FilterLists.Web/src/utils/GetContrast.ts delete mode 100644 src/FilterLists.Web/src/utils/loader.css rename src/{FilterLists.Web.V2 => FilterLists.Web}/src/utils/nameof.ts (100%) diff --git a/src/FilterLists.Web.V2/.gitignore b/src/FilterLists.Web.V2/.gitignore deleted file mode 100644 index 9f6f0d08b..000000000 --- a/src/FilterLists.Web.V2/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* \ No newline at end of file diff --git a/src/FilterLists.Web.V2/package-lock.json b/src/FilterLists.Web.V2/package-lock.json deleted file mode 100644 index 824648eadb1865f52a209e5648b7af6fb3e8e2df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562738 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�R0)mPgmI#!^^JU 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ΠF;>%+&U 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 ylX*08M@7F^5UIgK#<_)Mr0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - } -} \ No newline at end of file diff --git a/src/FilterLists.Web.V2/public/icon_filterlists.png b/src/FilterLists.Web.V2/public/icon_filterlists.png deleted file mode 100644 index 99c15bdde8dc8d089b942715967f19ba58848f0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2163 zcmc&#YgAKL7C!eHB*8+lI!ihNrBaG*ja(lPOcWD&M5-ZBd88l`h9WjJi4jN&7;-I6 z?F`t|KGYg{_@YW0o+}WNNyx%coKcu+jMzK~9ohg13D`=ogvZ==e$9{m(ABl({Mp~$ zd+l#O&OYn>B{hZa@ApSP0Dyn;?u54hfH4RIJPs2F1i=DK;EHGr8UXFm74!K%m>yQJ z`z;0l6|Vw-9tU6!Goj-Elpz2(*Z`2v0|zkM7}?=>mQhxlUA%K7$+e^ZghPKQ%UIsR=L zDp17D;p@|xA^4!5Rx{2R7}`&djS;y2;e~A(|{+opP%rT|9Fs{6iuKKF}7@+J{g~)C+=k53DMuAu~XMV zSLF`%6;n5#pEMcc-94e%f(y z2u_u>gw8ZxV~}7yfLPreTRGpSaWS>d(}qKj!KqW~Ky)s*%#yrM7SjSD`e-ym?#Wf- zSuh42v9(Fbn3=$*9+5Km@5!sos&CtQ<|7Msg@8* z0nE9=yxBr|lQ5j`bE0EwH{T!{(7LXGT8Ao9Y~*`S)}Zk&Fr0@w`mj*qWPzL7<+t6jHzD;L>VLu@l1GXbtKz1_-4@k!IQRcH$46F{CCq- z{C%I{1Gam$!KKqb?Cj=nBc9_}o69G0c>TS9V&u(<;AYos#cp~YNKzIXGRCmvgBs2j zkNHCX@FGt$Sr%1!H(dzF*UcMsXSD7P1vU@$kak?gX@5ER&?DOcug$}Vs<0|S?OL=` z=Tear=S<2~=*uud!bX_q?b-qb4P_K9T;WRi*87>@LxTREPKM2WQ2hcb5P{Znn#n|G zlaTAf{s?RsaA_uTi?kiff`%AVrm|syToVGqRaWRdwc}z9?`F$)w@zm&vXv@)?EUi+ z$;!j#CWh?P)Uv%zeJ2RtC5^B;tCskZXIn#{rz1c6#X%)|i%fHepzA@B$F4K1$ zvRd|+AuHbFslBdV_eGM{;pG@k#zz7R6U0r`RNXaHJrKz48voh+Nzi2XxYQFJLtjb^)Pz&WH-*2YU(HiHss^@MLT&#hJmUOf?T2`|7XFnYs^{>jA&gnkIYTyA~yB z-P|>~%Jvm)%bs!Pez&kEQS+;AY&+eTPhhRUNFz!US*7pfmll!>juc`7Y(_S1BO - - - - - - - - - FilterLists | Subscriptions for uBlock Origin, Adblock Plus, AdGuard, ... - - - - - - - - - - - diff --git a/src/FilterLists.Web.V2/public/logo_filterlists.png b/src/FilterLists.Web.V2/public/logo_filterlists.png deleted file mode 100644 index 7d8d1817038c2ed8604825a8b526e2def1bb3e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3953 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 diff --git a/src/FilterLists.Web.V2/public/manifest.json b/src/FilterLists.Web.V2/public/manifest.json deleted file mode 100644 index 143de534b..000000000 --- a/src/FilterLists.Web.V2/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "FilterLists", - "name": "FilterLists | Subscriptions for uBlock Origin, Adblock Plus, AdGuard, ...", - "icons": [ - { - "src": "icon_filterlists.png", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/png" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} \ No newline at end of file diff --git a/src/FilterLists.Web.V2/src/App.test.tsx b/src/FilterLists.Web.V2/src/App.test.tsx deleted file mode 100644 index 7911e5b41..000000000 --- a/src/FilterLists.Web.V2/src/App.test.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; - -import { App } from './App'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); - ReactDOM.unmountComponentAtNode(div); -}); \ No newline at end of file diff --git a/src/FilterLists.Web.V2/src/App.tsx b/src/FilterLists.Web.V2/src/App.tsx deleted file mode 100644 index e2ac34738..000000000 --- a/src/FilterLists.Web.V2/src/App.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import { Icon, Layout, Menu } from 'antd'; -import React from 'react'; -import { BrowserRouter as Router, Route, RouteComponentProps, Switch } from 'react-router-dom'; - -import { ListsTable } from './components'; - -const { Header, Content, Footer } = Layout; - -export const App: React.FC = () => - - -
- - -
- -
- - - - -
-
-
- | | | | | -
-
-
; - -const Logo = () => - FilterLists logo; - -const NotFound = (props: RouteComponentProps) => -

- 404 Not Found: {props.location.pathname} -

; - -const CopyrightAuthor = () => - <> - ©{new Date().getFullYear()}  - - Collin M. Barrett - - ; - -const Twitter = () => - - Twitter - ; - -const Community = () => - - Community - ; - -const GitHub = () => - - GitHub - ; - -const Api = () => - - API - ; - -const Donate = () => - - Donate - ; \ No newline at end of file diff --git a/src/FilterLists.Web.V2/src/index.css b/src/FilterLists.Web.V2/src/index.css deleted file mode 100644 index 4a1df4db7..000000000 --- a/src/FilterLists.Web.V2/src/index.css +++ /dev/null @@ -1,13 +0,0 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", - "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", - monospace; -} diff --git a/src/FilterLists.Web.V2/src/index.tsx b/src/FilterLists.Web.V2/src/index.tsx deleted file mode 100644 index 8fec59ed5..000000000 --- a/src/FilterLists.Web.V2/src/index.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import './index.css'; - -import React from 'react'; -import ReactDOM from 'react-dom'; - -import { App } from './App'; - -ReactDOM.render(, document.getElementById('root')); \ No newline at end of file diff --git a/src/FilterLists.Web.V2/src/react-app-env.d.ts b/src/FilterLists.Web.V2/src/react-app-env.d.ts deleted file mode 100644 index 6889c6b37..000000000 --- a/src/FilterLists.Web.V2/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// \ No newline at end of file diff --git a/src/FilterLists.Web.V2/src/utils/index.ts b/src/FilterLists.Web.V2/src/utils/index.ts deleted file mode 100644 index d22b49973..000000000 --- a/src/FilterLists.Web.V2/src/utils/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { nameof } from './nameof'; - -export { nameof }; \ No newline at end of file diff --git a/src/FilterLists.Web.V2/tsconfig.json b/src/FilterLists.Web.V2/tsconfig.json deleted file mode 100644 index 213390d38..000000000 --- a/src/FilterLists.Web.V2/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "preserve", - "noImplicitAny": true - }, - "include": [ - "src" - ] -} \ No newline at end of file diff --git a/src/FilterLists.Web/.gitignore b/src/FilterLists.Web/.gitignore index 4d29575de..9f6f0d08b 100644 --- a/src/FilterLists.Web/.gitignore +++ b/src/FilterLists.Web/.gitignore @@ -1,5 +1,3 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - # dependencies /node_modules /.pnp @@ -20,4 +18,4 @@ npm-debug.log* yarn-debug.log* -yarn-error.log* +yarn-error.log* \ No newline at end of file diff --git a/src/FilterLists.Web/Dockerfile b/src/FilterLists.Web/Dockerfile deleted file mode 100644 index a6dd8bcb4..000000000 --- a/src/FilterLists.Web/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -# Context: . -# Command: docker build -f src/FilterLists.Web/Dockerfile . - -# init base -FROM nginx:alpine as base - -# init build -FROM node:alpine as build - -# install -WORKDIR /usr/src/app/ -COPY src/FilterLists.Web/package*.json ./ -RUN npm install --only=prod - -# build -COPY src/FilterLists.Web/. ./ -RUN INLINE_RUNTIME_CHUNK=false npm run build - -# final -FROM base as final -COPY --from=build /usr/src/app/build /usr/share/nginx/html \ No newline at end of file diff --git a/src/FilterLists.Web.V2/config-overrides.js b/src/FilterLists.Web/config-overrides.js similarity index 100% rename from src/FilterLists.Web.V2/config-overrides.js rename to src/FilterLists.Web/config-overrides.js diff --git a/src/FilterLists.Web/package-lock.json b/src/FilterLists.Web/package-lock.json index c550b33d1cce95e8ea39a83d8746538fad329f52..824648eadb1865f52a209e5648b7af6fb3e8e2df 100644 GIT binary patch delta 53576 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 BLSO&@ delta 33307 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 + + + + + + + + FilterLists | Subscriptions for uBlock Origin, Adblock Plus, AdGuard, ... + + + + + - - - - - - - FilterLists | Subscriptions for uBlock Origin, Adblock Plus, AdGuard, ... - - - - - - - -
-

FilterLists is built with ReactJS and therefore requires first-party JavaScript to be enabled. We do not use any - third-party JavaScript, and your privacy is very important to us. If you prefer not to enable JavaScript or your - browser does not support it, the data is also available on our GitHub repo.

-
- - - \ No newline at end of file + + +
+

+ FilterLists is built with ReactJS and therefore requires first-party + JavaScript to be enabled. We do not use any third-party JavaScript, and + your privacy is very important to us. If you prefer not to enable + JavaScript or your browser does not support it, the data is also + available on + our GitHub repo. +

+
+ + diff --git a/src/FilterLists.Web/src/App.css b/src/FilterLists.Web/src/App.css deleted file mode 100644 index 021a9f2fc..000000000 --- a/src/FilterLists.Web/src/App.css +++ /dev/null @@ -1,14 +0,0 @@ -/* use consistent and smaller font size globally */ -body, -h2, -h3, -h4, -h5, -blockquote { - font-size: 16px; -} - -/* leave a bit of horizontal padding around the app for cleanliness */ -.container { - max-width: 90vw; -} diff --git a/src/FilterLists.Web/src/App.test.tsx b/src/FilterLists.Web/src/App.test.tsx index a754b201b..7911e5b41 100644 --- a/src/FilterLists.Web/src/App.test.tsx +++ b/src/FilterLists.Web/src/App.test.tsx @@ -1,9 +1,10 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import App from './App'; + +import { App } from './App'; it('renders without crashing', () => { const div = document.createElement('div'); ReactDOM.render(, div); ReactDOM.unmountComponentAtNode(div); -}); +}); \ No newline at end of file diff --git a/src/FilterLists.Web/src/App.tsx b/src/FilterLists.Web/src/App.tsx index 8ef9be137..e2ac34738 100644 --- a/src/FilterLists.Web/src/App.tsx +++ b/src/FilterLists.Web/src/App.tsx @@ -1,14 +1,90 @@ +import { Icon, Layout, Menu } from 'antd'; import React from 'react'; -import './App.css'; -import { Layout } from "./Layout"; -import { Router } from "./Router"; +import { BrowserRouter as Router, Route, RouteComponentProps, Switch } from 'react-router-dom'; -const App: React.FC = () => { - return ( +import { ListsTable } from './components'; + +const { Header, Content, Footer } = Layout; + +export const App: React.FC = () => + - +
+ + +
+ +
+ + + + +
+
+
+ | | | | | +
- ); -} +
; -export default App; +const Logo = () => + FilterLists logo; + +const NotFound = (props: RouteComponentProps) => +

+ 404 Not Found: {props.location.pathname} +

; + +const CopyrightAuthor = () => + <> + ©{new Date().getFullYear()}  + + Collin M. Barrett + + ; + +const Twitter = () => + + Twitter + ; + +const Community = () => + + Community + ; + +const GitHub = () => + + GitHub + ; + +const Api = () => + + API + ; + +const Donate = () => + + Donate + ; \ No newline at end of file diff --git a/src/FilterLists.Web/src/Layout.tsx b/src/FilterLists.Web/src/Layout.tsx deleted file mode 100644 index e98fe8ded..000000000 --- a/src/FilterLists.Web/src/Layout.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import * as React from "react"; - -interface Props { - children?: React.ReactNode; -}; - -export const Layout = (props: Props) => -
-
-
-
- {props.children} -
-
-
-
; - -const Header = () => -
-

- - FilterLists - -

-
; - -const Footer = () => -
-

- | | | | By -

-
; - -const HubLink = () => - - Hub - ; - -const GitHubLink = () => - - GitHub - ; - -const ApiLink = () => - - API - ; - -const DonateLink = () => - - Donate - ; - -const OwnerLink = () => - - Collin M. Barrett - ; \ No newline at end of file diff --git a/src/FilterLists.Web/src/Router.tsx b/src/FilterLists.Web/src/Router.tsx deleted file mode 100644 index 6036178a7..000000000 --- a/src/FilterLists.Web/src/Router.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import * as React from "react"; -import { BrowserRouter, Redirect, Route, Switch } from "react-router-dom"; -import { Home } from "./modules"; - -const Routes = - - - - - - ; - -export const Router = () => \ No newline at end of file diff --git a/src/FilterLists.Web.V2/src/components/Description.tsx b/src/FilterLists.Web/src/components/Description.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/Description.tsx rename to src/FilterLists.Web/src/components/Description.tsx diff --git a/src/FilterLists.Web.V2/src/components/LicenseTag.tsx b/src/FilterLists.Web/src/components/LicenseTag.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/LicenseTag.tsx rename to src/FilterLists.Web/src/components/LicenseTag.tsx diff --git a/src/FilterLists.Web.V2/src/components/LinkButton.tsx b/src/FilterLists.Web/src/components/LinkButton.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/LinkButton.tsx rename to src/FilterLists.Web/src/components/LinkButton.tsx diff --git a/src/FilterLists.Web.V2/src/components/ListInfoButton.tsx b/src/FilterLists.Web/src/components/ListInfoButton.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/ListInfoButton.tsx rename to src/FilterLists.Web/src/components/ListInfoButton.tsx diff --git a/src/FilterLists.Web.V2/src/components/ListInfoDrawer.tsx b/src/FilterLists.Web/src/components/ListInfoDrawer.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/ListInfoDrawer.tsx rename to src/FilterLists.Web/src/components/ListInfoDrawer.tsx diff --git a/src/FilterLists.Web.V2/src/components/PublishedDate.tsx b/src/FilterLists.Web/src/components/PublishedDate.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/PublishedDate.tsx rename to src/FilterLists.Web/src/components/PublishedDate.tsx diff --git a/src/FilterLists.Web.V2/src/components/SubscribeButtons.tsx b/src/FilterLists.Web/src/components/SubscribeButtons.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/SubscribeButtons.tsx rename to src/FilterLists.Web/src/components/SubscribeButtons.tsx diff --git a/src/FilterLists.Web.V2/src/components/SyntaxTag.tsx b/src/FilterLists.Web/src/components/SyntaxTag.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/SyntaxTag.tsx rename to src/FilterLists.Web/src/components/SyntaxTag.tsx diff --git a/src/FilterLists.Web.V2/src/components/index.ts b/src/FilterLists.Web/src/components/index.ts similarity index 100% rename from src/FilterLists.Web.V2/src/components/index.ts rename to src/FilterLists.Web/src/components/index.ts diff --git a/src/FilterLists.Web.V2/src/components/languageCloud/LanguageCloud.module.css b/src/FilterLists.Web/src/components/languageCloud/LanguageCloud.module.css similarity index 100% rename from src/FilterLists.Web.V2/src/components/languageCloud/LanguageCloud.module.css rename to src/FilterLists.Web/src/components/languageCloud/LanguageCloud.module.css diff --git a/src/FilterLists.Web.V2/src/components/languageCloud/LanguageCloud.tsx b/src/FilterLists.Web/src/components/languageCloud/LanguageCloud.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/languageCloud/LanguageCloud.tsx rename to src/FilterLists.Web/src/components/languageCloud/LanguageCloud.tsx diff --git a/src/FilterLists.Web.V2/src/components/languageCloud/index.ts b/src/FilterLists.Web/src/components/languageCloud/index.ts similarity index 100% rename from src/FilterLists.Web.V2/src/components/languageCloud/index.ts rename to src/FilterLists.Web/src/components/languageCloud/index.ts diff --git a/src/FilterLists.Web.V2/src/components/listsTable/ListDrawer.tsx b/src/FilterLists.Web/src/components/listsTable/ListDrawer.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/listsTable/ListDrawer.tsx rename to src/FilterLists.Web/src/components/listsTable/ListDrawer.tsx diff --git a/src/FilterLists.Web.V2/src/components/listsTable/ListsTable.module.css b/src/FilterLists.Web/src/components/listsTable/ListsTable.module.css similarity index 100% rename from src/FilterLists.Web.V2/src/components/listsTable/ListsTable.module.css rename to src/FilterLists.Web/src/components/listsTable/ListsTable.module.css diff --git a/src/FilterLists.Web.V2/src/components/listsTable/ListsTable.tsx b/src/FilterLists.Web/src/components/listsTable/ListsTable.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/listsTable/ListsTable.tsx rename to src/FilterLists.Web/src/components/listsTable/ListsTable.tsx diff --git a/src/FilterLists.Web.V2/src/components/listsTable/ListsTableHoc.tsx b/src/FilterLists.Web/src/components/listsTable/ListsTableHoc.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/listsTable/ListsTableHoc.tsx rename to src/FilterLists.Web/src/components/listsTable/ListsTableHoc.tsx diff --git a/src/FilterLists.Web.V2/src/components/listsTable/arraySorter.ts b/src/FilterLists.Web/src/components/listsTable/arraySorter.ts similarity index 100% rename from src/FilterLists.Web.V2/src/components/listsTable/arraySorter.ts rename to src/FilterLists.Web/src/components/listsTable/arraySorter.ts diff --git a/src/FilterLists.Web.V2/src/components/listsTable/index.ts b/src/FilterLists.Web/src/components/listsTable/index.ts similarity index 100% rename from src/FilterLists.Web.V2/src/components/listsTable/index.ts rename to src/FilterLists.Web/src/components/listsTable/index.ts diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/SoftwareCloud.module.css b/src/FilterLists.Web/src/components/softwareCloud/SoftwareCloud.module.css similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/SoftwareCloud.module.css rename to src/FilterLists.Web/src/components/softwareCloud/SoftwareCloud.module.css diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/SoftwareCloud.tsx b/src/FilterLists.Web/src/components/softwareCloud/SoftwareCloud.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/SoftwareCloud.tsx rename to src/FilterLists.Web/src/components/softwareCloud/SoftwareCloud.tsx diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/SoftwareIcon.tsx b/src/FilterLists.Web/src/components/softwareCloud/SoftwareIcon.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/SoftwareIcon.tsx rename to src/FilterLists.Web/src/components/softwareCloud/SoftwareIcon.tsx diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/01-uBlock-Origin.svg b/src/FilterLists.Web/src/components/softwareCloud/imgs/01-uBlock-Origin.svg similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/01-uBlock-Origin.svg rename to src/FilterLists.Web/src/components/softwareCloud/imgs/01-uBlock-Origin.svg diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/02-Adblock-Plus.svg b/src/FilterLists.Web/src/components/softwareCloud/imgs/02-Adblock-Plus.svg similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/02-Adblock-Plus.svg rename to src/FilterLists.Web/src/components/softwareCloud/imgs/02-Adblock-Plus.svg diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/03-AdGuard.svg b/src/FilterLists.Web/src/components/softwareCloud/imgs/03-AdGuard.svg similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/03-AdGuard.svg rename to src/FilterLists.Web/src/components/softwareCloud/imgs/03-AdGuard.svg diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/04-DNS66.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/04-DNS66.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/04-DNS66.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/04-DNS66.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/05-Nano-Adblocker.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/05-Nano-Adblocker.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/05-Nano-Adblocker.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/05-Nano-Adblocker.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/06-AdBlock.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/06-AdBlock.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/06-AdBlock.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/06-AdBlock.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/07-AdAway.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/07-AdAway.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/07-AdAway.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/07-AdAway.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/08-Personal-Blocklist.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/08-Personal-Blocklist.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/08-Personal-Blocklist.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/08-Personal-Blocklist.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/10-Redirector.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/10-Redirector.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/10-Redirector.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/10-Redirector.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/11-Hosts-File-Editor.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/11-Hosts-File-Editor.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/11-Hosts-File-Editor.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/11-Hosts-File-Editor.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/12-Gas-Mask.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/12-Gas-Mask.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/12-Gas-Mask.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/12-Gas-Mask.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/13-MinerBlock.svg b/src/FilterLists.Web/src/components/softwareCloud/imgs/13-MinerBlock.svg similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/13-MinerBlock.svg rename to src/FilterLists.Web/src/components/softwareCloud/imgs/13-MinerBlock.svg diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/14-Pi-hole.svg b/src/FilterLists.Web/src/components/softwareCloud/imgs/14-Pi-hole.svg similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/14-Pi-hole.svg rename to src/FilterLists.Web/src/components/softwareCloud/imgs/14-Pi-hole.svg diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/15-uBlock.svg b/src/FilterLists.Web/src/components/softwareCloud/imgs/15-uBlock.svg similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/15-uBlock.svg rename to src/FilterLists.Web/src/components/softwareCloud/imgs/15-uBlock.svg diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/16-Internet-Explorer-TPL.svg b/src/FilterLists.Web/src/components/softwareCloud/imgs/16-Internet-Explorer-TPL.svg similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/16-Internet-Explorer-TPL.svg rename to src/FilterLists.Web/src/components/softwareCloud/imgs/16-Internet-Explorer-TPL.svg diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/17-Google-Hit-Hider-by-Domain.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/17-Google-Hit-Hider-by-Domain.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/17-Google-Hit-Hider-by-Domain.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/17-Google-Hit-Hider-by-Domain.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/18-FireHOL.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/18-FireHOL.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/18-FireHOL.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/18-FireHOL.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/19-Samsung-Knox.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/19-Samsung-Knox.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/19-Samsung-Knox.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/19-Samsung-Knox.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/20-Little-Snitch.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/20-Little-Snitch.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/20-Little-Snitch.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/20-Little-Snitch.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/21-Privoxy.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/21-Privoxy.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/21-Privoxy.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/21-Privoxy.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/22-Diversion.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/22-Diversion.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/22-Diversion.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/22-Diversion.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/23-dnsmasq.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/23-dnsmasq.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/23-dnsmasq.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/23-dnsmasq.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/24-Slimjet.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/24-Slimjet.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/24-Slimjet.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/24-Slimjet.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/25-uMatrix.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/25-uMatrix.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/25-uMatrix.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/25-uMatrix.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/26-Blokada.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/26-Blokada.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/26-Blokada.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/26-Blokada.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/27-hostsmgr.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/27-hostsmgr.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/27-hostsmgr.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/27-hostsmgr.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/28-personalDNSfilter.svg b/src/FilterLists.Web/src/components/softwareCloud/imgs/28-personalDNSfilter.svg similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/28-personalDNSfilter.svg rename to src/FilterLists.Web/src/components/softwareCloud/imgs/28-personalDNSfilter.svg diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/29-Unbound.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/29-Unbound.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/29-Unbound.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/29-Unbound.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/30-BIND.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/30-BIND.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/30-BIND.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/30-BIND.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/31-AdGuard-Home.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/31-AdGuard-Home.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/31-AdGuard-Home.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/31-AdGuard-Home.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/32-AdNauseam.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/32-AdNauseam.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/32-AdNauseam.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/32-AdNauseam.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/33-Legacy-Unix-Derivatives.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/33-Legacy-Unix-Derivatives.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/33-Legacy-Unix-Derivatives.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/33-Legacy-Unix-Derivatives.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/34-Windows-command-line.png b/src/FilterLists.Web/src/components/softwareCloud/imgs/34-Windows-command-line.png similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/34-Windows-command-line.png rename to src/FilterLists.Web/src/components/softwareCloud/imgs/34-Windows-command-line.png diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/imgs.d.ts b/src/FilterLists.Web/src/components/softwareCloud/imgs/imgs.d.ts similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/imgs.d.ts rename to src/FilterLists.Web/src/components/softwareCloud/imgs/imgs.d.ts diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/imgs/index.ts b/src/FilterLists.Web/src/components/softwareCloud/imgs/index.ts similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/imgs/index.ts rename to src/FilterLists.Web/src/components/softwareCloud/imgs/index.ts diff --git a/src/FilterLists.Web.V2/src/components/softwareCloud/index.ts b/src/FilterLists.Web/src/components/softwareCloud/index.ts similarity index 100% rename from src/FilterLists.Web.V2/src/components/softwareCloud/index.ts rename to src/FilterLists.Web/src/components/softwareCloud/index.ts diff --git a/src/FilterLists.Web.V2/src/components/tagCloud/TagCloud.module.css b/src/FilterLists.Web/src/components/tagCloud/TagCloud.module.css similarity index 100% rename from src/FilterLists.Web.V2/src/components/tagCloud/TagCloud.module.css rename to src/FilterLists.Web/src/components/tagCloud/TagCloud.module.css diff --git a/src/FilterLists.Web.V2/src/components/tagCloud/TagCloud.tsx b/src/FilterLists.Web/src/components/tagCloud/TagCloud.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/components/tagCloud/TagCloud.tsx rename to src/FilterLists.Web/src/components/tagCloud/TagCloud.tsx diff --git a/src/FilterLists.Web.V2/src/components/tagCloud/index.ts b/src/FilterLists.Web/src/components/tagCloud/index.ts similarity index 100% rename from src/FilterLists.Web.V2/src/components/tagCloud/index.ts rename to src/FilterLists.Web/src/components/tagCloud/index.ts diff --git a/src/FilterLists.Web.V2/src/hooks/index.ts b/src/FilterLists.Web/src/hooks/index.ts similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/index.ts rename to src/FilterLists.Web/src/hooks/index.ts diff --git a/src/FilterLists.Web.V2/src/hooks/useApiData.tsx b/src/FilterLists.Web/src/hooks/useApiData.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/useApiData.tsx rename to src/FilterLists.Web/src/hooks/useApiData.tsx diff --git a/src/FilterLists.Web.V2/src/hooks/useLanguages.tsx b/src/FilterLists.Web/src/hooks/useLanguages.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/useLanguages.tsx rename to src/FilterLists.Web/src/hooks/useLanguages.tsx diff --git a/src/FilterLists.Web.V2/src/hooks/useLicenses.tsx b/src/FilterLists.Web/src/hooks/useLicenses.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/useLicenses.tsx rename to src/FilterLists.Web/src/hooks/useLicenses.tsx diff --git a/src/FilterLists.Web.V2/src/hooks/useLists.tsx b/src/FilterLists.Web/src/hooks/useLists.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/useLists.tsx rename to src/FilterLists.Web/src/hooks/useLists.tsx diff --git a/src/FilterLists.Web.V2/src/hooks/useSearchColumnFilter.tsx b/src/FilterLists.Web/src/hooks/useSearchColumnFilter.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/useSearchColumnFilter.tsx rename to src/FilterLists.Web/src/hooks/useSearchColumnFilter.tsx diff --git a/src/FilterLists.Web.V2/src/hooks/useSoftware.tsx b/src/FilterLists.Web/src/hooks/useSoftware.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/useSoftware.tsx rename to src/FilterLists.Web/src/hooks/useSoftware.tsx diff --git a/src/FilterLists.Web.V2/src/hooks/useSyntaxes.tsx b/src/FilterLists.Web/src/hooks/useSyntaxes.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/useSyntaxes.tsx rename to src/FilterLists.Web/src/hooks/useSyntaxes.tsx diff --git a/src/FilterLists.Web.V2/src/hooks/useTablePageSizer.tsx b/src/FilterLists.Web/src/hooks/useTablePageSizer.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/useTablePageSizer.tsx rename to src/FilterLists.Web/src/hooks/useTablePageSizer.tsx diff --git a/src/FilterLists.Web.V2/src/hooks/useTags.tsx b/src/FilterLists.Web/src/hooks/useTags.tsx similarity index 100% rename from src/FilterLists.Web.V2/src/hooks/useTags.tsx rename to src/FilterLists.Web/src/hooks/useTags.tsx diff --git a/src/FilterLists.Web/src/index.tsx b/src/FilterLists.Web/src/index.tsx index 90ba2def7..8fec59ed5 100644 --- a/src/FilterLists.Web/src/index.tsx +++ b/src/FilterLists.Web/src/index.tsx @@ -1,7 +1,8 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import '../node_modules/bootstrap/dist/css/bootstrap.min.css'; -import App from './App'; import './index.css'; +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { App } from './App'; + ReactDOM.render(, document.getElementById('root')); \ No newline at end of file diff --git a/src/FilterLists.Web.V2/src/interfaces/Language.ts b/src/FilterLists.Web/src/interfaces/Language.ts similarity index 100% rename from src/FilterLists.Web.V2/src/interfaces/Language.ts rename to src/FilterLists.Web/src/interfaces/Language.ts diff --git a/src/FilterLists.Web.V2/src/interfaces/License.ts b/src/FilterLists.Web/src/interfaces/License.ts similarity index 100% rename from src/FilterLists.Web.V2/src/interfaces/License.ts rename to src/FilterLists.Web/src/interfaces/License.ts diff --git a/src/FilterLists.Web.V2/src/interfaces/List.ts b/src/FilterLists.Web/src/interfaces/List.ts similarity index 100% rename from src/FilterLists.Web.V2/src/interfaces/List.ts rename to src/FilterLists.Web/src/interfaces/List.ts diff --git a/src/FilterLists.Web.V2/src/interfaces/Software.ts b/src/FilterLists.Web/src/interfaces/Software.ts similarity index 100% rename from src/FilterLists.Web.V2/src/interfaces/Software.ts rename to src/FilterLists.Web/src/interfaces/Software.ts diff --git a/src/FilterLists.Web.V2/src/interfaces/Syntax.ts b/src/FilterLists.Web/src/interfaces/Syntax.ts similarity index 100% rename from src/FilterLists.Web.V2/src/interfaces/Syntax.ts rename to src/FilterLists.Web/src/interfaces/Syntax.ts diff --git a/src/FilterLists.Web.V2/src/interfaces/Tag.ts b/src/FilterLists.Web/src/interfaces/Tag.ts similarity index 100% rename from src/FilterLists.Web.V2/src/interfaces/Tag.ts rename to src/FilterLists.Web/src/interfaces/Tag.ts diff --git a/src/FilterLists.Web/src/modules/home/Home.tsx b/src/FilterLists.Web/src/modules/home/Home.tsx deleted file mode 100644 index 34350686b..000000000 --- a/src/FilterLists.Web/src/modules/home/Home.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import * as React from "react"; -import { ListsTable, Oneliner } from "./components"; -import { IColumnVisibility } from "./interfaces/IColumnVisibility"; -import { ILicense } from "./interfaces/ILicense"; -import { IList } from "./interfaces/IList"; -import { IMaintainer } from "./interfaces/IMaintainer"; -import { ISoftware } from "./interfaces/ISoftware"; -import { ISyntax } from "./interfaces/ISyntax"; -import { ITag } from "./interfaces/ITag"; -import { Language } from "./interfaces/Language"; - -const columnVisibilityDefaults: IColumnVisibility[] = [ - { column: "Software", visible: true }, - { column: "Languages", visible: true }, - { column: "Tags", visible: true }, - { column: "License", visible: false }, - { column: "Maintainers", visible: false }, - { column: "Subscribe", visible: false } -]; - -interface Props { - languages: Language[]; - licenses: ILicense[]; - lists: IList[]; - maintainers: IMaintainer[]; - software: ISoftware[]; - syntaxes: ISyntax[]; - tags: ITag[]; -}; - -interface IState { - columnVisibility: IColumnVisibility[]; - pageSize: number; -}; - -export class Home extends React.Component { - constructor(props: Props) { - super(props); - this.state = { - columnVisibility: columnVisibilityDefaults, - pageSize: 20 - }; - this.updatePageSize = this.updatePageSize.bind(this); - } - - componentDidMount() { - this.setMobileColumnVisibility(); - this.updatePageSize(); - }; - - setMobileColumnVisibility() { - if (window.innerWidth < 768) { - this.state.columnVisibility.forEach((c: IColumnVisibility) => { - c.visible = false; - }); - } - }; - - updatePageSize() { - this.setState({ - pageSize: Math.max(Math.floor((window.innerHeight - 340) / 55), 5) - }); - }; - - render() { - return
- - - {this.renderColumnVisibilityCheckboxes()} -
; - }; - - renderColumnVisibilityCheckboxes() { - return this.props.lists.length > 0 - ?
- Visible:  {this.state.columnVisibility.map( - (c: IColumnVisibility, i: number) => this.renderColumnVisibilityCheckbox(c, i))} -
- : null; - }; - - renderColumnVisibilityCheckbox(props: IColumnVisibility, key: number) { - return
- this.checkColumn(props)} /> - -
; - }; - - checkColumn(props: IColumnVisibility) { - const columnVisibility = this.state.columnVisibility; - const index = this.findWithAttr(columnVisibility, "column", props.column); - columnVisibility[index].visible = !columnVisibility[index].visible; - this.forceUpdate(); - }; - - findWithAttr(array: any, attr: string, value: string) { - for (let i = 0; i < array.length; i += 1) { - if (array[i][attr] === value) { - return i; - } - } - return -1; - }; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/HomeContainer.tsx b/src/FilterLists.Web/src/modules/home/HomeContainer.tsx deleted file mode 100644 index 0c0ea906a..000000000 --- a/src/FilterLists.Web/src/modules/home/HomeContainer.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import * as React from "react"; -import { Home } from "./Home"; -import { ILicense } from "./interfaces/ILicense"; -import { IList } from "./interfaces/IList"; -import { IMaintainer } from "./interfaces/IMaintainer"; -import { ISoftware } from "./interfaces/ISoftware"; -import { ISyntax } from "./interfaces/ISyntax"; -import { ITag } from "./interfaces/ITag"; -import { Language } from "./interfaces/Language"; - -interface IState { - languages: Language[]; - licenses: ILicense[]; - lists: IList[]; - maintainers: IMaintainer[]; - ruleCount: number; - software: ISoftware[]; - syntaxes: ISyntax[]; - tags: ITag[]; -}; - -export class HomeContainer extends React.Component<{}, IState> { - constructor(props: any) { - super(props); - this.state = { - languages: [], - licenses: [], - lists: [], - maintainers: [], - ruleCount: 0, - software: [], - syntaxes: [], - tags: [] - }; - } - - componentDidMount() { - this.fetchLists(); - this.fetchLanguages(); - this.fetchLicenses(); - this.fetchMaintainers(); - this.fetchSoftware(); - this.fetchSyntaxes(); - this.fetchTags(); - }; - - fetchLanguages() { - fetch("/api/v1/languages") - .then(response => response.json()) - .then(json => { this.setState({ languages: json }); }) - }; - - fetchLicenses() { - fetch("/api/v1/licenses") - .then(response => response.json()) - .then(json => { this.setState({ licenses: json }); }) - }; - - fetchLists() { - fetch("/api/v1/lists") - .then(response => response.json()) - .then(json => { this.setState({ lists: json }); }) - }; - - fetchMaintainers() { - fetch("/api/v1/maintainers") - .then(response => response.json()) - .then(json => { this.setState({ maintainers: json }); }) - }; - - fetchSoftware() { - fetch("/api/v1/software") - .then(response => response.json()) - .then(json => { this.setState({ software: json }); }) - }; - - fetchSyntaxes() { - fetch("/api/v1/syntaxes") - .then(response => response.json()) - .then(json => { this.setState({ syntaxes: json }); }) - }; - - fetchTags() { - fetch("/api/v1/tags") - .then(response => response.json()) - .then(json => { this.setState({ tags: json }); }) - }; - - render() { - return ; - }; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/IListDetails.ts b/src/FilterLists.Web/src/modules/home/components/IListDetails.ts deleted file mode 100644 index d5ed31f82..000000000 --- a/src/FilterLists.Web/src/modules/home/components/IListDetails.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ILicense } from "../interfaces/ILicense"; -import { IMaintainer } from "../interfaces/IMaintainer"; -import { ISyntax } from "../interfaces/ISyntax"; -import { ITag } from "../interfaces/ITag"; -import { Language } from "../interfaces/Language"; - -export interface IListDetails { - id: number; - chatUrl: string; - description: string; - descriptionSourceUrl: string; - donateUrl: string; - emailAddress: string; - forumUrl: string; - homeUrl: string; - issuesUrl: string; - languages: Language[]; - license: ILicense; - maintainers: IMaintainer[]; - name: string; - policyUrl: string; - publishedDate: string; - submissionUrl: string; - syntax: ISyntax; - tags: ITag[]; - viewUrl: string; - viewUrlMirrors: string[]; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/Oneliner.tsx b/src/FilterLists.Web/src/modules/home/components/Oneliner.tsx deleted file mode 100644 index b9754c39f..000000000 --- a/src/FilterLists.Web/src/modules/home/components/Oneliner.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; - -interface Props { - listCount: number; -}; - -export const Oneliner = (props: Props) => - props.listCount > 0 - ?

- The independent, comprehensive directory of {props.listCount.toLocaleString()} filter and host lists for advertisements, trackers, malware, and annoyances. -

- :

- The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances. -

; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/TagGroup.tsx b/src/FilterLists.Web/src/modules/home/components/TagGroup.tsx deleted file mode 100644 index a6439ab80..000000000 --- a/src/FilterLists.Web/src/modules/home/components/TagGroup.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import * as React from "react"; -import { getContrast } from "../../../utils"; -import { ITag } from "../interfaces/ITag"; - -interface Props { - tags: ITag[]; -}; - -export const TagGroup = (props: Props) => - props.tags && props.tags.length > 0 - ?
- {props.tags.map((t: ITag, i: number) => )} -
- : null; - -interface ITagProps { - tag: ITag; -}; - -const Tag = (props: ITagProps) => { - if (props.tag) { - const hexColor = kelly_colors_hex[props.tag.id % kelly_colors_hex.length]; - return - {props.tag.name} - ; - } else { - return null; - } -}; - -//https://stackoverflow.com/a/4382138/2343739 -const kelly_colors_hex = [ - "FFB300", // Vivid Yellow - "803E75", // Strong Purple - "FF6800", // Vivid Orange - "A6BDD7", // Very Light Blue - "C10020", // Vivid Red - "CEA262", // Grayish Yellow - "817066", // Medium Gray - "007D34", // Vivid Green - "F6768E", // Strong Purplish Pink - "00538A", // Strong Blue - "FF7A5C", // Strong Yellowish Pink - "53377A", // Strong Violet - "FF8E00", // Vivid Orange Yellow - "B32851", // Strong Purplish Red - "F4C800", // Vivid Greenish Yellow - "7F180D", // Strong Reddish Brown - "93AA00", // Vivid Yellowish Green - "593315", // Deep Yellowish Brown - "F13A13", // Vivid Reddish Orange - "232C16", // Dark Olive Green - "000000", // Black - "FFFFFF", // White - "C2F4BE", // Light Green - "1EDBB9", // Medium Greenish Blue - "890000", // Dark Red - "474747", // Dark Grey - "BFA125", // Matte Gold - "A7823C", // Dark Beige - "035A5C" // Dark Greenish Blue -]; diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/DetailsExpander.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/DetailsExpander.tsx deleted file mode 100644 index 54c7002be..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/DetailsExpander.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import * as React from "react"; -import { IColumnVisibility } from "../../interfaces/IColumnVisibility"; -import { ISoftware } from "../../interfaces/ISoftware"; -import { IListDetails } from "../IListDetails"; -import { InfoCard } from "./infoCard"; -import { LinkButtonGroup } from "./LinkButtonGroup"; -import { MaintainersInfoCard } from "./maintainersInfoCard"; - -interface Props { - columnVisibility: IColumnVisibility[]; - list: IListDetails; - software: ISoftware[]; -}; - -export const DetailsExpander = (props: Props) => -
-
-
-
- - -
-
- -
-
-
-
; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/LinkButtonGroup.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/LinkButtonGroup.tsx deleted file mode 100644 index 5049b2026..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/LinkButtonGroup.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import * as React from "react"; -import { ChatButton, DonateButton, EmailButton, ForumButton, HomeButton, IssuesButton, PolicyButton, SubmitButton, SubscribeButton, ViewButton } from "../linkButtons"; -import "./linkButtonGroup.css"; - -interface Props { - chatUrl: string; - donateUrl: string; - emailAddress: string; - forumUrl: string; - homeUrl: string; - issuesUrl: string; - name: string; - policyUrl: string; - submissionUrl: string; - viewUrl: string; - viewUrlMirrors: string[]; -}; - -export const LinkButtonGroup = (props: Props) => -
- - - - - - - - - - -
; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/index.ts b/src/FilterLists.Web/src/modules/home/components/detailsExpander/index.ts deleted file mode 100644 index 741dbb60b..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DetailsExpander } from "./DetailsExpander"; - -export { DetailsExpander }; diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Description.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Description.tsx deleted file mode 100644 index 93a782295..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Description.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import * as React from "react"; -import "./description.css"; - -interface Props { - description: string; - url: string; -}; - -export const Description = (props: Props) => - props.description - ?

- {props.url - ?
{props.description}
- : props.description} -

- : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/InfoCard.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/InfoCard.tsx deleted file mode 100644 index fd52dac1f..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/InfoCard.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import * as React from "react"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; -import { ILicense } from "../../../interfaces/ILicense"; -import { ISoftware } from "../../../interfaces/ISoftware"; -import { ISyntax } from "../../../interfaces/ISyntax"; -import { ITag } from "../../../interfaces/ITag"; -import { Language } from "../../../interfaces/Language"; -import { SoftwareIcon } from "../../softwareIcon"; -import { TagGroup } from "../../TagGroup"; -import { Description } from "./Description"; -import { Languages } from "./Languages"; -import { License } from "./License"; -import { PublishedDate } from "./PublishedDate"; -import { Syntax } from "./Syntax"; - -interface Props { - columnVisibility: IColumnVisibility[]; - description: string; - descriptionSourceUrl: string; - languages: Language[]; - license: ILicense; - name: string; - publishedDate: string; - software: ISoftware[]; - syntax: ISyntax; - tags: ITag[]; -}; - -export const InfoCard = (props: Props) => -
- {props.columnVisibility.filter((c: IColumnVisibility) => c.column === "Tags")[0].visible - ? null - : } -
- {props.columnVisibility.filter((c: IColumnVisibility) => c.column === "Software")[0].visible - ? null - : props.syntax - ? props.software.filter((s: ISoftware) => s.syntaxIds.indexOf(props.syntax.id) > -1) - .map((s: ISoftware, i: number) => ) - : null} -
- -
    - - - - {props.columnVisibility.filter((c: IColumnVisibility) => c.column === "License")[0].visible - ? null - : } -
-
; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Languages.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Languages.tsx deleted file mode 100644 index cb3989273..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Languages.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import * as React from "react"; -import { Language } from "../../../interfaces/Language"; - -interface Props { - languages: Language[]; -}; - -export const Languages = (props: Props) => - props.languages && props.languages.length > 0 - ? props.languages.length > 1 - ?
  • -

    Languages:

    -
      - {props.languages.map((language: Language, i: number) =>
    • {language.name}
    • )} -
    -
  • - :
  • -

    Language: {props.languages[0].name}

    -
  • - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/License.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/License.tsx deleted file mode 100644 index 0c2c51776..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/License.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import * as React from "react"; -import { ILicense } from "../../../interfaces/ILicense"; - -interface Props { - license: ILicense; -}; - -export const License = (props: Props) => - props.license.name - ? (props.license.descriptionUrl - ?
  • -

    License: {props.license.name}

    -
  • - :
  • -

    License: {props.license.name}

    -
  • ) - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/PublishedDate.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/PublishedDate.tsx deleted file mode 100644 index 67325b70a..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/PublishedDate.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import moment from 'moment'; -import * as React from "react"; - -interface Props { - date: string; -}; - -export const PublishedDate = (props: Props) => - props.date - ?
  • -

    Published: {moment(props.date).format("l")}

    -
  • - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/RuleCount.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/RuleCount.tsx deleted file mode 100644 index 1d57aeb87..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/RuleCount.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import * as React from "react"; - -interface Props { - ruleCount: number; -}; - -export const RuleCount = (props: Props) => - props.ruleCount > 0 - ?
  • -

    Rule Count: {props.ruleCount.toLocaleString()}

    -
  • - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Syntax.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Syntax.tsx deleted file mode 100644 index 473590ff3..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/Syntax.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import * as React from "react"; -import { ISyntax } from "../../../interfaces/ISyntax"; - -interface Props { - syntax: ISyntax; -}; - -export const Syntax = (props: Props) => - props.syntax - ? (props.syntax.definitionUrl - ?
  • -

    Syntax: {props.syntax.name}

    -
  • - :
  • -

    Syntax: {props.syntax.name}

    -
  • ) - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/UpdatedDate.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/UpdatedDate.tsx deleted file mode 100644 index 7ccd41bb1..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/UpdatedDate.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import moment from 'moment'; -import * as React from "react"; - -interface Props { - updatedDate: string; -}; - -export const UpdatedDate = (props: Props) => - props.updatedDate - ?
  • -

    Updated: {moment(props.updatedDate).isValid() - ? moment(props.updatedDate).format("l") - : "N/A"}

    -
  • - : null; diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/description.css b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/description.css deleted file mode 100644 index 2a1267485..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/description.css +++ /dev/null @@ -1 +0,0 @@ -.fl-description { margin: 0 0 .5rem; } \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/index.ts b/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/index.ts deleted file mode 100644 index 260aed18f..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/infoCard/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { InfoCard } from "./InfoCard"; - -export { InfoCard }; diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/linkButtonGroup.css b/src/FilterLists.Web/src/modules/home/components/detailsExpander/linkButtonGroup.css deleted file mode 100644 index a590b0139..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/linkButtonGroup.css +++ /dev/null @@ -1,3 +0,0 @@ -.btn-group-vertical { - display: inline; -} diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainerInfoCard.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainerInfoCard.tsx deleted file mode 100644 index d773bc9b5..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainerInfoCard.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import * as React from "react"; -import { IMaintainer } from "../../../interfaces/IMaintainer"; -import { MaintainerLinkButtonGroup } from "./MaintainerLinkButtonGroup"; - -interface Props { - maintainer: IMaintainer; -}; - -export const MaintainerInfoCard = (props: Props) => - props.maintainer.name - ?
    -
    -

    Maintained by {props.maintainer.name}

    -
    -
    - -
    -
    -
    -
    - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainerLinkButtonGroup.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainerLinkButtonGroup.tsx deleted file mode 100644 index e8afa1c2c..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainerLinkButtonGroup.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import * as React from "react"; -import { EmailButton, HomeButton, TwitterButton } from "../../linkButtons"; - -interface Props { - emailAddress: string; - homeUrl: string; - name: string; - twitterHandle: string; -}; - -export const MaintainerLinkButtonGroup = (props: Props) => -
    - - - -
    ; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainersInfoCard.tsx b/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainersInfoCard.tsx deleted file mode 100644 index dc31c5772..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/MaintainersInfoCard.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { IMaintainer } from "../../../interfaces/IMaintainer"; -import { MaintainerInfoCard } from "./MaintainerInfoCard"; - -interface Props { - maintainers: IMaintainer[]; -}; - -export const MaintainersInfoCard = (props: Props) => - props.maintainers && props.maintainers.length > 0 - ?
    - {props.maintainers.map((m: IMaintainer, i: number) => )} -
    - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/index.ts b/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/index.ts deleted file mode 100644 index 162aa5359..000000000 --- a/src/FilterLists.Web/src/modules/home/components/detailsExpander/maintainersInfoCard/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { MaintainersInfoCard } from "./MaintainersInfoCard"; - -export { MaintainersInfoCard }; diff --git a/src/FilterLists.Web/src/modules/home/components/index.ts b/src/FilterLists.Web/src/modules/home/components/index.ts deleted file mode 100644 index feee39ff4..000000000 --- a/src/FilterLists.Web/src/modules/home/components/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { DetailsExpander } from "./detailsExpander"; -import { ListsTable } from "./listsTable"; -import { Oneliner } from "./Oneliner"; - -export { DetailsExpander, ListsTable, Oneliner }; diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/ChatButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/ChatButton.tsx deleted file mode 100644 index 573a4a1b3..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/ChatButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "./LinkButton"; - -interface Props { - name: string; - url: string; -}; - -export const ChatButton = (props: Props) => - props.url - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/DonateButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/DonateButton.tsx deleted file mode 100644 index 8ac2711a1..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/DonateButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "./LinkButton"; - -interface Props { - name: string; - url: string; -}; - -export const DonateButton = (props: Props) => - props.url - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/EmailButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/EmailButton.tsx deleted file mode 100644 index 0b7e6f8bc..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/EmailButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "./LinkButton"; - -interface Props { - name: string; - emailAddress: string; -}; - -export const EmailButton = (props: Props) => - props.emailAddress - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/ForumButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/ForumButton.tsx deleted file mode 100644 index 756bcef71..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/ForumButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "./LinkButton"; - -interface Props { - name: string; - url: string; -}; - -export const ForumButton = (props: Props) => - props.url - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/HomeButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/HomeButton.tsx deleted file mode 100644 index d9add0cb2..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/HomeButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "./LinkButton"; - -interface Props { - name: string; - url: string; -}; - -export const HomeButton = (props: Props) => - props.url - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/IssuesButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/IssuesButton.tsx deleted file mode 100644 index 8b00c10ee..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/IssuesButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "./LinkButton"; - -interface Props { - name: string; - url: string; -}; - -export const IssuesButton = (props: Props) => - props.url - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/LinkButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/LinkButton.tsx deleted file mode 100644 index a8a003a71..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/LinkButton.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import * as React from "react"; -import { Button, ButtonProps } from "react-bootstrap"; - -interface Props { - href: string; - variant?: ButtonProps["variant"], - title?: string; - text: string; -}; - -export const LinkButton = (props: Props) => - props.href - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/PolicyButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/PolicyButton.tsx deleted file mode 100644 index 0107e7200..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/PolicyButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "./LinkButton"; - -interface Props { - name: string; - url: string; -}; - -export const PolicyButton = (props: Props) => - props.url - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubmitButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/SubmitButton.tsx deleted file mode 100644 index 2de8de818..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubmitButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "./LinkButton"; - -interface Props { - name: string; - url: string; -}; - -export const SubmitButton = (props: Props) => - props.url - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButton.tsx deleted file mode 100644 index 67e19c951..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButton.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import * as React from "react"; -import { ButtonProps } from "react-bootstrap"; -import { LinkButton } from "../LinkButton"; - -interface Props { - name: string; - url: string; - text?: string; -}; - -export const SubscribeButton = (props: Props) => { - let buttonVariant: ButtonProps["variant"]; - let titlePrefix: string; - - if (props.url.indexOf(".onion/") > 0) { - buttonVariant = "success"; - titlePrefix = "Tor address - "; - } else if (props.url.indexOf("http://") === 0) { - buttonVariant = "danger"; - titlePrefix = "Not Secure - "; - } else { - buttonVariant = undefined; - titlePrefix = ""; - } - - const hrefTitle = `${encodeURIComponent(props.name)}`; - let href; - if (props.url.indexOf(".tpl") > 0) { - href = `javascript:window.external.msAddTrackingProtectionList('${encodeURIComponent(props.url)}', '${hrefTitle}')`; - } else if (props.url.indexOf(".lsrules") > 0) { - href = `x-littlesnitch:subscribe-rules?url=${encodeURIComponent(props.url)}`; - } else if (props.url.indexOf("?hostformat=littlesnitch") > 0) { - href = `x-littlesnitch:subscribe-rules?url=${encodeURIComponent(props.url)}`; - } else { - href = `abp:subscribe?location=${encodeURIComponent(props.url)}&title=${hrefTitle}`; - }; - - let title; - if (props.url.indexOf(".tpl") > 0) { - title = `${titlePrefix}Subscribe to ${props.name} with Internet Explorer's Tracking Protection List feature.`; - } else if (props.url.indexOf(".lsrules") > 0) { - title = `${titlePrefix}Subscribe to ${props.name} with Little Snitch's rule group subscription feature.`; - } else if (props.url.indexOf("?hostformat=littlesnitch") > 0) { - title = `${titlePrefix}Subscribe to ${props.name} with Little Snitch's rule group subscription feature.`; - } else { - title = `${titlePrefix}Subscribe to ${props.name} with a browser extension supporting the "abp:" protocol (e.g. uBlock Origin, Adblock Plus).`; - }; - - return props.url - ? - : null; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButtonGroup.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButtonGroup.tsx deleted file mode 100644 index 5e876d6c3..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButtonGroup.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import * as React from "react"; -import { SubscribeButton } from "./SubscribeButton"; -import { SubscribeButtonGroupDropdown } from "./SubscribeButtonGroupDropdown"; - -interface Props { - name: string; - url: string; - urlMirrors?: string[]; -}; - -export const SubscribeButtonGroup = (props: Props) => - props.url - ? (props.urlMirrors && props.urlMirrors.length > 0) - ? - : - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButtonGroupDropdown.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButtonGroupDropdown.tsx deleted file mode 100644 index 922c9a5e2..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/SubscribeButtonGroupDropdown.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import * as React from "react"; -import { Dropdown, DropdownButton } from "react-bootstrap"; -import { SubscribeButton } from "./SubscribeButton"; - -interface Props { - name: string; - url: string; - urlMirrors: string[]; -}; - -export const SubscribeButtonGroupDropdown = (props: Props) => { - let firstButtonText: string = "Original"; - let mirrorIndex: number = 0; - - if (props.url.indexOf("web.archive.org") !== -1) { - firstButtonText = "Mirror 1"; - mirrorIndex++; - } - - return - - - - {props.urlMirrors.map( - (m: string, i: number) => - - - )} - ; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/index.ts b/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/index.ts deleted file mode 100644 index 870bea9c7..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/SubscribeButton/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { SubscribeButtonGroup } from "./SubscribeButtonGroup"; - -export { SubscribeButtonGroup as SubscribeButton }; diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/TwitterButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/TwitterButton.tsx deleted file mode 100644 index e632dc519..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/TwitterButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "./LinkButton"; - -interface Props { - name: string; - twitterHandle: string; -}; - -export const TwitterButton = (props: Props) => - props.twitterHandle - ? - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButton.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButton.tsx deleted file mode 100644 index 221238fdd..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButton.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import * as React from "react"; -import { LinkButton } from "../LinkButton"; - -interface Props { - name: string; - url: string; - text?: string; -}; - -export const ViewButton = (props: Props) => { - - let title; - if (props.url.indexOf(".onion/") > 0) { title = `Tor address - View ${props.name} in its raw format.`; } - else if (props.url.indexOf(".zip") > 0) { title = `Download ${props.name} as a ZIP compressed archive.`; } - else if (props.url.indexOf(".7z") > 0) { title = `Download ${props.name} as a 7Z compressed archive.`; } - else if (props.url.indexOf(".tar.gz") > 0) { title = `Download ${props.name} as a compressed tarball archive.`; } - else { title = `View ${props.name} in its raw format`; }; - - return props.url - ? - : null; -} diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButtonGroup.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButtonGroup.tsx deleted file mode 100644 index adc0cb388..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButtonGroup.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import * as React from "react"; -import { ViewButton } from "./ViewButton"; -import { ViewButtonGroupDropdown } from "./ViewButtonGroupDropdown"; - -interface Props { - name: string; - url: string; - urlMirrors?: string[]; -}; - -export const ViewButtonGroup = (props: Props) => - props.url - ? (props.urlMirrors && props.urlMirrors.length > 0) - ? - : - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButtonGroupDropdown.tsx b/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButtonGroupDropdown.tsx deleted file mode 100644 index a72a6cece..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/ViewButtonGroupDropdown.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import * as React from "react"; -import { Dropdown, DropdownButton } from "react-bootstrap"; -import { ViewButton } from "./ViewButton"; - -interface Props { - name: string; - url: string; - urlMirrors: string[]; -}; - -export const ViewButtonGroupDropdown = (props: Props) => { - let firstButtonText: string = "Original"; - let mirrorIndex: number = 0; - - if (props.url.indexOf("web.archive.org") !== -1) { - firstButtonText = "Mirror 1"; - mirrorIndex++; - } - - return - - - - {props.urlMirrors.map( - (m: string, i: number) => - - - )} - ; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/index.ts b/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/index.ts deleted file mode 100644 index 6a15392f2..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/ViewButton/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { ViewButtonGroup } from "./ViewButtonGroup"; - -export { ViewButtonGroup as ViewButton }; diff --git a/src/FilterLists.Web/src/modules/home/components/linkButtons/index.ts b/src/FilterLists.Web/src/modules/home/components/linkButtons/index.ts deleted file mode 100644 index 15e7c38f1..000000000 --- a/src/FilterLists.Web/src/modules/home/components/linkButtons/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ChatButton } from "./ChatButton"; -import { DonateButton } from "./DonateButton"; -import { EmailButton } from "./EmailButton"; -import { ForumButton } from "./ForumButton"; -import { HomeButton } from "./HomeButton"; -import { IssuesButton } from "./IssuesButton"; -import { PolicyButton } from "./PolicyButton"; -import { SubmitButton } from "./SubmitButton"; -import { SubscribeButton } from "./SubscribeButton"; -import { TwitterButton } from "./TwitterButton"; -import { ViewButton } from "./ViewButton"; - -export { ChatButton, DonateButton, EmailButton, ForumButton, HomeButton, IssuesButton, PolicyButton, SubmitButton, SubscribeButton, TwitterButton, ViewButton }; diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/ListsTable.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/ListsTable.tsx deleted file mode 100644 index 3816e7c1f..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/ListsTable.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import * as React from "react"; -import ReactTable from "react-table"; -import "react-table/react-table.css"; -import "../../../../utils/loader.css"; -import { DetailsExpander } from "../../components"; -import { IColumnVisibility } from "../../interfaces/IColumnVisibility"; -import { ILicense } from "../../interfaces/ILicense"; -import { IList } from "../../interfaces/IList"; -import { IMaintainer } from "../../interfaces/IMaintainer"; -import { ISoftware } from "../../interfaces/ISoftware"; -import { ISyntax } from "../../interfaces/ISyntax"; -import { ITag } from "../../interfaces/ITag"; -import { Language } from "../../interfaces/Language"; -import { IListDetails } from "../IListDetails"; -import { DetailsButton, Languages, License, Maintainers, Name, Software, SubscribeButton, Tags } from "./columns"; -import "./listsTable.css"; - -interface Props { - languages: Language[]; - licenses: ILicense[]; - lists: IList[]; - maintainers: IMaintainer[]; - software: ISoftware[]; - syntaxes: ISyntax[]; - tags: ITag[]; - columnVisibility: IColumnVisibility[]; - pageSize: number; -}; - -export const ListsTable = (props: Props) => - props.languages.length > 0 && props.lists.length > 0 && props.software.length > 0 && props.tags.length > 0 - ? - } - className="-striped -highlight" /> - :
    Loading...
    ; - -interface ICreateListDtoProps { - list: IList; - languages: Language[]; - licenses: ILicense[]; - maintainers: IMaintainer[]; - syntaxes: ISyntax[]; - tags: ITag[]; -}; - -const mapListDetails = (props: ICreateListDtoProps): IListDetails => - ({ - id: props.list.id, - chatUrl: props.list.chatUrl, - description: props.list.description, - descriptionSourceUrl: props.list.descriptionSourceUrl, - donateUrl: props.list.donateUrl, - emailAddress: props.list.emailAddress, - forumUrl: props.list.forumUrl, - homeUrl: props.list.homeUrl, - issuesUrl: props.list.issuesUrl, - languages: props.list.languageIds - ? props.languages.filter((l: Language) => props.list.languageIds.indexOf(l.id) > -1) - : undefined, - license: props.licenses.filter((l: ILicense) => props.list.licenseId === l.id)[0], - maintainers: props.list.maintainerIds - ? props.maintainers.filter((m: IMaintainer) => props.list.maintainerIds.indexOf(m.id) > -1) - : undefined, - name: props.list.name, - policyUrl: props.list.policyUrl, - publishedDate: props.list.publishedDate, - submissionUrl: props.list.submissionUrl, - syntax: props.syntaxes.filter((s: ISyntax) => props.list.syntaxId === s.id)[0], - tags: props.list.tagIds ? props.tags.filter((t: ITag) => props.list.tagIds.indexOf(t.id) > -1) : undefined, - viewUrl: props.list.viewUrl, - viewUrlMirrors: props.list.viewUrlMirrors - } as IListDetails); \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/DetailsButton.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/DetailsButton.tsx deleted file mode 100644 index e72c23aff..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/DetailsButton.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import * as React from "react"; -import { Button } from "react-bootstrap"; -import { Column, RowRenderProps } from "react-table"; - -export const DetailsButton = { - Header: Details, - accessor: "id", - sortable: false, - expander: true, - Expander: ({ isExpanded, row }: RowRenderProps) => Expander({ isExpanded, row }), - style: { textAlign: "center" }, - width: 110 -} as Column; - -const Expander = (props: RowRenderProps) => -
    - {props.isExpanded - ? - : } -
    ; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Languages.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Languages.tsx deleted file mode 100644 index 6d8a1e782..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Languages.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import * as React from "react"; -import { Column, Filter } from "react-table"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; -import { Language } from "../../../interfaces/Language"; - -export const Languages = (columnVisibility: IColumnVisibility[], languages: Language[]) => { - const languagesSorted = languages.sort((a, b) => a.name.localeCompare(b.name)); - return ({ - Header: Languages, - accessor: "languageIds", - filterable: true, - filterMethod: (f: Filter, r: any[]) => filterMethod(f, r), - Filter: ({ onChange, filter }: any) => filterLanguages({ onChange, filter }, languagesSorted), - sortMethod: (a: number[], b: number[]) => sortMethod(a, b, languagesSorted), - Cell: (c: any) => Cell(c.value, languagesSorted), - style: { whiteSpace: "inherit" }, - width: 95, - show: columnVisibility.filter((c: IColumnVisibility) => c.column === "Languages")[0].visible - } as Column); -}; - -const filterMethod = (f: Filter, r: any[]): boolean => { - const listLanguageIds = r[f.id as any]; - return f.value === "any" || - (listLanguageIds - ? listLanguageIds.join(",").split(",").includes(f.value) - : f.value === "none"); -}; - -const filterLanguages = (props: any, languages: Language[]) => - ; - -const sortMethod = (a: number[], b: number[], languages: Language[]) => { - if (a && a.length > 0) { - if (b && b.length > 0) { - const aLanguageNames = - languages.filter((l: Language) => a.indexOf(l.id) > -1).map((l: Language) => l.name).join(); - const bLanguageNames = - languages.filter((l: Language) => b.indexOf(l.id) > -1).map((l: Language) => l.name).join(); - return aLanguageNames.toLowerCase() > bLanguageNames.toLowerCase() ? 1 : -1; - } else { - return -1; - } - } else { - return 1; - } -}; - -const Cell = (languageIds: number[], languages: Language[]) => - languageIds - ?
    - {languageIds.map((id: number, i: number) => { - const language = languages.filter((l: Language) => l.id === id)[0]; - return - {language.iso6391} - ; - })} -
    - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/License.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/License.tsx deleted file mode 100644 index 84a221b35..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/License.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import * as React from "react"; -import { Column, Filter } from "react-table"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; -import { ILicense } from "../../../interfaces/ILicense"; - -export const License = (columnVisibility: IColumnVisibility[], licenses: ILicense[]) => - ({ - Header: License, - accessor: "licenseId", - filterable: true, - filterMethod: (f: Filter, r: any[]) => filterMethod(f, r, licenses), - Filter: ({ filter, onChange }: any) => filterLicenses({ onChange, filter }, licenses), - sortMethod: (a: number, b: number) => sortMethod(a, b, licenses), - Cell: (c: any) => Cell(c.value, licenses), - width: 75, - show: columnVisibility.filter((c: IColumnVisibility) => c.column === "License")[0].visible - } as Column); - -const filterMethod = (f: Filter, r: any[], licenses: ILicense[]): boolean => { - const listLicenseId: number = r[f.id as any]; - if (f.value === "any") { - return true; - } else if (listLicenseId) { - const licenseFiltered = licenses.filter((l: ILicense) => l.id === parseInt(f.value))[0]; - return listLicenseId === licenseFiltered.id; - } else { - return false; - } -}; - -const filterLicenses = (props: any, licenses: ILicense[]) => - ; - -const sortMethod = (a: number, b: number, licenses: ILicense[]) => { - if (a) { - if (b) { - const aLicenseName = licenses.filter((l: ILicense) => l.id === a)[0].name.replace(/['"]+/g, ""); - const bLicenseName = licenses.filter((l: ILicense) => l.id === b)[0].name.replace(/['"]+/g, ""); - return aLicenseName.toLowerCase() > bLicenseName.toLowerCase() ? 1 : -1; - } else { - return -1; - } - } else { - return 1; - } -}; - -const Cell = (licenseId: number, licenses: ILicense[]) => { - const license = licenses.filter((l: ILicense) => licenseId === l.id)[0]; - return license - ?
    - - {license.descriptionUrl ? {license.name} : license.name} - -
    - : null; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Maintainers.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Maintainers.tsx deleted file mode 100644 index 029e05318..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Maintainers.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import * as React from "react"; -import { Column, Filter } from "react-table"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; -import { IMaintainer } from "../../../interfaces/IMaintainer"; - -export const Maintainers = (columnVisibility: IColumnVisibility[], maintainers: IMaintainer[]) => - ({ - Header: Maintainers, - accessor: "maintainerIds", - filterable: true, - filterMethod: (f: Filter, r: any[]) => filterMethod(f, r, maintainers), - Filter: ({ filter, onChange }: any) => filterMaintainers({ onChange, filter }, maintainers), - sortMethod: (a: number[], b: number[]) => sortMethod(a, b, maintainers), - Cell: (c: any) => Cell(c.value, maintainers), - width: 140, - show: columnVisibility.filter((c: IColumnVisibility) => c.column === "Maintainers")[0].visible - } as Column); - -const filterMethod = (f: Filter, r: any[], maintainers: IMaintainer[]): boolean => { - const listMaintainerIds: number[] = r[f.id as any]; - return f.value === "any" || - (listMaintainerIds - ? f.value === "none" - ? false - : listMaintainerIds.indexOf(maintainers.filter((m: IMaintainer) => m.id === parseInt(f.value))[0].id) > -1 - : f.value === "none"); -}; - -const filterMaintainers = (props: any, maintainers: IMaintainer[]) => - ; - -const sortMethod = (a: number[], b: number[], maintainers: IMaintainer[]) => { - if (a && a.length > 0) { - if (b && b.length > 0) { - const aFirstMaintainerName = maintainers.filter((m: IMaintainer) => m.id === a[0])[0].name; - const bFirstMaintainerName = maintainers.filter((m: IMaintainer) => m.id === b[0])[0].name; - return aFirstMaintainerName.toLowerCase() > bFirstMaintainerName.toLowerCase() ? 1 : -1; - } else { - return -1; - } - } else { - return 1; - } -}; - -const Cell = (maintainerIds: number[], maintainers: IMaintainer[]) => - maintainerIds - ?
    - {maintainers.filter((m: IMaintainer) => maintainerIds.indexOf(m.id) > -1) - .map((m: IMaintainer, i: number) => { - return m.homeUrl - ? {m.name} - : {m.name}; - }).reduce(((prev: JSX.Element, curr: JSX.Element): any => [prev, ", ", curr]) as any)} -
    - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Name.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Name.tsx deleted file mode 100644 index ab74d9497..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Name.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import * as React from "react"; -import { Column, Filter } from "react-table"; - -export const Name = { - Header: Name, - accessor: "name", - filterable: true, - filterMethod: (f: Filter, r: any[]) => filterMethod(f, r), - sortMethod: (a: string, b: string) => sortMethod(a, b), - Cell: (c: any) => Cell(c.value) -} as Column; - -const filterMethod = (f: Filter, r: any[]): boolean => - r[f.id as any].toUpperCase().includes(f.value.toUpperCase()); - -const sortMethod = (a: string, b: string) => - a.toLowerCase() > b.toLowerCase() ? 1 : -1; - -const Cell = (name: string) => - name - ?

    {name}

    - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/RuleCount.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/RuleCount.tsx deleted file mode 100644 index 90ee34b70..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/RuleCount.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import * as React from "react"; -import { Column } from "react-table"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; - -export const RuleCount = (columnVisibility: IColumnVisibility[]) => - ({ - Header: Rules, - accessor: "ruleCount", - sortMethod: (a: string, b: string) => sortMethod(a, b), - Cell: (c: any) => Cell(c.value), - style: { whiteSpace: "inherit" }, - width: 85, - show: columnVisibility.filter((c: IColumnVisibility) => c.column === "Rules")[0].visible - } as Column); - -const sortMethod = (a: string, b: string) => - a - ? b - ? a > b - ? -1 - : 1 - : -1 - : 1; - -const Cell = (ruleCount: number) => - ruleCount - ? {ruleCount.toLocaleString()} - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Software.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Software.tsx deleted file mode 100644 index 8644ea981..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Software.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import * as React from "react"; -import { Column, Filter } from "react-table"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; -import { ISoftware } from "../../../interfaces/ISoftware"; -import { SoftwareIcon } from "../../softwareIcon"; - -export const Software = (columnVisibility: IColumnVisibility[], software: ISoftware[]) => { - const softwareSorted = software.sort((a, b) => a.name.localeCompare(b.name)); - return ({ - Header: - Software, - accessor: "syntaxId", - filterable: true, - filterMethod: (f: Filter, r: any[]) => filterMethod(f, r, softwareSorted), - Filter: ({ filter, onChange }: any) => filterSoftware({ onChange, filter }, softwareSorted), - sortMethod: (a: number, b: number) => sortMethod(a, b, softwareSorted), - Cell: (c: any) => Cell(c.value, software), - width: 155, - show: columnVisibility.filter((c: IColumnVisibility) => c.column === "Software")[0].visible - } as Column); -}; - -const filterMethod = (f: Filter, r: any[], software: ISoftware[]): boolean => { - const isAny = f.value === "any"; - const softwareFiltered = isAny ? software : software.filter((s: ISoftware) => s.id === parseInt(f.value)); - const listSyntaxId: number = r[f.id as any]; - const isMatch = softwareFiltered[0].syntaxIds ? softwareFiltered[0].syntaxIds.indexOf(listSyntaxId) > -1 : false; - return isAny || (listSyntaxId ? isMatch : false); -}; - -const filterSoftware = (props: any, software: ISoftware[]) => - ; - -const sortMethod = (a: number, b: number, software: ISoftware[]) => { - if (a) { - if (b) { - const aSoftwareNames = - software.filter((s: ISoftware) => s.syntaxIds.indexOf(a) > -1).map((s: ISoftware) => s.name); - const bSoftwareNames = - software.filter((s: ISoftware) => s.syntaxIds.indexOf(b) > -1).map((s: ISoftware) => s.name); - if (aSoftwareNames.length === bSoftwareNames.length) { - return aSoftwareNames.join().toLowerCase() > bSoftwareNames.join().toLowerCase() ? 1 : -1; - } else if (aSoftwareNames.length > bSoftwareNames.length) { - return -1; - } else { - return 1; - } - } else { - return -1; - } - } else { - return 1; - } -}; - -const Cell = (listSyntaxId: number, software: ISoftware[]) => - listSyntaxId - ?
    - {software.filter((s: ISoftware) => s.syntaxIds.indexOf(listSyntaxId) > -1) - .map((s: ISoftware, i: number) => - s.homeUrl - ? - - - : )} -
    - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/SubscribeButton.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/SubscribeButton.tsx deleted file mode 100644 index 42e89260b..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/SubscribeButton.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import * as React from "react"; -import { Column, Filter } from "react-table"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; -import { SubscribeButton as SubscribeButtonBase } from "../../linkButtons"; - -export const SubscribeButton = (columnVisibility: IColumnVisibility[]) => ({ - Header: - Subscribe - , - accessor: "viewUrl", - filterable: true, - filterMethod: (f: Filter, r: any[]) => filterMethod(f, r), - sortMethod: (a: string, b: string) => sortMethod(a, b), - Cell: (c: any) => , - style: { textAlign: "center" }, - width: 110, - show: columnVisibility.filter((c: IColumnVisibility) => c.column === "Subscribe")[0].visible -} as Column); - -const filterMethod = (f: Filter, r: any[]): boolean => - r[f.id as any].toUpperCase().includes(f.value.toUpperCase()); - -const sortMethod = (a: string, b: string) => - a.toLowerCase() > b.toLowerCase() ? 1 : -1; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Syntax.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Syntax.tsx deleted file mode 100644 index 773e52cea..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Syntax.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import * as React from "react"; -import { Column, Filter } from "react-table"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; -import { ISyntax } from "../../../interfaces/ISyntax"; - -//TODO: https://github.com/collinbarrett/FilterLists/issues/488 -export const Syntax = (columnVisibility: IColumnVisibility[], syntaxes: ISyntax[]) => ({ - Header: Syntax, - accessor: "syntaxId", - filterable: true, - filterMethod: (f: Filter, r: any[]) => filterMethod(f, r, syntaxes), - Filter: ({ filter, onChange }: any) => filterSyntaxes({ onChange, filter }, syntaxes), - Cell: (c: any) => Cell(c.value, syntaxes), - width: 155, - show: columnVisibility.filter((c: IColumnVisibility) => c.column === "Syntax")[0].visible -} as Column); - -const filterMethod = (f: Filter, r: any[], syntaxes: ISyntax[]): boolean => { - const listSyntaxId: number = r[f.id as any]; - if (f.value === "any") { - return true; - } else if (listSyntaxId) { - const syntaxFiltered = syntaxes.filter((s: ISyntax) => s.id === parseInt(f.value)); - return syntaxFiltered[0].id - ? syntaxFiltered[0].id === listSyntaxId - : false; - } else { - return false; - } -}; - -const filterSyntaxes = (props: any, syntaxes: ISyntax[]) => - ; - -const Cell = (listSyntaxId: number, syntaxes: ISyntax[]) => - listSyntaxId - ? syntaxes.filter((s: ISyntax) => s.id === listSyntaxId)[0].name - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Tags.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Tags.tsx deleted file mode 100644 index 76957a4e5..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/Tags.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import * as React from "react"; -import { Column, Filter } from "react-table"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; -import { ITag } from "../../../interfaces/ITag"; -import { TagGroup } from "../../TagGroup"; - -export const Tags = (columnVisibility: IColumnVisibility[], tags: ITag[]) => { - const tagsSorted = tags.sort((a: ITag, b: ITag) => a.name.localeCompare(b.name)); - return ({ - Header: - Tags, - accessor: "tagIds", - filterable: true, - filterMethod: (f: Filter, r: any[]) => filterMethod(f, r), - Filter: ({ onChange, filter }: any) => filterTags({ onChange, filter }, tagsSorted), - sortMethod: (a: number[], b: number[]) => sortMethod(a, b, tagsSorted), - Cell: (c: any) => Cell(c.value, tagsSorted), - width: 260, - show: columnVisibility.filter((c: IColumnVisibility) => c.column === "Tags")[0].visible - } as Column); -}; - -const filterMethod = (f: Filter, r: any[]): boolean => { - const listTagIds = r[f.id as any]; - return f.value === "any" || - (listTagIds - ? listTagIds.join(",").split(",").includes(f.value) - : f.value === "none"); -}; - -const filterTags = (props: any, tags: ITag[]) => - ; - -const sortMethod = (a: number[], b: number[], tags: ITag[]): any => { - return a - ? b - ? a.length === b.length - ? tags.filter((t: ITag) => a.indexOf(t.id) > -1).map((t: ITag) => t.name).join() - .toLowerCase() > - tags.filter((t: ITag) => b.indexOf(t.id) > -1).map((t: ITag) => t.name).join().toLowerCase() - ? 1 - : -1 - : a.length > b.length - ? -1 - : 1 - : -1 - : 1; -}; - -const Cell = (tagIds: number[], tags: ITag[]) => - tagIds - ? tagIds.indexOf(t.id) > -1)} /> - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/UpdatedDate.tsx b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/UpdatedDate.tsx deleted file mode 100644 index 23acf2b89..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/UpdatedDate.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import moment from 'moment'; -import * as React from "react"; -import { Column } from "react-table"; -import { IColumnVisibility } from "../../../interfaces/IColumnVisibility"; - -export const UpdatedDate = (columnVisibility: IColumnVisibility[]) => - ({ - Header: Updated, - accessor: "updatedDate", - sortMethod: (a: string, b: string) => sortMethod(a, b), - Cell: (c: any) => Cell(c.value), - style: { whiteSpace: "inherit" }, - width: 100, - show: columnVisibility.filter((c: IColumnVisibility) => c.column === "Updated")[0].visible - } as Column); - -const sortMethod = (a: string, b: string) => - a && moment(a).isValid() - ? (b && moment(b).isValid() - ? (moment(a).isBefore(b) - ? 1 - : -1) - : -1) - : 1; - -const Cell = (updatedDate: string) => - updatedDate - ?
    - {moment(updatedDate).isValid() - ? moment(updatedDate).format("l") - : null} -
    - : null; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/index.ts b/src/FilterLists.Web/src/modules/home/components/listsTable/columns/index.ts deleted file mode 100644 index e82dc8aa9..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/columns/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { DetailsButton } from "./DetailsButton"; -import { Languages } from "./Languages"; -import { License } from "./License"; -import { Maintainers } from "./Maintainers"; -import { Name } from "./Name"; -import { RuleCount } from "./RuleCount"; -import { Software } from "./Software"; -import { SubscribeButton } from "./SubscribeButton"; -import { Syntax } from "./Syntax"; -import { Tags } from "./Tags"; -import { UpdatedDate } from "./UpdatedDate"; - -export { DetailsButton, Languages, License, Maintainers, Name, RuleCount, Software, SubscribeButton, Syntax, Tags, UpdatedDate }; diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/index.ts b/src/FilterLists.Web/src/modules/home/components/listsTable/index.ts deleted file mode 100644 index 6a848e986..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { ListsTable } from "./ListsTable"; - -export { ListsTable, }; diff --git a/src/FilterLists.Web/src/modules/home/components/listsTable/listsTable.css b/src/FilterLists.Web/src/modules/home/components/listsTable/listsTable.css deleted file mode 100644 index 9315f2922..000000000 --- a/src/FilterLists.Web/src/modules/home/components/listsTable/listsTable.css +++ /dev/null @@ -1,16 +0,0 @@ -/* vertically center-align cell contents */ -.rt-tr { - -ms-align-items: center; - -o-align-items: center; - -webkit-align-items: center; - align-items: center; -} - -/* set minimum usable width of table */ -div.rt-tbody, div.rt-thead.-filters, div.rt-thead.-header { min-width: 320px !important; } - -/* prevent cell contents from getting trimmed */ -.fl-wrap-cell { - line-height: 1; - white-space: normal; -} \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/SoftwareIcon.tsx b/src/FilterLists.Web/src/modules/home/components/softwareIcon/SoftwareIcon.tsx deleted file mode 100644 index 8b7b94ec0..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/SoftwareIcon.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import * as React from "react"; -import { img1, img10, img11, img12, img13, img14, img15, img16, img17, img18, img19, img2, img20, img21, img22, img23, img24, img25, img26, img27, img28, img29, img3, img30, img31, img32, img33, img34, img4, img5, img6, img7, img8 } from "./imgs"; - -interface Props { - id: number; -}; - -export const SoftwareIcon = (props: Props) => - icons[props.id] - ? {icons[props.id].imageTitle} - : null; - -interface IIcon { - image: any; - imageTitle: string; -}; - -const icons: { [id: number]: IIcon; } = { - 1: { image: img1, imageTitle: "uBlock Origin" }, - 2: { image: img2, imageTitle: "Adblock Plus" }, - 3: { image: img3, imageTitle: "AdGuard" }, - 4: { image: img4, imageTitle: "DNS66" }, - 5: { image: img5, imageTitle: "Nano Adblocker" }, - 6: { image: img6, imageTitle: "AdBlock" }, - 7: { image: img7, imageTitle: "AdAway" }, - 8: { image: img8, imageTitle: "Personal Blocklist" }, - 10: { image: img10, imageTitle: "Redirector" }, - 11: { image: img11, imageTitle: "Hosts File Editor" }, - 12: { image: img12, imageTitle: "Gas Mask" }, - 13: { image: img13, imageTitle: "MinerBlock" }, - 14: { image: img14, imageTitle: "Pi-hole" }, - 15: { image: img15, imageTitle: "uBlock" }, - 16: { image: img16, imageTitle: "Internet Explorer (TPL)" }, - 17: { image: img17, imageTitle: "Google Hit Hider by Domain" }, - 18: { image: img18, imageTitle: "FireHOL" }, - 19: { image: img19, imageTitle: "Samsung Knox" }, - 20: { image: img20, imageTitle: "Little Snitch" }, - 21: { image: img21, imageTitle: "Privoxy" }, - 22: { image: img22, imageTitle: "Diversion" }, - 23: { image: img23, imageTitle: "dnsmasq" }, - 24: { image: img24, imageTitle: "Slimjet" }, - 25: { image: img25, imageTitle: "uMatrix" }, - 26: { image: img26, imageTitle: "Blokada" }, - 27: { image: img27, imageTitle: "hostsmgr" }, - 28: { image: img28, imageTitle: "personalDNSfilter" }, - 29: { image: img29, imageTitle: "Unbound" }, - 30: { image: img30, imageTitle: "BIND" }, - 31: { image: img31, imageTitle: "AdGuard Home" }, - 32: { image: img32, imageTitle: "AdNauseam" }, - 33: { image: img33, imageTitle: "Legacy Unix derivatives" }, - 34: { image: img34, imageTitle: "Windows command line" }, -}; diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/01-uBlock-Origin.svg b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/01-uBlock-Origin.svg deleted file mode 100644 index 03e7a9ebb..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/01-uBlock-Origin.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/02-Adblock-Plus.svg b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/02-Adblock-Plus.svg deleted file mode 100644 index 71ab1252f..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/02-Adblock-Plus.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/03-AdGuard.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/03-AdGuard.png deleted file mode 100644 index 61471018cc3319f632d898e32669e1ad3e352168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqMyzU_2Dy6XNQVS(v`3Fl}=Mh}?uu zA_O;9Wb7?U+Xz;$u_A3_B~S_^3uXXG2qR+;Pz{ugEQ`#>RDdjt%tlcObm6WdWLZo$ z#0@}kh!lhiC*iUvjNM=dLp%=lOUj1wlnoWB8!A#ZmZgGyn!2eR7&6&gYEyUTrS8s8 z13F_@QSR3Iv_1LhyNmL+HUO;y22SSQ;)3msS$j*f_m!6HXvsfNS#Y4La#v^N?vAGY z6YGz)wH}<(bfT;C^o0InbEjUIJ?HYGMORm@xVd)qtqtpLZ{B=w$Ci6L_uM^l`pLx; z&(B#O(QKD_(>{`1c-Uw?i5^Y8D!fB*jf|3B@= z@gu-UjV=lD3ua(sVrF4sWn*XO;NcaOkdRhXR8rG7a&&QX_X-ROjfjX!Ov%bGC@Lwf zs&43>G8wmbqR8h%d~#}Exs)`PeEE(I_!9I$*YvgXdF19?Xz_qeYA&)pxZPRd!k&YW{9A~Z%$eX{4|UiRBp zwZ9$Tp`D?-`dq;elUw;kBJFD`S6a=wzi|GitZLsi|6~_`m3P```E}h>vxk+sD{to; zZOqu-^<3t)K6j_Lo!Z+_!L-d$k80$;1l$$gR~t34V8?f>BV`GOe>+*)FPv`Gi8!~< z+@s*`+|PL@4*mK3hlSH*wifT^mnC&V}s`A;IDZ-zDF~H#I>gTe~ HDWM4f$?eZ? diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/03-AdGuard.svg b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/03-AdGuard.svg deleted file mode 100644 index b9cb8ebd4..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/03-AdGuard.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/04-DNS66.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/04-DNS66.png deleted file mode 100644 index a32dc2c2f3c759927816550cd39690ee71e80721..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqMyzU|b&H6XNQVS;#Q0gJF6nh@9CC zB7q19APgWmwVh!~8$*8+LwqPhZ6QNfEyJW11~Ws32~7;){vcV9UND*t*4tdp&{W9~ z;=|Bd$>3ze5a7wsR>?5AmBG~xWM*|f15kmdBSTF-gQFGHaG-2oBS^NPgrO>zAvuB} zDT1M=9waic1!NJB0aOpPD>@Kl6i_h`0Too{GIZ2{oClNwayzOSGU7mNpn9OCKyq>$ zNEYILpiw{(ARFj@AOoZflmhY`D|Mwvt)+V`lZUtX7kLOsJUV;^Q_+3J)8Zu zt!19w%QCx9V8LYexf8Tj&U4z61ko5en-pJVQX=slZP`7uiZBPFOL$S;`T zkKRM(iC5STEPL|z&r|EZ(;wwu*mO`tZ;F*RqL8b#`#FXm-n@T%+!TYT}^si_^)R|cKv=t$uT z4Lh^xs)+yGiTn&2*8_ug1u+a_YJo> zqm<-P9oIT%{_Fn^f0f<-{K>hmt|kqVzY1IB*Ej8+r~Cio%eSAGyZnt<_Wr@@*N z@2*tnN_z2lE}Nmf=H9#PHSX`GZsnc-{nN|Vs$&MGjy;0@J%;nrk4StiP2OW%8x*a7 zA!K^i*Ru?(yuO@Vwtfv`Lz9#9A)d;k7hj)R)vM!mCL&P8dW!K(-LlnJ^9*P2IP&#D gPTw`L_P6u@F?1^>C_b_&i~(f?Pgg&ebxsLQ0Nk8urT_o{ diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/05-Nano-Adblocker.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/05-Nano-Adblocker.png deleted file mode 100644 index cd2b2a06d82f444b7bfd2e2df40b0bd2f93597f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmV;r0!96aP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0#8XqK~y+Tm6Y2{ zR8bVhXCe^FATndDA)JelnNgk+AG9QC9-Jtli(TwNDta(_P%AIPHF)_Nrn`p#0?_lq5XX{x#<~6U(A&kDU8+_OC*{{1?unMlT6_!iv1k}=Hc?oywpgoFa&hHiF6FS znt$pv0p&%9(R#s$kt;V)oR^O?o_%=V+#b17)<~@|1mwS4UJdkfJIXM{)f8lIhvsy{ znQTLT##SUJu0rjRl1LD1q*fSQsZd{q<(I<#6F^N6*50iUt~g5W=SQcHAthF!I!$^A}-XlY|c~50?a)j(@Ui0H-}( z1bp>sYoi!y^dmPt10Tad{~Z6KALI|h!cR!v&8K^vn3by|p2!cfK|rxzkzPKC+nKu} zI~?wD)?TGj1tbyIr4eQ1 zK@6t#iM8k?{-K5tOEhXxp%fLB0ttC5UNk9+* z!ypiw&2BKjCX>@@byzGwgCM4+P@4^!n1Dd5*AuO+L_>o^BEe6cLhI__swyx+YHJ-e zHAG8`qpHf)*a%4^m{yDQ_S(C;;M=#MTel#E0#&JA%jIZK528|`N+kwbg`$7?@BCg&T^4I3G;|~^>@kaFrqNzSMD%gFCOUnB$+XewRtDn@oo){ge-IS~hlfux zm~WU&n9hJ03=^9TF`1)WF3e=!;qxEG#5h zaJdkVcPBB?!Q%1V= z$C9zJ4|8%zKHnpVBL#wKLEQ9)4Ucnkeev;6^73A8+2Tt`m`P0ZCMC^m+<333$eWTf zo0Q~9O?|d~`)qQuCoRpJmgY}MA=A_Ssi}d~G%_P2ke=?#%nW8^OlM^UGc$dgvmJSP zGuhex>}($pd3mmafF4bau|(xCzcQ zrdIpqa&RoWQaPs4Al=<2jYfa}KBiXVYIU%?8`WrnJw3QqYaSSI3=9PN`d*KZL*wI~ zkr7y@Lx9%nfk~WtJ!~*Ij7G?0n%3zcv)QNDBW5$O6JoJ=jYeQC%xcB0))|utvDr7(uvP z3ke7Sce_2HxEDZpJOoLqlCf;?84|u1i;5|3;cac_q*7^nd;9rLfE&SJ@a_Nj z2Vnj`B-j7Iqfiz}3b$=7sWQa0Jr{(05iwxRAheUg-iqHgJs2t&Y#D5l$y~w-FI)dt z{rV^4xv{15A<~CiyLT~^_j2h%UBc|}Rf)C2q6>YP*-TDf5xqE|T)L^c>B}+OgQUGO zXUCcH=2B_%8$7PPx$(ov(?1<9J*#rP)XU#)oGTkl=s0A#G&;%r^%J&$=sX)r(~JJR zbi{ilzAP|LeZuzLc`a?I~s1*RDYIHTlsV>N7W;- y>{}m@>T(_0fC7C7#fHK5j}nyT+mV%P<`%DbWxNqQI`j=VAf+&0w5=<*to~nN)ZktK diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/07-AdAway.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/07-AdAway.png deleted file mode 100644 index 0826b747828b5f5c68248b913283ca6b65ba2153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqMyzU^ETz332twEZi<40z^AuXosjM zVI(5*_Wj3qpT2At7Ty6w;^Mm$6yARL^!DTDoe~l|B_(&s$?cMt->s;)TSeveij~i= z-+1-(`RiA2-n@SM?(^5}0s=ckgm+3w?UIq%t*pF9LvxR&=3Z^>eR_KPjEwdf8y_$? zKVWHjz{cjFt?eO4rz2io$3w%8hlig`NI030crq#ZR7&cp)YQ{y>1T5D&K4G(D=s-# zT6VF%;bLRsx#pHDJ-t^aOu9OG%C#v|ug{oyW6s=LOP1bRy6pP$6?Zpmytirdy)9cG z?AiNZ&%Rp+4?o<0@bQV0k58R`dhWv0^B107x%TYp_2)Nly}0+_)uSh`pS^hU>dosH zuin1@@b2U1cOSpJ`}8$QwV@Cgj)EmYe!&ca!Xl#LQ>M+HyJXGJU%&tSW1eek3zYor z>EaloaX$6p(W1ivJZ_0sGw&SfoBd~!VwuG0Gc$~gjkmx5&k_6N)?1$~f6}&G5EK;5 zWVFzE8qXvJ@8NvEomm@l1t#|I=NCN7JPJ6AeG+4smvkB>L*J$v(_fRjh>iR3g- z$%KTjj~>4JmZp8%ymVJ^QUk+>6J=kIZP{WsG^*%(f3F*Pp_;+{7R z=oLv#h63?{eU8@o%(uyIbEd+<^GE)Ap4`%lb$ b|AW>2pQ_tNE&p&}Ffe$!`njxgN@xNAk|#v| diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/08-Personal-Blocklist.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/08-Personal-Blocklist.png deleted file mode 100644 index 9b6888a1b5f1716d987fa850f0aea972f8a17b66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1295 zcmV+q1@QWbP)xN#00093P)t-sOlfhN z006rs6TBr8xD*Px6$-v36SoHdx)=(%5(2&@6TKx9xe@`rB@?(21G^OjzaVR!PY~GR{>;&sa>uB@@FX6Vqs2&s9m&W?RD~6U|OQ!zB~M zB@@78t711db(kT_xDizf#71S#j*D4p*EEwD?7u_ot z<185DEEwf1809S(=PeoPEEnl580;(;?l2nfFdFeN8SgP0@-Z6oF&p(U8ul?7`7#^o zIVJ2lC;K!W{WKo@H6H9eD*HJi|2QK3IU~+YJ^wl*@k1{8LoMq}I`T_5-c?5VOE=(E zM*2%P@K8SNRYdJrN$p%r{aQx>Of_UzKbNza3@`HEyfpqPLd-{ZU`-FJ#i+}Nth4hYt`HzJ8 zkcRD-kNA{{{ga6EnUC?Bk?)(5{FjXIoRjLGm+POG_nVUToRa^Wko2LL{hpNdqM7)i znDC{Y`lFivqL}ojpZ}zq`lz4xtE2y^p!2S${;HwyvaA2Bqxi3<_Oh${v#kEKto69D z`nIt6xU%oPx9`5W^1Zn9y|?hcx%#`b`MkFGy|?ney7s=e`n|XFz`OCmy!^el`@XpM zz`Ojvxb(xl^2NaV!o2p!!Sl(*`NzWg$HMr?!}iI<@yyBe%*gf4$n?(1_0Y`r(9HGK z()ZTV^xN3?-P-rv+xOnv_~GC9gf9G>ig^I`|Rra?d<#Q>-z5O z`|j=f@9+EX@B8rY`|p>{QUp^{{R2~15NtL0000@bW%=J009IA z2M7ua4ips`8Xq4ePgz=BUteWqYHM{@C|(vH$=9aY;l$R45e%!98!&KpY3)-~I259U40g zgtSSiM1{i3!otA7z{teFXJBGw1lE2VU}a}VhzY5ns#QyDN)!_N?0Y}+JPZI>Q53~X zd}!*X1^@;i9nbdO%?14OxLj@=z<|NQ(eb#C3_Y>GZ_i5&j`ZNcd$OLmaZb^*AF7QU z(|d2C^Vj)gHC?yHKlxrO8tuI@+OU0{QO>;6=Jk9i@_Fp8Q9@Frq)l`oOs_=oyrsL7 z6S@&I(JJdhcyUR2uzo$!Znw{zY>#%VjX6D4(pBc6nx?Z@??3L0R0BF`tyEtYlY~>o zA1$lS%E(8t=dr$j3jn_}`t+|`U93c7HepC#4*{_8*{SIo+fZ$S)&3#^fd8zW4RTFQ zX|#1$e*oayX*61wirbK9VBPOU;(vYISY@iSh9NmzjgS*s2J{sYy}(=a)tQ|tf$002ovPDHLk FV1i*rzcl~= diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/10-Redirector.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/10-Redirector.png deleted file mode 100644 index 33fa33b018a4ded7f300ce79fd9a938722d52c81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmV+;0^I$HP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0k}y-K~y+TrPRqz z!ax`Y@FHF{dMRNkOChWR2NDkiLehkUc<4b>m*~M)@CkSXqZjuV;O2X9Byr>F77ZFM zibC-J)frQvmLmV;OEc5XkC{#fAs&ynLZMJwmgR{n5{a|~U_Fn=)AxG4lU5JtDS=(q z(Lps)SEI`3^IhZmhSD*#yTDEgg~GfJ(hP&a;7ulzSrA3hWmSH^-y0soEy7eXBd46jbgDVvD@ac0yRx@ zCK8D?z7eSRSS+@ys_G1TWH@%-A&!&=jH4eou6vbAWtQFk9XlZ6z;ahPijDdF6SWEI z!LvUzW$3;U#XDad3q%}1Ht_zxwPEM)i;~ah lm#`W47}uk*ykuE^{sKh}Al)HD?Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B01IkH6K~y+TjgxCklV=!)KlWow-2P0X%a*u> zjqISK+hk)N7dB0_v&=9+NynxO%y>WzZk#;O+0s%#DN==YJy4)fptL}RwiH?@S`bPR zkU+yuP$9SGb zJN$MLD)+C*SW<*0_z4TfJOtX3Wb}(N5ep z{}fp`(|VW)*W=oSc#Md*U{LfajOSu8sbs-%@iSPs>*@OSOP`~PmjSt~8u`46sgxXb z(Z+AY8;BZCJz388~1@nj(k`5=%s|Ox^ znWd1eOXWQOzi_H41Cy6OfnD$(?EH6^VJzMXxwa49#lJB&e;;a_8zP+(Coh}9RrSF* zJ;xFf7h_ zSY19S45N?UWC^#@!U^@aFr8itpEezL4VfX#>JLGpbwFdArYAFv`q4S;gRE;D9oO8j zjrq{y^wQ$p$7>|CaJ-I797l=9 z0hQ?nWSuSu8?Hi7KY*jcb}KC$Q|-f*yftKP65(x1hNpfHTJzpQuP`1OP67nvof>;5 z;hGJg)jo~03LCO7nP48CL*Li}Ip>it?Lj8DwUZXQlqoP5tVY+*>(E`qAS?4eT5_Xd z5yYXRkb#_1HF720FgV<(AyXYF)`QK}V$Z1tB{>9@?SH2xX0i@%yWzMWz3w*6EVAvy%5bTj(wfU-?DZ` f$!kmXrBKv=yHP=5KObGw00000NkvXXu0mjf^|AzZ diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/12-Gas-Mask.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/12-Gas-Mask.png deleted file mode 100644 index 062dcbd76c5fe62ea6c97a78261f27c00ee2109c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmV;Z0ayNsP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0X<1XK~xwS1;MdP zlmP$-(D!*+CTWHcsMHPB(h)%s4&D}RLeS78IA{5XSa(Zd%%aL1;IfCn1;2D$0rdIm zqaJX>JD~2jAI<`Jr0u@K32(gthHcn43SeGzeYU1D1JtaD5BgEKXir2$Gy!gk(ie{{ zXo-l3(g*-gm7-FKi0In3stuu#7M%fr9s}lV zdE%K$M3klg0H`}}O+-Z3Gynjcvn3*8#|Qub)GRm<|9o>D007{m2bR4u3jYBg&xqv* S&-8Wx0000 - - - - - Created by potrace 1.15, written by Peter Selinger 2001-2017 - - - - - - - \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/14-Pi-hole.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/14-Pi-hole.png deleted file mode 100644 index 99c6753a2473dd2491096686473afd82224f1cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0#QjsK~y+Tjgrkv zR8bhlfA`Lv4ggT2(@Aiu8YI5!j}dwTwW~%1Q`}(uzJzR!E!bIyf20>S6OI)6Cu#p!lxeXo5- z=)mEB6>17q1zLly)9qij`<$r#&OVpbz{L_9M9{3PDAXJ}9cT+K$~Fv=yO{9;lA&+}B@O{V-``Cs{WTm8NoYsem8#J<3|)k2)l ze5Zmd9Pmp1RIVo%Ur9OpdJ8$W7wddl*Vp{;NxZOllfVs#z63k#Dl zDO1*SEoiX|&=x7}ZW$Mng>GHfHod7ZKBlt4tnIQ6kniW;6!J^`i`^ ictLy=XN7IjM(`WfNewVortex diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/15-uBlock.svg b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/15-uBlock.svg deleted file mode 100644 index 6488ebb04..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/15-uBlock.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/16-Internet-Explorer-TPL.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/16-Internet-Explorer-TPL.png deleted file mode 100644 index 2b8189c8d61f672e43068f02c39c82882351d79f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1056 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqMyzVEi566XNQVStzmRy~OT!Aac)p z(TxwG+}&?Mj9p+7q5!5w0wM*I72Ea#s9kLPOPI!Y61(0=?0hY@4I~?hKOx`0u&V6_8h1NNJ8`iLq>G%ZLlto zcSJYb2Ppu#AM6;Adw_xuVSaf5(gk%7I2geJ0@4n&3mjZvV}UMw3K0Q&0Tez!agY>9 z*;|AmAofd;8lX84*8<%J3P5;J07Doo3l)Tg#?Ch&aZvaGRl)>8&VC;&8QBg@4J%55 z{DK*N?tK59=g<6OUnc$iwQ`>eF@ypYq+vQMLe z+p~_DBjo5QF5WqJ&);3fq;Zp9ykpX*)CiSD0kc*3g1Ez`XWfZ3@fU8D-h5=PScqPB zL^}K9RZ+*An)okHU;avSzWMsIm!D1Yco13)Ou9OrE{-7@=VSXXm$@*CI2-3IzjkF? z?rkvI{qxMa>f4#Scilf%=TX!U&$cYAY|VK+e?QYhhmCh_s`l8qtF)l7?$1)4=D#5# z8zPL4Kb-nPY0;BEZu|D^tXJ9L!CcuClzesbYw4yQPye2!E4S=ic&B5@)h{v)6Lvf? zc@|>Mv^7;yrJ9ZLhuYFfrn*U0opLKpm>=Y&IUQaW*6OtI#TtFpNR9(%+f7zxT^D;H zFfEdKCgUG>#tUg)L5t#-e08>KTl(mk!=Kc|J^oIY6g>893hL=C{=7kb_8ZmA7jOAf zj<<9D7k^wmdKI;Vst E06jV;wEzGB diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/16-Internet-Explorer-TPL.svg b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/16-Internet-Explorer-TPL.svg deleted file mode 100644 index 69780795f..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/16-Internet-Explorer-TPL.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/17-Google-Hit-Hider-by-Domain.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/17-Google-Hit-Hider-by-Domain.png deleted file mode 100644 index ca830def3b20dc4ab04f8c43bb30bde507d3f790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00qsddK~y+T<&#ZIRZ$p)S2QzBksuHn6i$P} znFM7d1SS0dA@D~C4TL5aDVp>%q6l&5Aew|9w-5Wqo7tBjB7&%J3mx2^wa>ft+)Li3 zK?@dVpS{*zd++x>NB=pVO5N|IOABxb&Pk_3+Q&<&*V^;oS6G!!h1?7RE@N)Ihbs`{ z-H;MqNF4-Dd=HQL1I|nL(Ykz~uom!+HobzMA%T^U63`zkO7+)hAA%k;Ux%B7{tRmY z2Xf^Gr)c=3InXDAk666DTm)3{^rK&4T-z?@R+$@4K^biVyWpNr^cHf18rrBeu6uo5 z8fWcIzc-;>Ali;K=2GqAsyC=-|2^qg3TVY)fi&wl+Lt$+(i$5i+UusExhWkfq>RG? z!4W>CZuA*<*w<#9Lft?&iucFiJwThl1nPC}lQcxot#9FBqrAZmoDOS&zXfIxc!D}s zc$&+UA_doASPBp@&=Pq2nbb)GuCm$SpZ*F0ryS%pK570W5?OT3lZ;$hB%~p=bJ?PEVqr&&EnCUGQ1yWHOY%bw}8+$;;{Ny%3gv9@1}9 WS4!g$Nt%-Y0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0scuuK~y+Tjg&t~ zR$&yz4~Fmw72l#DX6WW%;G$??gXo}8i=v_pp^~W()X)%=qT=GHAU4(#IJoELKTvUP z2~sx^70mP#|75@C>%4TkUdaPL-uIsKoaf&6d@r9}7nf%DU=TK(_fYKR{|DkcXoVFx zhf7EMRcM1emtPHvxljY2;TVEJ9Mzr(3-ncKjxoyG z4v#^apg+f>MPF162cba2C)QH<3WqQbcVHR5!2>iOS%c9JcxV~35;mKW!V9>KcoL@B z*ZPn0i04_>XV3#dzlBGs1iCk0JoyWBPnuvCPGP`}>R?aLpnE2*dgkEIz2Z$ee|Up# z@DtE|Ibh&5Zd3^Kp!vOnte)Pntcij|J^b|I8k8UyV%@{2+BJ8fAId>DTw3)sWK9%2 zq+!8}`ee=KKD^}@sdtTx%HRWpW2q;dH3>mNLk`zKtIpmDl~4g4o{MVwy!~&G%m>Xt zqQDtwz(V_IP1<~K|2HT!f|{ZYNl4S^ZC8V04!nUANHP$rNt5Gk$$=mR!;pcviE<-w z{r^!k5X$T&Y(p^7Ub&RZZWc7?n3~zTqx~%}$HMG45Aeys#tXq^00000NkvXXu0mjf D*nAZX diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/19-Samsung-Knox.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/19-Samsung-Knox.png deleted file mode 100644 index bdb2f96a10eb5df7bd0400fb6b05a171225a84b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 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 ws1xF8}}l diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/22-Diversion.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/22-Diversion.png deleted file mode 100644 index 511c8c8cd4392e5a57dc3eb6c4eb4e1bf8bf60eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^d_XM1!3HGvvhwHvDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#XwDmL74G){)!Z!1`SUa#}EtuWQNAptSmF`sZ+SbR;_R_n6Nj( zm)EEHX23?(tgLwnyb1>4K}Ni%R5V7<8}~FDot*Ym#(nI{NAr?{O|}OV4XN zE*)}WebFm2M@nBO>PT(*x12(Od;9C{xkDs)roDWTVvti%V9@^Q;e-GG|Hr(RmF=DW z@^yOihoxOy2kZa;D|A|_$Z*$ff!egEY;2Pk#8}MG*S^h@>U2Qh(hiT%Q2A3V&HulC z^_gvBlLM5D$jr%M144@9lBwRc3mh?NDJg!Njy<)qnwxMehO^Tt t;v%D-(gzXQ(_gPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00)|OMK~y+TV;BXr0sl8i%Kh6SlKf?b!j#+H zmRqm3xgNdR>T(ps{=8ga>c4H`$=|j}$U~Lm2ER9px<8m?x&L5U$-fneEC0`lJn?@~ z%Gv*mQ-K&rFGx7^e@5W3|BJ$x{oj>c`0q}S<$-@&L_MI|5#ZlWaqidiw3cs5ZT&wh z^!Wd|(Wm~;jXL#z4hTmAam300vq3og6t9a*p=O|NBLG zz=r)l!@&A@vhjgwZfpKe4>;D>+o&THl_x$g$*#Eywa_j$c;kp0sPc%9Ff0Y&+!;kfnWz!tz{-5A-_fz~e$!3MeRF=miYj@lSBr?|Njh( zFXw2jY*w6vqM$}{#{V6O(O+N8(pdqtwBX-Xv3y|iShgc6>PrnU!jRQADop_zipz*AXh_$Z~~B;??AQxHj0Tug+>8Y00RR6Q6|QG T8_oU%00000NkvXXu0mjf*ou!v diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/24-Slimjet.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/24-Slimjet.png deleted file mode 100644 index 00f899268302075546918b1d7d73cc50995882a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1419 zcmV;61$6p}P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B01pG-vK~y+Tjgx6mQ)d*0FUsaJ+R6{6#Gy1g^+oFCsg&pGG&?j`<7d_I4&THE)5Sk<{jV|aQ%`q1Rh z6xFYb%B+}49y?5A{SU1U$#jZLmwF{~)$07J_TN?dK6DL?!Z!K}mZ6uBH=2eS!iIt* zUhNt({olc}zKrnCl|BFHd#ETG^bQclK3S5^oBUw-jc~dVstfOc!4#H^r z4Xr&R$P{ae7l&PTu~Y0?c67SqQZL=-$8TcuNfx$6aj@ew7rSD3@S_QFujvW$)sIoz zIgAI!5ojL&3a#lmbUiQ7WFCPZmCGb4@2v0cNq1REfqO6m%R-r0buTwG-JfJE9)mu(o9$1yd0v%eU1x#KVxgzU0^9IQ2&#=pFE@Zj z78aB>auvGzt4zhqbW^%nL8Y^niRg?%_}gw*Y}^{^4ANC-YIR(xSb?0F%jt zmNo+#+RR9;Fd<1|M68H(p%K(V1ETXg5z1(GNPd@*B^{tC`;b~Uh!oNZssY5w`f@req! z`tTS8F!8rIdvSNn3zLlbW@&Ml--;Dy1aJ$@!omnPyb}vRm3NN=Gh0X)34I;Y8lE9q zV#c=QTD%u1>?gj?et#S`AvjE>}X|w?GHP*M#@o5`} z@h!R0{Ns{QXP@ltcF;T8Aa|VZC%EcCt$Y=nqesFoHpJZP##fgsu{BkWD~&^M*G{P) zL}>0KEdH^4#ML*~*G~95!C?x8=e^*#q}wxHgVW^}B-RX&cWOo2gQ4*l%++I4LJj5| zE~;_z=B%<8{)aZ)cAZM$A6yVoTI3O1X<1KKVNI-J?Bj^C*4aU#n=U@QO|P5Vv)>Ux Z{0TNbdz!Dp?=S!W002ovPDHLkV1f%4lY0OF diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/25-uMatrix.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/25-uMatrix.png deleted file mode 100644 index 82663fc9ec327af371eb1f62382d9f3545e23c8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 917 zcmV;G18V$Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00|rS%K~y+TU6IRA6Hye#XUE2kt_UF^ER_X_ zBsH+ps2dmVNsJnm#JDv61#VfIXiOA08r=Yf@UV|5Q`!!l>EqscwWZT3FfB}5XlL4K zOTxl)XXsFDemOar-h03AJBNDm20eIw$>Rm#>3e1Vog9eO>nE0N+pSjXy#K4$>oiSs z90xU@&r|Uqq1ck&BkBwC;sg-?BBp#f|~j=HU4pYklWv; z@BO?l@msZ$ESVA@o1_s<5$Ynp=v(rkCQ2$vN@*yH<&ljSV}9fhE8(h`Ia0;MVS?Rf z<)#exxiSY;F_o;9l}wpjHgj@&080_oc;tX%Em1Huaugml4wZIZv2&!h^Vv2uIXRn7 zQMMp-F?Q)7bU@Q3I#iBC+6Wn{fSUj|ib7WqTB#J&3oy>{JY`E#&qEYjnal~t={r$) zw5DBThVVUE?uuepCXIVImrN4n9zq@`EURyCml?)Js7jPE>MO&)o@@`}LOSi(hOZ75 z&lmjx)$gxFB6cQYsMxuTj3Nm|Y(qNdGC8d4l-;)hz(dC@TL^{pXv`KxaO*CqR#IHs z#B<-dRW4uJhR4d=+Z86F1%u!ml&{#vxSdW9+BPqg9lDZKOC(PC(U zax)XD4qWTog!3lJJfLhPlZ`|ox4EeXf(@QO+RNaEGi{Zq!4!z5tBep)Ztm=u;joLk zyj)ya(bv{0>l=19*Em$m4Gl2MrCzDjDHNa*H0?~&EW@Buqoe%LkVoqJ4cX@tCMKGz zt8O-8%4x_(`d^?Y%6MibGcw{KO-{;lv(lYubA8>L1uOy@3kC*_J0npfdrppx@z<`o rq=$#asVM;8x_L#}9kQ$JW!Ck7O*ytvM#VPt00000NkvXXu0mjfdvu%G diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/26-Blokada.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/26-Blokada.png deleted file mode 100644 index cfd376114e59b77b695522882b3ad47615c2e0b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 998 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1A9qCK~y+Tm6L5~ zm1P*me~V==Q!BJ4QG_rl25Hon!K8CGJ^uZq2i|^4QchG+$VAN8RrJ_t~Slu&4`e4(GnF=XYP%|N7tbMYum1 zWGOd@Q&E_o%ZXhG!<@thyK{Z@Px)Q<&pX z%vcO_GRACgh)?=LZ2hg03xb&oPh$i#Q(Dt;%%%01be#9;3DM9OW~MVpa_~A>%EGh+ zYZ?uaTeY0r1Etg^BYdHYdQQa{)Nh;Gni6z39YK1!f}C~pSlsNe`DlboBLe;`U`jv> zI}v3}6%~52*vQsepmmcf91^IPLuCxLmy^mIL)O+pRtwxed>u@hnG-QCOZ+#Ca=hG3 zNVg+`jqpP${fEmr-w~p+!Q~cv7|123xrB`xLfXQP{RJ~>>01rr?hHktK@6X*W`KPz z3Bl5P9rjD7iLMauc9pY2IawbSQXma`M*j}0WK655#YeV4Q>UwFqA5UKTPddAkFPPn z=Yko*?6exSBF{a@qCGC}sMTo;vlF#24Pjho>kO(lQ7S9|Av&goz-N&ezOP`Bvg@n}NtY9OFH7xPAdFdgR>~Uz6w=yuj0^6pM!>{P_wO-o1$okUH2Tcw} zlWfxjbG&_g4{)pge{5kAJOh)an{+hKoY%sBu&aoc49uZf&*ygUh`N>Jw7HC0d+c}F zoj>Fx%d5E4OaJ$HJ)dQ&tTO|1=#p-| z)@uoe_SaT&kC*n};)RE~>nlGE9?X1GOrzcNj{jd+9k#9J?d^~AUS8hZgT8UVpMcQH U^2Mz=7ytkO07*qoM6N<$f;}bU1ONa4 diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/27-hostsmgr.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/27-hostsmgr.png deleted file mode 100644 index 349d5b17e0e182d6a05c9e8352a0d5a055ab27a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0)t6JK~y+Tm6Xd* zT0s=X{ga3Zal^t@7hSmNs%cW(b!VCgiwXo2V=yMQYA9)F2ysD71p1mBO#IZi(BLMoNwcsw2yi^bc8Hz^bfSXp@muXpkfMu_5T#A44eJNpQByM0j9>2wf@ zL{Ki5sf!`DW2Lf9m?biqIZRLA!^FhnL6h_Ib0iW8uq!Z=Xf%p=JdVvx2ZCFeTS8x9X&(q_*jg273Qj*i~lgrQQY(9g)o2rL#0 zO%Doha_iv#A~nkU2lN?Sa2KS8_;DSA@Bv=IPd~V?c;gWe3J3^Cx3TJU!}oa;{&hdz ze-aT+#38Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0@O)FK~y+Tm6S_N z6Hyd~XQosO3m_y$MSSdJL)4%NiMr6ljmD^nF)=3UhUh|fMibPy(h%b#Y)tS0Fh}F?c#W3E8%O0;>5hfL155qYVK# zD=m05Gy&J#Bk&?H1)=z|VqMYcjQ~4r1JDtQLU(w9?w} z9l)k0861%XxFY|AXE^6w<Q7&cM-5AGFNOLk_}&u{Z^sb^iDha2btD$s}}!qYzFk z(@qM$`{+pd9bU+^y5Y{?C?lg|`lV`sc<8bJk7y9t{NCu=6qT^jdpyQn;hO6tksRD{{W|H;7 za+3Z|BP18Q!5aw%%!iCph^Iodt+gN6hMp28rMmU73fPJdM=+#=xMR(Dh=y4?I!i3xi}D z9f>q!{dW3)(7pfiTm_It?n1GD0&IA6B&^$L@L&f-H=56+c}fy)R(_2WXxur@=ha$`3*IY8QeBrjcfn_002ov JPDHLkV1mqObJ_p^ diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/28-personalDNSfilter.svg b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/28-personalDNSfilter.svg deleted file mode 100644 index 90fd8f734..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/28-personalDNSfilter.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - -Layer 1 - - - - - - - - - - - - \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/29-Unbound.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/29-Unbound.png deleted file mode 100644 index e6100dd8aeb3483288be1f3e931ed579eef96102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0m?~4K~y+TV?YK9 zN3N^OAH2R<;n20$T8Hn-fyA^<-j`4~bp5&Fq3b)94`0;=D?|qJ`|k_LAG|g}{?N7G z@`tYf2VsrFw_HJT%15tT!Nh?0H_)KTTE`v(_w9LGmDVG69wU<<=bj&mf}X`(H}h2Su~CPThYU-MSx&N>S^8 z^mh;+Su;qzh=$jH24PY2XV^72{@2xO2GiIy3k#dQW{{I}GLn_`KS_#a8Cn0c5)$?% z;J~P_uV>QGNR3xh%X^AXvzmI|b9MF9B%lr^utsE{r`OG`qgUMm@+Y!pkpFe{synQ# zN_nA5aRYPnb_G3y=9NIrzw`~7*BTi$gF_w_FfafBn1nOOUpWR>00000NkvXXu0mjf DC4~J` diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/30-BIND.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/30-BIND.png deleted file mode 100644 index 74723afaf1d359782a9c73db41ef2918958493fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0i8)iK~y+T)l)l5 z!%!Igv^Xg^2%>I^;A9s;@F)0K9J=Wsn#aAF9G!~bPjD3%ClNOhQE;lzN0PQ_+DQjN zsJOTZeZ_NcQe%BU)8gQP!@VK-&OP6EZsUKv51?qp5S4g$$Sl6Xpp(YCeM#|#6AU^Ht*x-{H!r(o2S1;q8yGjq5; zZ_s)Q1vPsSZI4E#A(KW(aLAksUr_uhy!42{-otjt_On>O?%QNe6~ZFWSK1a`GUo&r zvjvx4PgGH>I|Zyu{yh{?@8qXxD>Ks*4Rgw${pb0Mbo=4of#@9pdgq0aG(GhI0000< KMNUMnLSTZL9Ne`4 diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/31-AdGuard-Home.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/31-AdGuard-Home.png deleted file mode 100644 index e217b6879cfc0f52fb498073717e3b35fa925daa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmV-!1CjiRP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0|QA!K~y+TeUn*l z+E5UM`P+S|RH;uO*-iD>! zZX+BHBbiJ>5CkZSfJWt&aev$&+|C> zaSEH=2D{6FKi8M=gnbBcVbHs5HVc_mlh5a&v6f3^9eS;fDz(<`pw;W)aWa7=z=iPb z*LR#ce&W*Y#7!`OSmF*DL4+vD$SHZqs)l@_1g%s?Nndj#PQN*g z_Z*UZ3Vc?8%qFR*3TsVct(8onEuX<)fbnDui^uPI0XiCuB9&qS8$M!A1TP5?l`JGp zhE^`1%7ke2?M@rLK4UZ*^b`q^1!&!RORwlCREj9q zbyQnSu-jyP^f9cMd zcdf?^MSh@DNRaptCvrD|CozIgLS#y+ioU0oo-Zx%7gDMvYC9e|I{*Lx07*qoM6N<$ Eg2&N_MF0Q* diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/32-AdNauseam.png b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/32-AdNauseam.png deleted file mode 100644 index 773f3c556bcda75b5576d8af06e9211ae2b203fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 zcmV;)0yh1LP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0$xc(K~y+TwNy!H z6hRa%y(r>A!3D&lh~Pm4K?J3lu4)|@6f_=OE&&zB1(zf!XdH8h2u3Ad^q}H)3OZd~ zlZ-?U5pxqf3L*%4P!EAjEfWP1+E+b2LyuF3QS`&7KkvPM_3O{?A^$aE63^nk?kWem zD}`Dj^r{OuRefT|=XojQj!IrHhVXgBbR1FLpTaE>`DUr*Iny6Flj~BrHO2$81fq9| zQ3qy;A=S0e*PBwR9>roj8y&rD8g*!9lQT8N+0?R>CImotR*+fGjD$v zG|Zmnrq`g}73He_gcr|snMG9ntmJ2w6R}yZY9kYY?vI%2$zr&{8>gA&0&|RTY7RI_ zrY_^ekv7hgE7~xdRNo_ln$u2_smFNU&0_eGz6qwiEY?h_M=>vX+(n|Zk35)JkLULW zCaAiCVV}?H8VOy9YpU%o(x&|q#;96}E>D$NZQF~1h6An$1=xk@Q8YrH)1b>iUEBW_x60<00R%3t<|2hM+w{FDrZcgQeh?)U( zcn1S63Z{B7>j7zwGwa_Z|C>BBHW@`gL6>3lLxBff|f_brAm+MSBSNS6CJB>K5_~u?2u~(+sCV6rvtRJq~;b zMg`P;&|X3}L+HGlGjp=et3l|Wft$qA>Z1V8r28|B7muLZ{dT8HY}!M80^I!&*8%?k v^Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0{BTpK~y+Tg_Lhd z6JZ?3C-kCszUfUb2evmtiBl_ci1YsxTuYE;V3MST7QN_&P|1jJArVwdBCH@PsThp3 zG|+hylgN4|)3R;(XPa(wyZyP{ZI!$IdbZu1)oy;_1J50NKm6|Qc}|cmeSLj<6bi*q zLqh}8*w`osfShb_HU2a;HFZ{3S3_lGC5(JooTO=bnGcGhOe9I>bJfggZEYP@tJNTt zN@3MzLrgdVVICMJ3~sl#ovUWf@bIu%r_+H_sf1vNMl=%ve&RxRcHuz(71!APMp)KL zfeJWL2$%Sv=rA~U5$0H5m(wg!1}squ6uE{dIs!qAhYY}kp1_jGHo?#?Lb+Tnesi}0 zqH*EWQ3zn6AD7~MHCv(Q!o|dTCys3Iu(r1L$?WVbFzW^gEIkD>5JV&uhBywF7hY*~ ziS;%?1{_WvVRLhHURPJwRxB37+Y9hl41*^?BM&a|5@5jQ7$U#7Xqh`;bp~7km9pMf8o zCLQr0je1|0;Je)m4<0{*j?VLdu+)Y{an?LEn0E@PxwHG&=_*ZpBS($hoF*O72^A98 zw?ogR%kW$~3M=jqtZveOVYYF?*oT^u=yc^T)*!*B;#guMv%XK9DjD$rjg+?$EMrj` znj?ArEhXF{Dx|ET9Lti&jGa0R>`Xnxs3lGZP}Cnn71ut4)fM7pTNooGSh!<4eF;Vk z(HR*)EV+G(R3UWW+#Hyl6j*RM6ALTu(+Qz}Tq2B2l$m}{mO@mIr_&b$J6QNn{1`ISV`@iy0XB4ude`@%$AjKn>ZRE{-7<{&)M&docw{9MxCmcrH|FcPlSD(DLxki5ei{bMY9zxa$k#5&!Sdkq&j)3@9~SL=P+;*w z^={sEn@j@<2LYCjMIASD*mmFjC%a&ymge-+68*iA_ZZmw; z>=Po(-fD|*eW=>ItnhY@Xy4-(^4Au0g)M|3Mfv{+-tj2TZ?H~SdyU^{HZU$2JYD@< J);T3K0RW$*#Bcxr diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/imgs.d.ts b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/imgs.d.ts deleted file mode 100644 index 1090848f7..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/imgs.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare module "*.svg" { - const content: any; - export default content; -} - -declare module "*.png" { - const content: any; - export default content; -} \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/index.ts b/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/index.ts deleted file mode 100644 index d3055c53e..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/imgs/index.ts +++ /dev/null @@ -1,36 +0,0 @@ -import img1 from "./01-uBlock-Origin.svg"; -import img2 from "./02-Adblock-Plus.svg"; -import img3 from "./03-AdGuard.svg"; -import img4 from "./04-DNS66.png"; -import img5 from "./05-Nano-Adblocker.png"; -import img6 from "./06-AdBlock.png"; -import img7 from "./07-AdAway.png"; -import img8 from "./08-Personal-Blocklist.png"; -import img10 from "./10-Redirector.png"; -import img11 from "./11-Hosts-File-Editor.png"; -import img12 from "./12-Gas-Mask.png"; -import img13 from "./13-MinerBlock.svg"; -import img14 from "./14-Pi-hole.svg"; -import img15 from "./15-uBlock.svg"; -import img16 from "./16-Internet-Explorer-TPL.svg"; -import img17 from "./17-Google-Hit-Hider-by-Domain.png"; -import img18 from "./18-FireHOL.png"; -import img19 from "./19-Samsung-Knox.png"; -import img20 from "./20-Little-Snitch.png"; -import img21 from "./21-Privoxy.png"; -import img22 from "./22-Diversion.png"; -import img23 from "./23-dnsmasq.png"; -import img24 from "./24-Slimjet.png"; -import img25 from "./25-uMatrix.png"; -import img26 from "./26-Blokada.png"; -import img27 from "./27-hostsmgr.png"; -import img28 from "./28-personalDNSfilter.svg"; -import img29 from "./29-Unbound.png"; -import img30 from "./30-BIND.png"; -import img31 from "./31-AdGuard-Home.png"; -import img32 from "./32-AdNauseam.png"; -import img33 from "./33-Legacy-Unix-Derivatives.png"; -import img34 from "./34-Windows-command-line.png"; - -export { img1, img2, img3, img4, img5, img6, img7, img8, img10, img11, img12, img13, img14, img15, img16, img17, img18, img19, img20, img21, img22, img23, img24, img25, img26, img27, img28, img29, img30, img31, img32, img33, img34 }; - diff --git a/src/FilterLists.Web/src/modules/home/components/softwareIcon/index.ts b/src/FilterLists.Web/src/modules/home/components/softwareIcon/index.ts deleted file mode 100644 index b3f6cc39f..000000000 --- a/src/FilterLists.Web/src/modules/home/components/softwareIcon/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { SoftwareIcon } from "./SoftwareIcon"; - -export { SoftwareIcon }; diff --git a/src/FilterLists.Web/src/modules/home/index.ts b/src/FilterLists.Web/src/modules/home/index.ts deleted file mode 100644 index bace2e88e..000000000 --- a/src/FilterLists.Web/src/modules/home/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { HomeContainer } from "./HomeContainer"; - -export { HomeContainer as Home }; diff --git a/src/FilterLists.Web/src/modules/home/interfaces/IColumnVisibility.ts b/src/FilterLists.Web/src/modules/home/interfaces/IColumnVisibility.ts deleted file mode 100644 index 3f11fd9a6..000000000 --- a/src/FilterLists.Web/src/modules/home/interfaces/IColumnVisibility.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface IColumnVisibility { - column: string; - visible: boolean; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/interfaces/ILicense.ts b/src/FilterLists.Web/src/modules/home/interfaces/ILicense.ts deleted file mode 100644 index 52b42da81..000000000 --- a/src/FilterLists.Web/src/modules/home/interfaces/ILicense.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface ILicense { - id: number; - descriptionUrl: string; - filterListIds: number[]; - name: string; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/interfaces/IList.ts b/src/FilterLists.Web/src/modules/home/interfaces/IList.ts deleted file mode 100644 index ff8c6cf81..000000000 --- a/src/FilterLists.Web/src/modules/home/interfaces/IList.ts +++ /dev/null @@ -1,22 +0,0 @@ -export interface IList { - id: number; - chatUrl: string; - description: string; - descriptionSourceUrl: string; - donateUrl: string; - emailAddress: string; - forumUrl: string; - homeUrl: string; - issuesUrl: string; - languageIds: number[]; - licenseId: number; - maintainerIds: number[]; - name: string; - policyUrl: string; - publishedDate: string; - submissionUrl: string; - syntaxId: number; - tagIds: number[]; - viewUrl: string; - viewUrlMirrors: string[]; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/interfaces/IMaintainer.ts b/src/FilterLists.Web/src/modules/home/interfaces/IMaintainer.ts deleted file mode 100644 index 421ce83c9..000000000 --- a/src/FilterLists.Web/src/modules/home/interfaces/IMaintainer.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface IMaintainer { - id: number; - emailAddress: string; - filterListIds: number[]; - homeUrl: string; - name: string; - twitterHandle: string; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/interfaces/ISoftware.ts b/src/FilterLists.Web/src/modules/home/interfaces/ISoftware.ts deleted file mode 100644 index 840a05fb0..000000000 --- a/src/FilterLists.Web/src/modules/home/interfaces/ISoftware.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface ISoftware { - id: number; - homeUrl: string; - isAbpSubscribable: boolean; - name: string; - syntaxIds: number[]; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/interfaces/ISyntax.ts b/src/FilterLists.Web/src/modules/home/interfaces/ISyntax.ts deleted file mode 100644 index 2dd8fc9ee..000000000 --- a/src/FilterLists.Web/src/modules/home/interfaces/ISyntax.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface ISyntax { - id: number; - definitionUrl: string; - filterListIds: number[]; - name: string; - softwareIds: number[]; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/interfaces/ITag.ts b/src/FilterLists.Web/src/modules/home/interfaces/ITag.ts deleted file mode 100644 index 62e526469..000000000 --- a/src/FilterLists.Web/src/modules/home/interfaces/ITag.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface ITag { - id: number; - description: string; - filterListIds: number[]; - name: string; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/home/interfaces/Language.ts b/src/FilterLists.Web/src/modules/home/interfaces/Language.ts deleted file mode 100644 index 4726a4c01..000000000 --- a/src/FilterLists.Web/src/modules/home/interfaces/Language.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface Language { - id: number; - filterListIds: number[]; - iso6391: string; - name: string; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/modules/index.ts b/src/FilterLists.Web/src/modules/index.ts deleted file mode 100644 index 26437089f..000000000 --- a/src/FilterLists.Web/src/modules/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Home } from "./home"; - -export { Home }; diff --git a/src/FilterLists.Web/src/react-app-env.d.ts b/src/FilterLists.Web/src/react-app-env.d.ts index 6431bc5fc..6889c6b37 100644 --- a/src/FilterLists.Web/src/react-app-env.d.ts +++ b/src/FilterLists.Web/src/react-app-env.d.ts @@ -1 +1 @@ -/// +/// \ No newline at end of file diff --git a/src/FilterLists.Web/src/utils/GetContrast.ts b/src/FilterLists.Web/src/utils/GetContrast.ts deleted file mode 100644 index 0dc5f4e55..000000000 --- a/src/FilterLists.Web/src/utils/GetContrast.ts +++ /dev/null @@ -1,8 +0,0 @@ -//https://stackoverflow.com/a/11868398/2343739 -export const getContrast = (hexcolor: string) => { - const r = parseInt(hexcolor.substr(0, 2), 16); - const g = parseInt(hexcolor.substr(2, 2), 16); - const b = parseInt(hexcolor.substr(4, 2), 16); - const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000; - return (yiq >= 128) ? "black" : "white"; -}; \ No newline at end of file diff --git a/src/FilterLists.Web/src/utils/index.ts b/src/FilterLists.Web/src/utils/index.ts index 4646f2030..d22b49973 100644 --- a/src/FilterLists.Web/src/utils/index.ts +++ b/src/FilterLists.Web/src/utils/index.ts @@ -1,3 +1,3 @@ -import { getContrast } from "./GetContrast"; +import { nameof } from './nameof'; -export { getContrast }; +export { nameof }; \ No newline at end of file diff --git a/src/FilterLists.Web/src/utils/loader.css b/src/FilterLists.Web/src/utils/loader.css deleted file mode 100644 index bdf0e7446..000000000 --- a/src/FilterLists.Web/src/utils/loader.css +++ /dev/null @@ -1,70 +0,0 @@ -/*https://projects.lukehaas.me/css-loaders/#load1*/ - -.loader, -.loader:before, -.loader:after { - -ms-animation: load1 1s infinite ease-in-out; - -webkit-animation: load1 1s infinite ease-in-out; - animation: load1 1s infinite ease-in-out; - background: #000000; - height: 4em; - width: 1em; -} - -.loader { - -ms-transform: translateZ(0); - -webkit-animation-delay: -0.16s; - -webkit-transform: translateZ(0); - animation-delay: -0.16s; - color: #000000; - font-size: 11px; - margin: 88px auto; - position: relative; - text-indent: -9999em; - transform: translateZ(0); -} - -.loader:before, -.loader:after { - content: ""; - position: absolute; - top: 0; -} - -.loader:before { - -webkit-animation-delay: -0.32s; - animation-delay: -0.32s; - left: -1.5em; -} - -.loader:after { - left: 1.5em; -} - -@-webkit-keyframes load1 { - 0%, - 80%, - 100% { - box-shadow: 0 0; - height: 4em; - } - - 40% { - box-shadow: 0 -2em; - height: 5em; - } -} - -@keyframes load1 { - 0%, - 80%, - 100% { - box-shadow: 0 0; - height: 4em; - } - - 40% { - box-shadow: 0 -2em; - height: 5em; - } -} diff --git a/src/FilterLists.Web.V2/src/utils/nameof.ts b/src/FilterLists.Web/src/utils/nameof.ts similarity index 100% rename from src/FilterLists.Web.V2/src/utils/nameof.ts rename to src/FilterLists.Web/src/utils/nameof.ts diff --git a/src/FilterLists.Web/tsconfig.json b/src/FilterLists.Web/tsconfig.json index 0980b23fa..213390d38 100644 --- a/src/FilterLists.Web/tsconfig.json +++ b/src/FilterLists.Web/tsconfig.json @@ -17,9 +17,10 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "preserve" + "jsx": "preserve", + "noImplicitAny": true }, "include": [ "src" ] -} +} \ No newline at end of file