@antscorp/antsomi-ui 1.3.5-beta.784 → 1.3.5-beta.786
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/es/components/molecules/AddDynamicContent/components/DisplayFormat/DisplayFormat.d.ts +0 -1
- package/es/components/molecules/TagifyInput/TagifyInput.js +39 -10
- package/es/components/molecules/TagifyInput/styled.d.ts +2 -1
- package/es/components/molecules/TagifyInput/styled.js +2 -2
- package/es/components/molecules/TagifyInput/types.d.ts +2 -0
- package/es/components/molecules/TagifyInput/utils.d.ts +2 -1
- package/es/components/molecules/TagifyInput/utils.js +14 -0
- package/es/components/template/TemplateListing/Loadable.d.ts +0 -1
- package/es/locales/en/google-sheet.json +1 -1
- package/es/locales/ja/google-sheet.json +23 -23
- package/es/locales/vi/google-sheet.json +2 -2
- package/package.json +1 -1
- package/es/components/molecules/TagifyInput/hooks/index.d.ts +0 -1
- package/es/components/molecules/TagifyInput/hooks/index.js +0 -1
- package/es/components/molecules/TagifyInput/hooks/useSettingsTagify.d.ts +0 -7
- package/es/components/molecules/TagifyInput/hooks/useSettingsTagify.js +0 -30
|
@@ -7,7 +7,6 @@ import { useDeepCompareMemo } from '@antscorp/antsomi-ui/es/hooks/useDeepCompare
|
|
|
7
7
|
import { useDebounce } from '@antscorp/antsomi-ui/es/hooks/useDebounce';
|
|
8
8
|
import { useUpdateEffect } from '@antscorp/antsomi-ui/es/hooks/useUpdateEffect';
|
|
9
9
|
import { useDeepCompareEffect } from '@antscorp/antsomi-ui/es/hooks/useDeepCompareEffect';
|
|
10
|
-
import { useSettingsTagify } from './hooks';
|
|
11
10
|
// Components
|
|
12
11
|
import Tagify from '@yaireo/tagify';
|
|
13
12
|
// Css
|
|
@@ -21,8 +20,7 @@ import { acceptablePatternChecking, getCachedRegex, getPersonalizeTagInfo, patte
|
|
|
21
20
|
import { EMOJI, PERSONALIZE_PTN, SHORT_LINK, defaultCssVariables, tagifyDefaultProps, } from './constants';
|
|
22
21
|
const TagifyInput = forwardRef((props, ref) => {
|
|
23
22
|
// Props
|
|
24
|
-
const { initialValue, readonly, disabled, maxLength, placeholder, acceptableTagPattern, mapAttributes, maxPersonalizeTags, name, children, cssTagifyVariables, onTagClick, onChange, } = props;
|
|
25
|
-
console.count('------------ re-render ------------');
|
|
23
|
+
const { initialValue, status, readonly, disabled, maxLength, placeholder, acceptableTagPattern, mapAttributes, maxPersonalizeTags, name, children, cssTagifyVariables, onTagClick, onChange, } = props;
|
|
26
24
|
// States
|
|
27
25
|
const [inputTypeDebounce, , setInputTyping] = useDebounce(initialValue, 450);
|
|
28
26
|
// Refs
|
|
@@ -86,10 +84,23 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
86
84
|
// Check readonly
|
|
87
85
|
if (readonly)
|
|
88
86
|
return;
|
|
87
|
+
const currentTagData = tagifyRef.current.getSetTagData(currentTagEle);
|
|
88
|
+
const currentTagValue = currentTagData?.value;
|
|
89
|
+
const newTagValue = newTag.value;
|
|
90
|
+
const spaceEle = tagifyRef.current.insertAfterTag(currentTagEle, '\u00A0'); // <- adds space after the tag to keep valid caret positioning
|
|
89
91
|
tagifyRef.current.replaceTag(currentTagEle, newTag);
|
|
92
|
+
// Only update data if value is changed
|
|
93
|
+
if (currentTagValue !== newTagValue) {
|
|
94
|
+
// Change data out
|
|
95
|
+
const inputValue = tagifyRef.current.getInputValue();
|
|
96
|
+
const convertedValue = convertInputStringToOriginal(inputValue);
|
|
97
|
+
onChange(convertedValue);
|
|
98
|
+
}
|
|
99
|
+
tagifyRef.current.placeCaretAfterNode(spaceEle); // <- restore the caret after the edited tag
|
|
90
100
|
}
|
|
91
101
|
},
|
|
92
102
|
}), [onChange]);
|
|
103
|
+
console.log('tagifyRef', tagifyRef);
|
|
93
104
|
const onTagItemClick = useCallback((event) => {
|
|
94
105
|
if (event.detail && onTagClick) {
|
|
95
106
|
const { tagify } = event.detail;
|
|
@@ -196,12 +207,30 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
196
207
|
};
|
|
197
208
|
}, [initializeTagify]);
|
|
198
209
|
// Settings some tagify attributes
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
readonly
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
});
|
|
210
|
+
useLayoutEffect(() => {
|
|
211
|
+
console.log('ref', tagifyRef);
|
|
212
|
+
if (tagifyRef.current && typeof readonly !== 'undefined') {
|
|
213
|
+
tagifyRef.current.setReadonly(!!readonly);
|
|
214
|
+
}
|
|
215
|
+
}, [readonly]);
|
|
216
|
+
// Set disabled
|
|
217
|
+
useLayoutEffect(() => {
|
|
218
|
+
if (tagifyRef.current && typeof disabled !== 'undefined') {
|
|
219
|
+
tagifyRef.current.setDisabled(!!disabled);
|
|
220
|
+
}
|
|
221
|
+
}, [disabled]);
|
|
222
|
+
// Set placeholder
|
|
223
|
+
useLayoutEffect(() => {
|
|
224
|
+
if (tagifyRef.current && typeof placeholder !== 'undefined') {
|
|
225
|
+
tagifyRef.current.setPlaceholder(placeholder);
|
|
226
|
+
}
|
|
227
|
+
}, [placeholder]);
|
|
228
|
+
// Set max personalize tags
|
|
229
|
+
useLayoutEffect(() => {
|
|
230
|
+
if (tagifyRef.current && typeof maxPersonalizeTags !== 'undefined') {
|
|
231
|
+
tagifyRef.current.settings.maxTags = maxPersonalizeTags;
|
|
232
|
+
}
|
|
233
|
+
}, [maxPersonalizeTags]);
|
|
205
234
|
/*
|
|
206
235
|
* Need to sync label of the tags if any map attribute is changed to make correct label
|
|
207
236
|
* */
|
|
@@ -291,7 +320,7 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
291
320
|
}
|
|
292
321
|
};
|
|
293
322
|
}, []);
|
|
294
|
-
return (_jsxs(TagifyWrapper, { ref: tagifyWrapperRef, "$cssTagifyVariables": cssVariablesMemoized, className: "tagify-container", id: "tagify-container", "data-test": "tagify-wrapper", children: [_jsx(TagTextArea, { id: "tagify-textarea", ref: inputRef, name: name, defaultValue: parsedDefaultValue, "data-test": "tagify-input" }), _jsx(WrapperPlaceHolder, { ref: placeHolderRef, "$isShow": !!children, children: children })] }));
|
|
323
|
+
return (_jsxs(TagifyWrapper, { ref: tagifyWrapperRef, "$cssTagifyVariables": cssVariablesMemoized, className: "tagify-container", id: "tagify-container", "data-test": "tagify-wrapper", "$status": status, children: [_jsx(TagTextArea, { id: "tagify-textarea", ref: inputRef, name: name, defaultValue: parsedDefaultValue, "data-test": "tagify-input" }), _jsx(WrapperPlaceHolder, { ref: placeHolderRef, "$isShow": !!children, children: children })] }));
|
|
295
324
|
});
|
|
296
325
|
TagifyInput.defaultProps = tagifyDefaultProps;
|
|
297
326
|
export default memo(TagifyInput);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { TagifyInputProps } from './types';
|
|
1
|
+
import type { StatusType, TagifyInputProps } from './types';
|
|
2
2
|
export declare const WrapperPlaceHolder: import("styled-components").StyledComponent<"div", any, {
|
|
3
3
|
$isShow?: boolean | undefined;
|
|
4
4
|
}, never>;
|
|
5
5
|
export declare const TagifyWrapper: import("styled-components").StyledComponent<"div", any, {
|
|
6
6
|
$cssTagifyVariables?: TagifyInputProps['cssTagifyVariables'];
|
|
7
|
+
$status?: StatusType | undefined;
|
|
7
8
|
}, never>;
|
|
8
9
|
export declare const TagInput: import("styled-components").StyledComponent<"input", any, {}, never>;
|
|
9
10
|
export declare const TagTextArea: import("styled-components").StyledComponent<"textarea", any, {}, never>;
|
|
@@ -4,7 +4,7 @@ import styled, { css } from 'styled-components';
|
|
|
4
4
|
import { globalToken } from '@antscorp/antsomi-ui/es/constants';
|
|
5
5
|
import { MIN_H_WRAPPER, TAG_H } from './constants';
|
|
6
6
|
// Utils
|
|
7
|
-
import { getStyledTags } from './utils';
|
|
7
|
+
import { getBackgroundInputStatus, getStyledTags } from './utils';
|
|
8
8
|
export const WrapperPlaceHolder = styled.div `
|
|
9
9
|
${({ $isShow }) => $isShow
|
|
10
10
|
? css `
|
|
@@ -17,7 +17,7 @@ export const WrapperPlaceHolder = styled.div `
|
|
|
17
17
|
`;
|
|
18
18
|
export const TagifyWrapper = styled.div `
|
|
19
19
|
background: ${globalToken?.bw0};
|
|
20
|
-
border-bottom: 1px solid ${
|
|
20
|
+
border-bottom: 1px solid ${({ $status }) => getBackgroundInputStatus($status)};
|
|
21
21
|
min-height: ${MIN_H_WRAPPER}px;
|
|
22
22
|
width: 100%;
|
|
23
23
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { ClassNameSettings, TagData, TagifySettings } from '@yaireo/tagify';
|
|
4
4
|
import { EMOJI_COLLECTIONS, PATTERN_CACHE_TYPE, SHORT_LINK_TYPE, TAG_TYPE } from './constants';
|
|
5
5
|
export type MapAttributesProps = Record<string, Record<string, any>>;
|
|
6
|
+
export type StatusType = 'error' | 'success' | 'warning';
|
|
6
7
|
/**
|
|
7
8
|
* Interface defining the properties for the Tagify input component.
|
|
8
9
|
* Provides configuration options and event handlers to manage Tagify's behavior and appearance.
|
|
@@ -37,6 +38,7 @@ export interface TagifyInputProps {
|
|
|
37
38
|
* Helps enforce constraints by limiting the number of tags a user can input.
|
|
38
39
|
*/
|
|
39
40
|
maxPersonalizeTags?: TagifySettings['maxTags'];
|
|
41
|
+
status?: StatusType;
|
|
40
42
|
/**
|
|
41
43
|
* Defines acceptable patterns or validation rules for tags.
|
|
42
44
|
* Ensures only tags matching specified patterns can be added, enforcing content rules.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AcceptablePattern, EmojiCollection, EmojiTag, TagType } from './types';
|
|
1
|
+
import { AcceptablePattern, EmojiCollection, EmojiTag, StatusType, TagType } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Parses the input string and replaces matching patterns with processed tags.
|
|
4
4
|
* This function iterates over predefined regex patterns and replaces each match
|
|
@@ -45,3 +45,4 @@ export declare const emojiManufacturer: (text: string, collectionType: EmojiColl
|
|
|
45
45
|
export declare const getEmojiTag: ({ src, emoji, code }: EmojiTag) => string;
|
|
46
46
|
export declare const getStyledTags: () => string;
|
|
47
47
|
export declare const isPersonalizeTagType: (type: TagType) => boolean;
|
|
48
|
+
export declare const getBackgroundInputStatus: (status?: StatusType) => string;
|
|
@@ -3,6 +3,7 @@ import stringReplaceToArray from 'string-replace-to-array';
|
|
|
3
3
|
// Constants
|
|
4
4
|
import { CUSTOMER, CUSTOM_FN, EMOJI, EMOJI_COLLECTIONS, EVENT, OBJECT_WIDGET, PREFIX_PATTERN_LINE_MESSAGE, PROMOTION_CODE, TAG_COLOR, TAG_TYPE, VISITOR, } from './constants';
|
|
5
5
|
import { iconsViber } from './iconsViber';
|
|
6
|
+
import { globalToken } from '@antscorp/antsomi-ui/es/constants';
|
|
6
7
|
// Utils
|
|
7
8
|
import { acceptablePatternChecking, getCachedRegex, patternHandlers, tagRegexStringPattern, } from './patternHandlers';
|
|
8
9
|
/**
|
|
@@ -327,3 +328,16 @@ export const getStyledTags = () => {
|
|
|
327
328
|
return styledTags.join('');
|
|
328
329
|
};
|
|
329
330
|
export const isPersonalizeTagType = (type) => [CUSTOMER, VISITOR, EVENT, PROMOTION_CODE, OBJECT_WIDGET, CUSTOM_FN].includes(type);
|
|
331
|
+
export const getBackgroundInputStatus = (status) => {
|
|
332
|
+
switch (status) {
|
|
333
|
+
case 'error':
|
|
334
|
+
return globalToken?.colorError || '#EF3340';
|
|
335
|
+
case 'warning':
|
|
336
|
+
return globalToken?.colorWarning || '#faad14';
|
|
337
|
+
case 'success':
|
|
338
|
+
return globalToken?.colorSuccess || '#12B800';
|
|
339
|
+
default: {
|
|
340
|
+
return globalToken?.blue1 || '#B8CFE6';
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
};
|
|
@@ -2642,5 +2642,5 @@
|
|
|
2642
2642
|
"_COOKIE_DM_INSTRUCTION_1_DES_1": "This is the base domain for all subdomains you want to track. ",
|
|
2643
2643
|
"_COOKIE_DM_INSTRUCTION_1_DES_2": "Example: {{x}}",
|
|
2644
2644
|
"_COOKIE_DM_INSTRUCTION_2_SUM": "Configure the Cookie Domain:",
|
|
2645
|
-
"_COOKIE_DM_INSTRUCTION_2_DES_1": "Input {{x}} to track data across all subdomains (eg:
|
|
2645
|
+
"_COOKIE_DM_INSTRUCTION_2_DES_1": "Input {{x}} to track data across all subdomains (eg: {{y}} or {{y}})"
|
|
2646
2646
|
}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"_ACT_CANCEL": "キャンセル",
|
|
33
33
|
"_ACT_CHANGE": "変化",
|
|
34
34
|
"_ACT_CHANGE_ASSIGN_GROUP": "割り当てグループの変更",
|
|
35
|
-
"_ACT_CHANGE_FORMAT": "
|
|
35
|
+
"_ACT_CHANGE_FORMAT": "フォーマットの変更",
|
|
36
36
|
"_ACT_CHANGE_PORTAL": "変更ポータル",
|
|
37
37
|
"_ACT_CHANGE_TEMPLATE": "テンプレートの変更",
|
|
38
38
|
"_ACT_CHART_TYPE": "グラフの種類",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"_ACT_QUICK_TEST": "クイックテスト",
|
|
95
95
|
"_ACT_REFINE_ATTRIBUTE": "属性で絞り込む",
|
|
96
96
|
"_ACT_REMOVE": "取り除く",
|
|
97
|
-
"_ACT_REMOVE_ALL": "
|
|
97
|
+
"_ACT_REMOVE_ALL": "すべて削除",
|
|
98
98
|
"_ACT_REPLACE": "交換する",
|
|
99
99
|
"_ACT_REPORTS": "レポート",
|
|
100
100
|
"_ACT_RESET": "リセット",
|
|
@@ -384,7 +384,7 @@
|
|
|
384
384
|
"_DURATION_LAST_15_MINUTE": "最後の 15 分",
|
|
385
385
|
"_DURATION_LAST_3_HOUR": "過去 3 時間",
|
|
386
386
|
"_DURATION_LAST_30_DAYS": "過去 30 日間",
|
|
387
|
-
"_DURATION_LAST_30_MINUTE": "最後の 30
|
|
387
|
+
"_DURATION_LAST_30_MINUTE": "最後の 30 分",
|
|
388
388
|
"_DURATION_LAST_5_MINUTE": "最後の 5 分",
|
|
389
389
|
"_DURATION_LAST_6_HOUR": "過去6時間",
|
|
390
390
|
"_DURATION_LAST_7_DAY": "過去 7 日間",
|
|
@@ -594,7 +594,7 @@
|
|
|
594
594
|
"_INFO_STORY_EVERY_DAY": "日",
|
|
595
595
|
"_INFO_STORY_EVERY_MONTH": "月",
|
|
596
596
|
"_INFO_STORY_EVERY_WEEK": "週",
|
|
597
|
-
"_INFO_STORY_EXE_BRANCH_NO": "
|
|
597
|
+
"_INFO_STORY_EXE_BRANCH_NO": "他のブランチの条件がどれも一致しない場合、オーディエンスはこのブランチに誘導されます。",
|
|
598
598
|
"_INFO_STORY_FILTER_CONDITION": "状態",
|
|
599
599
|
"_INFO_STORY_FILTER_TYPE": "フィルターの種類",
|
|
600
600
|
"_INFO_STORY_FREQUENCY": "トリガージャーニー",
|
|
@@ -829,7 +829,7 @@
|
|
|
829
829
|
"_OPERATOR_LESS_OR_EQUAL": "以下",
|
|
830
830
|
"_OPERATOR_LESS_THAN": "未満",
|
|
831
831
|
"_OPERATOR_MATCH_ANY": "のいずれかに一致します",
|
|
832
|
-
"_OPERATOR_NOT_CONTAIN": "
|
|
832
|
+
"_OPERATOR_NOT_CONTAIN": "含まれていない",
|
|
833
833
|
"_OPERATOR_NOT_END_WITH": "で終わらない",
|
|
834
834
|
"_OPERATOR_NOT_EQUAL": "等しくない",
|
|
835
835
|
"_OPERATOR_NOT_EQUAL_TIME_AGO": "同じ時間前ではない",
|
|
@@ -1044,9 +1044,9 @@
|
|
|
1044
1044
|
"_TITL_DELIVERED": "納品済み",
|
|
1045
1045
|
"_TITL_DELIVERED_PROBABILITY": "配信確率",
|
|
1046
1046
|
"_TITL_DELIVERY_ALGORITHM": "配信アルゴリズム",
|
|
1047
|
-
"_TITL_DELIVERY_DETAIL": "
|
|
1047
|
+
"_TITL_DELIVERY_DETAIL": "配送詳細",
|
|
1048
1048
|
"_TITL_DELIVERY_PERFORMANCE": "配信パフォーマンス",
|
|
1049
|
-
"_TITL_DELIVERY_RATE": "
|
|
1049
|
+
"_TITL_DELIVERY_RATE": "配送率",
|
|
1050
1050
|
"_TITL_DELIVERY_RESULT": "納品実績",
|
|
1051
1051
|
"_TITL_DELIVERY_STATUS": "配送状況",
|
|
1052
1052
|
"_TITL_DESCENDING": "降順",
|
|
@@ -1195,7 +1195,7 @@
|
|
|
1195
1195
|
"_TITL_ROW_ACCESS": "行アクセス",
|
|
1196
1196
|
"_TITL_ALL_ROW": "すべての行",
|
|
1197
1197
|
"_TITL_SPECIFIED_ROW": "指定された行",
|
|
1198
|
-
"_TITL_COLUMN_ACCESS": "
|
|
1198
|
+
"_TITL_COLUMN_ACCESS": "カラムアクセス",
|
|
1199
1199
|
"_TITL_ALL_COLUMN": "すべての列",
|
|
1200
1200
|
"_TITL_SPECIFIED_COLUMN": "指定された列",
|
|
1201
1201
|
"_TITL_COLUMN_SELECTED": "選択された列",
|
|
@@ -1436,7 +1436,7 @@
|
|
|
1436
1436
|
"_WARN_DELETE_ITEMS": "注意: {{all}} {{module}} の削除をリクエストしました。ただし、そのうちの {{number_not_delete}} 個は他の機能の入力として使用されているため削除できません。 <br />\n他の {{number_delete}} {{module}} を削除してもよろしいですか?",
|
|
1437
1437
|
"_WARN_DELETE_ITEMS_ALL": "{{number_delete}} {{module}} を削除してもよろしいですか?この操作は元に戻すことができません。",
|
|
1438
1438
|
"_WARN_DELETE_NODE": "確認すると、このノードとこのノードに関連するすべてのものが失われます。",
|
|
1439
|
-
"_WARN_DELETE_STORY": "注意: {{all}}
|
|
1439
|
+
"_WARN_DELETE_STORY": "注意: {{all}} 件の旅行を削除するようリクエストされました。ただし、削除できるのは、ステータスが「設計内」である {{x}} 件のジャーニーのみです。",
|
|
1440
1440
|
"_WARN_DELETE_TRIGGER_NODE": "トリガー ノードを削除すると、ジャーニー全体のデザインも削除されます。",
|
|
1441
1441
|
"_WARN_DESIGN_LOST": "現在のデザインは失われる可能性があります",
|
|
1442
1442
|
"_WARN_DISCARD_CHANGE_INTRO": "このサイトを離れると、作成した変更は保存されません",
|
|
@@ -1477,7 +1477,7 @@
|
|
|
1477
1477
|
"_WARN_REMOVE_VARIANT": "バリアント「{{x}}」を削除しますか?",
|
|
1478
1478
|
"_NODE_PARALLEL_FILTER": "並列フィルター",
|
|
1479
1479
|
"_INFO_STORY_PARALLEL_FILTER": "並列フィルター",
|
|
1480
|
-
"_USER_GUIDE_PARALLEL_FILTER": "<b>イントロに注意してください: </b>
|
|
1480
|
+
"_USER_GUIDE_PARALLEL_FILTER": "<b>イントロに注意してください: </b> 視聴者は、条件が満たされた任意の Yes 分岐を通過できます。それ以外の場合、観客はノーブランチを通過します。",
|
|
1481
1481
|
"_MENU_SUB_PROMOTION_CENTER": "プロモーションセンター",
|
|
1482
1482
|
"_TITL_ADD_PRODUCT_WIDGET": "製品ウィジェットを追加",
|
|
1483
1483
|
"_ACT_ADD_ATTRIBUTE_OBJECT": "属性オブジェクトの追加",
|
|
@@ -1940,7 +1940,7 @@
|
|
|
1940
1940
|
"_WARN_TITLE_AM_CREATED_BY": "作成者",
|
|
1941
1941
|
"_ERROR_MESS_AM_COMPUTED_LIMIT": "この時間内に構築される分析モデルの数の制限に達しました。",
|
|
1942
1942
|
"_WARN_TITLE_AM_COMPUTATIONAL_LIMIT": "警告 分析モデルの計算制限",
|
|
1943
|
-
"_WARN_AM_COMPUTATIONAL_LIMIT": "
|
|
1943
|
+
"_WARN_AM_COMPUTATIONAL_LIMIT": "現在、計算制限に達しているため、システムは次の有効な時間内にこの分析モデルを計算します。",
|
|
1944
1944
|
"_WARN_TITLE_BO_WARN_TOTAL": "警告 ビジネス オブジェクトの合計制限",
|
|
1945
1945
|
"_WARN_BO_WARN_TOTAL_CONTENT_CREATE": "ビジネス オブジェクトの数が制限に達しました。\n新しいビジネス オブジェクトを作成する場合は、未使用のビジネス オブジェクトをアーカイブしてください。",
|
|
1946
1946
|
"_ACT_WARN_BO_GO_TO_LIST": "ビジネスオブジェクトリストに移動",
|
|
@@ -2191,7 +2191,7 @@
|
|
|
2191
2191
|
"_LINE_ACT_DT_PICKER_DATE_RANGE": "日付範囲",
|
|
2192
2192
|
"_LINE_ACT_DT_PICKER_DEFAULT_DATE": "デフォルトの日付",
|
|
2193
2193
|
"_LINE_ACT_DT_PICKER_TIME_RANGE": "時間範囲",
|
|
2194
|
-
"_LINE_ACT_DT_PICKER_DEFAULT_TIME": "
|
|
2194
|
+
"_LINE_ACT_DT_PICKER_DEFAULT_TIME": "デフォルトの時間",
|
|
2195
2195
|
"_LINE_ACT_DT_PICKER_DEFAULT_DATETIME": "デフォルトの日付と時刻",
|
|
2196
2196
|
"_LINE_ACT_TYPE": "アクションの種類",
|
|
2197
2197
|
"_LINE_BUTTON_LABEL": "ボタンラベル",
|
|
@@ -2258,16 +2258,16 @@
|
|
|
2258
2258
|
"_BLCK_OTP_BUTTN_ACTION": "ボタンアクション",
|
|
2259
2259
|
"_MED_TEMP_SETTING_MESS": "メッセージ",
|
|
2260
2260
|
"_BLCK_OTP_MESS_FAILED_VERI": "検証に失敗しました",
|
|
2261
|
-
"_BLCK_OTP_MESS_RESENT": "再送信されたOTP",
|
|
2261
|
+
"_BLCK_OTP_MESS_RESENT": "再送信された OTP",
|
|
2262
2262
|
"_MED_TEMP_SETTING_POSITION": "位置",
|
|
2263
2263
|
"_BLCK_OTP_EVENT_TRIGGER": "イベントトリガー",
|
|
2264
2264
|
"_BLCK_OTP_EVENT": "イベント",
|
|
2265
2265
|
"_BLCK_OTP_EVENT_SOURCE": "イベントソース",
|
|
2266
|
-
"_CHANNEL_DES_WEB": "ユーザーの行動や好みに基づいて Web
|
|
2266
|
+
"_CHANNEL_DES_WEB": "ユーザーの行動や好みに基づいて Web サイトのコンテンツを動的に調整し、エンゲージメント率とコンバージョン率を最適化します。",
|
|
2267
2267
|
"_CHANNEL_DES_WEB_NOTI": "リアルタイムのメッセージを送信して Web サイト訪問者を引きつけ、タイムリーなインタラクションとコンバージョンを促進します",
|
|
2268
2268
|
"_CHANNEL_DES_APP_NOTI": "即時通知をモバイル アプリのみに送信し、即時のエンゲージメントとインタラクションを促進します",
|
|
2269
2269
|
"_CHANNEL_DES_EMAIL": "パーソナライズされたメッセージをユーザーの受信箱に直接配信し、ターゲットを絞ったコンテンツでのエンゲージメントとコンバージョンを促進します。",
|
|
2270
|
-
"_CHANNEL_DES_SMS": "
|
|
2270
|
+
"_CHANNEL_DES_SMS": "直接的かつ即時のコミュニケーションを提供し、ユーザーのモバイル デバイスに到達して即時のエンゲージメントとインタラクションを実現します。",
|
|
2271
2271
|
"_CHANNEL_DES_SMART_INB": "プッシュ通知のコンテンツを一元管理して管理とエンゲージメントを合理化",
|
|
2272
2272
|
"_CHANNEL_DES_FB_MESS": "直接的な会話型のコミュニケーションを提供し、使い慣れたソーシャル メディア プラットフォームでユーザーを惹きつけます",
|
|
2273
2273
|
"_CHANNEL_DES_VIBER": "ダイレクト メッセージング機能を提供し、安全で使い慣れたソーシャル メディア プラットフォームでユーザーを魅了します。",
|
|
@@ -2371,7 +2371,7 @@
|
|
|
2371
2371
|
"_WEBPER_TEMP_OBJ_INLINE_5": "ソーシャルプルーフディスプレイ",
|
|
2372
2372
|
"_WEBPER_TEMP_OBJ_INLINE_6": "教育コンテンツ",
|
|
2373
2373
|
"_WEBPER_TEMP_OBJ_SLIDEIN_1": "リードマグネット",
|
|
2374
|
-
"_WEBPER_TEMP_OBJ_SLIDEIN_2": "
|
|
2374
|
+
"_WEBPER_TEMP_OBJ_SLIDEIN_2": "終了の意図",
|
|
2375
2375
|
"_WEBPER_TEMP_OBJ_SLIDEIN_3": "コンテンツティーザー",
|
|
2376
2376
|
"_WEBPER_TEMP_OBJ_SLIDEIN_4": "アンケートと投票",
|
|
2377
2377
|
"_WEBPER_TEMP_OBJ_SLIDEIN_5": "ソーシャルプルーフディスプレイ",
|
|
@@ -2406,7 +2406,7 @@
|
|
|
2406
2406
|
"_OBJ_DES_WEB_4": "それぞれの訪問者のインタラクションの価値を最大化するために、ユニークでパーソナライズされたオファーを提供します",
|
|
2407
2407
|
"_OBJ_DES_WEB_5": "ユーザーインタラクションを分析してコンテンツを洗練し、戦略をセグメント化し、Web サイトのレイアウトを最適化します。",
|
|
2408
2408
|
"_OBJ_DES_WEB_NOTI_1": "タイムリーな更新、プロモーション、アラートでユーザーに即座に連絡します",
|
|
2409
|
-
"_OBJ_DES_WEB_NOTI_2": "新しいコンテンツ、製品リリース、または期間限定オファーをユーザーに通知することで、Web
|
|
2409
|
+
"_OBJ_DES_WEB_NOTI_2": "新しいコンテンツ、製品リリース、または期間限定オファーをユーザーに通知することで、Web サイトへのトラフィックを促進します。",
|
|
2410
2410
|
"_OBJ_DES_WEB_NOTI_3": "パーソナライズされたオファーやリマインダーを配信してユーザーの行動を促す",
|
|
2411
2411
|
"_OBJ_DES_WEB_NOTI_4": "ユーザーの興味や好みに合わせた関連性の高い有益な通知を送信することで、ユーザーの関心とリピートを維持します。",
|
|
2412
2412
|
"_OBJ_DES_WEB_NOTI_5": "アカウント、トランザクション更新などの関連情報をユーザーのブラウザに直接配信します。",
|
|
@@ -2428,7 +2428,7 @@
|
|
|
2428
2428
|
"_OBJ_DES_SMS_5": "注文確認、出荷通知、アカウント更新をリアルタイムで提供します",
|
|
2429
2429
|
"_OBJ_DES_SMART_INB_1": "通知を集約し、ユーザーがメッセージを 1 か所で簡単に表示および管理できるようにします。",
|
|
2430
2430
|
"_OBJ_DES_SMART_INB_2": "プラットフォーム間で通知にアクセスし、操作するためのシームレスで直感的なインターフェイスを提供します。",
|
|
2431
|
-
"_OBJ_DES_SMART_INB_3": "通知によるタイムリーな応答と対話を促進し、ユーザー
|
|
2431
|
+
"_OBJ_DES_SMART_INB_3": "通知によるタイムリーな応答と対話を促進し、ユーザー エンゲージメントと満足度を最大化します",
|
|
2432
2432
|
"_OBJ_DES_SMART_INB_4": "Web プッシュやアプリ プッシュなどのさまざまなチャネルからの通知を統合し、ユーザーとの一貫性のある一貫したコミュニケーションを確保します。",
|
|
2433
2433
|
"_OBJ_DES_FB_MESS_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
|
|
2434
2434
|
"_OBJ_DES_FB_MESS_2": "鮮やかなメッセージ テンプレートを使用してタイムリーで関連性のある更新を提供します",
|
|
@@ -2452,12 +2452,12 @@
|
|
|
2452
2452
|
"_OBJ_DES_WHATSAPP_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
|
|
2453
2453
|
"_OBJ_DES_TELEGRAM_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
|
|
2454
2454
|
"_OBJ_DES_TELEGRAM_2": "鮮やかなメッセージ テンプレートを使用してタイムリーで関連性のある更新を提供します",
|
|
2455
|
-
"_OBJ_DES_TELEGRAM_3": "
|
|
2455
|
+
"_OBJ_DES_TELEGRAM_3": "インタラクティブなテンプレート要素を使用して販売目標到達プロセスをガイドし、リードと見込み客を育成します。",
|
|
2456
2456
|
"_OBJ_DES_TELEGRAM_4": "予定や予約のリマインダーと確認を送信してノーショーを減らします",
|
|
2457
2457
|
"_OBJ_DES_TELEGRAM_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
|
|
2458
2458
|
"_OBJ_DES_LINE_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
|
|
2459
2459
|
"_OBJ_DES_LINE_2": "Line のリッチ メニューを利用して、メッセージ内のインタラクティブなオプションとナビゲーションをユーザーに提供します",
|
|
2460
|
-
"_OBJ_DES_LINE_3": "
|
|
2460
|
+
"_OBJ_DES_LINE_3": "インタラクティブなテンプレート要素を使用して販売目標到達プロセスをガイドし、リードと見込み客を育成します。",
|
|
2461
2461
|
"_OBJ_DES_LINE_4": "予定や予約のリマインダーと確認を送信してノーショーを減らします",
|
|
2462
2462
|
"_OBJ_DES_LINE_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
|
|
2463
2463
|
"_WEBPER_TEMP_OBJ_DES_POP_1": "潜在顧客からの情報、または既存顧客からのレビューやフィードバックを収集してデータを充実させます",
|
|
@@ -2497,14 +2497,14 @@
|
|
|
2497
2497
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_3": "今後のコンテンツ、製品の発売、イベントを予告して、視聴者の期待と興奮を高め、Web サイトへのトラフィックを促進します。",
|
|
2498
2498
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_4": "アンケート、投票、またはフィードバック フォームを組み込んで、貴重な洞察を収集し、交流を促進します。",
|
|
2499
2499
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_5": "顧客のレビュー、評価、お客様の声などの社会的証明要素を紹介して、購入の意思決定に影響を与える信頼と信用を構築します。",
|
|
2500
|
-
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_6": "
|
|
2500
|
+
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_6": "期間限定のオファー、カウントダウンタイマー、またはフラッシュセール通知を提示することで、緊迫感を醸成し、即時行動を促します。",
|
|
2501
2501
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_7": "ターゲットを絞ったオファー、インセンティブ、またはリマインダーを使用して、躊躇している買い物客に購入を完了させるよう促します。",
|
|
2502
2502
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_8": "顧客からの問い合わせの必要性を減らし、ショッピング体験の全体的な満足度を向上させるために、顧客が遭遇する可能性のある一般的な懸念事項や問題のトラブルシューティングに対処する",
|
|
2503
2503
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_9": "登録や出欠確認のオプションを提供して、ウェビナー、ワークショップ、イベントにユーザーを招待し、参加とエンゲージメントを促進します。",
|
|
2504
2504
|
"_LINE_MESS_OBJ_DES_1": "各ユーザーの好み、行動、過去のやり取りに基づいてメッセージをカスタマイズする",
|
|
2505
2505
|
"_LINE_MESS_OBJ_DES_2": "画像、ビデオ、ステッカーなどのマルチメディア コンテンツでメッセージを充実させます",
|
|
2506
2506
|
"_LINE_MESS_OBJ_DES_3": "ユーザーの参加を促すために、クリック可能なボタンなどのインタラクティブな要素を組み込む",
|
|
2507
|
-
"_LINE_MESS_OBJ_DES_4": "インタラクティブなメッセージ
|
|
2507
|
+
"_LINE_MESS_OBJ_DES_4": "インタラクティブなメッセージ テンプレート内で応答、質問、フィードバックを奨励することで、フォロワーとの双方向の対話を促進します",
|
|
2508
2508
|
"_LINE_MESS_OBJ_DES_5": "プロモーション キャンペーンの開始、新製品の発表、限定割引の提供、売上の促進",
|
|
2509
2509
|
"_LINE_MESS_OBJ_DES_6": "メッセージ テンプレートのインタラクティブな要素を通じて、応答性の高いカスタマー サポートを提供します",
|
|
2510
2510
|
"_LINE_MESS_OBJ_DES_7": "組み込みのメッセージ テンプレートを使用して回答を求め、アンケートからユーザー情報を収集します",
|
|
@@ -2631,5 +2631,5 @@
|
|
|
2631
2631
|
"_COOKIE_DM_INSTRUCTION_1_DES_1": "これは、追跡するすべてのサブドメインのベース ドメインです。 ",
|
|
2632
2632
|
"_COOKIE_DM_INSTRUCTION_1_DES_2": "例: {{x}}",
|
|
2633
2633
|
"_COOKIE_DM_INSTRUCTION_2_SUM": "Cookie ドメインを構成します。",
|
|
2634
|
-
"_COOKIE_DM_INSTRUCTION_2_DES_1": "すべてのサブドメインにわたってデータを追跡するには、「{{x}}」と入力します (例:
|
|
2634
|
+
"_COOKIE_DM_INSTRUCTION_2_DES_1": "すべてのサブドメインにわたってデータを追跡するには、「{{x}}」と入力します (例: {{y}} または {{y}})"
|
|
2635
2635
|
}
|
|
@@ -2040,7 +2040,7 @@
|
|
|
2040
2040
|
"_PREDICT_MODEL_ALL_PREDICTIVE_MODELS": "Tất cả các mô hình dự đoán",
|
|
2041
2041
|
"_PREDICT_MODEL_CREATE_NEW_MODEL": "Tạo mới",
|
|
2042
2042
|
"_PREDICT_MODEL_RFM_MODEL": "Mô hình RFM",
|
|
2043
|
-
"_PREDICT_MODEL_RFM_DESCRIPTION": "Xếp hạng và
|
|
2043
|
+
"_PREDICT_MODEL_RFM_DESCRIPTION": "Xếp hạng và nhóm khách hàng một cách định lượng dựa trên mức độ gần đây, tần suất và tổng số tiền trong hành vi chi tiêu của họ",
|
|
2044
2044
|
"_PREDICT_MODEL_ERFM_MODEL": "Mô hình eRFM",
|
|
2045
2045
|
"_PREDICT_MODEL_ERFM_DESCRIPTION": "Mô hình eRFM là mô hình RFM rộng hơn, phân tích khách hàng dựa trên hành vi chi tiêu và mức độ tương tác qua email của họ",
|
|
2046
2046
|
"_PREDICT_MODEL_PROPENSITY_TO_BUY_MODEL": "Xu hướng mua mô hình",
|
|
@@ -2642,5 +2642,5 @@
|
|
|
2642
2642
|
"_COOKIE_DM_INSTRUCTION_1_DES_1": "Đây là tên miền cơ bản cho tất cả các subdomain mà bạn muốn theo dõi. ",
|
|
2643
2643
|
"_COOKIE_DM_INSTRUCTION_1_DES_2": "Ví dụ: {{x}}",
|
|
2644
2644
|
"_COOKIE_DM_INSTRUCTION_2_SUM": "Cấu hình tên miền cookie:",
|
|
2645
|
-
"_COOKIE_DM_INSTRUCTION_2_DES_1": "Nhập {{x}} để theo dõi dữ liệu trên tất cả các subdomain (ví dụ: {{
|
|
2645
|
+
"_COOKIE_DM_INSTRUCTION_2_DES_1": "Nhập {{x}} để theo dõi dữ liệu trên tất cả các subdomain (ví dụ: {{y}} hoặc {{y}})."
|
|
2646
2646
|
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './useSettingsTagify';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './useSettingsTagify';
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference types="yaireo__tagify" />
|
|
2
|
-
import Tagify from '@yaireo/tagify';
|
|
3
|
-
import type { TagDataCustomize, TagifyInputProps } from '../types';
|
|
4
|
-
type TagifyInstanceProps = Tagify<TagDataCustomize> | null;
|
|
5
|
-
type SettingsTagifyProps = Pick<TagifyInputProps, 'readonly' | 'disabled' | 'placeholder' | 'maxPersonalizeTags'>;
|
|
6
|
-
export declare const useSettingsTagify: (tagifyInstance: TagifyInstanceProps, settings: SettingsTagifyProps) => void;
|
|
7
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react-hooks/exhaustive-deps */
|
|
2
|
-
// Libraries
|
|
3
|
-
import { useLayoutEffect } from 'react';
|
|
4
|
-
export const useSettingsTagify = (tagifyInstance, settings) => {
|
|
5
|
-
const { readonly, disabled, placeholder, maxPersonalizeTags } = settings;
|
|
6
|
-
// Set read only
|
|
7
|
-
useLayoutEffect(() => {
|
|
8
|
-
if (tagifyInstance && typeof readonly !== 'undefined') {
|
|
9
|
-
tagifyInstance.setReadonly(readonly);
|
|
10
|
-
}
|
|
11
|
-
}, [readonly]);
|
|
12
|
-
// Set disabled
|
|
13
|
-
useLayoutEffect(() => {
|
|
14
|
-
if (tagifyInstance && typeof disabled !== 'undefined') {
|
|
15
|
-
tagifyInstance.setDisabled(disabled);
|
|
16
|
-
}
|
|
17
|
-
}, [disabled]);
|
|
18
|
-
// Set placeholder
|
|
19
|
-
useLayoutEffect(() => {
|
|
20
|
-
if (tagifyInstance && typeof placeholder !== 'undefined') {
|
|
21
|
-
tagifyInstance.setPlaceholder(placeholder);
|
|
22
|
-
}
|
|
23
|
-
}, [placeholder]);
|
|
24
|
-
// Set max personalize tags
|
|
25
|
-
useLayoutEffect(() => {
|
|
26
|
-
if (tagifyInstance && typeof maxPersonalizeTags !== 'undefined') {
|
|
27
|
-
tagifyInstance.settings.maxTags = maxPersonalizeTags;
|
|
28
|
-
}
|
|
29
|
-
}, [maxPersonalizeTags]);
|
|
30
|
-
};
|