@antscorp/antsomi-ui 1.3.5-beta.488 → 1.3.5-beta.489

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.
@@ -52,7 +52,6 @@ export const ChildMenu = memo(props => {
52
52
  const { pathname, hash } = window.location;
53
53
  const { isPushDifferentDomain, getPath, navigatePath } = useNavigatePath();
54
54
  useDeepCompareEffect(() => {
55
- var _a;
56
55
  switch (true) {
57
56
  case isCustomized: {
58
57
  setCurrentActiveItem(customActiveCurrentKey);
@@ -88,17 +87,18 @@ export const ChildMenu = memo(props => {
88
87
  default: {
89
88
  const url = `${pathname}${hash}`;
90
89
  // Active menu item by current url
91
- const activeMenuItem = (_a = findLastMatchedItemByUrl({
90
+ const activeMenuItem = findLastMatchedItemByUrl({
92
91
  url,
93
92
  menuItems,
94
93
  auth,
95
94
  env,
96
- })) === null || _a === void 0 ? void 0 : _a.menu_item_code;
97
- if (activeMenuItem && activeMenuItem !== currentActiveItem) {
98
- setCurrentActiveItem(activeMenuItem);
95
+ });
96
+ const activeMenuItemCode = activeMenuItem === null || activeMenuItem === void 0 ? void 0 : activeMenuItem.menu_item_code;
97
+ if (activeMenuItemCode && activeMenuItemCode !== currentActiveItem) {
98
+ setCurrentActiveItem(activeMenuItemCode);
99
99
  // Find parent key of active menu item to open it
100
100
  const parentKey = recursiveFindParentOfActiveItem({
101
- activeMenuItem,
101
+ activeMenuItem: activeMenuItemCode,
102
102
  menuItems: menuItems === null || menuItems === void 0 ? void 0 : menuItems.map(item => getMenuItem(item)),
103
103
  });
104
104
  if (parentKey) {
@@ -22,31 +22,18 @@ export const HOME_REPORT_ROUTES = {
22
22
  CREATE: `create`,
23
23
  };
24
24
  export const HOME_MENU_ITEMS = {
25
- // RECENT: {
26
- // menu_item_name: 'Recent',
27
- // menu_item_code: 'recentDashboard',
28
- // icon_name: null,
29
- // },
30
- // OWNERS: {
31
- // menu_item_name: 'Owners',
32
- // menu_item_code: 'ownedDashboard',
33
- // icon_name: null,
34
- // },
35
- // SHARED_WITH_ME: {
36
- // menu_item_name: 'Shared with me',
37
- // menu_item_code: 'sharedDashboard',
38
- // icon_name: null,
39
- // },
40
25
  RECOMMENDATION: {
41
26
  menu_item_name: 'Recommendation',
42
27
  menu_item_code: 'recommendation',
43
28
  icon_name: 'icon-ants-tips',
44
29
  menu_item_path: `${HOME_ROUTE}/recommendation`,
30
+ page_title: '_recommendation',
45
31
  },
46
32
  DASHBOARD: {
47
33
  menu_item_name: 'Dashboard',
48
34
  menu_item_code: 'ownedDashboard',
49
35
  icon_name: 'icon-ants-dashboard',
36
+ page_title: '_dashboard',
50
37
  },
51
38
  };
52
39
  /* MARKETING APP */
@@ -10,7 +10,7 @@ import { getGeneratePath } from '../utils';
10
10
  import { hasSelectAccountPermission } from '../../../template/Layout/utils';
11
11
  // Constants
12
12
  import { ENV } from '@antscorp/antsomi-ui/es/config';
13
- import { KEEP_HASH_PATH_CODE } from '../../../template/Layout/constants';
13
+ import { KEEP_HASH_PATH_DEV } from '../../../template/Layout/constants';
14
14
  // Hooks
15
15
  import { usePermission } from './usePermission';
16
16
  export const useNavigatePath = () => {
@@ -40,7 +40,7 @@ export const useNavigatePath = () => {
40
40
  }, [isDev]);
41
41
  const getPath = useCallback((path, itemKey) => {
42
42
  var _a;
43
- if ((path === null || path === void 0 ? void 0 : path.includes('#')) && !KEEP_HASH_PATH_CODE.includes(`${itemKey}`)) {
43
+ if ((path === null || path === void 0 ? void 0 : path.includes('#')) && !KEEP_HASH_PATH_DEV.includes(`${itemKey}`)) {
44
44
  const customPath = ((_a = path === null || path === void 0 ? void 0 : path.split('#')) === null || _a === void 0 ? void 0 : _a[1]) || '';
45
45
  return getGeneratePath(customPath, auth);
46
46
  }
@@ -56,6 +56,7 @@ export declare const recursiveGetInitialFeatureMenuItem: (featureMenuItem: Parti
56
56
  total_row: number;
57
57
  ctime: string | null;
58
58
  utime: string | null;
59
+ page_title?: string | undefined;
59
60
  logo_url?: string | undefined;
60
61
  children?: TFeatureMenu[] | undefined;
61
62
  };
@@ -13,7 +13,7 @@ var __rest = (this && this.__rest) || function (s, e) {
13
13
  import { cloneDeep, isArray, isEmpty, sortBy } from 'lodash';
14
14
  // Constants
15
15
  import { APP_KEYS, MARKETING_CHANNEL_KEY, HOME_MENU_ITEMS, MARKETING_ROUTES, MENU_ITEM_TYPE, RENDER_OPTION, HOME_REPORT_ROUTES, SETTING_APP, } from '../constants';
16
- import { MARKETING_CHANNEL_CODE, KEEP_HASH_PATH_CODE } from '../../../template/Layout/constants';
16
+ import { MARKETING_CHANNEL_CODE, KEEP_HASH_PATH_DEV } from '../../../template/Layout/constants';
17
17
  // Utils
18
18
  import { handleError } from '@antscorp/antsomi-ui/es/utils';
19
19
  import { ENV } from '@antscorp/antsomi-ui/es/config';
@@ -252,7 +252,7 @@ export const findActiveAppCodeByUrl = (args) => {
252
252
  let matchAppCode = false;
253
253
  for (const item of items) {
254
254
  if (item === null || item === void 0 ? void 0 : item.menu_item_path) {
255
- const comparePath = KEEP_HASH_PATH_CODE.includes(item.menu_item_code)
255
+ const comparePath = KEEP_HASH_PATH_DEV.includes(item.menu_item_code)
256
256
  ? getGeneratePath(item.menu_item_path, auth)
257
257
  : getComparePath(getGeneratePath(item.menu_item_path, auth), env);
258
258
  if (url.includes(comparePath)) {
@@ -298,7 +298,7 @@ export const findLastMatchedItemByUrl = (args) => {
298
298
  const recursiveFindActiveItem = (items, parentId) => {
299
299
  for (const item of items) {
300
300
  if (item === null || item === void 0 ? void 0 : item.menu_item_path) {
301
- const comparePath = KEEP_HASH_PATH_CODE.includes(item.menu_item_code)
301
+ const comparePath = KEEP_HASH_PATH_DEV.includes(item.menu_item_code)
302
302
  ? getGeneratePath(item.menu_item_path, auth)
303
303
  : getComparePath(getGeneratePath(item.menu_item_path, auth), env);
304
304
  if (url.includes(comparePath) && (!parentId || item.menu_item_parent === parentId)) {
@@ -15,6 +15,7 @@ import { useContextSelector } from 'use-context-selector';
15
15
  import AntsProcessingNotification from '@antscorp/processing-notification';
16
16
  import { cloneDeep, merge, omit } from 'lodash';
17
17
  import isEqual from 'react-fast-compare';
18
+ import { translations } from '@antscorp/antsomi-ui/es/locales/translations';
18
19
  // Styled
19
20
  import { ChildrenWrapper, ContentWrapper, LayoutWrapper, NotificationWrapper } from './styled';
20
21
  // Components
@@ -33,6 +34,7 @@ import { hasSelectAccountPermission } from './utils';
33
34
  import { useDeepCompareMemo, useMutationObserver } from '@antscorp/antsomi-ui/es/hooks';
34
35
  import { HOME_MENU_ITEMS } from '../../organism/LeftMenu/constants';
35
36
  import { RecommendationWorkspace } from './components';
37
+ import i18nInstance from '@antscorp/antsomi-ui/es/locales/i18n';
36
38
  const { DATAFLOWS, APP_ANTALYSER } = APP_CODES;
37
39
  export const Layout = memo(props => {
38
40
  const { leftMenuProps, headerProps = {}, workspaceProps, contentWrapperProps, processingNotificationProps, children, onActiveMenuChange, } = props;
@@ -44,6 +46,7 @@ export const Layout = memo(props => {
44
46
  const header = useLayoutStore(store => store.state.header);
45
47
  const contentWrapper = useLayoutStore(store => store.state.contentWrapper);
46
48
  const workspace = useLayoutStore(store => store.state.workspace);
49
+ const setHeaderState = useLayoutStore(store => store.setHeaderState);
47
50
  const [showAccountSelection, setShowAccountSelection] = useState(false);
48
51
  const [noSpaceTopContent, setNoSpaceTopContent] = useState(false);
49
52
  const [activeMenuCode, setActiveMenuCode] = useState('');
@@ -115,7 +118,7 @@ export const Layout = memo(props => {
115
118
  INSIGHT_U_OGS: 'uogs',
116
119
  } }) }), accountSharingConfig: Object.assign(Object.assign({}, headerProps === null || headerProps === void 0 ? void 0 : headerProps.accountSharingConfig), { u_ogs: 'uogs', appCode: appCode || 'APP_CUSTOMER_360' }), accountSelection: Object.assign(Object.assign({}, headerProps === null || headerProps === void 0 ? void 0 : headerProps.accountSelection), { show: !!((_b = headerProps === null || headerProps === void 0 ? void 0 : headerProps.accountSelection) === null || _b === void 0 ? void 0 : _b.show) && showAccountSelection }) }));
117
120
  }, [headerProps, iamDomain, permissionDomain, showAccountSelection]);
118
- const mergeHeaderProps = useDeepCompareMemo(() => merge(cloneDeep(initialHeaderProps), header), [initialHeaderProps, header]);
121
+ const mergeHeaderProps = useDeepCompareMemo(() => merge(cloneDeep(initialHeaderProps), Object.assign(Object.assign({}, header), { pageTitle: (header === null || header === void 0 ? void 0 : header.pageTitle) || (header === null || header === void 0 ? void 0 : header.pageTitleTemp) })), [initialHeaderProps, header]);
119
122
  const _b = useDeepCompareMemo(() => merge(cloneDeep(contentWrapperProps), cloneDeep(contentWrapper)), [contentWrapperProps, contentWrapper]), { noPadding } = _b, mergeContentWrapperProps = __rest(_b, ["noPadding"]);
120
123
  const mergeWorkSpaceProps = useDeepCompareMemo(() => merge(cloneDeep(restOfWorkspaceProps), omit(workspace, 'workspaceContentProps')), [restOfWorkspaceProps, workspace]);
121
124
  const _c = useDeepCompareMemo(() => merge(cloneDeep(leftMenuProps), cloneDeep(leftMenu)), [leftMenuProps, leftMenu, appConfig]), { className: leftMenuClassName, show: showLeftMenu = true } = _c, mergeLeftMenuProps = __rest(_c, ["className", "show"]);
@@ -123,9 +126,15 @@ export const Layout = memo(props => {
123
126
  const antsProcessingNotificationConfig = useMemo(() => (Object.assign({ permissionDomain, socketDomain: SOCKET_API, token, accountId: userId, userId, lang: languageCode, networkId: portalId }, processingNotificationProps)), [permissionDomain, token, userId, languageCode, portalId, processingNotificationProps]);
124
127
  const onActiveMenuCodeChange = useCallback((activeItemPath, flattenPermissionList, menuListPermission) => {
125
128
  var _a;
126
- const activeMenuCode = (_a = activeItemPath === null || activeItemPath === void 0 ? void 0 : activeItemPath[(activeItemPath === null || activeItemPath === void 0 ? void 0 : activeItemPath.length) - 1]) === null || _a === void 0 ? void 0 : _a.menu_item_code;
127
- setActiveMenuCode(activeMenuCode);
128
- onActiveMenuChange === null || onActiveMenuChange === void 0 ? void 0 : onActiveMenuChange(activeMenuCode);
129
+ const activeMenuItem = activeItemPath === null || activeItemPath === void 0 ? void 0 : activeItemPath[(activeItemPath === null || activeItemPath === void 0 ? void 0 : activeItemPath.length) - 1];
130
+ const { menu_item_code, page_title, menu_item_name } = activeMenuItem || {};
131
+ setHeaderState({
132
+ pageTitleTemp: page_title
133
+ ? i18nInstance.t((_a = translations.leftMenu.pageTitle) === null || _a === void 0 ? void 0 : _a[`${page_title}`]).toString()
134
+ : menu_item_name,
135
+ });
136
+ setActiveMenuCode(menu_item_code);
137
+ onActiveMenuChange === null || onActiveMenuChange === void 0 ? void 0 : onActiveMenuChange(menu_item_code);
129
138
  const hasRole = hasSelectAccountPermission({
130
139
  activeItemPath: cloneDeep(activeItemPath),
131
140
  flattenPermissionList,
@@ -133,7 +142,7 @@ export const Layout = memo(props => {
133
142
  appItem: activeItemPath[0],
134
143
  });
135
144
  setShowAccountSelection(hasRole);
136
- }, [onActiveMenuChange]);
145
+ }, [onActiveMenuChange, setHeaderState]);
137
146
  return (React.createElement(LayoutWrapper, { showLeftMenu: !!showLeftMenu },
138
147
  React.createElement(HeaderV2, Object.assign({}, mergeHeaderProps, { showLogo: !showLeftMenu })),
139
148
  React.createElement(Flex, { className: "layout-body" },
@@ -2,9 +2,10 @@
2
2
  import React, { useLayoutEffect } from 'react';
3
3
  // Components
4
4
  import { MenuMapping, RecommendationImage } from './components';
5
- import { Flex } from '../../../../atoms';
6
5
  // Stores
7
6
  import { useLayoutStore } from '../../stores';
7
+ // Styled
8
+ import { RecommendationWorkspaceWrapper } from './styled';
8
9
  export const RecommendationWorkspace = () => {
9
10
  const setHeaderState = useLayoutStore(store => store.setHeaderState);
10
11
  useLayoutEffect(() => {
@@ -13,12 +14,13 @@ export const RecommendationWorkspace = () => {
13
14
  pageTitle: 'Recommendation',
14
15
  });
15
16
  return () => {
17
+ document.title = '';
16
18
  setHeaderState({
17
19
  pageTitle: '',
18
20
  });
19
21
  };
20
22
  }, [setHeaderState]);
21
- return (React.createElement(Flex, { gap: 220, align: "center", justify: "center", style: { height: '100%' } },
23
+ return (React.createElement(RecommendationWorkspaceWrapper, null,
22
24
  React.createElement(RecommendationImage, null),
23
25
  React.createElement(MenuMapping, null)));
24
26
  };
@@ -0,0 +1 @@
1
+ export declare const RecommendationWorkspaceWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,18 @@
1
+ import styled from 'styled-components';
2
+ export const RecommendationWorkspaceWrapper = styled.div `
3
+ display: flex;
4
+ height: 100%;
5
+ gap: 220px;
6
+ align-items: center;
7
+ justify-content: center;
8
+
9
+ @media screen and (max-width: 1600px) and (min-width: 1501px) {
10
+ gap: 110px;
11
+ }
12
+ @media screen and (max-width: 1500px) and (min-width: 1401px) {
13
+ gap: 20px;
14
+ }
15
+ @media screen and (max-width: 1400px) {
16
+ gap: 15px;
17
+ }
18
+ `;
@@ -18,4 +18,5 @@ export declare const MENU_PERMISSIONS: {
18
18
  DESTINATION: string;
19
19
  REPORT: string;
20
20
  };
21
- export declare const KEEP_HASH_PATH_CODE: string[];
21
+ export declare const KEEP_HASH_PATH_DEV: string[];
22
+ export declare const DUPLICATE_PERMISSION_MENU_CODES: string[];
@@ -18,4 +18,5 @@ export const MENU_PERMISSIONS = {
18
18
  DESTINATION: 'DESTINATION',
19
19
  REPORT: 'REPORT',
20
20
  };
21
- export const KEEP_HASH_PATH_CODE = ['DF_DATA_SOURCE', 'DATA_SOURCE'];
21
+ export const KEEP_HASH_PATH_DEV = ['DF_DATA_SOURCE', 'DATA_SOURCE'];
22
+ export const DUPLICATE_PERMISSION_MENU_CODES = ['DF_DATA_SOURCE', 'DATA_SOURCE'];
@@ -4,6 +4,7 @@ import { DeepPartial } from '@antscorp/antsomi-ui/es/types';
4
4
  import { ContentWrapperProps, WorkspaceProps } from '../types';
5
5
  import { LeftMenuProps } from '../../../organism';
6
6
  export interface HeaderStore extends Partial<HeaderV2Props> {
7
+ pageTitleTemp?: string;
7
8
  }
8
9
  export interface LeftMenuStore extends LeftMenuProps {
9
10
  show?: boolean;
@@ -1,4 +1,4 @@
1
- import { MENU_CODE, APP_ROLE_SCOPE, MENU_PERMISSIONS, KEEP_HASH_PATH_CODE } from '../constants';
1
+ import { MENU_CODE, APP_ROLE_SCOPE, MENU_PERMISSIONS, DUPLICATE_PERMISSION_MENU_CODES, } from '../constants';
2
2
  import { isEmpty } from 'lodash';
3
3
  const EDIT_ROLE = new Set(['CREATE', 'UPDATE', 'DELETE']);
4
4
  /**
@@ -74,7 +74,7 @@ export const hasSelectAccountPermission = (args) => {
74
74
  }
75
75
  const menuPermission = (() => {
76
76
  var _a;
77
- if (KEEP_HASH_PATH_CODE.includes(activeItem.menu_item_code)) {
77
+ if (DUPLICATE_PERMISSION_MENU_CODES.includes(activeItem.menu_item_code)) {
78
78
  if (appItem) {
79
79
  const appPermission = (() => {
80
80
  switch (appItem === null || appItem === void 0 ? void 0 : appItem.permission_code) {
@@ -0,0 +1,12 @@
1
+ export declare const BREAK_POINTS: {
2
+ PHONE: number;
3
+ PHABLET: number;
4
+ TABLET: number;
5
+ LAPTOP: number;
6
+ LAPTOP_13: number;
7
+ LAPTOP_14: number;
8
+ LAPTOP_15: number;
9
+ LAPTOP_16: number;
10
+ DESKTOP: number;
11
+ DESKTOP_L: number;
12
+ };
@@ -0,0 +1,12 @@
1
+ export const BREAK_POINTS = {
2
+ PHONE: 320,
3
+ PHABLET: 540,
4
+ TABLET: 768,
5
+ LAPTOP: 992,
6
+ LAPTOP_13: 1024,
7
+ LAPTOP_14: 1152,
8
+ LAPTOP_15: 1280,
9
+ LAPTOP_16: 1440,
10
+ DESKTOP: 1600,
11
+ DESKTOP_L: 1920,
12
+ };
@@ -593,5 +593,69 @@
593
593
  "extendValue": {
594
594
  "title": "Extend Value",
595
595
  "placeholder": "Input or paste multiple values separated by Enter"
596
+ },
597
+ "leftMenu": {
598
+ "pageTitle": {
599
+ "_recommendation": "Recommendation",
600
+ "_dashboard": "Dashboard",
601
+ "_marketing": "Marketing",
602
+ "_content": "Content",
603
+ "_templates": "Templates",
604
+ "_profiles": "Profiles",
605
+ "_data": "Data",
606
+ "_insights": "Insights",
607
+ "_settings": "Settings",
608
+ "_overview": "Overview",
609
+ "_allChannel": "All Channels",
610
+ "_allCampaign": "All Campaigns",
611
+ "_orchestration": "Journey Orchestration",
612
+ "_coupons": "Coupons",
613
+ "_shortLinks": "Short Links",
614
+ "_mediaTemplate": "Media Templates",
615
+ "_emailTemplate": "Email Templates",
616
+ "_journeyTactic": "Journey Tactics",
617
+ "_customers": "Customers",
618
+ "_visitors": "Visitors",
619
+ "_segments": "Segments",
620
+ "_models": "Models",
621
+ "_dataSchema": "Data Schema",
622
+ "_dataflows": "Dataflows",
623
+ "_histories": "Histories",
624
+ "_analysis": "Analysis",
625
+ "_report": "Reports",
626
+ "_dataSources": "Data Sources",
627
+ "_gallery": "Gallery",
628
+ "_accounts": "Accounts",
629
+ "_roles": "Roles",
630
+ "_dataProtect": "Data Protect",
631
+ "_general": "General Settings",
632
+ "_accountSharing": "Account Sharing",
633
+ "_ticket": "Ticket",
634
+ "_channelIntegration": "Channel Intergration",
635
+ "_diagrams": "Diagrams",
636
+ "_eventSources": "Event Sources",
637
+ "_events": "Events",
638
+ "_dataObjects": "Data Objects",
639
+ "_conversion": "Conversion",
640
+ "_dataViews": "Data Views",
641
+ "_eventAttributes": "Event Attributes",
642
+ "_analyticModels": "Analytic Models",
643
+ "_batchStream": "Batch Streaming Flows",
644
+ "_realtimeStream": "Realtime Streaming Flows",
645
+ "_sources": "Sources",
646
+ "_destinations": "Destinations",
647
+ "_upload": "Upload Histories",
648
+ "_export": "Export Histories",
649
+ "_sqlWorkspace": "SQL Workspace",
650
+ "_scheduleQuery": "Schedule Query",
651
+ "_survey": "Survey",
652
+ "_monitor": "Monitor",
653
+ "_projects": "Projects",
654
+ "_webPersonalize": "Web Personalize",
655
+ "_schedule": "Schedule",
656
+ "_explore": "Explore",
657
+ "_builtIn": "Built in",
658
+ "_standard": "Standard"
659
+ }
596
660
  }
597
661
  }
@@ -596,6 +596,70 @@ export declare const translationsJson: {
596
596
  title: string;
597
597
  placeholder: string;
598
598
  };
599
+ leftMenu: {
600
+ pageTitle: {
601
+ _recommendation: string;
602
+ _dashboard: string;
603
+ _marketing: string;
604
+ _content: string;
605
+ _templates: string;
606
+ _profiles: string;
607
+ _data: string;
608
+ _insights: string;
609
+ _settings: string;
610
+ _overview: string;
611
+ _allChannel: string;
612
+ _allCampaign: string;
613
+ _orchestration: string;
614
+ _coupons: string;
615
+ _shortLinks: string;
616
+ _mediaTemplate: string;
617
+ _emailTemplate: string;
618
+ _journeyTactic: string;
619
+ _customers: string;
620
+ _visitors: string;
621
+ _segments: string;
622
+ _models: string;
623
+ _dataSchema: string;
624
+ _dataflows: string;
625
+ _histories: string;
626
+ _analysis: string;
627
+ _report: string;
628
+ _dataSources: string;
629
+ _gallery: string;
630
+ _accounts: string;
631
+ _roles: string;
632
+ _dataProtect: string;
633
+ _general: string;
634
+ _accountSharing: string;
635
+ _ticket: string;
636
+ _channelIntegration: string;
637
+ _diagrams: string;
638
+ _eventSources: string;
639
+ _events: string;
640
+ _dataObjects: string;
641
+ _conversion: string;
642
+ _dataViews: string;
643
+ _eventAttributes: string;
644
+ _analyticModels: string;
645
+ _batchStream: string;
646
+ _realtimeStream: string;
647
+ _sources: string;
648
+ _destinations: string;
649
+ _upload: string;
650
+ _export: string;
651
+ _sqlWorkspace: string;
652
+ _scheduleQuery: string;
653
+ _survey: string;
654
+ _monitor: string;
655
+ _projects: string;
656
+ _webPersonalize: string;
657
+ _schedule: string;
658
+ _explore: string;
659
+ _builtIn: string;
660
+ _standard: string;
661
+ };
662
+ };
599
663
  };
600
664
  };
601
665
  vi: {
@@ -745,6 +809,70 @@ export declare const translationsJson: {
745
809
  title: string;
746
810
  placeholder: string;
747
811
  };
812
+ leftMenu: {
813
+ pageTitle: {
814
+ recommendation: string;
815
+ _dashboard: string;
816
+ _marketing: string;
817
+ _content: string;
818
+ _templates: string;
819
+ _profiles: string;
820
+ _data: string;
821
+ _insights: string;
822
+ _settings: string;
823
+ _overview: string;
824
+ _allChannel: string;
825
+ _allCampaigns: string;
826
+ _orchestration: string;
827
+ _coupons: string;
828
+ _shortLinks: string;
829
+ _mediaTemplate: string;
830
+ _emailTemplate: string;
831
+ _journeyTactic: string;
832
+ _customers: string;
833
+ _visitors: string;
834
+ _segments: string;
835
+ _models: string;
836
+ _dataSchema: string;
837
+ _dataflows: string;
838
+ _histories: string;
839
+ _analysis: string;
840
+ _report: string;
841
+ _dataSources: string;
842
+ _gallery: string;
843
+ _accounts: string;
844
+ _roles: string;
845
+ _dataProtect: string;
846
+ _general: string;
847
+ _accountSharing: string;
848
+ _ticket: string;
849
+ _channelIntegration: string;
850
+ _diagrams: string;
851
+ _eventSources: string;
852
+ _events: string;
853
+ _dataObjects: string;
854
+ _conversion: string;
855
+ _dataViews: string;
856
+ _eventAttributes: string;
857
+ _analyticModels: string;
858
+ _batchStream: string;
859
+ _realtimeStream: string;
860
+ _sources: string;
861
+ _destinations: string;
862
+ _upload: string;
863
+ _export: string;
864
+ _sqlWorkspace: string;
865
+ _scheduleQuery: string;
866
+ _survey: string;
867
+ _monitor: string;
868
+ _projects: string;
869
+ _webPersonalize: string;
870
+ _schedule: string;
871
+ _explore: string;
872
+ _builtIn: string;
873
+ _standard: string;
874
+ };
875
+ };
748
876
  };
749
877
  };
750
878
  };
@@ -596,6 +596,70 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
596
596
  title: string;
597
597
  placeholder: string;
598
598
  };
599
+ leftMenu: {
600
+ pageTitle: {
601
+ _recommendation: string;
602
+ _dashboard: string;
603
+ _marketing: string;
604
+ _content: string;
605
+ _templates: string;
606
+ _profiles: string;
607
+ _data: string;
608
+ _insights: string;
609
+ _settings: string;
610
+ _overview: string;
611
+ _allChannel: string;
612
+ _allCampaign: string;
613
+ _orchestration: string;
614
+ _coupons: string;
615
+ _shortLinks: string;
616
+ _mediaTemplate: string;
617
+ _emailTemplate: string;
618
+ _journeyTactic: string;
619
+ _customers: string;
620
+ _visitors: string;
621
+ _segments: string;
622
+ _models: string;
623
+ _dataSchema: string;
624
+ _dataflows: string;
625
+ _histories: string;
626
+ _analysis: string;
627
+ _report: string;
628
+ _dataSources: string;
629
+ _gallery: string;
630
+ _accounts: string;
631
+ _roles: string;
632
+ _dataProtect: string;
633
+ _general: string;
634
+ _accountSharing: string;
635
+ _ticket: string;
636
+ _channelIntegration: string;
637
+ _diagrams: string;
638
+ _eventSources: string;
639
+ _events: string;
640
+ _dataObjects: string;
641
+ _conversion: string;
642
+ _dataViews: string;
643
+ _eventAttributes: string;
644
+ _analyticModels: string;
645
+ _batchStream: string;
646
+ _realtimeStream: string;
647
+ _sources: string;
648
+ _destinations: string;
649
+ _upload: string;
650
+ _export: string;
651
+ _sqlWorkspace: string;
652
+ _scheduleQuery: string;
653
+ _survey: string;
654
+ _monitor: string;
655
+ _projects: string;
656
+ _webPersonalize: string;
657
+ _schedule: string;
658
+ _explore: string;
659
+ _builtIn: string;
660
+ _standard: string;
661
+ };
662
+ };
599
663
  }>, current?: string) => void;
600
664
  export declare const t: (id: string, ...rest: any[]) => [string, ...any[]];
601
665
  export declare const getTranslateMessage: (id: string, defaultMessage?: string, value?: Record<string, unknown>) => string;
@@ -143,5 +143,69 @@
143
143
  "extendValue": {
144
144
  "title": "Mở rộng giá trị",
145
145
  "placeholder": "Nhập hoặc dán nhiều giá trị cách nhau bằng Enter"
146
+ },
147
+ "leftMenu": {
148
+ "pageTitle": {
149
+ "recommendation": "Gợi ý",
150
+ "_dashboard": "Bảng tổng quan",
151
+ "_marketing": "",
152
+ "_content": "Nội dung",
153
+ "_templates": "Thư viện mẫu",
154
+ "_profiles": "Chân dung",
155
+ "_data": "Dữ liệu",
156
+ "_insights": "",
157
+ "_settings": "Cài đặt",
158
+ "_overview": "Trang tổng quan",
159
+ "_allChannel": "Tất cả kênh",
160
+ "_allCampaigns": "Tất cả chiến dịch",
161
+ "_orchestration": "Journey Orchestration",
162
+ "_coupons": "Phiếu giảm giá",
163
+ "_shortLinks": "Liên kết ngắn",
164
+ "_mediaTemplate": "Mẫu Phương tiện",
165
+ "_emailTemplate": "Mẫu Email",
166
+ "_journeyTactic": "Chiến lược Hành trình",
167
+ "_customers": "Khách hàng",
168
+ "_visitors": "Người dùng",
169
+ "_segments": "Phân đoạn",
170
+ "_models": "Mô hình",
171
+ "_dataSchema": "",
172
+ "_dataflows": "",
173
+ "_histories": "",
174
+ "_analysis": "",
175
+ "_report": "Báo cáo",
176
+ "_dataSources": "Nguồn dữ liệu",
177
+ "_gallery": "Thư viện",
178
+ "_accounts": "Tài khoản",
179
+ "_roles": "Vai trò",
180
+ "_dataProtect": "Bảo vệ dữ liệu",
181
+ "_general": "Cài đặt chung",
182
+ "_accountSharing": "Chia sẻ tài khoản",
183
+ "_ticket": "Phiếu sự vụ",
184
+ "_channelIntegration": "Tích hợp đa kênh",
185
+ "_diagrams": "Mô hình dữ liệu",
186
+ "_eventSources": "Nguồn sự kiện",
187
+ "_events": "Sự kiện",
188
+ "_dataObjects": "Đối tượng dữ liệu",
189
+ "_conversion": "Chuyển đổi",
190
+ "_dataViews": "Góc nhìn Dữ liệu",
191
+ "_eventAttributes": "Thuộc tính Sự kiện",
192
+ "_analyticModels": "Mô hình Phân tích",
193
+ "_batchStream": "Luồng dữ liệu theo lô",
194
+ "_realtimeStream": "Luồng dữ liệu thời gian thực",
195
+ "_sources": "Nguồn dữ liệu",
196
+ "_destinations": "Đích dữ liệu",
197
+ "_upload": "Lịch Sử Tải Lên",
198
+ "_export": "Lịch Sử Tải Xuống",
199
+ "_sqlWorkspace": "Môi trường SQL",
200
+ "_scheduleQuery": "Lập Lịch truy vấn",
201
+ "_survey": "Khảo sát",
202
+ "_monitor": "Bảng giám sát",
203
+ "_projects": "Dự án",
204
+ "_webPersonalize": "Web Personalize",
205
+ "_schedule": "Lịch tính toán",
206
+ "_explore": "",
207
+ "_builtIn": "Mẫu",
208
+ "_standard": "Tiêu chuẩn"
209
+ }
146
210
  }
147
211
  }
@@ -20,6 +20,7 @@ export type TFeatureMenu = {
20
20
  total_row: number;
21
21
  ctime: string | null;
22
22
  utime: string | null;
23
+ page_title?: string;
23
24
  logo_url?: string;
24
25
  children?: TFeatureMenu[];
25
26
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antscorp/antsomi-ui",
3
- "version": "1.3.5-beta.488",
3
+ "version": "1.3.5-beta.489",
4
4
  "description": "An enterprise-class UI design language and React UI library.",
5
5
  "sideEffects": [
6
6
  "dist/*",