@antscorp/antsomi-ui 2.0.49 → 2.0.50
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/atoms/Icon/index.d.ts +0 -1
- package/es/components/atoms/Switch/Switch.d.ts +13 -3
- package/es/components/atoms/Switch/Switch.js +8 -3
- package/es/components/atoms/Switch/index.d.ts +1 -2
- package/es/components/atoms/Switch/styled.d.ts +2 -0
- package/es/components/atoms/Switch/styled.js +60 -0
- package/es/components/molecules/TagifyInput/TagifyInput.js +47 -6
- package/es/components/molecules/TagifyInput/constants.d.ts +13 -2
- package/es/components/molecules/TagifyInput/constants.js +13 -2
- package/es/components/molecules/TagifyInput/patternHandlers.d.ts +8 -0
- package/es/components/molecules/TagifyInput/patternHandlers.js +141 -3
- package/es/components/molecules/TagifyInput/types.d.ts +1 -1
- package/es/components/molecules/TagifyInput/utils.d.ts +1 -0
- package/es/components/molecules/TagifyInput/utils.js +7 -1
- package/es/components/molecules/TagifyInput/utils.style.js +29 -7
- package/es/components/organism/LeftMenu/types/index.d.ts +0 -1
- package/es/constants/theme.js +1 -0
- package/es/locales/ja/google-sheet.json +26 -26
- package/es/providers/ConfigProvider/GlobalStyle.js +22 -20
- package/es/types/richMenu.d.ts +0 -1
- package/package.json +9 -9
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type SwitchProps as AntdSwitchProps } from 'antd';
|
|
3
|
+
import { DataType } from 'csstype';
|
|
4
|
+
declare module 'react' {
|
|
5
|
+
interface CSSProperties {
|
|
6
|
+
'--switch-color'?: DataType.Color;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
type SwitchProps = AntdSwitchProps & {
|
|
10
|
+
color?: string;
|
|
11
|
+
};
|
|
12
|
+
declare const Switch: React.FC<SwitchProps>;
|
|
13
|
+
export { Switch, type SwitchProps };
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { THEME } from '@antscorp/antsomi-ui/es/constants';
|
|
3
|
+
import { StyledSwitch } from './styled';
|
|
4
|
+
const Switch = props => {
|
|
5
|
+
const { color = THEME.token?.colorPrimary || '#005eb8', ...rest } = props;
|
|
6
|
+
return _jsx(StyledSwitch, { style: { '--switch-color': color }, ...rest });
|
|
7
|
+
};
|
|
8
|
+
export { Switch };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { Switch } from './Switch';
|
|
2
|
-
export type { SwitchProps } from 'antd';
|
|
1
|
+
export { Switch, type SwitchProps } from './Switch';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { THEME } from '@antscorp/antsomi-ui/es/constants';
|
|
2
|
+
import { Switch } from 'antd';
|
|
3
|
+
import styled from 'styled-components';
|
|
4
|
+
export const StyledSwitch = styled(Switch) `
|
|
5
|
+
&.antsomi-switch {
|
|
6
|
+
border: 2px solid var(--switch-color);
|
|
7
|
+
|
|
8
|
+
&.antsomi-switch-checked {
|
|
9
|
+
background: var(--switch-color);
|
|
10
|
+
|
|
11
|
+
> .antsomi-switch-handle {
|
|
12
|
+
&::before {
|
|
13
|
+
background-color: ${THEME.token?.bw0};
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.antsomi-switch-inner {
|
|
18
|
+
padding-inline-start: 4px;
|
|
19
|
+
padding-inline-end: 18px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&:hover:not(.antsomi-switch-disabled) {
|
|
23
|
+
background-color: var(--switch-color);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&.antsomi-switch-disabled {
|
|
28
|
+
background: ${THEME.token?.bw0};
|
|
29
|
+
border-color: ${THEME.token?.colorTextPlaceholder};
|
|
30
|
+
|
|
31
|
+
> .antsomi-switch-handle {
|
|
32
|
+
&::before {
|
|
33
|
+
background-color: ${THEME.token?.colorTextPlaceholder};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&.antsomi-switch-checked {
|
|
38
|
+
background: ${THEME.token?.colorTextPlaceholder};
|
|
39
|
+
border-color: ${THEME.token?.colorTextPlaceholder};
|
|
40
|
+
|
|
41
|
+
> .antsomi-switch-handle {
|
|
42
|
+
&::before {
|
|
43
|
+
background-color: ${THEME.token?.bw0};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.antsomi-switch-handle {
|
|
50
|
+
&::before {
|
|
51
|
+
background-color: var(--switch-color);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.antsomi-switch-inner {
|
|
56
|
+
padding-inline-start: 4px;
|
|
57
|
+
padding-inline-end: 18px;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
@@ -16,10 +16,10 @@ import '@yaireo/tagify/dist/tagify.css';
|
|
|
16
16
|
// Styled
|
|
17
17
|
import { TagTextArea, TagifyWrapper, WrapperPlaceHolder } from './styled';
|
|
18
18
|
// Utils
|
|
19
|
-
import { parseTagStringToTagify, convertInputStringToOriginal, emojiManufacturer, getEmojiTag, isPersonalizeTagType, generateTagContent, unescapeString, hasLineBreak, selectRange, isTagClickable, findURLInTextNodes, getAttributesString, isAnchorNodeChildOfElement, } from './utils';
|
|
20
|
-
import { acceptablePatternChecking, detectURLRegex, getCachedRegex, getPersonalizeTagInfo, patternHandlers, } from './patternHandlers';
|
|
19
|
+
import { parseTagStringToTagify, convertInputStringToOriginal, emojiManufacturer, getEmojiTag, isPersonalizeTagType, generateTagContent, unescapeString, hasLineBreak, selectRange, isTagClickable, findURLInTextNodes, getAttributesString, isAnchorNodeChildOfElement, isShortLinkTagType, } from './utils';
|
|
20
|
+
import { acceptablePatternChecking, detectURLRegex, getCachedRegex, getPersonalizeTagInfo, getShortLinkTagInfo, patternHandlers, } from './patternHandlers';
|
|
21
21
|
// Constants
|
|
22
|
-
import { DETECT_LINK, EMOJI, FORCE_SHOW_TOOLTIP, INVALID_TAG, MESSAGE_TAG, NO_VIEW_TAG, PERSONALIZE_PTN, PROMOTION_CODE, READONLY_TAG, REMOVED_TAG, SHORT_LINK, SHORT_LINK_PTN, defaultCssVariables, tagifyDefaultProps, } from './constants';
|
|
22
|
+
import { DETECT_LINK, EMOJI, FORCE_SHOW_TOOLTIP, INVALID_TAG, MESSAGE_TAG, NO_VIEW_TAG, PERSONALIZE_PTN, PROMOTION_CODE, READONLY_TAG, REMOVED_TAG, SHORT_LINK, SHORT_LINK_PTN, SHORT_LINK_V2, defaultCssVariables, tagifyDefaultProps, } from './constants';
|
|
23
23
|
const TagifyInput = forwardRef((props, ref) => {
|
|
24
24
|
// Props
|
|
25
25
|
const { initialValue, escapeHTML, status, readonly, readonlyTag, realtime, disabled, maxLength, maxHeight, minWidth, placeholder, minWidthPlaceholder, isSingleLineText, acceptableTagPattern, mapAttributes, mapErrorAttributes, maxPersonalizeTags, name, children, cssTagifyVariables, onTagClick, onChange, } = props;
|
|
@@ -355,7 +355,7 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
355
355
|
if (newTag && tagifyRef.current) {
|
|
356
356
|
const { settings, value: currentTags } = tagifyRef.current;
|
|
357
357
|
const { readonly, maxTags } = settings;
|
|
358
|
-
const currentPersonalizeTags = currentTags.filter(tag => ![EMOJI, SHORT_LINK].includes(tag.type));
|
|
358
|
+
const currentPersonalizeTags = currentTags.filter(tag => ![EMOJI, SHORT_LINK, SHORT_LINK_V2].includes(tag.type));
|
|
359
359
|
const currentPersonalizeTagsLength = currentPersonalizeTags.length;
|
|
360
360
|
// Check readonly
|
|
361
361
|
if (readonly)
|
|
@@ -371,7 +371,7 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
371
371
|
* Validate the max limit before add new tag
|
|
372
372
|
* For emoji and short link, it will be passed
|
|
373
373
|
*/
|
|
374
|
-
if (![EMOJI, SHORT_LINK].includes(type) &&
|
|
374
|
+
if (![EMOJI, SHORT_LINK, SHORT_LINK_V2].includes(type) &&
|
|
375
375
|
currentPersonalizeTagsLength >= maxTags)
|
|
376
376
|
return;
|
|
377
377
|
// Create new tag
|
|
@@ -525,6 +525,8 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
525
525
|
if (tagData) {
|
|
526
526
|
const { type, value } = tagData;
|
|
527
527
|
const isPersonalTag = isPersonalizeTagType(type);
|
|
528
|
+
const isShortLinkTag = isShortLinkTagType(type);
|
|
529
|
+
/** Case Personalize */
|
|
528
530
|
if (isPersonalTag && value) {
|
|
529
531
|
const isAccepted = acceptablePatternChecking(acceptableType, acceptableTagPattern);
|
|
530
532
|
// No need to continue if pattern is not accepted
|
|
@@ -587,6 +589,45 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
587
589
|
}
|
|
588
590
|
}
|
|
589
591
|
}
|
|
592
|
+
/** Case Short Link V2 Tag */
|
|
593
|
+
if (isShortLinkTag) {
|
|
594
|
+
const isAccepted = acceptablePatternChecking(SHORT_LINK_PTN, acceptableTagPattern);
|
|
595
|
+
if (!isAccepted)
|
|
596
|
+
return;
|
|
597
|
+
const { url, shortener, label } = tagData;
|
|
598
|
+
const { label: tagLabel, isValid, message, type: tagType, } = getShortLinkTagInfo({
|
|
599
|
+
type,
|
|
600
|
+
label,
|
|
601
|
+
shortener,
|
|
602
|
+
url,
|
|
603
|
+
mapAttributes: attributes,
|
|
604
|
+
mapErrorAttributes: errorAttributes,
|
|
605
|
+
});
|
|
606
|
+
const tagTextNode = tagifyRef.current?.getTagTextNode(tagElement);
|
|
607
|
+
/*
|
|
608
|
+
* Just only update to the correct text of the tag
|
|
609
|
+
* NOTE: Do not actually affect raw data
|
|
610
|
+
*/
|
|
611
|
+
if (tagTextNode) {
|
|
612
|
+
tagTextNode.textContent = tagLabel;
|
|
613
|
+
// Clear all previous attributes
|
|
614
|
+
tagElement.removeAttribute(REMOVED_TAG);
|
|
615
|
+
tagElement.removeAttribute(NO_VIEW_TAG);
|
|
616
|
+
tagElement.removeAttribute(INVALID_TAG);
|
|
617
|
+
tagElement.removeAttribute(READONLY_TAG);
|
|
618
|
+
tagElement.removeAttribute(MESSAGE_TAG);
|
|
619
|
+
// In case promotion pool has something wrong
|
|
620
|
+
if (!isValid && message) {
|
|
621
|
+
tagElement.setAttribute(REMOVED_TAG, 'true');
|
|
622
|
+
tagElement.setAttribute(MESSAGE_TAG, message);
|
|
623
|
+
tagifyRef.current?.getSetTagData(tagElement, {
|
|
624
|
+
...tagData,
|
|
625
|
+
status: 'error',
|
|
626
|
+
statusMsg: message,
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
}
|
|
590
631
|
}
|
|
591
632
|
});
|
|
592
633
|
setTooltipRefresher(prev => prev + 1);
|
|
@@ -777,7 +818,7 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
777
818
|
detectReplaceURLToTag();
|
|
778
819
|
}, [detectReplaceURLToTag]);
|
|
779
820
|
// CAVEAT: Some case need to "FORCE" sync the original values to Tagify instance
|
|
780
|
-
|
|
821
|
+
useDeepCompareEffect(() => {
|
|
781
822
|
if (tagifyRef.current) {
|
|
782
823
|
const { DOM, settings } = tagifyRef.current;
|
|
783
824
|
const { empty } = settings.classNames;
|
|
@@ -33,11 +33,13 @@ export declare const PATTERN_CACHE_TYPE: {
|
|
|
33
33
|
readonly SHORT_LINK_PTN: "shortlink_pattern";
|
|
34
34
|
readonly SHORT_LINK_INDIVIDUAL_PTN: "shortlink_individual_pattern";
|
|
35
35
|
readonly SHORT_LINK_GENERAL_PTN: "shortlink_general_pattern";
|
|
36
|
+
readonly SHORT_LINK_V2_INDIVIDUAL_PTN: "shortlink_v2_individual_pattern";
|
|
37
|
+
readonly SHORT_LINK_V2_GENERAL_PTN: "shortlink_v2_general_pattern";
|
|
36
38
|
readonly LINE_EMOJI_PTN: "line_emoji_pattern";
|
|
37
39
|
readonly PERSONALIZE_PTN: "personalize_pattern";
|
|
38
40
|
readonly VIBER_EMOJI_PTN: "viber_emoji_pattern";
|
|
39
41
|
};
|
|
40
|
-
export declare const SHORT_LINK_PTN: "shortlink_pattern", SHORT_LINK_INDIVIDUAL_PTN: "shortlink_individual_pattern", SHORT_LINK_GENERAL_PTN: "shortlink_general_pattern", LINE_EMOJI_PTN: "line_emoji_pattern", PERSONALIZE_PTN: "personalize_pattern", VIBER_EMOJI_PTN: "viber_emoji_pattern";
|
|
42
|
+
export declare const SHORT_LINK_PTN: "shortlink_pattern", SHORT_LINK_INDIVIDUAL_PTN: "shortlink_individual_pattern", SHORT_LINK_GENERAL_PTN: "shortlink_general_pattern", SHORT_LINK_V2_INDIVIDUAL_PTN: "shortlink_v2_individual_pattern", SHORT_LINK_V2_GENERAL_PTN: "shortlink_v2_general_pattern", LINE_EMOJI_PTN: "line_emoji_pattern", PERSONALIZE_PTN: "personalize_pattern", VIBER_EMOJI_PTN: "viber_emoji_pattern";
|
|
41
43
|
export declare const DEFAULT_ACCEPT_TAGS: ("shortlink_pattern" | "line_emoji_pattern" | "personalize_pattern" | "viber_emoji_pattern")[];
|
|
42
44
|
export declare const tagifyDefaultProps: TagifyInputProps;
|
|
43
45
|
export declare const TAG_TYPE: {
|
|
@@ -52,14 +54,19 @@ export declare const TAG_TYPE: {
|
|
|
52
54
|
readonly CUSTOM_FN: "custom";
|
|
53
55
|
readonly EMOJI: "emoji";
|
|
54
56
|
readonly SHORT_LINK: "shortlink";
|
|
57
|
+
readonly SHORT_LINK_V2: "shortlink_v2";
|
|
55
58
|
readonly DETECT_LINK: "detect_link";
|
|
56
59
|
readonly CONTENT_SOURCE_GROUP: "groups";
|
|
57
60
|
};
|
|
58
|
-
export declare const CUSTOMER: "customer", VISITOR: "visitor", EVENT: "event", JOURNEY: "story", CAMPAIGN: "campaign", VARIANT: "variant", PROMOTION_CODE: "promotion_code", CUSTOM_FN: "custom", EMOJI: "emoji", DETECT_LINK: "detect_link", SHORT_LINK: "shortlink", OBJECT_WIDGET: "objectWidget", CONTENT_SOURCE_GROUP: "groups";
|
|
61
|
+
export declare const CUSTOMER: "customer", VISITOR: "visitor", EVENT: "event", JOURNEY: "story", CAMPAIGN: "campaign", VARIANT: "variant", PROMOTION_CODE: "promotion_code", CUSTOM_FN: "custom", EMOJI: "emoji", DETECT_LINK: "detect_link", SHORT_LINK: "shortlink", SHORT_LINK_V2: "shortlink_v2", OBJECT_WIDGET: "objectWidget", CONTENT_SOURCE_GROUP: "groups";
|
|
59
62
|
export declare const SHORT_LINK_TYPE: {
|
|
60
63
|
readonly INDIVIDUAL: "shortlink";
|
|
61
64
|
readonly GENERAL: "shortlink_static";
|
|
62
65
|
};
|
|
66
|
+
export declare const SHORT_LINK_TYPE_V2: {
|
|
67
|
+
readonly INDIVIDUAL: "shortlink_v2";
|
|
68
|
+
readonly GENERAL: "shortlink_v2_static";
|
|
69
|
+
};
|
|
63
70
|
export declare const TAG_COLOR: {
|
|
64
71
|
readonly customer: string | undefined;
|
|
65
72
|
readonly detect_link: "#e8feca";
|
|
@@ -67,6 +74,10 @@ export declare const TAG_COLOR: {
|
|
|
67
74
|
readonly shortlink: "#CAFEDD";
|
|
68
75
|
readonly shortlink_static: "#EFE2D9";
|
|
69
76
|
};
|
|
77
|
+
readonly shortlink_v2: {
|
|
78
|
+
readonly shortlink: "#CAFEDD";
|
|
79
|
+
readonly shortlink_static: "#EFE2D9";
|
|
80
|
+
};
|
|
70
81
|
readonly visitor: "#e8feca";
|
|
71
82
|
readonly event: "#fecaca";
|
|
72
83
|
readonly story: "#FAFAAF";
|
|
@@ -34,11 +34,13 @@ export const PATTERN_CACHE_TYPE = {
|
|
|
34
34
|
SHORT_LINK_PTN: 'shortlink_pattern',
|
|
35
35
|
SHORT_LINK_INDIVIDUAL_PTN: 'shortlink_individual_pattern',
|
|
36
36
|
SHORT_LINK_GENERAL_PTN: 'shortlink_general_pattern',
|
|
37
|
+
SHORT_LINK_V2_INDIVIDUAL_PTN: 'shortlink_v2_individual_pattern',
|
|
38
|
+
SHORT_LINK_V2_GENERAL_PTN: 'shortlink_v2_general_pattern',
|
|
37
39
|
LINE_EMOJI_PTN: 'line_emoji_pattern',
|
|
38
40
|
PERSONALIZE_PTN: 'personalize_pattern',
|
|
39
41
|
VIBER_EMOJI_PTN: 'viber_emoji_pattern',
|
|
40
42
|
};
|
|
41
|
-
export const { SHORT_LINK_PTN, SHORT_LINK_INDIVIDUAL_PTN, SHORT_LINK_GENERAL_PTN, LINE_EMOJI_PTN, PERSONALIZE_PTN, VIBER_EMOJI_PTN, } = PATTERN_CACHE_TYPE;
|
|
43
|
+
export const { SHORT_LINK_PTN, SHORT_LINK_INDIVIDUAL_PTN, SHORT_LINK_GENERAL_PTN, SHORT_LINK_V2_INDIVIDUAL_PTN, SHORT_LINK_V2_GENERAL_PTN, LINE_EMOJI_PTN, PERSONALIZE_PTN, VIBER_EMOJI_PTN, } = PATTERN_CACHE_TYPE;
|
|
42
44
|
export const DEFAULT_ACCEPT_TAGS = [
|
|
43
45
|
SHORT_LINK_PTN,
|
|
44
46
|
PERSONALIZE_PTN,
|
|
@@ -67,14 +69,19 @@ export const TAG_TYPE = {
|
|
|
67
69
|
CUSTOM_FN: 'custom',
|
|
68
70
|
EMOJI: 'emoji',
|
|
69
71
|
SHORT_LINK: 'shortlink',
|
|
72
|
+
SHORT_LINK_V2: 'shortlink_v2',
|
|
70
73
|
DETECT_LINK: 'detect_link',
|
|
71
74
|
CONTENT_SOURCE_GROUP: 'groups',
|
|
72
75
|
};
|
|
73
|
-
export const { CUSTOMER, VISITOR, EVENT, JOURNEY, CAMPAIGN, VARIANT, PROMOTION_CODE, CUSTOM_FN, EMOJI, DETECT_LINK, SHORT_LINK, OBJECT_WIDGET, CONTENT_SOURCE_GROUP, } = TAG_TYPE;
|
|
76
|
+
export const { CUSTOMER, VISITOR, EVENT, JOURNEY, CAMPAIGN, VARIANT, PROMOTION_CODE, CUSTOM_FN, EMOJI, DETECT_LINK, SHORT_LINK, SHORT_LINK_V2, OBJECT_WIDGET, CONTENT_SOURCE_GROUP, } = TAG_TYPE;
|
|
74
77
|
export const SHORT_LINK_TYPE = {
|
|
75
78
|
INDIVIDUAL: 'shortlink', // Individual link
|
|
76
79
|
GENERAL: 'shortlink_static', // General link
|
|
77
80
|
};
|
|
81
|
+
export const SHORT_LINK_TYPE_V2 = {
|
|
82
|
+
INDIVIDUAL: 'shortlink_v2', // Individual link
|
|
83
|
+
GENERAL: 'shortlink_v2_static', // General link
|
|
84
|
+
};
|
|
78
85
|
export const TAG_COLOR = {
|
|
79
86
|
[CUSTOMER]: globalToken?.blue2,
|
|
80
87
|
[DETECT_LINK]: '#e8feca',
|
|
@@ -82,6 +89,10 @@ export const TAG_COLOR = {
|
|
|
82
89
|
[SHORT_LINK_TYPE.INDIVIDUAL]: '#CAFEDD',
|
|
83
90
|
[SHORT_LINK_TYPE.GENERAL]: '#EFE2D9',
|
|
84
91
|
},
|
|
92
|
+
[SHORT_LINK_V2]: {
|
|
93
|
+
[SHORT_LINK_TYPE.INDIVIDUAL]: '#CAFEDD',
|
|
94
|
+
[SHORT_LINK_TYPE.GENERAL]: '#EFE2D9',
|
|
95
|
+
},
|
|
85
96
|
[VISITOR]: '#e8feca',
|
|
86
97
|
[EVENT]: '#fecaca',
|
|
87
98
|
[JOURNEY]: '#FAFAAF',
|
|
@@ -19,5 +19,13 @@ export declare const detectURLRegex: RegExp;
|
|
|
19
19
|
export declare const tagRegexStringPattern = "\\[\\[({.*?})\\]\\]";
|
|
20
20
|
export declare function acceptablePatternChecking(pattern: AcceptablePattern, acceptablePattern: Array<AcceptablePattern>): boolean;
|
|
21
21
|
export declare const getPersonalizeTagInfo: (originalTag: string, mapAttributes?: MapAttributesProps, mapErrorAttributes?: MapAttributesProps) => TagInfo;
|
|
22
|
+
export declare const getShortLinkTagInfo: (params: {
|
|
23
|
+
type: string;
|
|
24
|
+
label: string;
|
|
25
|
+
url: string;
|
|
26
|
+
shortener: string;
|
|
27
|
+
mapAttributes?: MapAttributesProps;
|
|
28
|
+
mapErrorAttributes?: MapAttributesProps;
|
|
29
|
+
}) => TagInfo;
|
|
22
30
|
export declare const patternHandlers: Record<PatterTagName, PatternHandlerWrapper>;
|
|
23
31
|
export {};
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
/* eslint-disable no-console */
|
|
3
3
|
// Libraries
|
|
4
4
|
import { has } from 'lodash';
|
|
5
|
+
import { translate, translations } from '@antscorp/antsomi-locales';
|
|
5
6
|
// Utils
|
|
6
7
|
import { errorWrapper } from './errorWrapper';
|
|
7
8
|
import { isViberEmoji } from './iconsViber';
|
|
8
9
|
import { random } from '@antscorp/antsomi-ui/es/utils';
|
|
9
10
|
// Constants
|
|
10
|
-
import { CONTENT_SOURCE_GROUP, EMOJI, EMOJI_COLLECTIONS, LINE_EMOJI_PTN, PERSONALIZE_PTN, PREFIX_PATTERN_LINE_MESSAGE, PROMOTION_CODE, SHORT_LINK, SHORT_LINK_GENERAL_PTN, SHORT_LINK_INDIVIDUAL_PTN, SHORT_LINK_PTN, SHORT_LINK_TYPE, VIBER_EMOJI_PTN, } from './constants';
|
|
11
|
+
import { CONTENT_SOURCE_GROUP, EMOJI, EMOJI_COLLECTIONS, LINE_EMOJI_PTN, PERSONALIZE_PTN, PREFIX_PATTERN_LINE_MESSAGE, PROMOTION_CODE, SHORT_LINK, SHORT_LINK_GENERAL_PTN, SHORT_LINK_INDIVIDUAL_PTN, SHORT_LINK_PTN, SHORT_LINK_TYPE, SHORT_LINK_V2, SHORT_LINK_V2_GENERAL_PTN, SHORT_LINK_V2_INDIVIDUAL_PTN, VIBER_EMOJI_PTN, } from './constants';
|
|
11
12
|
/*
|
|
12
13
|
* Usage to cache compiled regular expressions:
|
|
13
14
|
* const regex = getCachedRegex(pattern, flags);
|
|
@@ -254,12 +255,12 @@ export const getPersonalizeTagInfo = (originalTag, mapAttributes, mapErrorAttrib
|
|
|
254
255
|
// Case Pool removed
|
|
255
256
|
if (!isExist) {
|
|
256
257
|
isRemoved = !isExist;
|
|
257
|
-
message = 'This pool is removed';
|
|
258
|
+
message = translate(translations._PERSONALIZATION_TAG_ERR_REMOVED, 'This pool is removed');
|
|
258
259
|
}
|
|
259
260
|
else if (!isView) {
|
|
260
261
|
// Case No permission
|
|
261
262
|
hasViewPermission = isView;
|
|
262
|
-
message = 'You do not have permission on this pool';
|
|
263
|
+
message = translate(translations._PERMISSION_ERR_POOL, 'You do not have permission on this pool');
|
|
263
264
|
}
|
|
264
265
|
}
|
|
265
266
|
}
|
|
@@ -284,6 +285,49 @@ export const getPersonalizeTagInfo = (originalTag, mapAttributes, mapErrorAttrib
|
|
|
284
285
|
return { label: originalTag, type: originalTag, isValid: false, isRemoved: false };
|
|
285
286
|
}
|
|
286
287
|
};
|
|
288
|
+
export const getShortLinkTagInfo = (params) => {
|
|
289
|
+
const { type, label, url, shortener, mapAttributes, mapErrorAttributes } = params;
|
|
290
|
+
try {
|
|
291
|
+
let [isValid, message] = [true, ''];
|
|
292
|
+
switch (type) {
|
|
293
|
+
case SHORT_LINK_V2:
|
|
294
|
+
if (mapAttributes && mapAttributes[type]) {
|
|
295
|
+
const isExistShortLink = has(mapAttributes[type], shortener);
|
|
296
|
+
if (!isExistShortLink) {
|
|
297
|
+
isValid = false;
|
|
298
|
+
message = translate(translations?._PER_TAG_LINK_ERR || '', 'This shortener is inactivated or removed');
|
|
299
|
+
if (mapErrorAttributes &&
|
|
300
|
+
mapErrorAttributes?.[type] &&
|
|
301
|
+
mapErrorAttributes?.[type]?.[shortener]) {
|
|
302
|
+
const { isView = true, isExist = true } = mapErrorAttributes[type][shortener] || {};
|
|
303
|
+
if (!isExist || !isView) {
|
|
304
|
+
isValid = false;
|
|
305
|
+
message = translate(translations?._PER_TAG_LINK_ERR || '', 'This shortener is inactivated or removed');
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
break;
|
|
311
|
+
default:
|
|
312
|
+
break;
|
|
313
|
+
}
|
|
314
|
+
return {
|
|
315
|
+
type,
|
|
316
|
+
message,
|
|
317
|
+
isValid,
|
|
318
|
+
label,
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
console.error('Error in getTagLabel', error);
|
|
323
|
+
return {
|
|
324
|
+
label,
|
|
325
|
+
type,
|
|
326
|
+
isValid: false,
|
|
327
|
+
message: translate('', 'This shortener is inactivated or removed'),
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
};
|
|
287
331
|
const createTagPattern = (tagInfo) => `[[${JSON.stringify(tagInfo)}]]`;
|
|
288
332
|
const generateShortlinkLabel = (params) => {
|
|
289
333
|
const { type } = params;
|
|
@@ -294,6 +338,12 @@ const generateShortlinkLabel = (params) => {
|
|
|
294
338
|
case SHORT_LINK_TYPE.GENERAL: {
|
|
295
339
|
return 'General Shortlink';
|
|
296
340
|
}
|
|
341
|
+
// case SHORT_LINK_TYPE_V2.INDIVIDUAL: {
|
|
342
|
+
// return 'Individual Shortlink V2';
|
|
343
|
+
// }
|
|
344
|
+
// case SHORT_LINK_TYPE_V2.GENERAL: {
|
|
345
|
+
// return 'General Shortlink V2';
|
|
346
|
+
// }
|
|
297
347
|
default: {
|
|
298
348
|
const randomId = random(5);
|
|
299
349
|
return `https://ants.ly/${randomId}`;
|
|
@@ -457,6 +507,81 @@ const handleViberPattern = match => {
|
|
|
457
507
|
const tag = createTagPattern(tagData);
|
|
458
508
|
return { isValid, tag, tagData };
|
|
459
509
|
};
|
|
510
|
+
/*
|
|
511
|
+
* Function to handle #{shortlink_v2(...)} pattern
|
|
512
|
+
*
|
|
513
|
+
*/
|
|
514
|
+
const handleShortlinkV2IndividualPattern = match => {
|
|
515
|
+
const [fullMatch, type, shortener, url = ''] = match;
|
|
516
|
+
const label = generateShortlinkLabel({ type: SHORT_LINK_TYPE.INDIVIDUAL });
|
|
517
|
+
const urlForValidate = url?.replace(new RegExp(PERSONALIZE_PTN_PATTERN, 'g'), 'personalize_pattern');
|
|
518
|
+
const isValid = isValidUrl(urlForValidate, {
|
|
519
|
+
protocols: ['https:'],
|
|
520
|
+
requireTld: false,
|
|
521
|
+
allowFragment: true,
|
|
522
|
+
requireFragment: false,
|
|
523
|
+
allowNumericTld: true,
|
|
524
|
+
allowUnderscores: true,
|
|
525
|
+
allowTrailingDot: true,
|
|
526
|
+
allowIp: true,
|
|
527
|
+
});
|
|
528
|
+
// Validate the URL inside the shortlink pattern
|
|
529
|
+
if (!isValid) {
|
|
530
|
+
console.error(`Invalid URL detected in shortlink individual: Full match: ${fullMatch} - URL: ${url} - Validate URL: ${urlForValidate}`);
|
|
531
|
+
return {
|
|
532
|
+
isValid,
|
|
533
|
+
tag: '[[Invalid URL]]',
|
|
534
|
+
tagData: undefined,
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
const tagData = {
|
|
538
|
+
label,
|
|
539
|
+
type: SHORT_LINK_V2,
|
|
540
|
+
shortlinkType: SHORT_LINK_TYPE.INDIVIDUAL,
|
|
541
|
+
value: fullMatch,
|
|
542
|
+
shortener,
|
|
543
|
+
url,
|
|
544
|
+
};
|
|
545
|
+
const tag = createTagPattern(tagData);
|
|
546
|
+
return { isValid, tag, tagData };
|
|
547
|
+
};
|
|
548
|
+
/*
|
|
549
|
+
* Function to handle #{shortlink_v2_static(...)} pattern
|
|
550
|
+
*
|
|
551
|
+
*/
|
|
552
|
+
const handleShortlinkV2GeneralPattern = match => {
|
|
553
|
+
const [fullMatch, type, shortener, url] = match;
|
|
554
|
+
const label = generateShortlinkLabel({ type: SHORT_LINK_TYPE.GENERAL });
|
|
555
|
+
const isValid = isValidUrl(url, {
|
|
556
|
+
protocols: ['https:'],
|
|
557
|
+
requireTld: false,
|
|
558
|
+
allowFragment: true,
|
|
559
|
+
requireFragment: false,
|
|
560
|
+
allowNumericTld: true,
|
|
561
|
+
allowUnderscores: true,
|
|
562
|
+
allowTrailingDot: true,
|
|
563
|
+
allowIp: true,
|
|
564
|
+
});
|
|
565
|
+
// Validate the URL inside the shortlink general pattern
|
|
566
|
+
if (!isValid) {
|
|
567
|
+
console.error(`Invalid URL detected in shortlink general: fullMatch:: ${fullMatch}`);
|
|
568
|
+
return {
|
|
569
|
+
isValid,
|
|
570
|
+
tag: '[[Invalid URL]]',
|
|
571
|
+
tagData: undefined,
|
|
572
|
+
};
|
|
573
|
+
}
|
|
574
|
+
const tagData = {
|
|
575
|
+
label,
|
|
576
|
+
type: SHORT_LINK_V2,
|
|
577
|
+
shortlinkType: SHORT_LINK_TYPE.GENERAL,
|
|
578
|
+
value: fullMatch,
|
|
579
|
+
shortener,
|
|
580
|
+
url,
|
|
581
|
+
};
|
|
582
|
+
const tag = createTagPattern(tagData);
|
|
583
|
+
return { isValid, tag, tagData };
|
|
584
|
+
};
|
|
460
585
|
// Map of regex patterns to their respective wrapped handlers
|
|
461
586
|
export const patternHandlers = {
|
|
462
587
|
/*
|
|
@@ -477,6 +602,19 @@ export const patternHandlers = {
|
|
|
477
602
|
acceptablePattern: SHORT_LINK_PTN,
|
|
478
603
|
handler: errorWrapper(handleShortlinkGeneralPattern),
|
|
479
604
|
},
|
|
605
|
+
[SHORT_LINK_V2_INDIVIDUAL_PTN]: {
|
|
606
|
+
pattern: '#\\{(shortlink_v2)\\(([^|]+)\\|\\s*([^)]+)\\)\\}',
|
|
607
|
+
// pattern: '#\\{shortlink_v2\\([^()]+?\\)\\}(?!_static)',
|
|
608
|
+
name: SHORT_LINK_V2_INDIVIDUAL_PTN, // Used to cache the regex, please keep the name unique for each pattern
|
|
609
|
+
acceptablePattern: SHORT_LINK_PTN,
|
|
610
|
+
handler: errorWrapper(handleShortlinkV2IndividualPattern),
|
|
611
|
+
},
|
|
612
|
+
[SHORT_LINK_V2_GENERAL_PTN]: {
|
|
613
|
+
pattern: '#\\{(shortlink_static_v2)\\(([^|]+)\\|\\s*([^)]+)\\)\\}',
|
|
614
|
+
name: SHORT_LINK_V2_GENERAL_PTN, // Used to cache the regex, please keep the name unique for each pattern
|
|
615
|
+
acceptablePattern: SHORT_LINK_PTN,
|
|
616
|
+
handler: errorWrapper(handleShortlinkV2GeneralPattern),
|
|
617
|
+
},
|
|
480
618
|
/*
|
|
481
619
|
* NOTE: Line pattern with strict boundaries to ensure it matches only the intended format.
|
|
482
620
|
*/
|
|
@@ -149,7 +149,7 @@ export interface TagDataEmoji extends Omit<TagDataText, 'type'> {
|
|
|
149
149
|
}
|
|
150
150
|
export interface TagDataShortLink extends Omit<TagDataText, 'type'> {
|
|
151
151
|
value: string;
|
|
152
|
-
type: Extract<TagType, 'shortlink'>;
|
|
152
|
+
type: Extract<TagType, 'shortlink' | 'shortlink_v2'>;
|
|
153
153
|
shortlinkType: ShortLinkType;
|
|
154
154
|
}
|
|
155
155
|
export type TagDataCustomize = TagDataEmoji | TagDataText | TagDataShortLink;
|
|
@@ -46,6 +46,7 @@ export declare const getImageSourceViberEmoji: (fileName?: string) => any;
|
|
|
46
46
|
export declare const emojiManufacturer: (text: string, collectionType: EmojiCollection) => string[];
|
|
47
47
|
export declare const getEmojiTag: ({ src, emoji, code }: EmojiTag) => string;
|
|
48
48
|
export declare const isPersonalizeTagType: (type: TagType) => boolean;
|
|
49
|
+
export declare const isShortLinkTagType: (type: TagType) => boolean;
|
|
49
50
|
export declare const generateTagContent: (params: {
|
|
50
51
|
tagData: TagDataCustomize;
|
|
51
52
|
content: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Libraries
|
|
2
2
|
import stringReplaceToArray from 'string-replace-to-array';
|
|
3
3
|
// Constants
|
|
4
|
-
import { EMOJI_COLLECTIONS, PREFIX_PATTERN_LINE_MESSAGE, READONLY_TAG, TAG_TYPE, } from './constants';
|
|
4
|
+
import { EMOJI_COLLECTIONS, PREFIX_PATTERN_LINE_MESSAGE, READONLY_TAG, SHORT_LINK_V2, TAG_TYPE, } from './constants';
|
|
5
5
|
import { iconsViber } from './iconsViber';
|
|
6
6
|
// Utils
|
|
7
7
|
import { acceptablePatternChecking, detectURLRegex, getCachedRegex, patternHandlers, tagRegexStringPattern, } from './patternHandlers';
|
|
@@ -401,6 +401,7 @@ export const isPersonalizeTagType = (type) => [
|
|
|
401
401
|
CUSTOM_FN,
|
|
402
402
|
CONTENT_SOURCE_GROUP,
|
|
403
403
|
].includes(type);
|
|
404
|
+
export const isShortLinkTagType = (type) => [SHORT_LINK_V2].includes(type);
|
|
404
405
|
export const generateTagContent = (params) => {
|
|
405
406
|
const { tagData, content } = params;
|
|
406
407
|
let dataAttrsString = '';
|
|
@@ -409,6 +410,11 @@ export const generateTagContent = (params) => {
|
|
|
409
410
|
const { shortlinkType } = tagData;
|
|
410
411
|
dataAttrs.set(`tag-${TAG_TYPE.SHORT_LINK}-type`, shortlinkType);
|
|
411
412
|
}
|
|
413
|
+
/** SHORT_LINK_V2 */
|
|
414
|
+
if (tagData.type === TAG_TYPE.SHORT_LINK_V2) {
|
|
415
|
+
const { shortlinkType } = tagData;
|
|
416
|
+
dataAttrs.set(`tag-${TAG_TYPE.SHORT_LINK_V2}-type`, shortlinkType);
|
|
417
|
+
}
|
|
412
418
|
dataAttrs.forEach((value, key) => {
|
|
413
419
|
dataAttrsString = dataAttrsString.concat(` data-${key}="${value}"`);
|
|
414
420
|
});
|
|
@@ -3,7 +3,7 @@ import { css } from 'styled-components';
|
|
|
3
3
|
import { isString } from 'lodash';
|
|
4
4
|
// Constants
|
|
5
5
|
import { globalToken } from '@antscorp/antsomi-ui/es/constants';
|
|
6
|
-
import { DETECT_LINK, EMOJI, INVALID_TAG, MIN_H_WRAPPER, NO_VIEW_TAG, READONLY_TAG, REMOVED_TAG, SHORT_LINK, SHORT_LINK_TYPE, TAG_COLOR, TAG_H, TAG_TYPE, } from './constants';
|
|
6
|
+
import { DETECT_LINK, EMOJI, INVALID_TAG, MIN_H_WRAPPER, NO_VIEW_TAG, READONLY_TAG, REMOVED_TAG, SHORT_LINK, SHORT_LINK_TYPE, SHORT_LINK_V2, TAG_COLOR, TAG_H, TAG_TYPE, } from './constants';
|
|
7
7
|
export const getTagifyStyled = ({ $maxHeight, $tagifyFullWidth }) => css `
|
|
8
8
|
${$maxHeight &&
|
|
9
9
|
css `
|
|
@@ -80,6 +80,12 @@ export const getStyledTags = () => {
|
|
|
80
80
|
break;
|
|
81
81
|
return TAG_COLOR[SHORT_LINK][shortlinkType];
|
|
82
82
|
}
|
|
83
|
+
case TAG_TYPE.SHORT_LINK_V2: {
|
|
84
|
+
const { shortlinkType } = tag;
|
|
85
|
+
if (!shortlinkType)
|
|
86
|
+
break;
|
|
87
|
+
return TAG_COLOR[SHORT_LINK_V2][shortlinkType];
|
|
88
|
+
}
|
|
83
89
|
default: {
|
|
84
90
|
if (!type)
|
|
85
91
|
return 'white';
|
|
@@ -131,6 +137,22 @@ export const getStyledTags = () => {
|
|
|
131
137
|
})};
|
|
132
138
|
};
|
|
133
139
|
}
|
|
140
|
+
|
|
141
|
+
&[data-tag-type~='${TAG_TYPE.SHORT_LINK_V2}'] {
|
|
142
|
+
&[data-tag-${TAG_TYPE.SHORT_LINK_V2}-type~='${SHORT_LINK_TYPE.INDIVIDUAL}'] {
|
|
143
|
+
background: ${getBackgroundColor({
|
|
144
|
+
type: TAG_TYPE.SHORT_LINK_V2,
|
|
145
|
+
shortlinkType: SHORT_LINK_TYPE.INDIVIDUAL,
|
|
146
|
+
})};
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
&[data-tag-${TAG_TYPE.SHORT_LINK_V2}-type~='${SHORT_LINK_TYPE.GENERAL}'] {
|
|
150
|
+
background: ${getBackgroundColor({
|
|
151
|
+
type: TAG_TYPE.SHORT_LINK_V2,
|
|
152
|
+
shortlinkType: SHORT_LINK_TYPE.GENERAL,
|
|
153
|
+
})};
|
|
154
|
+
};
|
|
155
|
+
}
|
|
134
156
|
`;
|
|
135
157
|
};
|
|
136
158
|
export const getTagifyTagStyled = (_wrapperProps) => css `
|
|
@@ -161,8 +183,8 @@ export const getTagifyTagStyled = (_wrapperProps) => css `
|
|
|
161
183
|
}
|
|
162
184
|
}
|
|
163
185
|
}
|
|
164
|
-
> div[data-tag-type
|
|
165
|
-
background-color: white;
|
|
186
|
+
> div[data-tag-type] {
|
|
187
|
+
background-color: white !important;
|
|
166
188
|
border: 1px solid red;
|
|
167
189
|
}
|
|
168
190
|
`}
|
|
@@ -190,8 +212,8 @@ export const getTagifyTagStyled = (_wrapperProps) => css `
|
|
|
190
212
|
}
|
|
191
213
|
}
|
|
192
214
|
}
|
|
193
|
-
> div[data-tag-type
|
|
194
|
-
background-color: white;
|
|
215
|
+
> div[data-tag-type] {
|
|
216
|
+
background-color: white !important;
|
|
195
217
|
border: 1px solid red;
|
|
196
218
|
}
|
|
197
219
|
`}
|
|
@@ -220,8 +242,8 @@ export const getTagifyTagStyled = (_wrapperProps) => css `
|
|
|
220
242
|
}
|
|
221
243
|
}
|
|
222
244
|
}
|
|
223
|
-
> div[data-tag-type
|
|
224
|
-
background-color: white;
|
|
245
|
+
> div[data-tag-type] {
|
|
246
|
+
background-color: white !important;
|
|
225
247
|
border: 1px solid red;
|
|
226
248
|
}
|
|
227
249
|
`}
|
package/es/constants/theme.js
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"_ACT_COPY_TO_CLIPBOARD": "クリップボードにコピー",
|
|
48
48
|
"_ACT_CREATE": "作成する",
|
|
49
49
|
"_ACT_CREATE_ASSIGN_ROLE": "役割の作成と割り当て",
|
|
50
|
-
"_ACT_CREATE_NEW_EVENT_ACTION": "
|
|
50
|
+
"_ACT_CREATE_NEW_EVENT_ACTION": "新しいイベントアクションを作成する",
|
|
51
51
|
"_ACT_CREATE_NEW_EVENT_CATEGORY": "新しいイベント カテゴリを作成する",
|
|
52
52
|
"_ACT_CREATE_NEW_MODEL": "新しいモデルを作成する",
|
|
53
53
|
"_ACT_CUSTOMER_SEGMENT": "顧客セグメント",
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"_ACT_TABLE_DETAIL": "テーブルの詳細",
|
|
129
129
|
"_ACT_UNCHECK_ALL": "すべてのチェックを外します",
|
|
130
130
|
"_ACT_UPDATE": "アップデート",
|
|
131
|
-
"_ACT_UPDATE_END_DATE": "
|
|
131
|
+
"_ACT_UPDATE_END_DATE": "終了日の更新",
|
|
132
132
|
"_ACT_UPLOAD": "アップロード",
|
|
133
133
|
"_ACT_VARIANT_PRIORITY": "バリアントの優先順位",
|
|
134
134
|
"_ACT_VIEW_ALL": "すべて見る",
|
|
@@ -418,17 +418,17 @@
|
|
|
418
418
|
"_EVENT_CLICK_WEB_PUSH": "{{customer_name}} さんが Journey {{journey_name}} からのウェブ プッシュ通知をクリックしました",
|
|
419
419
|
"_EVENT_CLICK_ZALO_CHAT": "{{customer_name}} さんが Journey {{journey_name}} からの Zalo メッセージをクリックしました",
|
|
420
420
|
"_EVENT_DES_ADD_TO_CART_PRODUCT": "{{customer_name}} さんが商品 {{product_name}} をショッピング カートに追加しました",
|
|
421
|
-
"_EVENT_DES_BROWSING_PRODUCT_LIST_FILTER": "
|
|
421
|
+
"_EVENT_DES_BROWSING_PRODUCT_LIST_FILTER": "商品をフィルタリングした後に返された結果を {{customer_name}} が閲覧しました",
|
|
422
422
|
"_EVENT_DES_BROWSING_PRODUCT_SEARCH": "{{customer_name}} さんがキーワード {{keyword}} の検索から返された商品リストを閲覧しました",
|
|
423
423
|
"_EVENT_DES_CAILL_IN_CALL": "{{customer_name}} がカスタマー サービスに電話しました",
|
|
424
424
|
"_EVENT_DES_CALL_OUT_CALL": "{{customer_name}} がカスタマー サービスから電話を受けました",
|
|
425
425
|
"_EVENT_DES_CANCEL_ORDER": "{{customer_name}} が注文 {{order_id}} をキャンセルしました",
|
|
426
|
-
"_EVENT_DES_CHAT_CONVERSATION": "{{customer_name}}
|
|
426
|
+
"_EVENT_DES_CHAT_CONVERSATION": "{{customer_name}} が {{channel_name}} 経由でカスタマー サービスとチャットしました",
|
|
427
427
|
"_EVENT_DES_CHECKOUT_CART_PRODUCT": "{{customer_name}} が注文プロセスを開始しました (トランザクションが作成されました)",
|
|
428
428
|
"_EVENT_DES_CLICK_ADVERTISING": "{{customer_name}} さんがキャンペーン {{campaign_name}} をクリックしました",
|
|
429
429
|
"_EVENT_DES_CLICK_EMAIL_ADVERTISING": "{{customer_name}} が広告 {{advertising_name}} のメールをクリックしました",
|
|
430
430
|
"_EVENT_DES_CLICK_PRODUCT": "{{customer_name}} さんが商品 {{product_name}} をクリックしました",
|
|
431
|
-
"_EVENT_DES_CLICK_TRACKING_ADVERTISING": "{{customer_name}}
|
|
431
|
+
"_EVENT_DES_CLICK_TRACKING_ADVERTISING": "{{customer_name}} がトラッキング広告 {{advertising_name}} をクリックしました",
|
|
432
432
|
"_EVENT_DES_IDENTIFY_USER": "匿名訪問者プロファイル {{user_id}} は、この顧客プロファイルに関連付けられていました。",
|
|
433
433
|
"_EVENT_DES_IMPRESSION_ADVERTISING": "キャンペーン {{campaign_name}} は {{customer_name}} に送信されました",
|
|
434
434
|
"_EVENT_DES_PURCHASE_TRANSACTION": "{{customer_name}} が、{{num_of_products}} 個の製品 {{store_link}} のトランザクション購入 ID {{order_id}} を実行しました",
|
|
@@ -810,7 +810,7 @@
|
|
|
810
810
|
"_NOTI_UPLOAD_ICON_SUCCESS": "成功!ファイルがアップロードされました。",
|
|
811
811
|
"_NOTI_VALIDATE_END_DATE_GREATER_CURRENT": "終了日は現在の日付より後の日付にする必要があります",
|
|
812
812
|
"_NOTI_VALIDATE_END_TIME_GREATER": "終了時間は開始時間よりも長くする必要があります",
|
|
813
|
-
"_NOTI_VALIDATE_FILE_FORMAT": "
|
|
813
|
+
"_NOTI_VALIDATE_FILE_FORMAT": "ファイルの形式が正しくありません。もう一度お試しください。",
|
|
814
814
|
"_NOTI_VALIDATE_FORMAT_CSS_SELECTOR": "CSS セレクターは接頭辞 で始まる必要があります。または #",
|
|
815
815
|
"_NOTI_VALIDATE_ICON_FORMAT": "画像の形式が正しくありません。もう一度お試しください。",
|
|
816
816
|
"_NOTI_VALIDATE_ONE_DAY": "少なくとも 1 日を選択してください",
|
|
@@ -1060,7 +1060,7 @@
|
|
|
1060
1060
|
"_TITL_DELIVERED": "納品済み",
|
|
1061
1061
|
"_TITL_DELIVERED_PROBABILITY": "配信確率",
|
|
1062
1062
|
"_TITL_DELIVERY_ALGORITHM": "配信アルゴリズム",
|
|
1063
|
-
"_TITL_DELIVERY_DETAIL": "
|
|
1063
|
+
"_TITL_DELIVERY_DETAIL": "納品詳細",
|
|
1064
1064
|
"_TITL_DELIVERY_PERFORMANCE": "配信パフォーマンス",
|
|
1065
1065
|
"_TITL_DELIVERY_RATE": "配送料",
|
|
1066
1066
|
"_TITL_DELIVERY_RESULT": "納品実績",
|
|
@@ -1096,7 +1096,7 @@
|
|
|
1096
1096
|
"_TITL_EVENT_ACTION_NAME": "イベントアクション名",
|
|
1097
1097
|
"_TITL_EVENT_ATTRIBUTE": "イベント属性",
|
|
1098
1098
|
"_TITL_EVENT_CATEGORY": "イベントカテゴリー",
|
|
1099
|
-
"_TITL_EVENT_CATEGORY_CODE": "
|
|
1099
|
+
"_TITL_EVENT_CATEGORY_CODE": "イベントカテゴリーコード",
|
|
1100
1100
|
"_TITL_EVENT_CATEGORY_NAME": "イベントカテゴリ名",
|
|
1101
1101
|
"_TITL_EVENT_INFO": "イベント情報",
|
|
1102
1102
|
"_TITL_EVENT_INTERNAL_NAME": "イベントの内部名",
|
|
@@ -1127,7 +1127,7 @@
|
|
|
1127
1127
|
"_TITL_GENERAL_SETTING": "一般設定",
|
|
1128
1128
|
"_TITL_GET_ALL_VALUE": "全要素取得(最大100要素)",
|
|
1129
1129
|
"_TITL_GET_THE_TOP_VALUE": "トップを獲得する",
|
|
1130
|
-
"_TITL_GET_TRACKING_CODE": "{{zone_name}} の広告ゾーン
|
|
1130
|
+
"_TITL_GET_TRACKING_CODE": "{{zone_name}} の広告ゾーン スクリプトを取得",
|
|
1131
1131
|
"_TITL_GROUP_ATTRIBUTE": "グループ属性",
|
|
1132
1132
|
"_TITL_GROUP_NAME": "グループ名",
|
|
1133
1133
|
"_TITL_HARD_BOUNCE": "ハードバウンス",
|
|
@@ -1364,7 +1364,7 @@
|
|
|
1364
1364
|
"_USER_GUIDE_EDIT_NODE": "ここで選択したノードのコンテンツを編集します",
|
|
1365
1365
|
"_USER_GUIDE_ENCRYPTED_INFO": "暗号化された情報",
|
|
1366
1366
|
"_USER_GUIDE_ENTER_VALUE": "値を入力してください",
|
|
1367
|
-
"_USER_GUIDE_EVENT_ATTR_OBJECT": "
|
|
1367
|
+
"_USER_GUIDE_EVENT_ATTR_OBJECT": "イベント属性とオブジェクトを選択する ",
|
|
1368
1368
|
"_USER_GUIDE_EVENT_TEMPLATE": "イベントテンプレートの選択",
|
|
1369
1369
|
"_USER_GUIDE_FOR_ASSIGN": "割り当て用",
|
|
1370
1370
|
"_USER_GUIDE_FOR_CREATE": "作成用",
|
|
@@ -1432,7 +1432,7 @@
|
|
|
1432
1432
|
"_USER_GUIDE_TOTAL_ATTR_MEASURE": "合計 {{num_attr}} 個の属性と {{num_measure}} 個のメジャーが選択されました",
|
|
1433
1433
|
"_USER_GUIDE_TOTAL_BRANCH": "注: 合計 100%",
|
|
1434
1434
|
"_USER_GUIDE_TOTAL_FIELD": "{{x}} 個の選択されたフィールド",
|
|
1435
|
-
"_USER_GUIDE_UPLOAD_FILE": "- サポートされているファイル形式は次のとおりです: .csv、.xls、.xlsx <br />\n- .xlsx ファイルの最初の行はヘッダー行とみなされます<br />\n- デフォルトのデータエンコーディングはUTF-8
|
|
1435
|
+
"_USER_GUIDE_UPLOAD_FILE": "- サポートされているファイル形式は次のとおりです: .csv、.xls、.xlsx <br />\n- .xlsx ファイルの最初の行はヘッダー行とみなされます<br />\n- デフォルトのデータエンコーディングはUTF-8です",
|
|
1436
1436
|
"_USER_GUIDE_UPLOAD_FILE_BEFORE_MAPPING": "属性をマッピングする前にファイルをアップロードする必要があります",
|
|
1437
1437
|
"_USER_GUIDE_UPLOAD_WAITING": "システムの処理が完了するまで 10 分間お待ちください。<br />\nページを更新してデータを確認します",
|
|
1438
1438
|
"_USER_GUIDE_USER_NOT_FOUND": "ユーザーが見つかりません",
|
|
@@ -1530,7 +1530,7 @@
|
|
|
1530
1530
|
"_TITL_USED_INFO": "使用されているコード情報 ",
|
|
1531
1531
|
"_TITL_PROMOTION_CODE": "プロモーションコード:",
|
|
1532
1532
|
"_TITL_ALLOCATED_TO_JOURNEY": "ジャーニーに割り当てられている:",
|
|
1533
|
-
"_TITL_ALLOCATED_TO_AUDIENCE": "
|
|
1533
|
+
"_TITL_ALLOCATED_TO_AUDIENCE": "視聴者に割り当てられる:",
|
|
1534
1534
|
"_ACT_MOVE_TO": "に移動します",
|
|
1535
1535
|
"_BOX_TITL_MOVE_CODE": "{{x}} 個のコードを別のプールに移動します ",
|
|
1536
1536
|
"_TITL_MOVE_TO_POOL": "プールに移動",
|
|
@@ -1592,7 +1592,7 @@
|
|
|
1592
1592
|
"_TITL_ADD_FIELD": "フィールドの追加",
|
|
1593
1593
|
"_ITEM_NAME_LINE_ITEM_ATTRIBUTE": "ラインアイテム属性",
|
|
1594
1594
|
"_CHK_IGNORE_DUPLICATE": "予定された旅行の重複メッセージを無視する",
|
|
1595
|
-
"_CHK_LIMITED_FREQ_JOURNEY": "
|
|
1595
|
+
"_CHK_LIMITED_FREQ_JOURNEY": "旅行の頻度を制限します(期間は 3 か月)",
|
|
1596
1596
|
"_CHK_LIMITED_FREQ_DESTINATION": "宛先の周波数を制限する",
|
|
1597
1597
|
"_TITL_TIME_PER_PERSON": "1人あたりの時間",
|
|
1598
1598
|
"_TITL_MEMBER_INPUT_METHOD": "メンバー入力方法",
|
|
@@ -1763,7 +1763,7 @@
|
|
|
1763
1763
|
"_USER_GUIDE_SEG_STATUS_ARCHIVE": "セグメントは間隔の構築を停止したため、他のオブジェクトでは使用できません",
|
|
1764
1764
|
"_USER_GUIDE_COL_STATUS_ENABLE": "コレクションはインターバルビルド可能で、他のオブジェクトでも使用可能",
|
|
1765
1765
|
"_USER_GUIDE_COL_STATUS_DISABLE": "コレクションは間隔の構築を停止しました。 コレクションは他のオブジェクトで使用できますが、新しいデータは使用できません",
|
|
1766
|
-
"_USER_GUIDE_COL_STATUS_ARCHIVE": "
|
|
1766
|
+
"_USER_GUIDE_COL_STATUS_ARCHIVE": "コレクションは間隔構築を停止したため、他のオブジェクトでは使用できません",
|
|
1767
1767
|
"_USER_GUIDE_COMPUTE_STATUS_WAITING_INITIAL": "オブジェクトは計算スケジュールを待っています",
|
|
1768
1768
|
"_USER_GUIDE_COMPUTE_STATUS_WAITING": "オブジェクトは計算を待っています",
|
|
1769
1769
|
"_USER_GUIDE_COMPUTE_STATUS_COMPUTING": "オブジェクトは計算中です",
|
|
@@ -1788,8 +1788,8 @@
|
|
|
1788
1788
|
"_PORTAL_LIMITATION_DES_COL_ARCHIVED": "コレクションは、使用されない場合はアーカイブされます。",
|
|
1789
1789
|
"_PORTAL_LIMITATION_DES_COL_DELETE": "までに回復しない場合、コレクションは完全に削除されます",
|
|
1790
1790
|
"_PORTAL_LIMITATION_DES_BO_DISABLED": "データ オブジェクトは、次の場所で使用されない場合は無効になります。",
|
|
1791
|
-
"_PORTAL_LIMITATION_DES_BO_ARCHIVED": "
|
|
1792
|
-
"_PORTAL_LIMITATION_DES_BO_DELETE": "
|
|
1791
|
+
"_PORTAL_LIMITATION_DES_BO_ARCHIVED": "データ オブジェクトは、使用されない場合はアーカイブされます。",
|
|
1792
|
+
"_PORTAL_LIMITATION_DES_BO_DELETE": "データオブジェクトは、次の期間に回復しない場合は完全に削除されます。",
|
|
1793
1793
|
"_PORTAL_LIMITATION_DES_ATTR_DISABLED": "で使用されない場合、属性は無効になります。 ",
|
|
1794
1794
|
"_PORTAL_LIMITATION_DES_ATTR_ARCHIVED": "属性が使用されない場合はアーカイブされます。",
|
|
1795
1795
|
"_PORTAL_LIMITATION_DES_ATTR_DELETE": "属性は、次の期間に回復しない場合は完全に削除されます。",
|
|
@@ -1819,7 +1819,7 @@
|
|
|
1819
1819
|
"_USER_GUIDE_PLAN_REMOVE_GROUP_CONTENT": "このグループを削除してもよろしいですか?",
|
|
1820
1820
|
"_ACT_PLAN_SAVE_AS_NEW_SEG": "新しいセグメントとして保存",
|
|
1821
1821
|
"_ACT_PLAN_SAVE_AS_EXIST_SEG": "または、既存のセグメントにロードします",
|
|
1822
|
-
"_TITLE_SELECT_SEGMENT": "
|
|
1822
|
+
"_TITLE_SELECT_SEGMENT": "セグメントの選択",
|
|
1823
1823
|
"_DES_LAST_BUILD_TIME": "前回のビルド時間",
|
|
1824
1824
|
"_ACT_PLAN_SAVE_AS": "名前を付けて保存",
|
|
1825
1825
|
"_ACT_PLAN_PRIVATE_TEMPLATE": "プライベートテンプレート",
|
|
@@ -1830,7 +1830,7 @@
|
|
|
1830
1830
|
"_USER_GUIDE_PLAN_PROCESSING": "処理...",
|
|
1831
1831
|
"_USER_GUIDE_MOVE_GROUP_INCLUDE": "人を含めるためにグループをここに移動します",
|
|
1832
1832
|
"_USER_GUIDE_MOVE_GROUP_EXCLUDE": "ユーザーを除外するにはグループをここに移動します",
|
|
1833
|
-
"_USER_GUIDE_NOTIFY_PROCESSING_SUCCESS": "{{セグメント名}}セグメントのデータ処理が完了しました",
|
|
1833
|
+
"_USER_GUIDE_NOTIFY_PROCESSING_SUCCESS": "{{セグメント名}} セグメントのデータ処理が完了しました",
|
|
1834
1834
|
"_USER_GUIDE_NOTIFY_PROCESSING_FAILT": "{{セグメント名}} セグメントのデータ処理に失敗しました",
|
|
1835
1835
|
"_TITLE_NOTIFY_HIDE": "隠れる",
|
|
1836
1836
|
"_TITLE_BTN_RECOMPUTED": "再計算された",
|
|
@@ -1888,7 +1888,7 @@
|
|
|
1888
1888
|
"_EVENT_SETTING_RECORD_IN_PROFILE": "訪問者/顧客プロファイルにイベント データを記録する",
|
|
1889
1889
|
"_WARN_SMS_DYNAMIC_CONTENT": "(文字数は、コンテンツに動的コンテンツまたはショートリンクが含まれる場合のみ参考用です)",
|
|
1890
1890
|
"_TITLE_CATALOG_DESTINATION_CHANNEL": "宛先チャンネル",
|
|
1891
|
-
"_TITLE_CATALOG_DESTINATION_CATALOGS": "
|
|
1891
|
+
"_TITLE_CATALOG_DESTINATION_CATALOGS": "目的地カタログ",
|
|
1892
1892
|
"_TITLE_CATALOG_ALL_CATALOGS": "すべてのカタログ",
|
|
1893
1893
|
"_TITLE_CATALOG_CATALOG_NAME": "カタログ名",
|
|
1894
1894
|
"_TITLE_CATALOG_DEFAULT_CATALOG": "デフォルトのカタログ",
|
|
@@ -1901,7 +1901,7 @@
|
|
|
1901
1901
|
"_USER_GUIDE_CATALOG_CONFIRM_DISABLE": "選択したカタログを無効にしてもよろしいですか?",
|
|
1902
1902
|
"_USER_GUIDE_CATALOG_CONFIRM_REMOVE": "選択したカタログを削除してもよろしいですか?",
|
|
1903
1903
|
"_USER_GUIDE_CATALOG_SELECT_CATALOG_INIT": "初期化するカタログを選択してください",
|
|
1904
|
-
"_USER_GUIDE_CATALOG_SELECT_CHANNEL": "
|
|
1904
|
+
"_USER_GUIDE_CATALOG_SELECT_CHANNEL": "選択された宛先チャンネル",
|
|
1905
1905
|
"_USER_GUIDE_CATALOG_SEARCH_CHANNEL": "宛先チャンネルの検索",
|
|
1906
1906
|
"_USER_GUIDE_CATALOG_SELECT_CATALOG": "厳選されたカタログ",
|
|
1907
1907
|
"_USER_GUIDE_CATALOG_SEARCH_CATALOG": "カタログを検索する",
|
|
@@ -1998,7 +1998,7 @@
|
|
|
1998
1998
|
"_WARN_COLL_WARN_TOTAL_CONTENT_RECOVER": "{{dynamic_collections}} {{static_collections}} の数が制限に達しました。\nコレクションを回復したい場合は、未使用のコレクションをアーカイブしてください。",
|
|
1999
1999
|
"_ERROR_MESS_COLL_COMPUTED_LIMIT": "この時間内に構築されるコレクションの数の制限に達しました。",
|
|
2000
2000
|
"_WARN_TITLE_COLL_COMPUTATIONAL_LIMIT": "警告収集の計算制限",
|
|
2001
|
-
"_WARN_COLL_COMPUTATIONAL_LIMIT": "
|
|
2001
|
+
"_WARN_COLL_COMPUTATIONAL_LIMIT": "現在、計算制限に達しているため、システムは次の有効な時間にこのコレクションを計算します。",
|
|
2002
2002
|
"_OPTION_SEGMENT_SCHEDULE_DETAILS_HOUR_AM": "{{x}} 時間ごとに {{HH:MM}} 時",
|
|
2003
2003
|
"_OPTION_SEGMENT_SCHEDULE_DETAILS_HOUR_PM": "{{x}} 時間ごとに 午後{{HH:MM}} 時",
|
|
2004
2004
|
"_OPTION_SEGMENT_SCHEDULE_DETAILS_DAY_AM": "{{x}}日ごとの {{HH:MM}} 時",
|
|
@@ -2116,7 +2116,7 @@
|
|
|
2116
2116
|
"_PREDICT_MODEL_UPDATE_INTO_EXISTING_SEGMENT": "既存のセグメントへの更新",
|
|
2117
2117
|
"_PREDICT_MODEL_CREATE_NEW_ATTRIBUTE": "新しい属性を作成する",
|
|
2118
2118
|
"_PREDICT_MODEL_UPDATE_INTO_EXISTING_ATTRIBUTE": "既存の属性に更新する",
|
|
2119
|
-
"_PREDICT_MODEL_SELECT_SEGMENT": "
|
|
2119
|
+
"_PREDICT_MODEL_SELECT_SEGMENT": "セグメントの選択",
|
|
2120
2120
|
"_PREDICT_MODEL_SELECT_ATTRIBUTE": "属性の選択",
|
|
2121
2121
|
"_PREDICT_MODEL_CANNOT_LOSE_THEM": "それらを失うことはできません",
|
|
2122
2122
|
"_PREDICT_MODEL_AT_RISK": "危険にさらされています",
|
|
@@ -2294,7 +2294,7 @@
|
|
|
2294
2294
|
"_BLCK_OTP_BUTTN_ACTION": "ボタンアクション",
|
|
2295
2295
|
"_MED_TEMP_SETTING_MESS": "メッセージ",
|
|
2296
2296
|
"_BLCK_OTP_MESS_FAILED_VERI": "検証に失敗しました",
|
|
2297
|
-
"_BLCK_OTP_MESS_RESENT": "再送信された
|
|
2297
|
+
"_BLCK_OTP_MESS_RESENT": "再送信されたOTP",
|
|
2298
2298
|
"_MED_TEMP_SETTING_POSITION": "位置",
|
|
2299
2299
|
"_BLCK_OTP_EVENT_TRIGGER": "イベントトリガー",
|
|
2300
2300
|
"_BLCK_OTP_EVENT": "イベント",
|
|
@@ -2508,7 +2508,7 @@
|
|
|
2508
2508
|
"_OBJ_DES_FILE_TRANSFER_1": "さまざまなシステム間での大規模なデータセットの共有を自動化し、より迅速かつ正確なデータ処理を実現します。",
|
|
2509
2509
|
"_OBJ_DES_FILE_TRANSFER_2": "マーケティング資料やキャンペーン資産をチームメンバーや外部関係者に簡単に配布し、より良いコラボレーションとコミュニケーションを促進します。",
|
|
2510
2510
|
"_OBJ_DES_FILE_TRANSFER_3": "ファイル転送をマーケティングオートメーションに統合して時間と人的リソースを節約する",
|
|
2511
|
-
"_OBJ_DES_ORCHES_1": "
|
|
2511
|
+
"_OBJ_DES_ORCHES_1": "さまざまなチャネルを通じて顧客にリーチし、ブランドの認知度を高め、市場への浸透を高めることで、ブランドの認知度を高めます。",
|
|
2512
2512
|
"_OBJ_DES_ORCHES_2": "好みのプラットフォームで顧客を引き込み、ロイヤルティと支持を促進するシームレスで記憶に残るインタラクションを生み出します。",
|
|
2513
2513
|
"_OBJ_DES_ORCHES_3": "チャネル全体でターゲットを絞ったメッセージを送信して購入者の購買行動をガイドし、コンバージョンを促進し、販売機会を最大化します。",
|
|
2514
2514
|
"_OBJ_DES_ORCHES_4": "チャネルの好みや行動に基づいて特定の視聴者セグメントに合わせてキャンペーンを調整し、共感を呼び、コンバージョンにつながるパーソナライズされたエクスペリエンスを提供します。",
|
|
@@ -2609,7 +2609,7 @@
|
|
|
2609
2609
|
"_REALTIME_FACEBOOK_MESSENGER_OBJ_1": "カスタマーサポートの強化",
|
|
2610
2610
|
"_REALTIME_FACEBOOK_MESSENGER_DES_1": "インタラクション データを活用してタイムリーかつパーソナライズされたサポートを提供し、顧客満足度とロイヤルティを向上させます。",
|
|
2611
2611
|
"_REALTIME_FACEBOOK_MESSENGER_OBJ_2": "マーケティング戦略を洗練する",
|
|
2612
|
-
"_REALTIME_FACEBOOK_MESSENGER_DES_2": "インタラクション
|
|
2612
|
+
"_REALTIME_FACEBOOK_MESSENGER_DES_2": "インタラクション パターンを分析して顧客の興味や行動をより深く理解し、マーケティング活動を調整できるようにします。",
|
|
2613
2613
|
"_REALTIME_FACEBOOK_MESSENGER_OBJ_3": "対応管理を自動化する",
|
|
2614
2614
|
"_REALTIME_FACEBOOK_MESSENGER_DES_3": "マーケティング ハブ機能と統合すると、応答とフォローアップが自動化され、顧客の質問に答えられないことがなくなります。",
|
|
2615
2615
|
"_REALTIME_FACEBOOK_MESSENGER_OBJ_4": "エンゲージメントを高める",
|
|
@@ -2680,7 +2680,7 @@
|
|
|
2680
2680
|
"_PROFILES_ADD_EVENT": "イベントを追加",
|
|
2681
2681
|
"_COOKIE_DM_DEFINITION": "それは何ですか?",
|
|
2682
2682
|
"_COOKIE_DM_INSTRUCTION": "命令",
|
|
2683
|
-
"_COOKIE_DM_DEFINITION_1": "Cookie
|
|
2683
|
+
"_COOKIE_DM_DEFINITION_1": "Cookie ドメインを使用すると、追跡 Cookie が設定されるドメインを指定できるため、一貫したサブドメイン間の追跡が確保され、視聴者プロファイルの断片化が防止されます。",
|
|
2684
2684
|
"_COOKIE_DM_INSTRUCTION_1_SUM": "プライマリ ドメインを特定します。 ",
|
|
2685
2685
|
"_COOKIE_DM_INSTRUCTION_1_DES_1": "これは、追跡するすべてのサブドメインのベース ドメインです。 \n",
|
|
2686
2686
|
"_COOKIE_DM_INSTRUCTION_1_DES_2": "これは、追跡するすべてのサブドメインのベース ドメインです。例: {{x}}",
|
|
@@ -245,6 +245,11 @@ export const GlobalStyle = () => (_jsx(Global, { styles: css `
|
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
+
.antsomi-input-disabled {
|
|
249
|
+
border-color: ${THEME.token?.bw3} !important;
|
|
250
|
+
background-color: ${THEME.token?.bw0} !important;
|
|
251
|
+
}
|
|
252
|
+
|
|
248
253
|
.antsomi-input {
|
|
249
254
|
&:focus {
|
|
250
255
|
background-color: ${THEME.token?.bw0};
|
|
@@ -267,6 +272,12 @@ export const GlobalStyle = () => (_jsx(Global, { styles: css `
|
|
|
267
272
|
}
|
|
268
273
|
}
|
|
269
274
|
|
|
275
|
+
.antsomi-input-affix-wrapper-disabled {
|
|
276
|
+
background-color: ${THEME.token?.bw0} !important;
|
|
277
|
+
color: ${THEME.token?.bw8} !important;
|
|
278
|
+
border-color: ${THEME.token?.bw3} !important;
|
|
279
|
+
}
|
|
280
|
+
|
|
270
281
|
.antsomi-input-status-error:not(.antsomi-input-disabled):not(
|
|
271
282
|
.antsomi-input-borderless
|
|
272
283
|
).antsomi-input {
|
|
@@ -804,13 +815,22 @@ export const GlobalStyle = () => (_jsx(Global, { styles: css `
|
|
|
804
815
|
|
|
805
816
|
.antsomi-radio-wrapper {
|
|
806
817
|
font-family: 'Roboto';
|
|
807
|
-
color: ${THEME.token?.colorTextBase};
|
|
808
818
|
font-size: ${THEME.token?.fontSize}px;
|
|
809
819
|
margin-right: 0;
|
|
810
820
|
|
|
811
821
|
.antsomi-radio-disabled {
|
|
822
|
+
&:hover {
|
|
823
|
+
::after {
|
|
824
|
+
border-color: ${THEME.token?.gray5} !important;
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
|
|
812
828
|
.antsomi-radio-inner {
|
|
813
|
-
border-color:
|
|
829
|
+
border-color: ${THEME.token?.gray5} !important;
|
|
830
|
+
|
|
831
|
+
&::after {
|
|
832
|
+
background-color: ${THEME.token?.colorTextDisabled} !important;
|
|
833
|
+
}
|
|
814
834
|
}
|
|
815
835
|
}
|
|
816
836
|
|
|
@@ -974,24 +994,6 @@ export const GlobalStyle = () => (_jsx(Global, { styles: css `
|
|
|
974
994
|
}
|
|
975
995
|
}
|
|
976
996
|
|
|
977
|
-
/* Switch */
|
|
978
|
-
.antsomi-switch {
|
|
979
|
-
border: 2px solid ${THEME.token?.colorPrimary} !important;
|
|
980
|
-
|
|
981
|
-
&.antsomi-switch-checked {
|
|
982
|
-
> .antsomi-switch-handle {
|
|
983
|
-
&::before {
|
|
984
|
-
background-color: ${THEME.token?.bw0} !important;
|
|
985
|
-
}
|
|
986
|
-
}
|
|
987
|
-
}
|
|
988
|
-
|
|
989
|
-
.antsomi-switch-inner {
|
|
990
|
-
padding-inline-start: 4px !important;
|
|
991
|
-
padding-inline-end: 18px !important;
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
|
|
995
997
|
/* Tabs */
|
|
996
998
|
.antsomi-tabs {
|
|
997
999
|
.antsomi-tabs-tab {
|
package/es/types/richMenu.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antscorp/antsomi-ui",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.50",
|
|
4
4
|
"description": "An enterprise-class UI design language and React UI library.",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"dist/*",
|
|
@@ -157,16 +157,16 @@
|
|
|
157
157
|
"@babel/preset-typescript": "^7.23.3",
|
|
158
158
|
"@commitlint/cli": "17.5.0",
|
|
159
159
|
"@commitlint/config-conventional": "17.4.4",
|
|
160
|
-
"@storybook/addon-docs": "^8.4.
|
|
161
|
-
"@storybook/addon-essentials": "^8.
|
|
162
|
-
"@storybook/addon-links": "^8.4.
|
|
160
|
+
"@storybook/addon-docs": "^8.4.6",
|
|
161
|
+
"@storybook/addon-essentials": "^8.4.6",
|
|
162
|
+
"@storybook/addon-links": "^8.4.6",
|
|
163
163
|
"@storybook/addon-styling-webpack": "^1.0.0",
|
|
164
164
|
"@storybook/addon-webpack5-compiler-babel": "^3.0.3",
|
|
165
|
-
"@storybook/blocks": "^8.4.
|
|
166
|
-
"@storybook/manager-api": "^8.4.
|
|
167
|
-
"@storybook/react": "^8.4.
|
|
168
|
-
"@storybook/react-webpack5": "^8.4.
|
|
169
|
-
"@storybook/theming": "^8.4.
|
|
165
|
+
"@storybook/blocks": "^8.4.6",
|
|
166
|
+
"@storybook/manager-api": "^8.4.6",
|
|
167
|
+
"@storybook/react": "^8.4.6",
|
|
168
|
+
"@storybook/react-webpack5": "^8.4.6",
|
|
169
|
+
"@storybook/theming": "^8.4.6",
|
|
170
170
|
"@testing-library/dom": "^10.4.0",
|
|
171
171
|
"@testing-library/jest-dom": "^6.5.0",
|
|
172
172
|
"@testing-library/react": "^16.0.0",
|