@antscorp/antsomi-ui 1.3.5-beta.796 → 1.3.5-beta.798

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.
@@ -344,7 +344,7 @@ export function MatchesAny(props) {
344
344
  return (_jsx(ConfigProvider, { theme: MATCHES_ANY_THEME, children: _jsxs(MatchesAnyWrapper, { ...restOfProps, vertical: true, justify: "space-between", children: [_jsxs(Flex, { style: { width: '100%', height: '100%' }, children: [renderSelectList(), renderSelectedList()] }), _jsxs(Flex, { className: "matches-any__footer", align: "center", justify: "space-between", children: [_jsxs(Flex, { align: "center", gap: 10, children: [_jsx(Button, { type: "primary", disabled: isDisableApply, onClick: onClickApply, children: t(translations.apply.title).toString() }), _jsx(Button, { onClick: () => onCancel(), children: t(translations.cancel.title).toString() })] }), showExtendValue && (_jsx(ExtendValuePopup, { getPopupContainer: trigger => trigger.parentElement || document.body, onApply: onApplyExtendValue, children: _jsx(Button, { icon: _jsx(Icon, { type: "icon-ants-empty-flag" }), children: t(translations.extendValue.title).toString() }) }))] })] }) }));
345
345
  }
346
346
  export function MatchesAnySelect(props) {
347
- const { placeholder = 'Select an item', dropdownStyle, objectName, selectedItems, items, loading, popupClassName, groupSelectProps, renderExtraValues, customItemRenders, popoverProps, listEmptyProps, selectedListEmptyProps, selectedTreeData, onChangeSearch, onChange = () => { }, onLoadMore, ...restProps } = props;
347
+ const { placeholder = 'Select an item', dropdownStyle, objectName, selectedItems, items, loading, popupClassName, groupSelectProps, renderExtraValues, customItemRenders, popoverProps, listEmptyProps, selectedListEmptyProps, selectedTreeData, error, onChangeSearch, onChange = () => { }, onLoadMore, ...restProps } = props;
348
348
  // State
349
349
  const [state, setState] = useState(initialState);
350
350
  // Variables
@@ -372,12 +372,12 @@ export function MatchesAnySelect(props) {
372
372
  },
373
373
  }, overlayStyle: { width: 700 }, overlayInnerStyle: {
374
374
  padding: 0,
375
- }, trigger: ['click'], destroyTooltipOnHide: true, onOpenChange: () => setState(prev => ({ ...prev, isOpenPopover: !isOpenPopover })), zIndex: 1400, ...popoverProps, children: _jsx(Tooltip, { mouseEnterDelay: 0.5, title: `${selectedItems ? selectedItems?.map(item => item.title).join(', ') : ''}`, overlayInnerStyle: {
375
+ }, trigger: ['click'], destroyTooltipOnHide: true, onOpenChange: () => setState(prev => ({ ...prev, isOpenPopover: !isOpenPopover })), zIndex: 1400, ...popoverProps, children: _jsxs(Tooltip, { mouseEnterDelay: 0.5, title: `${selectedItems ? selectedItems?.map(item => item.title).join(', ') : ''}`, overlayInnerStyle: {
376
376
  maxHeight: 300,
377
377
  overflow: 'auto',
378
- }, children: _jsx(Select, { title: "", value: value, placeholder: placeholder, popupMatchSelectWidth: 700, dropdownStyle: {
379
- ...dropdownStyle,
380
- display: 'none',
381
- padding: 0,
382
- }, loading: loading, ...restProps }) }) }));
378
+ }, children: [_jsx(Select, { title: "", value: value, placeholder: placeholder, popupMatchSelectWidth: 700, dropdownStyle: {
379
+ ...dropdownStyle,
380
+ display: 'none',
381
+ padding: 0,
382
+ }, loading: loading, status: props.status || (error ? 'error' : undefined), ...restProps }), !!error && _jsx(Text, { className: 'ant-form-item-explain-error', type: 'danger', children: error })] }) }));
383
383
  }
@@ -52,6 +52,8 @@ export interface MatchesAnySelectProps<TItem = any> extends Omit<SelectProps, 'o
52
52
  selectedListEmptyProps?: EmptyDataProps;
53
53
  /** Search value */
54
54
  searchValue?: string;
55
+ /** Error message */
56
+ error?: string;
55
57
  /** Callback function that is called when the selected items change. */
56
58
  onChange?: (selectedItems: MatchesAnyItem<TItem>[], selectedTreeData?: MatchesAnyItem<TItem>[]) => void;
57
59
  /** Callback function that is called when the search value changes */
