@griddo/ax 1.62.8 → 1.63.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/package.json +19 -15
  2. package/src/GlobalStore.tsx +1 -1
  3. package/src/Style/index.tsx +2 -0
  4. package/src/api/pages.tsx +20 -0
  5. package/src/api/utils.tsx +5 -2
  6. package/src/components/Browser/index.tsx +144 -39
  7. package/src/components/Browser/style.tsx +47 -11
  8. package/src/components/ConfigPanel/index.tsx +3 -3
  9. package/src/components/Fields/CheckField/index.tsx +0 -2
  10. package/src/components/Fields/RadioField/index.tsx +1 -1
  11. package/src/components/Fields/RichText/index.tsx +2 -2
  12. package/src/components/Fields/UrlField/utils.tsx +10 -1
  13. package/src/components/Icon/components/Desktop.js +9 -4
  14. package/src/components/Icon/components/Phone.js +4 -4
  15. package/src/components/Icon/components/Share.js +12 -0
  16. package/src/components/Icon/components/Tablet.js +4 -4
  17. package/src/components/Icon/svgs/Share.svg +3 -0
  18. package/src/components/MainWrapper/AppBar/index.tsx +19 -7
  19. package/src/components/MainWrapper/AppBar/style.tsx +20 -4
  20. package/src/components/MainWrapper/index.tsx +1 -1
  21. package/src/components/SideModal/index.tsx +1 -1
  22. package/src/components/TableFilters/DateFilter/index.tsx +48 -0
  23. package/src/components/TableFilters/DateFilter/style.tsx +29 -0
  24. package/src/components/TableFilters/index.tsx +2 -0
  25. package/src/components/Tabs/index.tsx +17 -7
  26. package/src/components/Tabs/style.tsx +29 -16
  27. package/src/components/Tooltip/index.tsx +1 -1
  28. package/src/components/Tooltip/style.tsx +2 -0
  29. package/src/components/index.tsx +2 -0
  30. package/src/containers/App/reducer.tsx +3 -1
  31. package/src/containers/PageEditor/actions.tsx +65 -10
  32. package/src/containers/Settings/DataPacks/actions.tsx +4 -1
  33. package/src/containers/Sites/actions.tsx +3 -1
  34. package/src/helpers/dates.tsx +3 -4
  35. package/src/helpers/index.tsx +2 -0
  36. package/src/helpers/strings.tsx +38 -7
  37. package/src/index.tsx +2 -3
  38. package/src/modules/App/Routing/index.tsx +1 -1
  39. package/src/modules/Content/OptionTable/index.tsx +29 -2
  40. package/src/modules/Content/PageItem/index.tsx +11 -2
  41. package/src/modules/Content/index.tsx +9 -0
  42. package/src/modules/GlobalEditor/Editor/index.tsx +7 -9
  43. package/src/modules/GlobalEditor/{Editor/PageBrowser → PageBrowser}/index.tsx +14 -6
  44. package/src/modules/GlobalEditor/Preview/index.tsx +19 -0
  45. package/src/modules/GlobalEditor/Preview/style.tsx +9 -0
  46. package/src/modules/GlobalEditor/index.tsx +36 -9
  47. package/src/modules/Navigation/Defaults/DefaultsEditor/Editor/DefaultsBrowser/index.tsx +5 -1
  48. package/src/modules/PageEditor/Editor/index.tsx +5 -5
  49. package/src/modules/PageEditor/{Editor/PageBrowser → PageBrowser}/index.tsx +11 -4
  50. package/src/modules/PageEditor/Preview/index.tsx +14 -0
  51. package/src/modules/PageEditor/Preview/style.tsx +9 -0
  52. package/src/modules/PageEditor/index.tsx +39 -16
  53. package/src/modules/PublicPreview/index.tsx +92 -0
  54. package/src/modules/PublicPreview/style.tsx +18 -0
  55. package/src/modules/Redirects/BulkHeader/TableHeader/index.tsx +16 -3
  56. package/src/modules/Redirects/BulkHeader/TableHeader/style.tsx +9 -3
  57. package/src/modules/Redirects/BulkHeader/index.tsx +7 -1
  58. package/src/modules/Redirects/RedirectItem/index.tsx +4 -0
  59. package/src/modules/Redirects/RedirectItem/style.tsx +19 -3
  60. package/src/modules/Redirects/atoms.tsx +0 -1
  61. package/src/modules/Redirects/hooks.tsx +67 -0
  62. package/src/modules/Redirects/index.tsx +23 -9
  63. package/src/modules/Redirects/utils.tsx +10 -0
  64. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/ConfigPanel/Field/index.tsx +107 -0
  65. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/ConfigPanel/Field/style.tsx +54 -0
  66. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/ConfigPanel/index.tsx +66 -0
  67. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/ConfigPanel/style.tsx +42 -0
  68. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/TemplateBrowser/index.tsx +58 -0
  69. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/index.tsx +41 -0
  70. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/index.tsx +93 -0
  71. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/style.tsx +25 -0
  72. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/index.tsx +48 -0
  73. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/style.tsx +53 -0
  74. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/index.tsx +40 -36
  75. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/style.tsx +4 -5
  76. package/src/modules/Settings/ContentTypes/DataPacks/Config/index.tsx +4 -4
  77. package/src/modules/Settings/ContentTypes/DataPacks/index.tsx +5 -1
  78. package/src/modules/Settings/{Analytics → SeoAnalyticsSettings/Analytics}/atoms.tsx +0 -0
  79. package/src/modules/Settings/{Analytics → SeoAnalyticsSettings/Analytics}/index.tsx +20 -11
  80. package/src/modules/Settings/{Analytics → SeoAnalyticsSettings/Analytics}/style.tsx +6 -0
  81. package/src/modules/Settings/{SeoSettings → SeoAnalyticsSettings}/index.tsx +11 -4
  82. package/src/react-app-env.d.ts +0 -2
  83. package/src/routes/publicRoutes.tsx +3 -1
  84. package/src/routes/site.tsx +14 -10
  85. package/src/types/index.tsx +9 -0
  86. package/tsconfig.json +1 -0
