@axelor/aos-mobile-message 9.0.10 → 9.0.12
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/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +1 -0
- package/lib/api/index.js.map +1 -1
- package/lib/api/meta-fields-api.d.ts +5 -0
- package/lib/api/meta-fields-api.js +44 -0
- package/lib/api/meta-fields-api.js.map +1 -0
- package/lib/components/atoms/AuthorText/AuthorText.js +4 -2
- package/lib/components/atoms/AuthorText/AuthorText.js.map +1 -1
- package/lib/components/molecules/NotificationCard/NotificationCard.js +13 -2
- package/lib/components/molecules/NotificationCard/NotificationCard.js.map +1 -1
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +1 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/use-track-field-titles.d.ts +2 -0
- package/lib/hooks/use-track-field-titles.js +39 -0
- package/lib/hooks/use-track-field-titles.js.map +1 -0
- package/lib/i18n/en.json +4 -0
- package/lib/i18n/fr.json +4 -0
- package/lib/types/mail-message-notification-type.js +1 -1
- package/lib/types/mail-message-notification-type.js.map +1 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/mail-message-translation.d.ts +2 -0
- package/lib/utils/mail-message-translation.js +32 -0
- package/lib/utils/mail-message-translation.js.map +1 -0
- package/package.json +9 -9
package/lib/api/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
1
|
export { countUnreadMessages as countUnreadMessagesApi, fetchInboxMessages as fetchInboxMessagesApi, fetchMailMessages as fetchMailMessagesApi, fetchModelSubscribers as fetchModelSubscribersApi, fetchReplies as fetchRepliesApi, getAllUnreadFlagsOfMailMessage as getAllUnreadFlagsOfMailMessageApi, modifyMailMessagesFlags as modifyMailMessagesFlagsApi, postMailMessageComment as postMailMessageCommentApi, readAllMailMessages as readAllMailMessagesApi, subscribeRequest as subscribeRequestApi, unsubscribeRequest as unsubscribeRequestApi, } from './mail-message-api';
|
|
2
|
+
export { fetchModelFieldsMeta, type FieldMeta } from './meta-fields-api';
|
package/lib/api/index.js
CHANGED
|
@@ -16,4 +16,5 @@
|
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
export { countUnreadMessages as countUnreadMessagesApi, fetchInboxMessages as fetchInboxMessagesApi, fetchMailMessages as fetchMailMessagesApi, fetchModelSubscribers as fetchModelSubscribersApi, fetchReplies as fetchRepliesApi, getAllUnreadFlagsOfMailMessage as getAllUnreadFlagsOfMailMessageApi, modifyMailMessagesFlags as modifyMailMessagesFlagsApi, postMailMessageComment as postMailMessageCommentApi, readAllMailMessages as readAllMailMessagesApi, subscribeRequest as subscribeRequestApi, unsubscribeRequest as unsubscribeRequestApi, } from './mail-message-api';
|
|
19
|
+
export { fetchModelFieldsMeta } from './meta-fields-api';
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/lib/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,mBAAmB,IAAI,sBAAsB,EAC7C,kBAAkB,IAAI,qBAAqB,EAC3C,iBAAiB,IAAI,oBAAoB,EACzC,qBAAqB,IAAI,wBAAwB,EACjD,YAAY,IAAI,eAAe,EAC/B,8BAA8B,IAAI,iCAAiC,EACnE,uBAAuB,IAAI,0BAA0B,EACrD,sBAAsB,IAAI,yBAAyB,EACnD,mBAAmB,IAAI,sBAAsB,EAC7C,gBAAgB,IAAI,mBAAmB,EACvC,kBAAkB,IAAI,qBAAqB,GAC5C,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,mBAAmB,IAAI,sBAAsB,EAC7C,kBAAkB,IAAI,qBAAqB,EAC3C,iBAAiB,IAAI,oBAAoB,EACzC,qBAAqB,IAAI,wBAAwB,EACjD,YAAY,IAAI,eAAe,EAC/B,8BAA8B,IAAI,iCAAiC,EACnE,uBAAuB,IAAI,0BAA0B,EACrD,sBAAsB,IAAI,yBAAyB,EACnD,mBAAmB,IAAI,sBAAsB,EAC7C,gBAAgB,IAAI,mBAAmB,EACvC,kBAAkB,IAAI,qBAAqB,GAC5C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,oBAAoB,EAAiB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { axiosApiProvider } from '@axelor/aos-mobile-core';
|
|
19
|
+
const cache = new Map();
|
|
20
|
+
export function fetchModelFieldsMeta(modelName) {
|
|
21
|
+
if (cache.has(modelName)) {
|
|
22
|
+
return cache.get(modelName);
|
|
23
|
+
}
|
|
24
|
+
const request = axiosApiProvider
|
|
25
|
+
.get({ url: `ws/meta/fields/${modelName}` })
|
|
26
|
+
.then(res => {
|
|
27
|
+
const fields = res?.data?.data?.fields ?? [];
|
|
28
|
+
return Object.fromEntries(fields
|
|
29
|
+
.filter(f => f.name && f.title)
|
|
30
|
+
.map(f => {
|
|
31
|
+
const meta = { title: f.title };
|
|
32
|
+
if (Array.isArray(f.selectionList) && f.selectionList.length > 0) {
|
|
33
|
+
meta.selectionTitles = Object.fromEntries(f.selectionList
|
|
34
|
+
.filter(s => s.value != null && s.title)
|
|
35
|
+
.map(s => [String(s.value), s.title]));
|
|
36
|
+
}
|
|
37
|
+
return [f.name, meta];
|
|
38
|
+
}));
|
|
39
|
+
})
|
|
40
|
+
.catch(() => ({}));
|
|
41
|
+
cache.set(modelName, request);
|
|
42
|
+
return request;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=meta-fields-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-fields-api.js","sourceRoot":"","sources":["../../src/api/meta-fields-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAOzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8C,CAAC;AAEpE,MAAM,UAAU,oBAAoB,CAClC,SAAiB;IAEjB,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB;SAC7B,GAAG,CAAC,EAAC,GAAG,EAAE,kBAAkB,SAAS,EAAE,EAAC,CAAC;SACzC,IAAI,CAAC,GAAG,CAAC,EAAE;QACV,MAAM,MAAM,GAIN,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;QAEpC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM;aACH,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,MAAM,IAAI,GAAc,EAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAC,CAAC;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CACvC,CAAC,CAAC,aAAa;qBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;qBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CACL,CAAC;IACJ,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAErB,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -17,15 +17,17 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import React from 'react';
|
|
19
19
|
import { StyleSheet } from 'react-native';
|
|
20
|
-
import { getFromNowDate, useSelector } from '@axelor/aos-mobile-core';
|
|
20
|
+
import { getFromNowDate, useSelector, useTranslator, } from '@axelor/aos-mobile-core';
|
|
21
21
|
import { Text } from '@axelor/aos-mobile-ui';
|
|
22
|
+
import { translateMailMessageText } from '../../../utils';
|
|
22
23
|
const AuthorText = ({ author, eventText, eventTime }) => {
|
|
23
24
|
const { user } = useSelector(state => state.user);
|
|
25
|
+
const I18n = useTranslator();
|
|
24
26
|
return (<Text style={styles.author} fontSize={12}>
|
|
25
27
|
<Text writingType="important" fontSize={12}>
|
|
26
28
|
{author}{' '}
|
|
27
29
|
</Text>
|
|
28
|
-
{eventText}
|
|
30
|
+
{translateMailMessageText(eventText, I18n)}
|
|
29
31
|
{' - '}
|
|
30
32
|
<Text writingType="details" fontSize={12}>
|
|
31
33
|
{getFromNowDate(eventTime, user?.localization?.language?.code)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorText.js","sourceRoot":"","sources":["../../../../src/components/atoms/AuthorText/AuthorText.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"AuthorText.js","sourceRoot":"","sources":["../../../../src/components/atoms/AuthorText/AuthorText.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,IAAI,EAAC,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AAQxD,MAAM,UAAU,GAAG,CAAC,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAkB,EAAE,EAAE;IACrE,MAAM,EAAC,IAAI,EAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACvC;MAAA,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACzC;QAAA,CAAC,MAAM,CAAC,CAAC,GAAG,CACd;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAC1C;MAAA,CAAC,KAAK,CACN;MAAA,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACvC;QAAA,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAChE;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE;QACN,WAAW,EAAE,EAAE;KAChB;CACF,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
|
@@ -18,17 +18,22 @@
|
|
|
18
18
|
import React, { useMemo, useState } from 'react';
|
|
19
19
|
import { StyleSheet, TouchableOpacity, View } from 'react-native';
|
|
20
20
|
import { Card, Icon, LabelText, useThemeColor, UnorderedList, Badge, } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { useTranslator } from '@axelor/aos-mobile-core';
|
|
21
22
|
import { MessageFlags, TrackItem } from '../../atoms';
|
|
22
23
|
import { MailMessageNotificationType } from '../../../types';
|
|
24
|
+
import { useTrackFieldTitles } from '../../../hooks';
|
|
25
|
+
import { translateMailMessageText } from '../../../utils';
|
|
23
26
|
const MAX_TRACK_ITEMS = 5;
|
|
24
27
|
const NotificationCard = ({ relatedModel, relatedId, relatedName, subject, tag, tracks, flags, style, customTopComponent, isInbox, }) => {
|
|
25
28
|
const Colors = useThemeColor();
|
|
29
|
+
const I18n = useTranslator();
|
|
26
30
|
const [moreItems, setMoreItems] = useState(false);
|
|
31
|
+
const fieldMeta = useTrackFieldTitles(relatedModel);
|
|
27
32
|
const displayFlags = useMemo(() => relatedModel != null && relatedId != null && flags != null, [flags, relatedId, relatedModel]);
|
|
28
33
|
return (<TouchableOpacity style={style} onPress={() => setMoreItems(!moreItems)} disabled={(tracks?.length ?? 0) < MAX_TRACK_ITEMS} activeOpacity={0.9}>
|
|
29
34
|
<Card style={styles.card}>
|
|
30
35
|
<View style={styles.cardHeader}>
|
|
31
|
-
<LabelText iconName="info-circle-fill" size={18} title={relatedName} value={subject} style={styles.flexOne} textStyle={styles.flexOne} textSize={16} color={Colors.primaryColor.background}/>
|
|
36
|
+
<LabelText iconName="info-circle-fill" size={18} title={relatedName} value={translateMailMessageText(subject, I18n)} style={styles.flexOne} textStyle={styles.flexOne} textSize={16} color={Colors.primaryColor.background}/>
|
|
32
37
|
{customTopComponent && React.cloneElement(customTopComponent)}
|
|
33
38
|
{tag && (<View style={styles.tagContainer}>
|
|
34
39
|
<Badge title={tag.title} color={MailMessageNotificationType.getTagColor(tag.style, Colors)} txtStyle={styles.tagTxt}/>
|
|
@@ -36,7 +41,13 @@ const NotificationCard = ({ relatedModel, relatedId, relatedName, subject, tag,
|
|
|
36
41
|
{displayFlags && (<MessageFlags flags={flags} model={relatedModel} modelId={relatedId} isInbox={isInbox}/>)}
|
|
37
42
|
</View>
|
|
38
43
|
{tracks && (<>
|
|
39
|
-
<UnorderedList data={tracks} numberOfItems={!moreItems && tracks.length > MAX_TRACK_ITEMS
|
|
44
|
+
<UnorderedList data={tracks} numberOfItems={!moreItems && tracks.length > MAX_TRACK_ITEMS
|
|
45
|
+
? MAX_TRACK_ITEMS
|
|
46
|
+
: undefined} renderItem={({ item }) => {
|
|
47
|
+
const meta = fieldMeta[item.name];
|
|
48
|
+
return (<TrackItem title={meta?.title ?? item.title} oldDisplayValue={meta?.selectionTitles?.[item.oldValue] ??
|
|
49
|
+
item.oldDisplayValue} oldValue={item.oldValue} displayValue={meta?.selectionTitles?.[item.value] ?? item.displayValue} value={item.value}/>);
|
|
50
|
+
}}/>
|
|
40
51
|
{tracks.length > MAX_TRACK_ITEMS && (<Icon name={moreItems ? 'chevron-up' : 'chevron-down'} color={Colors.primaryColor.background} style={styles.moreIcon}/>)}
|
|
41
52
|
</>)}
|
|
42
53
|
</Card>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationCard.js","sourceRoot":"","sources":["../../../../src/components/molecules/NotificationCard/NotificationCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAgB,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,aAAa,EACb,aAAa,EACb,KAAK,GACN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AACpD,OAAO,EAAC,2BAA2B,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"NotificationCard.js","sourceRoot":"","sources":["../../../../src/components/molecules/NotificationCard/NotificationCard.tsx"],"names":[],"mappings":"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"}
|
package/lib/hooks/index.d.ts
CHANGED
package/lib/hooks/index.js
CHANGED
package/lib/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { useEffect, useState } from 'react';
|
|
19
|
+
import { fetchModelFieldsMeta } from '../api/meta-fields-api';
|
|
20
|
+
export function useTrackFieldTitles(modelName) {
|
|
21
|
+
const [fieldMeta, setFieldMeta] = useState({});
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!modelName)
|
|
24
|
+
return;
|
|
25
|
+
let cancelled = false;
|
|
26
|
+
fetchModelFieldsMeta(modelName)
|
|
27
|
+
.then(meta => {
|
|
28
|
+
if (!cancelled) {
|
|
29
|
+
setFieldMeta(meta);
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
.catch(() => { });
|
|
33
|
+
return () => {
|
|
34
|
+
cancelled = true;
|
|
35
|
+
};
|
|
36
|
+
}, [modelName]);
|
|
37
|
+
return fieldMeta;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=use-track-field-titles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-track-field-titles.js","sourceRoot":"","sources":["../../src/hooks/use-track-field-titles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAY,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAEvE,MAAM,UAAU,mBAAmB,CACjC,SAAkB;IAElB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA4B,EAAE,CAAC,CAAC;IAE1E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,oBAAoB,CAAC,SAAS,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEnB,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/lib/i18n/en.json
CHANGED
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
"Message_ArchivedMessages": "Archived messages",
|
|
21
21
|
"Message_LinkFiles": "Link files",
|
|
22
22
|
"Message_InvalidFile": "This file is not valid as it does not contain any document.",
|
|
23
|
+
"Message_UpdatedDocument": "updated document",
|
|
24
|
+
"Message_AddedComment": "added comment",
|
|
25
|
+
"Message_RecordCreated": "Record created",
|
|
26
|
+
"Message_RecordUpdated": "Record updated",
|
|
23
27
|
"Message_SliceAction_FetchMailMessages": "fetch mail messages",
|
|
24
28
|
"Message_SliceAction_PostMailMessageComment": "post mail message comment",
|
|
25
29
|
"Message_SliceAction_FetchModelSubscribers": "fetch model subscribers",
|
package/lib/i18n/fr.json
CHANGED
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
"Message_ArchivedMessages": "Messages archivés",
|
|
21
21
|
"Message_LinkFiles": "Lier des fichiers",
|
|
22
22
|
"Message_InvalidFile": "Cet enregistrement est invalide car il ne contient aucun fichier.",
|
|
23
|
+
"Message_UpdatedDocument": "a mis à jour le document",
|
|
24
|
+
"Message_AddedComment": "a ajouté un commentaire",
|
|
25
|
+
"Message_RecordCreated": "Enregistrement créé",
|
|
26
|
+
"Message_RecordUpdated": "Enregistrement mis à jour",
|
|
23
27
|
"Message_SliceAction_FetchMailMessages": "récupération des mail messages",
|
|
24
28
|
"Message_SliceAction_PostMailMessageComment": "ajout d'un mail message",
|
|
25
29
|
"Message_SliceAction_FetchModelSubscribers": "récupération des abonnés du modèle",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-message-notification-type.js","sourceRoot":"","sources":["../../src/types/mail-message-notification-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,2BAA2B;IAC/B,MAAM,CAAC,KAAK,GAAG;QACb,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;KACb,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE;QAC1D,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;gBACvB,OAAO,MAAM,CAAC,cAAc,CAAC;YAC/B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;gBAClB,OAAO,MAAM,CAAC,SAAS,CAAC;YAC1B;gBACE,OAAO,CAAC,IAAI,CACV,6BAA6B,KAAK,uCAAuC,CAC1E,CAAC;gBACF,OAAO,
|
|
1
|
+
{"version":3,"file":"mail-message-notification-type.js","sourceRoot":"","sources":["../../src/types/mail-message-notification-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,2BAA2B;IAC/B,MAAM,CAAC,KAAK,GAAG;QACb,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;KACb,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE;QAC1D,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;gBACvB,OAAO,MAAM,CAAC,cAAc,CAAC;YAC/B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;gBAClB,OAAO,MAAM,CAAC,SAAS,CAAC;YAC1B;gBACE,OAAO,CAAC,IAAI,CACV,6BAA6B,KAAK,uCAAuC,CAC1E,CAAC;gBACF,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;;AAGJ,eAAe,2BAA2B,CAAC"}
|
package/lib/utils/index.d.ts
CHANGED
package/lib/utils/index.js
CHANGED
package/lib/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
const toTranslationKey = (text) => 'Message_' +
|
|
19
|
+
text
|
|
20
|
+
.replace(/[^a-zA-Z0-9\s]/g, '')
|
|
21
|
+
.split(/\s+/)
|
|
22
|
+
.filter(Boolean)
|
|
23
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
24
|
+
.join('');
|
|
25
|
+
export const translateMailMessageText = (text, I18n) => {
|
|
26
|
+
if (!text)
|
|
27
|
+
return text;
|
|
28
|
+
const key = toTranslationKey(text);
|
|
29
|
+
const translated = I18n.t(key);
|
|
30
|
+
return translated === key ? text : translated;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=mail-message-translation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-message-translation.js","sourceRoot":"","sources":["../../src/utils/mail-message-translation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CAChD,UAAU;IACV,IAAI;SACD,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACzD,IAAI,CAAC,EAAE,CAAC,CAAC;AAEd,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,IAAY,EACZ,IAAqB,EACb,EAAE;IACV,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AAChD,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axelor/aos-mobile-message",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.12",
|
|
4
4
|
"author": "Axelor",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"publishConfig": {
|
|
@@ -24,24 +24,24 @@
|
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"react": "19.2.0",
|
|
27
|
-
"react-native": "0.83.
|
|
27
|
+
"react-native": "0.83.9"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@axelor/aos-mobile-core": "9.0.
|
|
31
|
-
"@axelor/aos-mobile-dms": "9.0.
|
|
32
|
-
"@axelor/aos-mobile-ui": "9.0.
|
|
30
|
+
"@axelor/aos-mobile-core": "9.0.12",
|
|
31
|
+
"@axelor/aos-mobile-dms": "9.0.12",
|
|
32
|
+
"@axelor/aos-mobile-ui": "9.0.12",
|
|
33
33
|
"@reduxjs/toolkit": "2.11.2"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@babel/runtime": "^7.25.0",
|
|
37
|
-
"@react-native/babel-preset": "0.83.
|
|
38
|
-
"@react-native/eslint-config": "0.83.
|
|
39
|
-
"@react-native/typescript-config": "0.83.
|
|
37
|
+
"@react-native/babel-preset": "0.83.9",
|
|
38
|
+
"@react-native/eslint-config": "0.83.9",
|
|
39
|
+
"@react-native/typescript-config": "0.83.9",
|
|
40
40
|
"@types/react": "^19.2.0",
|
|
41
41
|
"eslint": "8.57.0",
|
|
42
42
|
"prettier": "^3.3.3",
|
|
43
43
|
"react": "19.2.0",
|
|
44
|
-
"react-native": "0.83.
|
|
44
|
+
"react-native": "0.83.9"
|
|
45
45
|
},
|
|
46
46
|
"resolutions": {
|
|
47
47
|
"@types/react": "^19.2.0"
|