@@ -21,14 +21,14 @@ import { acceptablePatternChecking, getCachedRegex, getPersonalizeTagInfo, patte
21
21
  import { EMOJI, PERSONALIZE_PTN, SHORT_LINK, defaultCssVariables, tagifyDefaultProps, } from './constants';
22
22
  const TagifyInput = forwardRef((props, ref) => {
23
23
  // Props
24
- const { initialValue, escapeHTML, status, readonly, disabled, maxLength, maxHeight, placeholder, acceptableTagPattern, mapAttributes, maxPersonalizeTags, name, children, cssTagifyVariables, onTagClick, onChange, } = props;
24
+ const { initialValue, escapeHTML, status, readonly, readonlyTag, disabled, maxLength, maxHeight, minWidth, placeholder, acceptableTagPattern, mapAttributes, maxPersonalizeTags, name, children, cssTagifyVariables, onTagClick, onChange, } = props;
25
25
  // States
26
26
  const [inputTypeDebounce, , setInputTyping] = useDebounce(initialValue, 450);
27
27
  // Refs
28
28
  const inputRef = useRef(null);
29
29
  const tagifyRef = useRef(null);
30
30
  const tagifyWrapperRef = useRef(null);
31
- const placeHolderRef = useRef(null);
31
+ const placeholderRef = useRef(null);
32
32
  // Memoizations
33
33
  const cssVariablesMemoized = useMemo(() => _.assign({}, defaultCssVariables, cssTagifyVariables || {}), [cssTagifyVariables]);
34
34
  // Only run in the first render
@@ -125,12 +125,16 @@ const TagifyInput = forwardRef((props, ref) => {
125
125
  }), [onChange]);
126
126
  // console.log('tagifyRef', tagifyRef);
127
127
  const onTagItemClick = useCallback((event) => {
128
+ event.stopPropagation();
129
+ event.preventDefault();
128
130
  if (event.detail && onTagClick) {
129
- const { tagify } = event.detail;
131
+ const { tagify, tag } = event.detail;
132
+ const readonlyTag = tag.getAttribute('readonly');
130
133
  const { readonly } = tagify.settings;
131
- if (!readonly) {
132
- onTagClick(event.detail);
133
- }
134
+ // Prevent to click on tag if readonly
135
+ if (readonly || (readonlyTag && readonlyTag === 'true'))
136
+ return;
137
+ onTagClick(event.detail);
134
138
  }
135
139
  }, [onTagClick]);
136
140
  const onTagifyTyping = useCallback((event) => {
@@ -159,12 +163,11 @@ const TagifyInput = forwardRef((props, ref) => {
159
163
  const emojiPath = emojiManufacturer(value, collection);
160
164
  visibleTagContent = getEmojiTag({ src: emojiPath, emoji: label, code: value });
161
165
  }
162
- const dataAttrs = new Map();
163
- dataAttrs.set('tag-type', tagData.type);
164
166
  return `
165
167
  <tag
166
168
  contenteditable='false'
167
169
  spellcheck='false'
170
+ readonly="false"
168
171
  tabIndex="${settings.a11y.focusableTags ? 0 : -1}"
169
172
  class="${settings.classNames.tag} ${tagData.class ? tagData.class : ''}"
170
173
  ${tagify.getAttributes(tagData)}
@@ -224,7 +227,7 @@ const TagifyInput = forwardRef((props, ref) => {
224
227
  tag: customizeTag,
225
228
  },
226
229
  mode: 'mix',
227
- placeholder: 'Enter your text...',
230
+ // placeholder: 'Enter your text...',
228
231
  mixMode: {
229
232
  insertAfterTag: '', // Not insert anything after tag
230
233
  },
@@ -269,6 +272,10 @@ const TagifyInput = forwardRef((props, ref) => {
269
272
  event.stopPropagation();
270
273
  if (tagifyRef.current && event.target === tagifyWrapperRef.current) {
271
274
  const { DOM, settings } = tagifyRef.current;
275
+ const { readonly } = settings;
276
+ // not focus if readonly
277
+ if (readonly)
278
+ return;
272
279
  const { classList } = DOM?.scope;
273
280
  const { classNames } = settings;
274
281
  if (!classList.contains(classNames.focus) && DOM.input) {
@@ -294,20 +301,30 @@ const TagifyInput = forwardRef((props, ref) => {
294
301
  };
295
302
  }, [initializeTagify]);
296
303
  // Settings some tagify attributes
297
- useLayoutEffect(() => {
304
+ // Set readonly
305
+ useEffect(() => {
298
306
  if (tagifyRef.current && typeof readonly !== 'undefined') {
299
307
  tagifyRef.current.setReadonly(!!readonly);
300
308
  }
301
309
  }, [readonly]);
310
+ // Set readonly for each tag
311
+ useEffect(() => {
312
+ if (tagifyRef.current && typeof readonlyTag !== 'undefined') {
313
+ const tagElementList = tagifyRef.current.getTagElms();
314
+ tagElementList.forEach((tagElement) => {
315
+ tagElement.setAttribute('readonly', readonlyTag.toString());
316
+ });
317
+ }
318
+ }, [readonlyTag]);
302
319
  // Set disabled
303
- useLayoutEffect(() => {
320
+ useEffect(() => {
304
321
  if (tagifyRef.current && typeof disabled !== 'undefined') {
305
322
  tagifyRef.current.setDisabled(!!disabled);
306
323
  }
307
324
  }, [disabled]);
308
325
  // Set placeholder
309
326
  useLayoutEffect(() => {
310
- if (tagifyRef.current && typeof placeholder !== 'undefined') {
327
+ if (tagifyRef.current && _.isString(placeholder)) {
311
328
  tagifyRef.current.setPlaceholder(placeholder);
312
329
  }
313
330
  }, [placeholder]);
@@ -381,7 +398,7 @@ const TagifyInput = forwardRef((props, ref) => {
381
398
  }
382
399
  }
383
400
  }, [initialValue, mapAttributes, escapeHTML, acceptableTagPattern, makeValidLabelTags]);
384
- return (_jsxs(TagifyWrapper, { ref: tagifyWrapperRef, "$cssTagifyVariables": cssVariablesMemoized, className: "tagify-container", id: "tagify-container", "data-test": "tagify-wrapper", "$status": status, "$maxHeight": maxHeight, onClick: onTagifyWrapperClick, children: [_jsx(TagTextArea, { id: "tagify-textarea", ref: inputRef, name: name, defaultValue: parsedDefaultValue, "data-test": "tagify-input" }), _jsx(WrapperPlaceHolder, { "data-test": "wrapper-placeholder", ref: placeHolderRef, "$isShow": !!children, children: children })] }));
401
+ return (_jsxs(TagifyWrapper, { ref: tagifyWrapperRef, "$cssTagifyVariables": cssVariablesMemoized, className: "tagify-container", id: "tagify-container", "data-test": "tagify-wrapper", "$status": status, "$maxHeight": maxHeight, "$minWidth": minWidth, "$placeholder": placeholder, onClick: onTagifyWrapperClick, children: [_jsx(TagTextArea, { id: "tagify-textarea", ref: inputRef, name: name, defaultValue: parsedDefaultValue, "data-test": "tagify-input" }), _jsx(WrapperPlaceHolder, { "data-test": "wrapper-placeholder", ref: placeholderRef, "$isShow": !!children, children: children })] }));
385
402
  });
386
403
  TagifyInput.defaultProps = tagifyDefaultProps;
387
404
  export default memo(TagifyInput);
@@ -38,8 +38,6 @@ export const DEFAULT_ACCEPT_TAGS = [
38
38
  export const tagifyDefaultProps = {
39
39
  initialValue: '',
40
40
  name: 'tagifyInput',
41
- readonly: false,
42
- disabled: false,
43
41
  maxHeight: 266,
44
42
  placeholder: undefined,
45
43
  acceptableTagPattern: DEFAULT_ACCEPT_TAGS,
@@ -1,3 +1,4 @@
1
+ import { type CSSProperties } from 'react';
1
2
  import type { StatusType, TagifyInputProps } from './types';
2
3
  export declare const WrapperPlaceHolder: import("styled-components").StyledComponent<"div", any, {
3
4
  $isShow?: boolean | undefined;
@@ -6,6 +7,8 @@ export declare const TagifyWrapper: import("styled-components").StyledComponent<
6
7
  $cssTagifyVariables?: TagifyInputProps['cssTagifyVariables'];
7
8
  $status?: StatusType | undefined;
8
9
  $maxHeight?: number | undefined;
10
+ $minWidth?: CSSProperties['minWidth'];
11
+ $placeholder?: string | undefined;
9
12
  }, never>;
10
13
  export declare const TagInput: import("styled-components").StyledComponent<"input", any, {}, never>;
11
14
  export declare const TagTextArea: import("styled-components").StyledComponent<"textarea", any, {}, never>;
@@ -1,5 +1,6 @@
1
1
  // Libraries
2
2
  import styled, { css } from 'styled-components';
3
+ import { isString } from 'lodash';
3
4
  // Constants
4
5
  import { globalToken } from '@antscorp/antsomi-ui/es/constants';
5
6
  import { MIN_H_WRAPPER, TAG_H } from './constants';
@@ -10,6 +11,7 @@ export const WrapperPlaceHolder = styled.div `
10
11
  ? css `
11
12
  display: block;
12
13
  float: right;
14
+ min-height: ${MIN_H_WRAPPER}px;
13
15
  `
14
16
  : css `
15
17
  display: none;
@@ -44,11 +46,26 @@ export const TagifyWrapper = styled.div `
44
46
  .map(([key, value]) => `${key}: ${value};`)
45
47
  .join('\n')}
46
48
 
49
+ display: flex;
50
+ align-items: center;
51
+ justify-content: flex-start;
52
+ min-height: ${MIN_H_WRAPPER}px;
47
53
  float: left;
48
54
  border: none;
49
55
  font-size: var(--input-font-size);
50
56
  background: transparent;
51
57
 
58
+ &__input {
59
+ ${({ $minWidth, $placeholder }) => {
60
+ // Because $placeholder depends on $minWidth to display
61
+ if ($minWidth && !$placeholder) {
62
+ return css `
63
+ min-width: ${isString($minWidth) ? $minWidth : `${$minWidth}px`} !important;
64
+ `;
65
+ }
66
+ }}
67
+ }
68
+
52
69
  &__tag {
53
70
  height: ${TAG_H}px;
54
71
  cursor: pointer;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="yaireo__tagify" />
2
- /// <reference types="react" />
3
2
  import { ClassNameSettings, TagData, TagifySettings } from '@yaireo/tagify';
4
3
  import { EMOJI_COLLECTIONS, PATTERN_CACHE_TYPE, SHORT_LINK_TYPE, TAG_TYPE } from './constants';
4
+ import { type CSSProperties } from 'react';
5
5
  export type MapAttributesProps = Record<string, Record<string, any>>;
6
6
  export type StatusType = 'error' | 'success' | 'warning';
7
7
  /**
@@ -32,6 +32,7 @@ export interface TagifyInputProps {
32
32
  classNames?: ClassNameSettings;
33
33
  placeholder?: TagifySettings['placeholder'];
34
34
  readonly?: TagifySettings['readonly'];
35
+ readonlyTag?: boolean;
35
36
  disabled?: boolean;
36
37
  maxLength?: number;
37
38
  /**
@@ -40,6 +41,7 @@ export interface TagifyInputProps {
40
41
  */
41
42
  maxPersonalizeTags?: TagifySettings['maxTags'];
42
43
  maxHeight?: number;
44
+ minWidth?: CSSProperties['minWidth'];
43
45
  status?: StatusType;
44
46
  /**
45
47
  * Defines acceptable patterns or validation rules for tags.
@@ -71,7 +71,7 @@ export const parseTagStringToTagify = (input, acceptableTagPattern) => {
71
71
  // Append any remaining text after the last match
72
72
  resultParts.push(input.slice(lastIndex));
73
73
  // Combine all parts into the final result string
74
- return resultParts.join('');
74
+ return resultParts.join('').trimEnd();
75
75
  };
76
76
  /**
77
77
  * Validates whether the parsed object contains the required "label" and "value" fields.
@@ -361,18 +361,23 @@ export const getStyledTags = () => {
361
361
  return '';
362
362
  return `
363
363
  &[data-tag-type~='${type}'] {
364
- background: ${getBackgroundColor({ type })};
364
+ background: ${getBackgroundColor({ type })} !important;
365
365
  };
366
366
  `;
367
367
  })
368
368
  .join(' ');
369
369
  return `
370
+ // For case unknown tag
371
+ &[data-tag-type]:not([data-tag-type~=""]) {
372
+ background: ${globalToken?.accent7};
373
+ };
374
+
370
375
  ${backgroundStyles}
371
376
 
372
377
  &[data-tag-type~='${EMOJI}'] {
373
378
  padding: 0;
374
379
  };
375
-
380
+
376
381
  &[data-tag-${TAG_TYPE.SHORT_LINK}-type~='${SHORT_LINK_TYPE.INDIVIDUAL}'] {
377
382
  background: ${getBackgroundColor({
378
383
  type: TAG_TYPE.SHORT_LINK,
@@ -1966,6 +1966,8 @@
1966
1966
  "_WARN_DES_WARN_TOTAL_CONTENT_CREATE": "The number of destination in {{catalogName}} catalog has reached the limit.\nIf you want to create new destination in this catalog, please disable unused destination.",
1967
1967
  "_ACT_WARN_DES_GO_TO_LIST": "Go To Destination List",
1968
1968
  "_TITLE_SELECTED_DES": "Selected Destination",
1969
+ "_TITLE_SERVICE_WORKER": "Service worker",
1970
+ "_TITLE_PATH_TO_SERVICE_WORKER_FILES": "Path to service worker files",
1969
1971
  "_WARN_TITLE_DES_NAME": "Destination Name",
1970
1972
  "_WARN_TITLE_DES_STATUS": "Status",
1971
1973
  "_WARN_TITLE_DES_CREATED_BY": "Created by",
@@ -1968,6 +1968,8 @@ export declare const translationsJson: {
1968
1968
  _WARN_DES_WARN_TOTAL_CONTENT_CREATE: string;
1969
1969
  _ACT_WARN_DES_GO_TO_LIST: string;
1970
1970
  _TITLE_SELECTED_DES: string;
1971
+ _TITLE_SERVICE_WORKER: string;
1972
+ _TITLE_PATH_TO_SERVICE_WORKER_FILES: string;
1971
1973
  _WARN_TITLE_DES_NAME: string;
1972
1974
  _WARN_TITLE_DES_STATUS: string;
1973
1975
  _WARN_TITLE_DES_CREATED_BY: string;
@@ -5320,6 +5322,8 @@ export declare const translationsJson: {
5320
5322
  _WARN_DES_WARN_TOTAL_CONTENT_CREATE: string;
5321
5323
  _ACT_WARN_DES_GO_TO_LIST: string;
5322
5324
  _TITLE_SELECTED_DES: string;
5325
+ _TITLE_SERVICE_WORKER: string;
5326
+ _TITLE_PATH_TO_SERVICE_WORKER_FILES: string;
5323
5327
  _WARN_TITLE_DES_NAME: string;
5324
5328
  _WARN_TITLE_DES_STATUS: string;
5325
5329
  _WARN_TITLE_DES_CREATED_BY: string;
@@ -8218,6 +8222,8 @@ export declare const translationsJson: {
8218
8222
  _WARN_DES_WARN_TOTAL_CONTENT_CREATE: string;
8219
8223
  _ACT_WARN_DES_GO_TO_LIST: string;
8220
8224
  _TITLE_SELECTED_DES: string;
8225
+ _TITLE_SERVICE_WORKER: string;
8226
+ _TITLE_PATH_TO_SERVICE_WORKER_FILES: string;
8221
8227
  _WARN_TITLE_DES_NAME: string;
8222
8228
  _WARN_TITLE_DES_STATUS: string;
8223
8229
  _WARN_TITLE_DES_CREATED_BY: string;
@@ -232,7 +232,7 @@
232
232
  "_BOX_TITL_REMOVE_EVENT_ATTRIBUTE": "イベント属性の削除",
233
233
  "_BOX_TITL_REMOVE_FIELD": "フィールドの削除",
234
234
  "_BOX_TITL_REMOVE_GROUP": "グループの削除",
235
- "_BOX_TITL_REMOVE_IMAGE": "画像を削除",
235
+ "_BOX_TITL_REMOVE_IMAGE": "画像を削除する",
236
236
  "_BOX_TITL_REMOVE_MODEL": "モデルの削除",
237
237
  "_BOX_TITL_REPLACE_FILTER": "フィルターセットを交換する",
238
238
  "_BOX_TITL_SAVE_FILTER": "フィルターセットに名前を付けます",
@@ -1962,6 +1962,8 @@
1962
1962
  "_WARN_DES_WARN_TOTAL_CONTENT_CREATE": "{{catalogName}} カタログ内の宛先の数が制限に達しました。\nこのカタログに新しい宛先を作成する場合は、未使用の宛先を無効にしてください。",
1963
1963
  "_ACT_WARN_DES_GO_TO_LIST": "目的地リストに移動",
1964
1964
  "_TITLE_SELECTED_DES": "選択した目的地",
1965
+ "_TITLE_SERVICE_WORKER": "サービスワーカー",
1966
+ "_TITLE_PATH_TO_SERVICE_WORKER_FILES": "サービスハンドラファイルへのパス",
1965
1967
  "_WARN_TITLE_DES_NAME": "宛先名",
1966
1968
  "_WARN_TITLE_DES_STATUS": "状態",
1967
1969
  "_WARN_TITLE_DES_CREATED_BY": "作成者",
@@ -2281,13 +2283,13 @@
2281
2283
  "_BLCK_OTP_EVENT": "イベント",
2282
2284
  "_BLCK_OTP_EVENT_SOURCE": "イベントソース",
2283
2285
  "_CHANNEL_CUSTOM_API": "カスタムチャンネル",
2284
- "_CHANNEL_DES_WEB": "ユーザーの行動や好みに基づいて Web サイトのコンテンツを動的に調整し、エンゲージメント率とコンバージョン率を最適化します。",
2286
+ "_CHANNEL_DES_WEB": "ユーザーの行動や好みに基づいて Web サイトのコンテンツを動的に調整し、エンゲージメントとコンバージョン率を最適化します。",
2285
2287
  "_CHANNEL_DES_WEB_NOTI": "リアルタイムのメッセージを送信して Web サイト訪問者を引きつけ、タイムリーなインタラクションとコンバージョンを促進します",
2286
2288
  "_CHANNEL_DES_APP_NOTI": "即時通知をモバイル アプリのみに送信し、即時のエンゲージメントとインタラクションを促進します",
2287
2289
  "_CHANNEL_DES_EMAIL": "パーソナライズされたメッセージをユーザーの受信箱に直接配信し、ターゲットを絞ったコンテンツでのエンゲージメントとコンバージョンを促進します。",
2288
- "_CHANNEL_DES_SMS": "直接的かつ即時のコミュニケーションを提供し、ユーザーのモバイル デバイスに到達して即時のエンゲージメントとインタラクションを実現します。",
2290
+ "_CHANNEL_DES_SMS": "直接的かつ即時的なコミュニケーションを提供し、ユーザーのモバイルデバイスに到達して即時のエンゲージメントとインタラクションを実現します。",
2289
2291
  "_CHANNEL_DES_SMART_INB": "プッシュ通知のコンテンツを一元管理して管理とエンゲージメントを合理化",
2290
- "_CHANNEL_DES_FB_MESS": "直接的な会話型のコミュニケーションを提供し、使い慣れたソーシャル メディア プラットフォームでユーザーを惹きつけます",
2292
+ "_CHANNEL_DES_FB_MESS": "直接的で会話的なコミュニケーションを提供し、使い慣れたソーシャル メディア プラットフォームでユーザーを引き付ける",
2291
2293
  "_CHANNEL_DES_VIBER": "ダイレクト メッセージング機能を提供し、安全で使い慣れたソーシャル メディア プラットフォームでユーザーを魅了します。",
2292
2294
  "_CHANNEL_DES_ZALO": "OA や ZNS などのサービス用のさまざまなテンプレートを使用したダイレクト メッセージング機能を提供します",
2293
2295
  "_CHANNEL_DES_WHATSAPP": "関連性のあるメッセージを顧客の WhatsApp アカウントに直接配信し、より強力な関係を促進し、エンゲージメントを高めます",
@@ -2421,7 +2423,7 @@
2421
2423
  "_OBJ_DES_WEB_1": "没入型のブラウジング体験に合わせてコンテンツを調整することで、セッションが長くなり、エンゲージメント指標が向上します",
2422
2424
  "_OBJ_DES_WEB_2": "より多くのコンバージョンと売上を促進するために、ユーザーの興味やニーズに合った製品やコンテンツをユーザーに提示します。",
2423
2425
  "_OBJ_DES_WEB_3": "視聴者とのより深いつながりを育み、ロイヤルティと維持率を高めます",
2424
- "_OBJ_DES_WEB_4": "それぞれの訪問者のインタラクションの価値を最大化するために、独自のパーソナライズされたオファーを提供します",
2426
+ "_OBJ_DES_WEB_4": "それぞれの訪問者のインタラクションの価値を最大化するために、ユニークでパーソナライズされたオファーを提供します",
2425
2427
  "_OBJ_DES_WEB_5": "ユーザーインタラクションを分析してコンテンツを洗練し、戦略をセグメント化し、Web サイトのレイアウトを最適化します。",
2426
2428
  "_OBJ_DES_WEB_NOTI_1": "タイムリーな更新、プロモーション、アラートでユーザーに即座に連絡します",
2427
2429
  "_OBJ_DES_WEB_NOTI_2": "新しいコンテンツ、製品リリース、または期間限定オファーをユーザーに通知することで、Web サイトへのトラフィックを促進します",
@@ -2429,13 +2431,13 @@
2429
2431
  "_OBJ_DES_WEB_NOTI_4": "ユーザーの興味や好みに合わせた関連性の高い有益な通知を送信することで、ユーザーの関心とリピートを維持します。",
2430
2432
  "_OBJ_DES_WEB_NOTI_5": "アカウント、トランザクション更新などの関連情報をユーザーのブラウザに直接配信します。",
2431
2433
  "_OBJ_DES_APP_NOTI_1": "タイムリーな更新、プロモーション、アラートでユーザーに即座に連絡します",
2432
- "_OBJ_DES_APP_NOTI_2": "価値のある通知でユーザーを誘導することで、ユーザーがアプリを積極的に操作するよう促します。",
2434
+ "_OBJ_DES_APP_NOTI_2": "貴重な通知でユーザーを誘導することで、ユーザーがアプリを積極的に操作するよう促します。",
2433
2435
  "_OBJ_DES_APP_NOTI_3": "パーソナライズされたオファーやリマインダーを配信してユーザーの行動を促す",
2434
2436
  "_OBJ_DES_APP_NOTI_4": "ユーザーの興味や好みに合わせた関連性の高い有益な通知を送信することで、ユーザーの関心を維持し、さらに戻ってくるようにします。",
2435
2437
  "_OBJ_DES_APP_NOTI_5": "アカウント、トランザクション更新などの関連情報をユーザーのブラウザに直接配信します。",
2436
2438
  "_OBJ_DES_EMAIL_1": "魅力的なコンテンツと電子メールの行動喚起 (CTA) でユーザーを Web サイトに誘導します",
2437
2439
  "_OBJ_DES_EMAIL_2": "貴重なコンテンツやインセンティブを提供してサインアップや問い合わせを促進することで見込み顧客を獲得します。",
2438
- "_OBJ_DES_EMAIL_3": "ターゲットを絞ったコンテンツと自動化された電子メール シーケンスを使用して、セールス ファネルを通じてリードを誘導します。",
2440
+ "_OBJ_DES_EMAIL_3": "ターゲットを絞ったコンテンツと自動化された電子メール シーケンスを使用して、セールスファネルを通じてリードを誘導します。",
2439
2441
  "_OBJ_DES_EMAIL_4": "関連するアップデート、オファー、限定コンテンツで顧客の関心とロイヤルティを維持します",
2440
2442
  "_OBJ_DES_EMAIL_5": "製品やサービスを紹介して売上とコンバージョンを促進する",
2441
2443
  "_OBJ_DES_EMAIL_6": "一貫性があり、有益で魅力的なコンテンツを通じてブランド アイデンティティと価値を強化する",
@@ -2445,12 +2447,12 @@
2445
2447
  "_OBJ_DES_SMS_4": "予定や予約のリマインダーや確認を送信してノーショーを減らします",
2446
2448
  "_OBJ_DES_SMS_5": "注文確認、出荷通知、アカウント更新をリアルタイムで提供します",
2447
2449
  "_OBJ_DES_SMART_INB_1": "通知を集約し、ユーザーがメッセージを 1 か所で簡単に表示および管理できるようにします。",
2448
- "_OBJ_DES_SMART_INB_2": "プラットフォーム間で通知にアクセスし、操作するためのシームレスで直感的なインターフェイスを提供します。",
2449
- "_OBJ_DES_SMART_INB_3": "通知によるタイムリーな応答と対話を促進し、ユーザー エンゲージメントと満足度を最大化します。",
2450
+ "_OBJ_DES_SMART_INB_2": "プラットフォーム間で通知にアクセスし、通知を操作するためのシームレスで直感的なインターフェイスを提供します。",
2451
+ "_OBJ_DES_SMART_INB_3": "通知によるタイムリーな応答と対話を促進し、ユーザー エンゲージメントと満足度を最大化します",
2450
2452
  "_OBJ_DES_SMART_INB_4": "Web プッシュやアプリ プッシュなどのさまざまなチャネルからの通知を統合し、ユーザーとの一貫性のある一貫したコミュニケーションを確保します。",
2451
2453
  "_OBJ_DES_FB_MESS_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
2452
2454
  "_OBJ_DES_FB_MESS_2": "鮮やかなメッセージ テンプレートを使用してタイムリーで関連性のある更新を提供します",
2453
- "_OBJ_DES_FB_MESS_3": "タイムリーかつ効率的な顧客サポートを提供し、メッセンジャー内で直接問い合わせに対応し、問題を解決します。",
2455
+ "_OBJ_DES_FB_MESS_3": "タイムリーで効率的な顧客サポートを提供し、メッセンジャー内で直接問い合わせに対応し、問題を解決します。",
2454
2456
  "_OBJ_DES_FB_MESS_4": "予定や予約のリマインダーや確認を送信してノーショーを減らします",
2455
2457
  "_OBJ_DES_FB_MESS_5": "アンケートやインタラクティブなテンプレートを通じて、ユーザーから貴重な洞察とフィードバックを直接収集します",
2456
2458
  "_OBJ_DES_VIBER_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
@@ -2461,37 +2463,37 @@
2461
2463
  "_OBJ_DES_ZALO_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
2462
2464
  "_OBJ_DES_ZALO_2": "インタラクティブな要素を使用して販売目標到達プロセスをガイドし、リードと見込み顧客を育成します。",
2463
2465
  "_OBJ_DES_ZALO_3": "タイムリーなコミュニケーションを確保するために、注文確認、配送の最新情報、または予約のリマインダーを送信します。",
2464
- "_OBJ_DES_ZALO_4": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
2466
+ "_OBJ_DES_ZALO_4": "重要なお知らせ、アップデート、ニュースをユーザーと共有して最新情報を入手します。",
2465
2467
  "_OBJ_DES_ZALO_5": "一貫性があり、有益で魅力的なコンテンツを通じてブランド アイデンティティと価値を強化する",
2466
2468
  "_OBJ_DES_WHATSAPP_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
2467
2469
  "_OBJ_DES_WHATSAPP_2": "鮮やかなメッセージ テンプレートを使用してタイムリーで関連性のある更新を提供します",
2468
2470
  "_OBJ_DES_WHATSAPP_3": "インタラクティブな要素を使用して販売目標到達プロセスをガイドし、リードと見込み顧客を育成します。",
2469
2471
  "_OBJ_DES_WHATSAPP_4": "予定や予約のリマインダーや確認を送信してノーショーを減らします",
2470
- "_OBJ_DES_WHATSAPP_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
2472
+ "_OBJ_DES_WHATSAPP_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して最新情報を入手します。",
2471
2473
  "_OBJ_DES_TELEGRAM_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
2472
2474
  "_OBJ_DES_TELEGRAM_2": "鮮やかなメッセージ テンプレートを使用してタイムリーで関連性のある更新を提供します",
2473
- "_OBJ_DES_TELEGRAM_3": "インタラクティブなテンプレート要素を使用して販売目標到達プロセスをガイドし、リードと見込み客を育成します。",
2475
+ "_OBJ_DES_TELEGRAM_3": "インタラクティブなテンプレート要素を使用してセールスファネルを誘導し、リードと見込み顧客を育成します。",
2474
2476
  "_OBJ_DES_TELEGRAM_4": "予定や予約のリマインダーや確認を送信してノーショーを減らします",
2475
- "_OBJ_DES_TELEGRAM_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
2477
+ "_OBJ_DES_TELEGRAM_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して最新情報を入手します。",
2476
2478
  "_OBJ_DES_LINE_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
2477
2479
  "_OBJ_DES_LINE_2": "Line のリッチ メニューを利用して、メッセージ内のインタラクティブなオプションとナビゲーションをユーザーに提供します",
2478
- "_OBJ_DES_LINE_3": "インタラクティブなテンプレート要素を使用して販売目標到達プロセスをガイドし、リードと見込み客を育成します。",
2480
+ "_OBJ_DES_LINE_3": "インタラクティブなテンプレート要素を使用してセールスファネルを誘導し、リードと見込み顧客を育成します。",
2479
2481
  "_OBJ_DES_LINE_4": "予定や予約のリマインダーや確認を送信してノーショーを減らします",
2480
- "_OBJ_DES_LINE_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
2482
+ "_OBJ_DES_LINE_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して最新情報を入手します。",
2481
2483
  "_WEBPER_TEMP_OBJ_DES_POP_1": "潜在顧客からの情報、または既存顧客からのレビューやフィードバックを収集してデータを充実させます",
2482
2484
  "_WEBPER_TEMP_OBJ_DES_POP_2": "限定セール、期間限定プロモーション、見逃せないおすすめ商品を紹介することで、収益を飛躍的に高めます。",
2483
2485
  "_WEBPER_TEMP_OBJ_DES_POP_3": "追加購入を促すために補完的な製品やアップグレードを提案する",
2484
- "_WEBPER_TEMP_OBJ_DES_POP_4": "躊躇する訪問者をさらに滞在させ、さらに探索したくなる魅力的なオファーで出口をチャンスに変えます。",
2486
+ "_WEBPER_TEMP_OBJ_DES_POP_4": "ためらう訪問者をさらに滞在させ、さらに探索したくなる魅力的なオファーで出口をチャンスに変えます。",
2485
2487
  "_WEBPER_TEMP_OBJ_DES_POP_5": "重要なニュースやイベントを視聴者に直接ブロードキャストして最新情報を提供します",
2486
2488
  "_WEBPER_TEMP_OBJ_DES_POP_6": "Cookie の使用についてユーザーの同意を得ることで、視聴者の安心とプライバシー規制の遵守を確保します。",
2487
2489
  "_WEBPER_TEMP_OBJ_DES_POP_7": "CDP 365 からのデータを利用して、パーソナライズされた製品の推奨事項を表示し、各訪問者の興味や過去のやり取りに合わせて調整できます。",
2488
- "_WEBPER_TEMP_OBJ_DES_POP_8": "ターゲットを絞ったオファー、インセンティブ、またはリマインダーを使用して、躊躇している買い物客に購入を完了させるよう促します。",
2490
+ "_WEBPER_TEMP_OBJ_DES_POP_8": "ターゲットを絞ったオファー、インセンティブ、またはリマインダーを使用して、躊躇する買い物客を購入を完了させるよう促します。",
2489
2491
  "_WEBPER_TEMP_OBJ_DES_POP_9": "ソーシャル メディア プラットフォームでコミュニティを拡大し、ブランドの存在感を高めます",
2490
2492
  "_WEBPER_TEMP_OBJ_DES_POP_10": "参加者と興奮を促進する注目を集めるイベント プロモーションで成功への舞台を整えます。",
2491
- "_WEBPER_TEMP_OBJ_DES_POP_11": "魅力的な運ゲーやインタラクティブなコンテンツで興奮を呼び起こし、エンゲージメントを高め、ユーザーを何度もリピートさせ続ける",
2493
+ "_WEBPER_TEMP_OBJ_DES_POP_11": "魅力的な運ゲーやインタラクティブなコンテンツで興奮を呼び起こし、エンゲージメントを高め、ユーザーを何度もリピートさせます。",
2492
2494
  "_WEBPER_TEMP_OBJ_DES_POP_12": "新しいユーザーを支援し、提供された回答に基づいてパーソナライズされた推奨事項を提供します",
2493
2495
  "_WEBPER_TEMP_OBJ_DES_POP_13": "直接リンクまたは QR コードを介してモバイル アプリをダウンロードしてスキャンするようユーザーに奨励します。",
2494
- "_WEBPER_TEMP_OBJ_DES_FLOAT_1": "リード獲得フォームを含めて、訪問者にニュースレター、プロモーション、その他のマーケティング資料への登録を促します。",
2496
+ "_WEBPER_TEMP_OBJ_DES_FLOAT_1": "リード獲得フォームを含めて、訪問者にニュースレター、プロモーション、またはその他のマーケティング資料への登録を促します。",
2495
2497
  "_WEBPER_TEMP_OBJ_DES_FLOAT_2": "カウントダウンタイマー付きの特別セールや限定プロモーションで視聴者の目を引き、さらに探索するよう促します。",
2496
2498
  "_WEBPER_TEMP_OBJ_DES_FLOAT_3": "訪問者がスクロールしても表示され続けるバナーを使用して、重要なニュースを確実に目に留まり、更新情報を前面と中央に保ちます。",
2497
2499
  "_WEBPER_TEMP_OBJ_DES_FLOAT_4": "あなたのブランドに対するフレンドリーな意見を確立するために、初めて Web サイトを閲覧する訪問者を歓迎します。",
@@ -2511,14 +2513,14 @@
2511
2513
  "_WEBPER_TEMP_OBJ_DES_INLINE_5": "顧客のレビュー、評価、お客様の声などの社会的証明要素を紹介して、購入の意思決定に影響を与える信頼と信用を構築します。",
2512
2514
  "_WEBPER_TEMP_OBJ_DES_INLINE_6": "顧客の生活に価値を付加し、単なる購入を超えてブランドと関わるよう促すために、詳細な情報と関連チュートリアルを提供します。",
2513
2515
  "_WEBPER_TEMP_OBJ_DES_SLIDEIN_1": "購読フォーム、登録プロンプト、またはゲート付きコンテンツのオファーを通じて、電子メール アドレスや連絡先の詳細などのユーザー情報を取得します。",
2514
- "_WEBPER_TEMP_OBJ_DES_SLIDEIN_2": "直前の取引やコンテンツの推奨を提供して、ユーザーに滞在してさらに探索するよう促します。",
2516
+ "_WEBPER_TEMP_OBJ_DES_SLIDEIN_2": "直前の取引やコンテンツの推奨事項を提供して、ユーザーに滞在してさらに探索するよう促します。",
2515
2517
  "_WEBPER_TEMP_OBJ_DES_SLIDEIN_3": "今後のコンテンツ、製品の発売、イベントを予告して、視聴者の期待と興奮を高め、Web サイトへのトラフィックを促進します。",
2516
- "_WEBPER_TEMP_OBJ_DES_SLIDEIN_4": "アンケート、投票、またはフィードバック フォームを組み込んで、貴重な洞察を収集し、交流を促進します。",
2518
+ "_WEBPER_TEMP_OBJ_DES_SLIDEIN_4": "アンケート、投票、フィードバック フォームを組み込んで貴重な洞察を収集し、交流を促進します。",
2517
2519
  "_WEBPER_TEMP_OBJ_DES_SLIDEIN_5": "顧客のレビュー、評価、お客様の声などの社会的証明要素を紹介して、購入の意思決定に影響を与える信頼と信用を構築します。",
2518
- "_WEBPER_TEMP_OBJ_DES_SLIDEIN_6": "期間限定のオファー、カウントダウンタイマー、またはフラッシュセール通知を提示することで、緊迫感を醸成し、即時行動を促します。",
2519
- "_WEBPER_TEMP_OBJ_DES_SLIDEIN_7": "ターゲットを絞ったオファー、インセンティブ、またはリマインダーを使用して、躊躇している買い物客に購入を完了させるよう促します。",
2520
+ "_WEBPER_TEMP_OBJ_DES_SLIDEIN_6": "期間限定のオファー、カウントダウンタイマー、フラッシュセール通知を提示することで、緊迫感を醸成し、即時行動を促します。",
2521
+ "_WEBPER_TEMP_OBJ_DES_SLIDEIN_7": "ターゲットを絞ったオファー、インセンティブ、またはリマインダーを使用して、躊躇する買い物客を購入を完了させるよう促します。",
2520
2522
  "_WEBPER_TEMP_OBJ_DES_SLIDEIN_8": "顧客からの問い合わせの必要性を減らし、ショッピング体験の全体的な満足度を向上させるために、顧客が遭遇する可能性のある一般的な懸念事項や問題のトラブルシューティングに対処する",
2521
- "_WEBPER_TEMP_OBJ_DES_SLIDEIN_9": "登録や出欠確認のオプションを提供して、ウェビナー、ワークショップ、イベントにユーザーを招待し、参加とエンゲージメントを促進します。",
2523
+ "_WEBPER_TEMP_OBJ_DES_SLIDEIN_9": "登録や出欠確認のオプションを提供して、ウェビナー、ワークショップ、イベントに参加するようユーザーを招待し、参加とエンゲージメントを促進します。",
2522
2524
  "_LINE_MESS_OBJ_DES_1": "各ユーザーの好み、行動、過去のやり取りに基づいてメッセージをカスタマイズする",
2523
2525
  "_LINE_MESS_OBJ_DES_2": "画像、ビデオ、ステッカーなどのマルチメディア コンテンツでメッセージを充実させます",
2524
2526
  "_LINE_MESS_OBJ_DES_3": "ユーザーの参加を促すために、クリック可能なボタンなどのインタラクティブな要素を組み込む",
@@ -2531,7 +2533,7 @@
2531
2533
  "_LINE_RM_DEFAULT_OBJ_DES_3": "今後のイベント、ウェビナー、またはワークショップを宣伝する",
2532
2534
  "_LINE_RM_DEFAULT_OBJ_DES_4": "ユーザーを注目の記事、ビデオ、またはブログ投稿に誘導するオプションを提供します",
2533
2535
  "_LINE_RM_DEFAULT_OBJ_DES_5": "他のソーシャル メディア プラットフォームでコミュニティを拡大することで、ブランドの存在感を高めます。",
2534
- "_LINE_RM_DEFAULT_OBJ_DES_6": "メニューの選択に基づいて、さまざまなインタラクションを通じてユーザーをガイドします。\n\n たとえば、「カスタマー サポート」のメニュー項目を選択すると、「技術サポート」や「請求に関する問い合わせ」など、必要なサポートの種類を選択するオプションがユーザーに表示される場合があります。",
2536
+ "_LINE_RM_DEFAULT_OBJ_DES_6": "メニューの選択に基づいて、さまざまな操作を通じてユーザーをガイドします。\n\n たとえば、「カスタマー サポート」のメニュー項目を選択すると、「技術サポート」や「請求に関する問い合わせ」など、必要なサポートの種類を選択するオプションがユーザーに表示される場合があります。",
2535
2537
  "_LINE_RM_DEFAULT_OBJ_DES_7": "購読フォームや登録プロンプトを備えたLDPにユーザーを誘導して、ユーザー情報を取得します。",
2536
2538
  "_LINE_RM_SINGLE_OBJ_DES_1": "各ユーザーの好み、行動、Line チャネルとの過去のやり取りに基づいて、各ユーザーに表示されるメニュー オプションとコンテンツをカスタマイズします。",
2537
2539
  "_LINE_RM_SINGLE_OBJ_DES_2": "各ユーザーの興味、閲覧履歴、人口統計に合わせたパーソナライズされた推奨事項や提案を提供し、関連性とエンゲージメントを強化します。",
@@ -1966,6 +1966,8 @@
1966
1966
  "_WARN_DES_WARN_TOTAL_CONTENT_CREATE": "Số lượng đích đến trong danh mục {{catalogName}} đã đạt giới hạn.\nNếu bạn muốn tạo đích đến mới trong danh mục này, vui lòng vô hiệu hóa đích đến không sử dụng.",
1967
1967
  "_ACT_WARN_DES_GO_TO_LIST": "Đến danh sách đích đến",
1968
1968
  "_TITLE_SELECTED_DES": "Đích đến đã chọn",
1969
+ "_TITLE_SERVICE_WORKER": "Trình xử lý dịch vụ",
1970
+ "_TITLE_PATH_TO_SERVICE_WORKER_FILES": "Đường dẫn đến các tệp trình xử lý dịch vụ",
1969
1971
  "_WARN_TITLE_DES_NAME": "Tên đích đến",
1970
1972
  "_WARN_TITLE_DES_STATUS": "Trạng thái",
1971
1973
  "_WARN_TITLE_DES_CREATED_BY": "Được tạo bởi",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antscorp/antsomi-ui",
3
- "version": "1.3.5-beta.796",
3
+ "version": "1.3.5-beta.798",
4
4
  "description": "An enterprise-class UI design language and React UI library.",
5
5
  "sideEffects": [
6
6
  "dist/*",