@@ -1,11 +1,12 @@
1
1
  import React, { useState } from "react";
2
2
  import { connect } from "react-redux";
3
3
 
4
- import { IDataPackConfigImport, IDataPackConfigImportCategory, IRootState } from "@ax/types";
4
+ import { IDataPackConfigImport, IDataPackConfigImportCategory, IRootState, ITemplate } from "@ax/types";
5
5
  import { dataPacksActions } from "@ax/containers/Settings";
6
6
  import { FieldsBehavior, Modal, Tag } from "@ax/components";
7
7
  import { useModal } from "@ax/hooks";
8
8
 
9
+ import TemplateConfig from "./TemplateConfig";
9
10
  import * as S from "./style";
10
11
 
11
12
  const Form = (props: IProps): JSX.Element => {
@@ -30,7 +31,7 @@ const Form = (props: IProps): JSX.Element => {
30
31
  const { isOpen, toggleModal } = useModal();
31
32
 
32
33
  const selectOptions: { value: string; label: string }[] = [];
33
- templates.forEach((template: any) =>
34
+ templates.forEach((template: ITemplate) =>
34
35
  selectOptions.push({
35
36
  value: template.id,
36
37
  label: template.title,
@@ -135,47 +136,50 @@ const Form = (props: IProps): JSX.Element => {
135
136
  <>
136
137
  <S.Config>
137
138
  {isGlobalDataPage && (
138
- <S.SubscribeWrapper>
139
- <S.Heading>Subscribe to data</S.Heading>
140
- <S.SubscribeContent>
141
- <S.SubscribeText>
139
+ <S.SectionContent>
140
+ <S.SubscribeWrapper>
141
+ <S.Heading>Subscribe to data</S.Heading>
142
+ <S.Text>
142
143
  If you want to get any Global {selected.title} Pages on this site automatically, you can do so by
143
144
  selecting the respective categories.
144
- </S.SubscribeText>
145
+ </S.Text>
145
146
  {configFormData && configFormData.import && getCategoryLabels()}
146
147
  <S.StyledButton type="button" buttonStyle="text" icon="addCircle" onClick={toggleModal}>
147
148
  Add Category
148
149
  </S.StyledButton>
149
- </S.SubscribeContent>
150
- </S.SubscribeWrapper>
150
+ </S.SubscribeWrapper>
151
+ </S.SectionContent>
151
152
  )}
152
- <S.Heading>Detail page configuration</S.Heading>
153
- <FieldsBehavior
154
- title="Default URL parent for detail template"
155
- name="defaultParent"
156
- fieldType="AsyncSelect"
157
- site={currentSite}
158
- entity={"pages"}
159
- value={configFormData && configFormData.defaultParent}
160
- onChange={setDefaultParent}
161
- options={{ excludeDetailPages: true }}
162
- />
163
- <FieldsBehavior
164
- title="Modifiable in page"
165
- name="defaultParent"
166
- fieldType="ToggleField"
167
- value={(configFormData && configFormData.modifiableOnPage) || false}
168
- checked={(configFormData && configFormData.modifiableOnPage) || false}
169
- onChange={setModifiableOnPage}
170
- />
171
- <FieldsBehavior
172
- title="Meta robots index default"
173
- name="indexDefault"
174
- fieldType="RadioGroup"
175
- value={(configFormData && configFormData.indexDefault) || false}
176
- options={indexDefaultOptions}
177
- onChange={setIndexDefault}
178
- />
153
+ <S.SectionContent>
154
+ <S.Heading>Detail page configuration</S.Heading>
155
+ <FieldsBehavior
156
+ title="Default URL parent for detail template"
157
+ name="defaultParent"
158
+ fieldType="AsyncSelect"
159
+ site={currentSite}
160
+ entity={"pages"}
161
+ value={configFormData && configFormData.defaultParent}
162
+ onChange={setDefaultParent}
163
+ options={{ excludeDetailPages: true }}
164
+ />
165
+ <FieldsBehavior
166
+ title="Modifiable in page"
167
+ name="defaultParent"
168
+ fieldType="ToggleField"
169
+ value={(configFormData && configFormData.modifiableOnPage) || false}
170
+ checked={(configFormData && configFormData.modifiableOnPage) || false}
171
+ onChange={setModifiableOnPage}
172
+ />
173
+ <FieldsBehavior
174
+ title="Meta robots index default"
175
+ name="indexDefault"
176
+ fieldType="RadioGroup"
177
+ value={(configFormData && configFormData.indexDefault) || false}
178
+ options={indexDefaultOptions}
179
+ onChange={setIndexDefault}
180
+ />
181
+ </S.SectionContent>
182
+ <TemplateConfig templates={templates} />
179
183
  </S.Config>
180
184
  <Modal
181
185
  isOpen={isOpen}
@@ -21,13 +21,12 @@ const SubscribeWrapper = styled.div`
21
21
  position: relative;
22
22
  `;
23
23
 
24
- const SubscribeContent = styled.div`
24
+ const SectionContent = styled.div`
25
25
  border-bottom: 1px solid ${(p) => p.theme.color.uiLine};
26
26
  margin-bottom: ${(p) => p.theme.spacing.m};
27
- padding-bottom: ${(p) => p.theme.spacing.m};
28
27
  `;
29
28
 
30
- const SubscribeText = styled.div`
29
+ const Text = styled.div`
31
30
  ${(p) => p.theme.textStyle.uiM};
32
31
  color: ${(p) => p.theme.color.textMediumEmphasis};
33
32
  width: calc(${(p) => p.theme.spacing.l} * 12);
@@ -48,8 +47,8 @@ export {
48
47
  Config,
49
48
  ModalContent,
50
49
  SubscribeWrapper,
51
- SubscribeContent,
52
- SubscribeText,
50
+ SectionContent,
51
+ Text,
53
52
  StyledButton,
54
53
  CategoriesWrapper,
55
54
  };
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { connect } from "react-redux";
3
3
 
4
- import { IRootState, ISite } from "@ax/types";
4
+ import { IRootState, ISite, ITemplate } from "@ax/types";
5
5
  import { getSchemaThumbnails, getTemplateThumbnails } from "@ax/helpers";
6
6
 
7
7
  import Card from "./Card";
@@ -9,7 +9,7 @@ import Form from "./Form";
9
9
 
10
10
  import * as S from "./style";
11
11
 
12
- const ConfigPack = (props: any): JSX.Element => {
12
+ const ConfigPack = (props: IProps): JSX.Element => {
13
13
  const { selected, currentSiteInfo } = props;
14
14
  const { title, description, categories, templates, modules, structuredData } = selected;
15
15
  const isFromPage = templates && templates.length > 0;
@@ -48,7 +48,7 @@ const ConfigPack = (props: any): JSX.Element => {
48
48
  );
49
49
  })}
50
50
  {templates &&
51
- templates.map((template: any, key: number) => {
51
+ templates.map((template: ITemplate, key: number) => {
52
52
  const thumbnails = getTemplateThumbnails(template.id, currentSiteInfo.theme);
53
53
  return (
54
54
  <Card
@@ -77,4 +77,4 @@ const mapStateToProps = (state: IRootState) => ({
77
77
  currentSiteInfo: state.sites.currentSiteInfo,
78
78
  });
79
79
 
80
- export default connect(mapStateToProps, null)(ConfigPack);
80
+ export default connect(mapStateToProps)(ConfigPack);
@@ -31,6 +31,7 @@ const DataPacks = (props: IProps): JSX.Element => {
31
31
  addDataPacks,
32
32
  deleteSiteDataPack,
33
33
  activatedDataPacks,
34
+ routerAction,
34
35
  } = props;
35
36
 
36
37
  const isFromPage = selected && selected.templates && selected.templates.length > 0;
@@ -55,8 +56,9 @@ const DataPacks = (props: IProps): JSX.Element => {
55
56
  }, [getSiteDataPacks, getDataPacksCategories]);
56
57
 
57
58
  useEffect(() => {
58
- setSelected(null);
59
+ if (routerAction !== "POP") setSelected(null);
59
60
  getActivatedPacks();
61
+ // eslint-disable-next-line react-hooks/exhaustive-deps
60
62
  }, [getActivatedPacks, setSelected]);
61
63
 
62
64
  const deactivateDataPack = (force = false) => {
@@ -212,6 +214,7 @@ interface IProps {
212
214
  selected: any;
213
215
  form: any;
214
216
  activatedDataPacks: IDataPack[];
217
+ routerAction: string;
215
218
  getSiteDataPacks: (queryParams?: string) => void;
216
219
  setSelected: (dataPack?: any) => void;
217
220
  updateDataPack: (dataPack?: any) => void;
@@ -237,6 +240,7 @@ const mapStateToProps = (state: IRootState) => ({
237
240
  selected: state.dataPacks.selected,
238
241
  form: state.dataPacks.configFormData,
239
242
  activatedDataPacks: state.dataPacks.activated,
243
+ routerAction: state.router.action,
240
244
  });
241
245
 
242
246
  export default connect(mapStateToProps, mapDispatchToProps)(DataPacks);
@@ -1,10 +1,10 @@
1
1
  import React, { useEffect, useState } from "react";
2
2
  import { connect } from "react-redux";
3
3
 
4
- import { IAnalytics, IRootState } from "@ax/types";
4
+ import { IAnalytics, INavItem, IRootState } from "@ax/types";
5
5
  import { appActions } from "@ax/containers/App";
6
6
  import { analyticsActions } from "@ax/containers/Analytics";
7
- import { MainWrapper, Loading } from "@ax/components";
7
+ import { MainWrapper, Loading, Nav } from "@ax/components";
8
8
  import { useIsDirty } from "@ax/hooks";
9
9
  import { RouteLeavingGuard } from "@ax/guards";
10
10
 
@@ -13,6 +13,8 @@ import * as S from "./style";
13
13
 
14
14
  const Analytics = (props: IProps): JSX.Element => {
15
15
  const {
16
+ navItems,
17
+ currentNavItem,
16
18
  isSaving,
17
19
  isLoading,
18
20
  analytics,
@@ -33,7 +35,7 @@ const Analytics = (props: IProps): JSX.Element => {
33
35
  useEffect(() => {
34
36
  setScriptCode(analytics.scriptCode);
35
37
  setShowWarning(!analytics.siteScriptCodeExists);
36
- // eslint-disable-next-line react-hooks/exhaustive-deps
38
+ // eslint-disable-next-line react-hooks/exhaustive-deps
37
39
  }, [analytics]);
38
40
 
39
41
  const handleSave = async () => {
@@ -55,24 +57,29 @@ const Analytics = (props: IProps): JSX.Element => {
55
57
  );
56
58
 
57
59
  const analyticsSettings = (
58
- <S.ContentWrapper>
60
+ <>
59
61
  {showWarning ? (
60
62
  <Warning setShowWarning={setShowWarning} />
61
63
  ) : (
62
- <S.AnalyticsWrapper>
63
- <ScriptCode scriptCode={scriptCode} setScriptCode={setScriptCode} />
64
- {analytics.dimensions && <Dimensions dimensions={analytics.dimensions} />}
65
- {analytics.groups && <Groups groups={analytics.groups} />}
66
- </S.AnalyticsWrapper>
64
+ <S.AnalyticsWrapper>
65
+ <ScriptCode scriptCode={scriptCode} setScriptCode={setScriptCode} />
66
+ {analytics.dimensions && <Dimensions dimensions={analytics.dimensions} />}
67
+ {analytics.groups && <Groups groups={analytics.groups} />}
68
+ </S.AnalyticsWrapper>
67
69
  )}
68
- </S.ContentWrapper>
70
+ </>
69
71
  )
70
72
 
71
73
  return (
72
74
  <>
73
75
  <RouteLeavingGuard when={isDirty} action={setRoute} text={modalText} />
74
76
  <MainWrapper backLink={false} title="Analytics Settings" rightButton={rightButtonProps}>
75
- {isLoading ? <Loading /> : analyticsSettings}
77
+ <S.Wrapper>
78
+ <Nav current={currentNavItem} items={navItems} onClick={setRoute} />
79
+ <S.ContentWrapper>
80
+ {isLoading ? <Loading /> : analyticsSettings}
81
+ </S.ContentWrapper>
82
+ </S.Wrapper>
76
83
  </MainWrapper>
77
84
  </>
78
85
  );
@@ -92,6 +99,8 @@ const mapDispatchToProps = {
92
99
  };
93
100
 
94
101
  interface IAnalyticsProps {
102
+ navItems: INavItem[];
103
+ currentNavItem: INavItem;
95
104
  isSaving: boolean;
96
105
  isLoading: boolean;
97
106
  analytics: IAnalytics;
@@ -1,5 +1,10 @@
1
1
  import styled from "styled-components";
2
2
 
3
+ const Wrapper = styled.div`
4
+ display: flex;
5
+ height: 100%;
6
+ `;
7
+
3
8
  const Heading = styled.div`
4
9
  ${(p) => p.theme.textStyle.headingXS};
5
10
  color: ${p => p.theme.color.textHighEmphasis};
@@ -92,6 +97,7 @@ const ContentType = styled.div`
92
97
  `;
93
98
 
94
99
  export {
100
+ Wrapper,
95
101
  Heading,
96
102
  Description,
97
103
  WarningHeading,
@@ -1,16 +1,23 @@
1
1
  import React from "react";
2
2
  import { Switch, Route } from "react-router-dom";
3
+
3
4
  import Redirects from "../../Redirects";
5
+ import Analytics from "./Analytics";
4
6
 
5
7
  const navItems = [
6
8
  {
7
9
  title: "SEO",
8
- path: "/sites/settings/seo-settings",
10
+ path: "/sites/settings/seo",
9
11
  component: Redirects,
10
12
  },
13
+ {
14
+ title: "Analytics",
15
+ path: "/sites/settings/analytics",
16
+ component: Analytics
17
+ },
11
18
  ];
12
19
 
13
- const SeoSettings = (): JSX.Element => {
20
+ const SeoAnalyticsSettings = (): JSX.Element => {
14
21
  return (
15
22
  <Switch>
16
23
  {navItems.map((item, index) => (
@@ -19,7 +26,7 @@ const SeoSettings = (): JSX.Element => {
19
26
  </Route>
20
27
  ))}
21
28
  </Switch>
22
- );
29
+ )
23
30
  };
24
31
 
25
- export default SeoSettings;
32
+ export default SeoAnalyticsSettings;
@@ -1,6 +1,4 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="react" />
3
- /// <reference types="react-dom" />
4
2
 
5
3
  declare namespace NodeJS {
6
4
  interface ProcessEnv {
@@ -1,11 +1,13 @@
1
1
  import ResetPass from "./../modules/ResetPass";
2
2
  import CreatePass from "./../modules/CreatePass";
3
3
  import Login from "./../modules/Login";
4
+ import PublicPreview from "./../modules/PublicPreview";
4
5
 
5
6
  const publicRoutes = [
6
7
  { path: "/login", component: Login, name: "Login", hideNav: true },
7
8
  { path: "/new-password/:id/:token", component: ResetPass, name: "Reset Password", hideNav: true },
8
- { path: "/set-password/:id/:token", component: CreatePass, name: "Create Password", hideNav: true }
9
+ { path: "/set-password/:id/:token", component: CreatePass, name: "Create Password", hideNav: true },
10
+ { path: "/page-preview/:id/:entity", component: PublicPreview, name: "Preview", hideNav: true },
9
11
  ];
10
12
 
11
13
  export default publicRoutes;
@@ -7,8 +7,8 @@ import ContentTypes from "./../modules/Settings/ContentTypes";
7
7
  import Settings from "./../modules/Settings";
8
8
  import CategoriesList from "./../modules/Categories/CategoriesList";
9
9
  import StructuredData from "./../modules/StructuredData";
10
- import SeoSettings from "./../modules/Settings/SeoSettings";
11
- import Analytics from "./../modules/Settings/Analytics";
10
+ import SeoAnalyticsSettings from "./../modules/Settings/SeoAnalyticsSettings";
11
+ import TemplateEditor from "../modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor";
12
12
 
13
13
  const BASE_PATH = "/sites";
14
14
 
@@ -60,6 +60,14 @@ export default [
60
60
  hideNav: true,
61
61
  isEditor: true,
62
62
  },
63
+ {
64
+ path: `${BASE_PATH}/settings/content-types/editor`,
65
+ component: TemplateEditor,
66
+ name: "Template Editor",
67
+ showInNav: false,
68
+ hideNav: true,
69
+ isEditor: true,
70
+ },
63
71
  {
64
72
  path: `${BASE_PATH}/settings`,
65
73
  component: null,
@@ -81,14 +89,9 @@ export default [
81
89
  name: "Content types",
82
90
  },
83
91
  {
84
- path: `${BASE_PATH}/settings/seo-settings`,
85
- component: SeoSettings,
86
- name: "SEO Settings",
87
- },
88
- {
89
- path: `${BASE_PATH}/settings/analytics`,
90
- component: Analytics,
91
- name: "Analytics",
92
+ path: `${BASE_PATH}/settings/seo`,
93
+ component: SeoAnalyticsSettings,
94
+ name: "SEO & Analytics",
92
95
  },
93
96
  ],
94
97
  },
@@ -96,4 +99,5 @@ export default [
96
99
  },
97
100
  { path: `${BASE_PATH}/settings/languages`, component: Settings, name: "Languages", showInNav: false },
98
101
  { path: `${BASE_PATH}/settings/social`, component: Settings, name: "Social", showInNav: false },
102
+ { path: `${BASE_PATH}/settings/analytics`, component: SeoAnalyticsSettings, name: "Analytics", showInNav: false },
99
103
  ];
@@ -687,6 +687,7 @@ export interface IRedirect {
687
687
  to: { pageId?: number; url: string; linkTo?: number; href?: string };
688
688
  site?: { siteId: number | null; siteName: string | null; siteUrl: string | null };
689
689
  domain?: string;
690
+ date?: string;
690
691
  }
691
692
 
692
693
  export interface IAnalytics {
@@ -709,6 +710,14 @@ export interface IDimensionsGroup {
709
710
  templates?: string;
710
711
  }
711
712
 
713
+ export interface ITemplate {
714
+ dataPacks: string[],
715
+ id: string,
716
+ thumbnails: Record<string, string>,
717
+ title: string,
718
+ type: { label: string, value: string, mode: string },
719
+ }
720
+
712
721
  export type Field =
713
722
  | "AsyncCheckGroup"
714
723
  | "AsyncSelect"
package/tsconfig.json CHANGED
@@ -17,6 +17,7 @@
17
17
  "moduleResolution": "node",
18
18
  "resolveJsonModule": true,
19
19
  "isolatedModules": true,
20
+ "useUnknownInCatchVariables": false,
20
21
  "noEmit": true,
21
22
  "jsx": "react",
22
23
  "types": [