@pushwoosh/smart-components-kit 1.24.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CampaignsConfigurationDrawer/CampaignsConfigurationDrawer.js +4 -4
- package/CampaignsConfigurationDrawer/components/Card/styles.d.ts +3 -2
- package/CampaignsConfigurationDrawer/components/Card/styles.js +2 -2
- package/DynamicContentPicker/DynamicContentPicker.js +1 -1
- package/ExportCSV/ExportCsvBanner/ExportCsvBanner.js +1 -1
- package/LanguagesSelector/LanguagesSelectForm.d.ts +1 -5
- package/LanguagesSelector/LanguagesSelectForm.js +57 -48
- package/LanguagesSelector/polyglot/messages_ar.js +3 -2
- package/LanguagesSelector/polyglot/messages_bn.js +3 -2
- package/LanguagesSelector/polyglot/messages_de.js +3 -2
- package/LanguagesSelector/polyglot/messages_en.js +3 -2
- package/LanguagesSelector/polyglot/messages_es.js +3 -2
- package/LanguagesSelector/polyglot/messages_fr.js +3 -2
- package/LanguagesSelector/polyglot/messages_he.js +3 -2
- package/LanguagesSelector/polyglot/messages_hi.js +3 -2
- package/LanguagesSelector/polyglot/messages_ja.js +3 -2
- package/LanguagesSelector/polyglot/messages_ko.js +3 -2
- package/LanguagesSelector/polyglot/messages_pt.js +3 -2
- package/LanguagesSelector/polyglot/messages_ru.js +3 -2
- package/LanguagesSelector/polyglot/messages_th.js +3 -2
- package/LanguagesSelector/polyglot/messages_zh.js +3 -2
- package/LanguagesSelector/polyglot/types.d.ts +7 -2
- package/LanguagesSelector/styles.d.ts +3 -0
- package/LanguagesSelector/styles.js +5 -1
- package/LanguagesSelector/utils.d.ts +10 -0
- package/LanguagesSelector/utils.js +10 -0
- package/ModalCloningJourney/ModalCloningJourney.js +3 -3
- package/OpenActions/components/OpenActionsSummary/OpenActionsSummary.js +1 -1
- package/PlatformsConfigurationDrawer/components/DesktopPage/DesktopPage.js +6 -6
- package/PlatformsConfigurationDrawer/components/MainPage/MainPage.js +10 -10
- package/PlatformsConfigurationDrawer/components/MobilePage/MobilePage.js +8 -8
- package/ProductUpdates/ProductUpdateCard.js +1 -1
- package/Table/styles.js +1 -1
- package/package.json +5 -5
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Drawer, DrawerBody, DrawerHeader } from '@pushwoosh/dumb-components';
|
|
2
|
+
import { Drawer, DrawerBody, DrawerHeader, DrawerTitle } from '@pushwoosh/dumb-components';
|
|
3
3
|
import { Columns, Horizontal, Vertical } from '@pushwoosh/kit-helpers';
|
|
4
4
|
import { CloseIcon, EmailIcon, MobileIcon, PushIcon, SmsIcon, WhatsappIcon } from '@pushwoosh/kit-icons';
|
|
5
|
-
import {
|
|
5
|
+
import { H2 } from '@pushwoosh/kit-typography';
|
|
6
6
|
import { Card } from './components/Card';
|
|
7
7
|
import { useCanSendMessages } from './hooks';
|
|
8
8
|
import { useLang } from './polyglot';
|
|
@@ -29,7 +29,7 @@ export function CampaignsConfigurationDrawer(props) {
|
|
|
29
29
|
"$justifyContent": "space-between",
|
|
30
30
|
"$alignItems": "center",
|
|
31
31
|
"$margin": "0 0 4px",
|
|
32
|
-
children: [_jsx(
|
|
32
|
+
children: [_jsx(DrawerTitle, {
|
|
33
33
|
children: lang({
|
|
34
34
|
message: 'SMART.CAMPAIGNS_CONFIGURATION_DRAWER.HEADING'
|
|
35
35
|
})
|
|
@@ -66,7 +66,7 @@ export function CampaignsConfigurationDrawer(props) {
|
|
|
66
66
|
})]
|
|
67
67
|
}), _jsxs(Vertical, {
|
|
68
68
|
"$gap": "8px",
|
|
69
|
-
children: [_jsx(
|
|
69
|
+
children: [_jsx(H2, {
|
|
70
70
|
children: lang({
|
|
71
71
|
message: 'SMART.CAMPAIGNS_CONFIGURATION_DRAWER.ADVANCED_HEADING'
|
|
72
72
|
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { H3 } from '@pushwoosh/kit-typography';
|
|
2
2
|
export declare const Container: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "style"> & {
|
|
3
3
|
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
4
4
|
}> & string;
|
|
@@ -8,6 +8,7 @@ export declare const IconWrap: import("styled-components/dist/types").IStyledCom
|
|
|
8
8
|
export declare const Title: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & {
|
|
9
9
|
readonly boxRef?: import("react").Ref<HTMLHeadingElement>;
|
|
10
10
|
readonly children: import("react").ReactNode;
|
|
11
|
+
readonly $textTransform?: import("react").CSSProperties["textTransform"];
|
|
11
12
|
}, "style"> & {
|
|
12
13
|
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
13
|
-
}> & string & Omit<typeof
|
|
14
|
+
}> & string & Omit<typeof H3, keyof import("react").Component<any, {}, any>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import styled from 'styled-components';
|
|
2
2
|
import { Color, ShapeRadius, Shadow } from '@pushwoosh/kit-constants';
|
|
3
|
-
import {
|
|
3
|
+
import { H3 } from '@pushwoosh/kit-typography';
|
|
4
4
|
export const Container = styled.a.withConfig({
|
|
5
5
|
displayName: "Container",
|
|
6
6
|
componentId: "sc-1r8stxq-0"
|
|
@@ -9,7 +9,7 @@ export const IconWrap = styled.div.withConfig({
|
|
|
9
9
|
displayName: "IconWrap",
|
|
10
10
|
componentId: "sc-1r8stxq-1"
|
|
11
11
|
})(["padding:4px;border-radius:", ";background-color:", ";margin-bottom:8px;width:fit-content;"], ShapeRadius.CONTROL, Color.BRIGHT_LIGHT);
|
|
12
|
-
export const Title = styled(
|
|
12
|
+
export const Title = styled(H3).withConfig({
|
|
13
13
|
displayName: "Title",
|
|
14
14
|
componentId: "sc-1r8stxq-2"
|
|
15
15
|
})(["margin-bottom:2px;color:", ";"], Color.MAIN);
|
|
@@ -131,7 +131,7 @@ export const ExportCsvBanner = ({
|
|
|
131
131
|
percentValue: progress,
|
|
132
132
|
rightSlot: _jsx(Text, {
|
|
133
133
|
"$color": Color.WARNING,
|
|
134
|
-
"$variant": "
|
|
134
|
+
"$variant": "h4",
|
|
135
135
|
"$textTransform": "uppercase",
|
|
136
136
|
children: lang({
|
|
137
137
|
message: 'SMART.EXPORT_CSV.KEEP_PAGE_OPEN'
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { type FC } from 'react';
|
|
2
2
|
import { type LanguageAudience } from './platforms';
|
|
3
|
-
type LanguageItem
|
|
4
|
-
code: string;
|
|
5
|
-
name: string;
|
|
6
|
-
subscribers: number;
|
|
7
|
-
};
|
|
3
|
+
import { type LanguageItem } from './utils';
|
|
8
4
|
type LanguagesSelectProps = {
|
|
9
5
|
allLanguageItems: LanguageItem[];
|
|
10
6
|
langs: string[];
|
|
@@ -5,8 +5,9 @@ import { Color } from '@pushwoosh/kit-constants';
|
|
|
5
5
|
import { Columns, Horizontal, Vertical } from '@pushwoosh/kit-helpers';
|
|
6
6
|
import { Text } from '@pushwoosh/kit-typography';
|
|
7
7
|
import { useLang } from './polyglot';
|
|
8
|
-
import { ActionButton } from './styles';
|
|
9
|
-
import { fetchLastSelection, useGetLangName } from './utils';
|
|
8
|
+
import { ActionButton, HiddenMatchesHint } from './styles';
|
|
9
|
+
import { fetchLastSelection, splitLanguageMatches, useGetLangName } from './utils';
|
|
10
|
+
const HIDDEN_MATCHES_PREVIEW = 5;
|
|
10
11
|
const AUDIENCE_HINT_MESSAGE = {
|
|
11
12
|
email: 'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL',
|
|
12
13
|
sms: 'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS',
|
|
@@ -27,16 +28,11 @@ export const LanguagesSelectForm = ({
|
|
|
27
28
|
const getLangName = useGetLangName(systemLanguage);
|
|
28
29
|
const [lastSelection] = useState(fetchLastSelection);
|
|
29
30
|
const [search, setSearch] = useState('');
|
|
30
|
-
const [
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
return languageItems.filter(item => {
|
|
37
|
-
return item.name.toLowerCase().includes(search.toLowerCase());
|
|
38
|
-
});
|
|
39
|
-
}, [allLanguageItems, search, showAllLanguages, langs]);
|
|
31
|
+
const [includeWithoutDevices, setIncludeWithoutDevices] = useState(false);
|
|
32
|
+
const {
|
|
33
|
+
visible: filteredLanguages,
|
|
34
|
+
hidden: hiddenMatches
|
|
35
|
+
} = useMemo(() => splitLanguageMatches(allLanguageItems, langs, search, includeWithoutDevices), [allLanguageItems, langs, search, includeWithoutDevices]);
|
|
40
36
|
return _jsxs(Vertical, {
|
|
41
37
|
"$gap": 8,
|
|
42
38
|
children: [_jsx(Text, {
|
|
@@ -54,6 +50,7 @@ export const LanguagesSelectForm = ({
|
|
|
54
50
|
})
|
|
55
51
|
}), _jsxs(Horizontal, {
|
|
56
52
|
"$justifyContent": "space-between",
|
|
53
|
+
"$alignItems": "center",
|
|
57
54
|
children: [_jsxs(Horizontal, {
|
|
58
55
|
"$gap": 16,
|
|
59
56
|
"$justifyContent": "start",
|
|
@@ -71,47 +68,59 @@ export const LanguagesSelectForm = ({
|
|
|
71
68
|
children: lang({
|
|
72
69
|
message: 'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL'
|
|
73
70
|
})
|
|
71
|
+
}), lastSelection.length > 0 && _jsx(ActionButton, {
|
|
72
|
+
onClick: () => {
|
|
73
|
+
onChange(lastSelection);
|
|
74
|
+
},
|
|
75
|
+
children: lang({
|
|
76
|
+
message: 'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST'
|
|
77
|
+
})
|
|
74
78
|
})]
|
|
75
|
-
}),
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
message: 'SMART.LANGUAGES_SELECTOR.
|
|
79
|
+
}), _jsx(Checkbox, {
|
|
80
|
+
name: "includeWithoutDevices",
|
|
81
|
+
isChecked: includeWithoutDevices,
|
|
82
|
+
onChange: setIncludeWithoutDevices,
|
|
83
|
+
label: lang({
|
|
84
|
+
message: 'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES'
|
|
81
85
|
})
|
|
82
86
|
})]
|
|
83
|
-
}), _jsxs(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
"$
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
},
|
|
99
|
-
label: lang({
|
|
100
|
-
message: 'SMART.LANGUAGES_SELECTOR.CHECKBOX_LABEL',
|
|
101
|
-
name: getLangName(item.code),
|
|
102
|
-
subscribers: item.subscribers
|
|
103
|
-
})
|
|
104
|
-
}, item.code))
|
|
105
|
-
}), _jsx("div", {
|
|
106
|
-
children: _jsx(ActionButton, {
|
|
107
|
-
onClick: () => setShowAllLanguages(x => !x),
|
|
108
|
-
children: showAllLanguages ? lang({
|
|
109
|
-
message: 'SMART.LANGUAGES_SELECTOR.ACTION.SHOW_WITH_SUBSCRIBERS'
|
|
110
|
-
}) : lang({
|
|
111
|
-
message: 'SMART.LANGUAGES_SELECTOR.ACTION.SHOW_ALL'
|
|
112
|
-
})
|
|
87
|
+
}), hiddenMatches.length > 0 && _jsxs(HiddenMatchesHint, {
|
|
88
|
+
children: [_jsxs(Text, {
|
|
89
|
+
"$variant": "footnote",
|
|
90
|
+
"$color": Color.MAIN,
|
|
91
|
+
children: [filteredLanguages.length === 0 && `${lang({
|
|
92
|
+
message: 'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES',
|
|
93
|
+
search: search.trim()
|
|
94
|
+
})} `, lang({
|
|
95
|
+
message: 'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST',
|
|
96
|
+
names: hiddenMatches.slice(0, HIDDEN_MATCHES_PREVIEW).map(item => item.name).join(', ') + (hiddenMatches.length > HIDDEN_MATCHES_PREVIEW ? ', …' : '')
|
|
97
|
+
})]
|
|
98
|
+
}), _jsx(ActionButton, {
|
|
99
|
+
onClick: () => setIncludeWithoutDevices(true),
|
|
100
|
+
children: lang({
|
|
101
|
+
message: 'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES'
|
|
113
102
|
})
|
|
114
103
|
})]
|
|
104
|
+
}), _jsx(Columns, {
|
|
105
|
+
"$sizes": 3,
|
|
106
|
+
"$gap": 8,
|
|
107
|
+
children: filteredLanguages.map(item => _jsx(Checkbox, {
|
|
108
|
+
name: "languages",
|
|
109
|
+
value: item.code,
|
|
110
|
+
isChecked: langs.includes(item.code),
|
|
111
|
+
onChange: isChecked => {
|
|
112
|
+
if (isChecked) {
|
|
113
|
+
onChange([...langs, item.code]);
|
|
114
|
+
} else {
|
|
115
|
+
onChange(langs.filter(code => code !== item.code));
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
label: lang({
|
|
119
|
+
message: 'SMART.LANGUAGES_SELECTOR.CHECKBOX_LABEL',
|
|
120
|
+
name: getLangName(item.code),
|
|
121
|
+
subscribers: item.subscribers
|
|
122
|
+
})
|
|
123
|
+
}, item.code))
|
|
115
124
|
})]
|
|
116
125
|
});
|
|
117
126
|
};
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'تحديد الكل',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'إلغاء تحديد الكل',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'إعادة استخدام التحديد الأخير',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'تضمين اللغات التي لا توجد بها أجهزة',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'لا توجد لغات بها أجهزة تطابق "{{search}}".',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'لغات بلا أجهزة تطابق البحث: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'تمثل الأرقام جهات اتصال البريد الإلكتروني التي يحتوي وسم Language لديها على هذه القيمة.',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'تمثل الأرقام جهات اتصال SMS التي يحتوي وسم Language لديها على هذه القيمة.',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'تمثل الأرقام جهات اتصال LINE التي يحتوي وسم Language لديها على هذه القيمة.',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'সব নির্বাচন',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'সব অনির্বাচন',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'শেষ নির্বাচন পুনরায় ব্যবহার',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'ডিভাইস নেই এমন ভাষাগুলিও দেখান',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'ডিভাইস আছে এমন কোনো ভাষা “{{search}}”-এর সাথে মেলে না।',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'মিলে যাওয়া ডিভাইসবিহীন ভাষা: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'সংখ্যাগুলো হলো সেই ইমেল কন্টাক্ট, যাদের Language Tag-এ এই মান রয়েছে।',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'সংখ্যাগুলো হলো সেই SMS কন্টাক্ট, যাদের Language Tag-এ এই মান রয়েছে।',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'সংখ্যাগুলো হলো সেই LINE কন্টাক্ট, যাদের Language Tag-এ এই মান রয়েছে।',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'alle auswählen',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'alle abwählen',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'letzte Auswahl übernehmen',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'Sprachen ohne Geräte einbeziehen',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'Keine Sprachen mit Geräten passen zu „{{search}}“.',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'Passende Sprachen ohne Geräte: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'Zahlen sind E-Mail-Kontakte, deren Language-Tag diesen Wert hat.',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'Zahlen sind SMS-Kontakte, deren Language-Tag diesen Wert hat.',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'Zahlen sind LINE-Kontakte, deren Language-Tag diesen Wert hat.',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'select all',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'deselect all',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'reuse last selection',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'Include languages without devices',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'No languages with devices match “{{search}}”.',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'Languages without devices that match: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'Numbers are email contacts whose Language tag holds this value.',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'Numbers are SMS contacts whose Language tag holds this value.',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'Numbers are LINE contacts whose Language tag holds this value.',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'seleccionar todo',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'deseleccionar todo',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'reutilizar la última selección',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'Incluir idiomas sin dispositivos',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'Ningún idioma con dispositivos coincide con «{{search}}».',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'Idiomas sin dispositivos que coinciden: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'Los números son contactos de correo electrónico cuya etiqueta Language tiene este valor.',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'Los números son contactos de SMS cuya etiqueta Language tiene este valor.',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'Los números son contactos de LINE cuya etiqueta Language tiene este valor.',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'tout sélectionner',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'tout désélectionner',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'réutiliser la dernière sélection',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'Inclure les langues sans appareils',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'Aucune langue avec des appareils ne correspond à « {{search}} ».',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'Langues sans appareils correspondantes : {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'Les nombres correspondent aux contacts e-mail dont le tag Language a cette valeur.',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'Les nombres correspondent aux contacts SMS dont le tag Language a cette valeur.',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'Les nombres correspondent aux contacts LINE dont le tag Language a cette valeur.',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'בחר הכול',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'בטל בחירת הכול',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'השתמש בבחירה האחרונה',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'לכלול שפות ללא מכשירים',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'אין שפות עם מכשירים שתואמות ל-"{{search}}".',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'שפות ללא מכשירים שתואמות: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'המספרים הם אנשי קשר באימייל שתגית Language שלהם מכילה ערך זה.',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'המספרים הם אנשי קשר ב-SMS שתגית Language שלהם מכילה ערך זה.',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'המספרים הם אנשי קשר ב-LINE שתגית Language שלהם מכילה ערך זה.',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'सभी चुनें',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'सभी अचयनित करें',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'पिछला चयन दोबारा उपयोग करें',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'बिना डिवाइस वाली भाषाएँ भी शामिल करें',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'डिवाइस वाली कोई भाषा “{{search}}” से मेल नहीं खाती।',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'मेल खाने वाली बिना डिवाइस की भाषाएँ: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'संख्याएँ उन ईमेल संपर्कों की हैं जिनके Language Tag में यह मान है।',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'संख्याएँ उन SMS संपर्कों की हैं जिनके Language Tag में यह मान है।',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'संख्याएँ उन LINE संपर्कों की हैं जिनके Language Tag में यह मान है।',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'すべて選択',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'すべて解除',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': '前回の選択を再利用',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'デバイスのない言語も含める',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': '「{{search}}」に一致するデバイスのある言語はありません。',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': '一致するデバイスのない言語: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': '数値は、Language タグがこの値のメール連絡先の数です。',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': '数値は、Language タグがこの値のSMS 連絡先の数です。',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': '数値は、Language タグがこの値のLINE 連絡先の数です。',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': '모두 선택',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': '모두 선택 해제',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': '마지막 선택 재사용',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': '기기가 없는 언어 포함',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': '“{{search}}”와(과) 일치하는 기기 보유 언어가 없습니다.',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': '일치하는 기기 없는 언어: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': '숫자는 Language Tag 값이 이 값인 이메일 연락처 수입니다.',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': '숫자는 Language Tag 값이 이 값인 SMS 연락처 수입니다.',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': '숫자는 Language Tag 값이 이 값인 LINE 연락처 수입니다.',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'selecionar tudo',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'desmarcar tudo',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'reutilizar a última seleção',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'Incluir idiomas sem dispositivos',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'Nenhum idioma com dispositivos corresponde a “{{search}}”.',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'Idiomas sem dispositivos correspondentes: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'Os números são contatos de e-mail cuja tag Language tem este valor.',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'Os números são contatos de SMS cuja tag Language tem este valor.',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'Os números são contatos do LINE cuja tag Language tem este valor.',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'выбрать все',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'снять все',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'повторить прошлый выбор',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'Включить языки без устройств',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'Среди языков с устройствами нет совпадений с «{{search}}».',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'Совпадают языки без устройств: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'Числа — email-контакты, у которых тег Language равен этому значению.',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'Числа — SMS-контакты, у которых тег Language равен этому значению.',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'Числа — контакты LINE, у которых тег Language равен этому значению.',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': 'เลือกทั้งหมด',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': 'ยกเลิกการเลือกทั้งหมด',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': 'ใช้การเลือกล่าสุดอีกครั้ง',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': 'รวมภาษาที่ไม่มีอุปกรณ์',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': 'ไม่มีภาษาที่มีอุปกรณ์ตรงกับ “{{search}}”',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': 'ภาษาที่ไม่มีอุปกรณ์ซึ่งตรงกัน: {{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': 'ตัวเลขคือจำนวนผู้ติดต่ออีเมล ที่ Tag Language มีค่านี้',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': 'ตัวเลขคือจำนวนผู้ติดต่อ SMS ที่ Tag Language มีค่านี้',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': 'ตัวเลขคือจำนวนผู้ติดต่อ LINE ที่ Tag Language มีค่านี้',
|
|
@@ -6,8 +6,9 @@ export const messages = {
|
|
|
6
6
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': '全选',
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': '取消全选',
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': '沿用上次选择',
|
|
9
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
9
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': '包含没有设备的语言',
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': '没有含设备的语言与“{{search}}”匹配。',
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': '匹配的无设备语言:{{names}}',
|
|
11
12
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': '数字表示 Language 标签为此值的电子邮件联系人。',
|
|
12
13
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': '数字表示 Language 标签为此值的SMS 联系人。',
|
|
13
14
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': '数字表示 Language 标签为此值的LINE 联系人。',
|
|
@@ -7,8 +7,13 @@ export type LanguagesSelectorMessages = {
|
|
|
7
7
|
'SMART.LANGUAGES_SELECTOR.ACTION.SELECT_ALL': NoParams;
|
|
8
8
|
'SMART.LANGUAGES_SELECTOR.ACTION.DESELECT_ALL': NoParams;
|
|
9
9
|
'SMART.LANGUAGES_SELECTOR.ACTION.REUSE_LAST': NoParams;
|
|
10
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
11
|
-
'SMART.LANGUAGES_SELECTOR.
|
|
10
|
+
'SMART.LANGUAGES_SELECTOR.INCLUDE_WITHOUT_DEVICES': NoParams;
|
|
11
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.NONE_WITH_DEVICES': {
|
|
12
|
+
search: string;
|
|
13
|
+
};
|
|
14
|
+
'SMART.LANGUAGES_SELECTOR.HIDDEN_MATCHES.LIST': {
|
|
15
|
+
names: string;
|
|
16
|
+
};
|
|
12
17
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.EMAIL': NoParams;
|
|
13
18
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.SMS': NoParams;
|
|
14
19
|
'SMART.LANGUAGES_SELECTOR.AUDIENCE_HINT.LINE': NoParams;
|
|
@@ -47,3 +47,6 @@ export declare const ButtonGroup: import("styled-components/dist/types").IStyled
|
|
|
47
47
|
export declare const ActionButton: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "style"> & {
|
|
48
48
|
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
49
49
|
}> & string;
|
|
50
|
+
export declare const HiddenMatchesHint: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
51
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
52
|
+
}> & string;
|
|
@@ -8,4 +8,8 @@ export const ButtonGroup = styled(Horizontal).withConfig({
|
|
|
8
8
|
export const ActionButton = styled.button.withConfig({
|
|
9
9
|
displayName: "ActionButton",
|
|
10
10
|
componentId: "sc-1damw8z-1"
|
|
11
|
-
})(["display:grid;grid-auto-flow:column;align-items:center;gap:4px;text-transform:uppercase;color:", ";background-color:transparent;height:16px;padding:0;border:none;font-size:12px;font-style:normal;font-weight:500;line-height:16px;transition:box-shadow 0.5s;cursor:pointer;&:hover{color:", ";}&:active{box-shadow:inset 0 0 0 2em ", ";}"], Color.SOFT, Color.SOFT_HOVER, Color.SOFT_LIGHT);
|
|
11
|
+
})(["display:grid;grid-auto-flow:column;align-items:center;gap:4px;text-transform:uppercase;color:", ";background-color:transparent;height:16px;padding:0;border:none;font-size:12px;font-style:normal;font-weight:500;line-height:16px;transition:box-shadow 0.5s;cursor:pointer;&:hover{color:", ";}&:active{box-shadow:inset 0 0 0 2em ", ";}"], Color.SOFT, Color.SOFT_HOVER, Color.SOFT_LIGHT);
|
|
12
|
+
export const HiddenMatchesHint = styled.div.withConfig({
|
|
13
|
+
displayName: "HiddenMatchesHint",
|
|
14
|
+
componentId: "sc-1damw8z-2"
|
|
15
|
+
})(["display:grid;justify-items:start;gap:8px;padding:12px;border-radius:4px;background-color:", ";"], Color.FROZEN);
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
export type LanguageItem = {
|
|
2
|
+
code: string;
|
|
3
|
+
name: string;
|
|
4
|
+
subscribers: number;
|
|
5
|
+
};
|
|
6
|
+
/** Splits languages into the visible list and the search matches hidden only because they have no devices. */
|
|
7
|
+
export declare function splitLanguageMatches(items: LanguageItem[], selected: string[], search: string, includeWithoutDevices: boolean): {
|
|
8
|
+
visible: LanguageItem[];
|
|
9
|
+
hidden: LanguageItem[];
|
|
10
|
+
};
|
|
1
11
|
/**
|
|
2
12
|
* Normalizes a language code to its canonical form (e.g. `zh-hant` -> `zh-Hant`).
|
|
3
13
|
* Canonicalization (rather than lowercasing) keeps codes in the same form that
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { useState } from 'react';
|
|
2
2
|
import { languages } from '@pushwoosh/kit-constants';
|
|
3
3
|
import { LAST_SELECTION_KEY } from './constants';
|
|
4
|
+
/** Splits languages into the visible list and the search matches hidden only because they have no devices. */
|
|
5
|
+
export function splitLanguageMatches(items, selected, search, includeWithoutDevices) {
|
|
6
|
+
const query = search.trim().toLowerCase();
|
|
7
|
+
const matches = item => !query || item.name.toLowerCase().includes(query) || item.code.toLowerCase() === query;
|
|
8
|
+
const shown = item => includeWithoutDevices || item.subscribers > 0 || selected.includes(item.code);
|
|
9
|
+
return {
|
|
10
|
+
visible: items.filter(item => shown(item) && matches(item)),
|
|
11
|
+
hidden: query ? items.filter(item => !shown(item) && matches(item)) : []
|
|
12
|
+
};
|
|
13
|
+
}
|
|
4
14
|
/**
|
|
5
15
|
* Normalizes a language code to its canonical form (e.g. `zh-hant` -> `zh-Hant`).
|
|
6
16
|
* Canonicalization (rather than lowercasing) keeps codes in the same form that
|
|
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
3
|
import { useForm, useWatch } from 'react-hook-form';
|
|
4
4
|
import { useParams } from 'react-router-dom';
|
|
5
|
-
import { FieldBox, Modal, ModalBody, ModalHeader, ModalFooter, NativeInput, Select, Button, Banner } from '@pushwoosh/dumb-components';
|
|
5
|
+
import { FieldBox, Modal, ModalBody, ModalHeader, ModalTitle, ModalFooter, NativeInput, Select, Button, Banner } from '@pushwoosh/dumb-components';
|
|
6
6
|
import { Horizontal, trackEvent, useAsync, Vertical } from '@pushwoosh/kit-helpers';
|
|
7
|
-
import {
|
|
7
|
+
import { Paragraph } from '@pushwoosh/kit-typography';
|
|
8
8
|
import { useSPAContext } from '@pushwoosh/spa-context';
|
|
9
9
|
import { useLang } from './polyglot';
|
|
10
10
|
export function ModalCloningJourney({
|
|
@@ -188,7 +188,7 @@ export function ModalCloningJourney({
|
|
|
188
188
|
size: "medium",
|
|
189
189
|
isOpen: isOpen,
|
|
190
190
|
children: [_jsx(ModalHeader, {
|
|
191
|
-
children: _jsx(
|
|
191
|
+
children: _jsx(ModalTitle, {
|
|
192
192
|
children: lang({
|
|
193
193
|
message: 'SMART.MODAL_CLONING_JOURNEY.HEADING'
|
|
194
194
|
})
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from '@pushwoosh/dumb-components';
|
|
2
|
+
import { Button, DrawerTitle } from '@pushwoosh/dumb-components';
|
|
3
3
|
import { Color, AllPlatforms } from '@pushwoosh/kit-constants';
|
|
4
4
|
import { Vertical, Columns } from '@pushwoosh/kit-helpers';
|
|
5
5
|
import { ArrowRoundIcon, CloseIcon, PlatformLogoIcon } from '@pushwoosh/kit-icons';
|
|
6
|
-
import {
|
|
6
|
+
import { H3, Text } from '@pushwoosh/kit-typography';
|
|
7
7
|
import { useLang } from '../../polyglot';
|
|
8
8
|
import { ColumnsWrapper, BreadCrumbs, Header, Close, Card, CardIcon } from '../../styles';
|
|
9
9
|
export function DesktopPage(props) {
|
|
@@ -31,7 +31,7 @@ export function DesktopPage(props) {
|
|
|
31
31
|
size: "medium",
|
|
32
32
|
view: "filled"
|
|
33
33
|
})
|
|
34
|
-
}), _jsx(
|
|
34
|
+
}), _jsx(DrawerTitle, {
|
|
35
35
|
children: lang({
|
|
36
36
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.DESKTOP.HEADING'
|
|
37
37
|
})
|
|
@@ -89,7 +89,7 @@ export function DesktopPage(props) {
|
|
|
89
89
|
}), _jsxs(Vertical, {
|
|
90
90
|
"$padding": "12px 0 0",
|
|
91
91
|
"$gap": 8,
|
|
92
|
-
children: [_jsx(
|
|
92
|
+
children: [_jsx(H3, {
|
|
93
93
|
children: lang({
|
|
94
94
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.PLATFORM_QUESTION'
|
|
95
95
|
})
|
|
@@ -104,7 +104,7 @@ export function DesktopPage(props) {
|
|
|
104
104
|
type: "windows",
|
|
105
105
|
size: "medium"
|
|
106
106
|
})
|
|
107
|
-
}), _jsx(
|
|
107
|
+
}), _jsx(H3, {
|
|
108
108
|
children: lang({
|
|
109
109
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.WINDOWS'
|
|
110
110
|
})
|
|
@@ -117,7 +117,7 @@ export function DesktopPage(props) {
|
|
|
117
117
|
type: "macos",
|
|
118
118
|
size: "medium"
|
|
119
119
|
})
|
|
120
|
-
}), _jsx(
|
|
120
|
+
}), _jsx(H3, {
|
|
121
121
|
children: lang({
|
|
122
122
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.MACOS'
|
|
123
123
|
})
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from '@pushwoosh/dumb-components';
|
|
2
|
+
import { Button, DrawerTitle } from '@pushwoosh/dumb-components';
|
|
3
3
|
import { Color, AllPlatforms } from '@pushwoosh/kit-constants';
|
|
4
4
|
import { Vertical, Columns } from '@pushwoosh/kit-helpers';
|
|
5
5
|
import { CloseIcon, DeviceIcon, EmailIcon, WhatsappIcon, SmsIcon } from '@pushwoosh/kit-icons';
|
|
6
|
-
import {
|
|
6
|
+
import { Paragraph, H3, Text } from '@pushwoosh/kit-typography';
|
|
7
7
|
import { useLang } from '../../polyglot';
|
|
8
8
|
import { Header, Close, Card, CardIcon } from '../../styles';
|
|
9
9
|
export function MainPage(props) {
|
|
@@ -19,7 +19,7 @@ export function MainPage(props) {
|
|
|
19
19
|
children: [_jsxs(Header, {
|
|
20
20
|
children: [_jsxs(Vertical, {
|
|
21
21
|
"$gap": 4,
|
|
22
|
-
children: [_jsx(
|
|
22
|
+
children: [_jsx(DrawerTitle, {
|
|
23
23
|
children: lang({
|
|
24
24
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.MAIN.HEADING'
|
|
25
25
|
})
|
|
@@ -76,7 +76,7 @@ export function MainPage(props) {
|
|
|
76
76
|
}), _jsxs(Vertical, {
|
|
77
77
|
"$padding": "12px 0 0",
|
|
78
78
|
"$gap": 8,
|
|
79
|
-
children: [_jsx(
|
|
79
|
+
children: [_jsx(H3, {
|
|
80
80
|
children: lang({
|
|
81
81
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.MAIN.QUESTION'
|
|
82
82
|
})
|
|
@@ -92,7 +92,7 @@ export function MainPage(props) {
|
|
|
92
92
|
size: "medium",
|
|
93
93
|
view: "filled"
|
|
94
94
|
})
|
|
95
|
-
}), _jsx(
|
|
95
|
+
}), _jsx(H3, {
|
|
96
96
|
children: lang({
|
|
97
97
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.MOBILE'
|
|
98
98
|
})
|
|
@@ -106,7 +106,7 @@ export function MainPage(props) {
|
|
|
106
106
|
size: "medium",
|
|
107
107
|
view: "filled"
|
|
108
108
|
})
|
|
109
|
-
}), _jsx(
|
|
109
|
+
}), _jsx(H3, {
|
|
110
110
|
children: lang({
|
|
111
111
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.DESKTOP'
|
|
112
112
|
})
|
|
@@ -120,7 +120,7 @@ export function MainPage(props) {
|
|
|
120
120
|
size: "medium",
|
|
121
121
|
view: "filled"
|
|
122
122
|
})
|
|
123
|
-
}), _jsx(
|
|
123
|
+
}), _jsx(H3, {
|
|
124
124
|
children: lang({
|
|
125
125
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.WEBSITE'
|
|
126
126
|
})
|
|
@@ -133,7 +133,7 @@ export function MainPage(props) {
|
|
|
133
133
|
size: "medium",
|
|
134
134
|
view: "filled"
|
|
135
135
|
})
|
|
136
|
-
}), _jsx(
|
|
136
|
+
}), _jsx(H3, {
|
|
137
137
|
children: lang({
|
|
138
138
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.EMAILS'
|
|
139
139
|
})
|
|
@@ -146,7 +146,7 @@ export function MainPage(props) {
|
|
|
146
146
|
size: "medium",
|
|
147
147
|
view: "filled"
|
|
148
148
|
})
|
|
149
|
-
}), _jsx(
|
|
149
|
+
}), _jsx(H3, {
|
|
150
150
|
children: lang({
|
|
151
151
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.WHATSAPP'
|
|
152
152
|
})
|
|
@@ -160,7 +160,7 @@ export function MainPage(props) {
|
|
|
160
160
|
size: "medium",
|
|
161
161
|
view: "filled"
|
|
162
162
|
})
|
|
163
|
-
}), _jsx(
|
|
163
|
+
}), _jsx(H3, {
|
|
164
164
|
children: lang({
|
|
165
165
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.SMS'
|
|
166
166
|
})
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from '@pushwoosh/dumb-components';
|
|
2
|
+
import { Button, DrawerTitle } from '@pushwoosh/dumb-components';
|
|
3
3
|
import { Color } from '@pushwoosh/kit-constants';
|
|
4
4
|
import { Columns, Vertical } from '@pushwoosh/kit-helpers';
|
|
5
5
|
import { ArrowRoundIcon, CloseIcon, PlatformLogoIcon } from '@pushwoosh/kit-icons';
|
|
6
|
-
import {
|
|
6
|
+
import { H3, Text } from '@pushwoosh/kit-typography';
|
|
7
7
|
import { useLang } from '../../polyglot';
|
|
8
8
|
import { ColumnsWrapper, BreadCrumbs, Header, Close, Card, CardIcon } from '../../styles';
|
|
9
9
|
export function MobilePage(props) {
|
|
@@ -29,7 +29,7 @@ export function MobilePage(props) {
|
|
|
29
29
|
size: "medium",
|
|
30
30
|
view: "filled"
|
|
31
31
|
})
|
|
32
|
-
}), _jsx(
|
|
32
|
+
}), _jsx(DrawerTitle, {
|
|
33
33
|
children: lang({
|
|
34
34
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.MOBILE.HEADING'
|
|
35
35
|
})
|
|
@@ -87,7 +87,7 @@ export function MobilePage(props) {
|
|
|
87
87
|
}), _jsxs(Vertical, {
|
|
88
88
|
"$padding": "12px 0 0",
|
|
89
89
|
"$gap": 8,
|
|
90
|
-
children: [_jsx(
|
|
90
|
+
children: [_jsx(H3, {
|
|
91
91
|
children: lang({
|
|
92
92
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.PLATFORM_QUESTION'
|
|
93
93
|
})
|
|
@@ -102,7 +102,7 @@ export function MobilePage(props) {
|
|
|
102
102
|
type: "apple",
|
|
103
103
|
size: "medium"
|
|
104
104
|
})
|
|
105
|
-
}), _jsx(
|
|
105
|
+
}), _jsx(H3, {
|
|
106
106
|
children: lang({
|
|
107
107
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.IOS'
|
|
108
108
|
})
|
|
@@ -115,7 +115,7 @@ export function MobilePage(props) {
|
|
|
115
115
|
type: "android",
|
|
116
116
|
size: "medium"
|
|
117
117
|
})
|
|
118
|
-
}), _jsx(
|
|
118
|
+
}), _jsx(H3, {
|
|
119
119
|
children: lang({
|
|
120
120
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.ANDROID'
|
|
121
121
|
})
|
|
@@ -128,7 +128,7 @@ export function MobilePage(props) {
|
|
|
128
128
|
type: "huawei",
|
|
129
129
|
size: "medium"
|
|
130
130
|
})
|
|
131
|
-
}), _jsx(
|
|
131
|
+
}), _jsx(H3, {
|
|
132
132
|
children: lang({
|
|
133
133
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.HUAWEI'
|
|
134
134
|
})
|
|
@@ -141,7 +141,7 @@ export function MobilePage(props) {
|
|
|
141
141
|
type: "amazon",
|
|
142
142
|
size: "medium"
|
|
143
143
|
})
|
|
144
|
-
}), _jsx(
|
|
144
|
+
}), _jsx(H3, {
|
|
145
145
|
children: lang({
|
|
146
146
|
message: 'SMART.PLATFORMS_CONFIGURATION_DRAWER.CARD.AMAZON'
|
|
147
147
|
})
|
package/Table/styles.js
CHANGED
|
@@ -36,7 +36,7 @@ export const Tr = styled(Horizontal).attrs({
|
|
|
36
36
|
export const Th = styled(Td).withConfig({
|
|
37
37
|
displayName: "Th",
|
|
38
38
|
componentId: "sc-1vdjaze-4"
|
|
39
|
-
})(["padding:8px 12px;color:", ";font-weight:", ";font-size:", ";line-height:", ";text-transform:uppercase;"], Color.LOCKED, FontWeight.MEDIUM, FontSize.
|
|
39
|
+
})(["padding:8px 12px;color:", ";font-weight:", ";font-size:", ";line-height:", ";text-transform:uppercase;"], Color.LOCKED, FontWeight.MEDIUM, FontSize.HEADING4, LineHeight.HEADING4);
|
|
40
40
|
export const ItemName = styled.div.withConfig({
|
|
41
41
|
displayName: "ItemName",
|
|
42
42
|
componentId: "sc-1vdjaze-5"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pushwoosh/smart-components-kit",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Stateful, data-connected React components shared by Pushwoosh micro-frontends",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,17 +17,17 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@floating-ui/react-dom": "^2.1.2",
|
|
20
|
-
"@pushwoosh/dumb-components": "^
|
|
21
|
-
"@pushwoosh/kit-constants": "^
|
|
20
|
+
"@pushwoosh/dumb-components": "^4.0.0",
|
|
21
|
+
"@pushwoosh/kit-constants": "^3.0.0",
|
|
22
22
|
"@pushwoosh/kit-helpers": "^4.16.0",
|
|
23
23
|
"@pushwoosh/kit-icons": "^2.3.10",
|
|
24
|
-
"@pushwoosh/kit-typography": "^
|
|
24
|
+
"@pushwoosh/kit-typography": "^2.0.0",
|
|
25
25
|
"@pushwoosh/rpc-v2-http-api-data": "^0.2.409",
|
|
26
26
|
"jwt-decode": "^4.0.0",
|
|
27
27
|
"react-hook-form": "^7.68.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@pushwoosh/frontend-builder-engine": "^
|
|
30
|
+
"@pushwoosh/frontend-builder-engine": "^4.0.0",
|
|
31
31
|
"@pushwoosh/spa-context": "^3.3.0",
|
|
32
32
|
"@svgr/webpack": "^8.1.0",
|
|
33
33
|
"@types/node": "^24.19.1",
|