@wordpress/format-library 5.32.0 → 5.32.1-next.ff1cebbba.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bold/index.js +69 -58
- package/build/bold/index.js.map +7 -1
- package/build/code/index.js +62 -54
- package/build/code/index.js.map +7 -1
- package/build/default-formats.js +52 -24
- package/build/default-formats.js.map +7 -1
- package/build/image/index.js +185 -153
- package/build/image/index.js.map +7 -1
- package/build/index.js +28 -18
- package/build/index.js.map +7 -1
- package/build/italic/index.js +69 -58
- package/build/italic/index.js.map +7 -1
- package/build/keyboard/index.js +47 -36
- package/build/keyboard/index.js.map +7 -1
- package/build/language/index.js +145 -113
- package/build/language/index.js.map +7 -1
- package/build/link/css-classes-setting.js +81 -0
- package/build/link/css-classes-setting.js.map +7 -0
- package/build/link/index.js +162 -167
- package/build/link/index.js.map +7 -1
- package/build/link/inline.js +186 -174
- package/build/link/inline.js.map +7 -1
- package/build/link/use-link-instance-key.js +25 -19
- package/build/link/use-link-instance-key.js.map +7 -1
- package/build/link/utils.js +66 -115
- package/build/link/utils.js.map +7 -1
- package/build/lock-unlock.js +31 -15
- package/build/lock-unlock.js.map +7 -1
- package/build/non-breaking-space/index.js +44 -28
- package/build/non-breaking-space/index.js.map +7 -1
- package/build/strikethrough/index.js +57 -42
- package/build/strikethrough/index.js.map +7 -1
- package/build/subscript/index.js +47 -36
- package/build/subscript/index.js.map +7 -1
- package/build/superscript/index.js +47 -36
- package/build/superscript/index.js.map +7 -1
- package/build/text-color/index.js +102 -70
- package/build/text-color/index.js.map +7 -1
- package/build/text-color/inline.js +118 -116
- package/build/text-color/inline.js.map +7 -1
- package/build/underline/index.js +62 -40
- package/build/underline/index.js.map +7 -1
- package/build/unknown/index.js +51 -37
- package/build/unknown/index.js.map +7 -1
- package/build-module/bold/index.js +52 -52
- package/build-module/bold/index.js.map +7 -1
- package/build-module/code/index.js +41 -46
- package/build-module/code/index.js.map +7 -1
- package/build-module/default-formats.js +34 -19
- package/build-module/default-formats.js.map +7 -1
- package/build-module/image/index.js +174 -144
- package/build-module/image/index.js.map +7 -1
- package/build-module/index.js +6 -14
- package/build-module/index.js.map +7 -1
- package/build-module/italic/index.js +52 -52
- package/build-module/italic/index.js.map +7 -1
- package/build-module/keyboard/index.js +25 -30
- package/build-module/keyboard/index.js.map +7 -1
- package/build-module/language/index.js +128 -105
- package/build-module/language/index.js.map +7 -1
- package/build-module/link/css-classes-setting.js +67 -0
- package/build-module/link/css-classes-setting.js.map +7 -0
- package/build-module/link/index.js +128 -146
- package/build-module/link/index.js.map +7 -1
- package/build-module/link/inline.js +158 -154
- package/build-module/link/inline.js.map +7 -1
- package/build-module/link/use-link-instance-key.js +7 -14
- package/build-module/link/use-link-instance-key.js.map +7 -1
- package/build-module/link/utils.js +46 -101
- package/build-module/link/utils.js.map +7 -1
- package/build-module/lock-unlock.js +8 -7
- package/build-module/lock-unlock.js.map +7 -1
- package/build-module/non-breaking-space/index.js +22 -22
- package/build-module/non-breaking-space/index.js.map +7 -1
- package/build-module/strikethrough/index.js +38 -36
- package/build-module/strikethrough/index.js.map +7 -1
- package/build-module/subscript/index.js +25 -30
- package/build-module/subscript/index.js.map +7 -1
- package/build-module/superscript/index.js +25 -30
- package/build-module/superscript/index.js.map +7 -1
- package/build-module/text-color/index.js +72 -61
- package/build-module/text-color/index.js.map +7 -1
- package/build-module/text-color/inline.js +107 -106
- package/build-module/text-color/inline.js.map +7 -1
- package/build-module/underline/index.js +43 -34
- package/build-module/underline/index.js.map +7 -1
- package/build-module/unknown/index.js +26 -28
- package/build-module/unknown/index.js.map +7 -1
- package/build-style/style-rtl.css +0 -194
- package/build-style/style.css +0 -194
- package/package.json +21 -15
- package/src/image/style.scss +3 -0
- package/src/link/css-classes-setting.js +89 -0
- package/src/link/index.js +1 -0
- package/src/link/inline.js +19 -0
- package/src/link/style.scss +3 -0
- package/src/link/test/css-classes-setting.js +144 -0
- package/src/link/utils.js +8 -0
- package/src/style.scss +4 -4
- package/src/text-color/style.scss +2 -0
- package/build/default-formats.native.js +0 -16
- package/build/default-formats.native.js.map +0 -1
- package/build/link/index.native.js +0 -174
- package/build/link/index.native.js.map +0 -1
- package/build/link/modal-screens/link-picker-screen.native.js +0 -67
- package/build/link/modal-screens/link-picker-screen.native.js.map +0 -1
- package/build/link/modal-screens/link-settings-screen.native.js +0 -226
- package/build/link/modal-screens/link-settings-screen.native.js.map +0 -1
- package/build/link/modal-screens/screens.native.js +0 -11
- package/build/link/modal-screens/screens.native.js.map +0 -1
- package/build/link/modal.native.js +0 -53
- package/build/link/modal.native.js.map +0 -1
- package/build/text-color/index.native.js +0 -134
- package/build/text-color/index.native.js.map +0 -1
- package/build/text-color/inline.native.js +0 -150
- package/build/text-color/inline.native.js.map +0 -1
- package/build-module/default-formats.native.js +0 -10
- package/build-module/default-formats.native.js.map +0 -1
- package/build-module/link/index.native.js +0 -166
- package/build-module/link/index.native.js.map +0 -1
- package/build-module/link/modal-screens/link-picker-screen.native.js +0 -59
- package/build-module/link/modal-screens/link-picker-screen.native.js.map +0 -1
- package/build-module/link/modal-screens/link-settings-screen.native.js +0 -218
- package/build-module/link/modal-screens/link-settings-screen.native.js.map +0 -1
- package/build-module/link/modal-screens/screens.native.js +0 -5
- package/build-module/link/modal-screens/screens.native.js.map +0 -1
- package/build-module/link/modal.native.js +0 -45
- package/build-module/link/modal.native.js.map +0 -1
- package/build-module/text-color/index.native.js +0 -126
- package/build-module/text-color/index.native.js.map +0 -1
- package/build-module/text-color/inline.native.js +0 -142
- package/build-module/text-color/inline.native.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_richText","_blockEditor","_components","_index","_inline","_jsxRuntime","parseCSS","css","split","reduce","accumulator","rule","property","value","replace","color","transparentValue","backgroundColor","getActiveColors","name","colorSettings","activeColorFormat","getActiveFormat","attributes","style","parseClassName","class","setColors","colors","contentRef","onRemoveMarkFormatting","removeFormat","styles","classNames","push","join","colorObject","getColorObjectByColorValue","getColorClassName","slug","length","format","type","hasNoSelection","start","end","onMarkFormatting","applyFormat","ColorPicker","onChange","useMobileGlobalStylesColors","useMultipleOriginColorsAndGradients","allAvailableColors","onColorChange","useCallback","activeColors","useMemo","jsx","ColorSettings","colorValue","onColorCleared","defaultSettings","hideNavigation","InlineColorUI","onClose","BottomSheet","isVisible","hideHeader","contentStyle","paddingLeft","paddingRight","hasNavigation","leftButton","testID","children","NavigationContainer","animate","main","NavigationScreen"],"sources":["@wordpress/format-library/src/text-color/inline.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport {\n\tapplyFormat,\n\tremoveFormat,\n\tgetActiveFormat,\n} from '@wordpress/rich-text';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tuseMultipleOriginColorsAndGradients,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/block-editor';\nimport { BottomSheet, ColorSettings } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { transparentValue } from './index.js';\nimport { parseClassName } from './inline.js';\n\nfunction parseCSS( css = '' ) {\n\treturn css.split( ';' ).reduce( ( accumulator, rule ) => {\n\t\tif ( rule ) {\n\t\t\tconst [ property, value ] = rule.replace( / /g, '' ).split( ':' );\n\t\t\tif ( property === 'color' ) {\n\t\t\t\taccumulator.color = value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tproperty === 'background-color' &&\n\t\t\t\tvalue !== transparentValue\n\t\t\t) {\n\t\t\t\taccumulator.backgroundColor = value;\n\t\t\t}\n\t\t}\n\t\treturn accumulator;\n\t}, {} );\n}\n\nexport function getActiveColors( value, name, colorSettings ) {\n\tconst activeColorFormat = getActiveFormat( value, name );\n\n\tif ( ! activeColorFormat ) {\n\t\treturn {};\n\t}\n\n\treturn {\n\t\t...parseCSS( activeColorFormat.attributes.style ),\n\t\t...parseClassName( activeColorFormat.attributes.class, colorSettings ),\n\t};\n}\n\nfunction setColors( value, name, colorSettings, colors, contentRef ) {\n\tconst { color, backgroundColor } = {\n\t\t...getActiveColors( value, name, colorSettings ),\n\t\t...colors,\n\t};\n\n\tif ( ! color ) {\n\t\tcontentRef?.onRemoveMarkFormatting();\n\t\treturn removeFormat( value, name );\n\t}\n\n\tconst styles = [];\n\tconst classNames = [];\n\tconst attributes = {};\n\n\tif ( backgroundColor ) {\n\t\tstyles.push( [ 'background-color', backgroundColor ].join( ':' ) );\n\t} else {\n\t\t// Override default browser color for mark element.\n\t\tstyles.push( [ 'background-color', transparentValue ].join( ':' ) );\n\t}\n\n\tif ( color ) {\n\t\tconst colorObject = getColorObjectByColorValue( colorSettings, color );\n\n\t\tif ( colorObject ) {\n\t\t\tclassNames.push( getColorClassName( 'color', colorObject.slug ) );\n\t\t\tstyles.push( [ 'color', colorObject.color ].join( ':' ) );\n\t\t} else {\n\t\t\tstyles.push( [ 'color', color ].join( ':' ) );\n\t\t}\n\t}\n\n\tif ( styles.length ) {\n\t\tattributes.style = styles.join( ';' );\n\t}\n\tif ( classNames.length ) {\n\t\tattributes.class = classNames.join( ' ' );\n\t}\n\n\tconst format = { type: name, attributes };\n\tconst hasNoSelection = value.start === value.end;\n\n\tif ( hasNoSelection ) {\n\t\tcontentRef?.onMarkFormatting( color );\n\t}\n\treturn applyFormat( value, format );\n}\n\nfunction ColorPicker( { name, value, onChange, contentRef } ) {\n\tconst property = 'color';\n\tconst colors = useMobileGlobalStylesColors();\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\tcolorSettings.allAvailableColors = colors;\n\n\tconst onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tonChange(\n\t\t\t\tsetColors(\n\t\t\t\t\tvalue,\n\t\t\t\t\tname,\n\t\t\t\t\tcolors,\n\t\t\t\t\t{ [ property ]: color },\n\t\t\t\t\tcontentRef\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\t[ colors, contentRef, name, onChange, value ]\n\t);\n\tconst activeColors = useMemo(\n\t\t() => getActiveColors( value, name, colors ),\n\t\t[ name, value, colors ]\n\t);\n\n\treturn (\n\t\t<ColorSettings\n\t\t\tcolorValue={ activeColors[ property ] }\n\t\t\tonColorChange={ onColorChange }\n\t\t\tonColorCleared={ onColorChange }\n\t\t\tdefaultSettings={ colorSettings }\n\t\t\thideNavigation\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( {\n\tname,\n\tvalue,\n\tonChange,\n\tonClose,\n\tcontentRef,\n} ) {\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\tcontentStyle={ { paddingLeft: 0, paddingRight: 0 } }\n\t\t\thasNavigation\n\t\t\tleftButton={ null }\n\t\t\ttestID=\"inline-text-color-modal\"\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen name=\"text-color\">\n\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Internal dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { bold } from './bold';
|
|
5
|
-
import { italic } from './italic';
|
|
6
|
-
import { link } from './link';
|
|
7
|
-
import { strikethrough } from './strikethrough';
|
|
8
|
-
import { textColor } from './text-color';
|
|
9
|
-
export default [bold, italic, link, strikethrough, textColor];
|
|
10
|
-
//# sourceMappingURL=default-formats.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["bold","italic","link","strikethrough","textColor"],"sources":["@wordpress/format-library/src/default-formats.native.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { bold } from './bold';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { strikethrough } from './strikethrough';\nimport { textColor } from './text-color';\n\nexport default [ bold, italic, link, strikethrough, textColor ];\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,QAAQ;AAC7B,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,SAAS,QAAQ,cAAc;AAExC,eAAe,CAAEJ,IAAI,EAAEC,MAAM,EAAEC,IAAI,EAAEC,aAAa,EAAEC,SAAS,CAAE","ignoreList":[]}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import Clipboard from '@react-native-clipboard/clipboard';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* WordPress dependencies
|
|
8
|
-
*/
|
|
9
|
-
import { __ } from '@wordpress/i18n';
|
|
10
|
-
import { Component } from '@wordpress/element';
|
|
11
|
-
import { withSpokenMessages } from '@wordpress/components';
|
|
12
|
-
import { RichTextToolbarButton } from '@wordpress/block-editor';
|
|
13
|
-
import { applyFormat, getActiveFormat, getTextContent, isCollapsed, removeFormat, slice } from '@wordpress/rich-text';
|
|
14
|
-
import { isURL } from '@wordpress/url';
|
|
15
|
-
import { link as linkIcon } from '@wordpress/icons';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Internal dependencies
|
|
19
|
-
*/
|
|
20
|
-
import ModalLinkUI from './modal';
|
|
21
|
-
import { isValidHref } from './utils';
|
|
22
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
|
-
const name = 'core/link';
|
|
24
|
-
export const link = {
|
|
25
|
-
name,
|
|
26
|
-
title: __('Link'),
|
|
27
|
-
tagName: 'a',
|
|
28
|
-
className: null,
|
|
29
|
-
attributes: {
|
|
30
|
-
url: 'href',
|
|
31
|
-
target: 'target',
|
|
32
|
-
rel: 'rel'
|
|
33
|
-
},
|
|
34
|
-
edit: withSpokenMessages(class LinkEdit extends Component {
|
|
35
|
-
constructor() {
|
|
36
|
-
super(...arguments);
|
|
37
|
-
this.addLink = this.addLink.bind(this);
|
|
38
|
-
this.stopAddingLink = this.stopAddingLink.bind(this);
|
|
39
|
-
this.onRemoveFormat = this.onRemoveFormat.bind(this);
|
|
40
|
-
this.getURLFromClipboard = this.getURLFromClipboard.bind(this);
|
|
41
|
-
this.state = {
|
|
42
|
-
addingLink: false
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
addLink() {
|
|
46
|
-
const {
|
|
47
|
-
value,
|
|
48
|
-
onChange
|
|
49
|
-
} = this.props;
|
|
50
|
-
const text = getTextContent(slice(value));
|
|
51
|
-
if (text && isURL(text) && isValidHref(text)) {
|
|
52
|
-
const newValue = applyFormat(value, {
|
|
53
|
-
type: name,
|
|
54
|
-
attributes: {
|
|
55
|
-
url: text
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
newValue.start = newValue.end;
|
|
59
|
-
newValue.activeFormats = [];
|
|
60
|
-
onChange({
|
|
61
|
-
...newValue,
|
|
62
|
-
needsSelectionUpdate: true
|
|
63
|
-
});
|
|
64
|
-
} else {
|
|
65
|
-
this.setState({
|
|
66
|
-
addingLink: true
|
|
67
|
-
});
|
|
68
|
-
this.getURLFromClipboard();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
stopAddingLink() {
|
|
72
|
-
this.setState({
|
|
73
|
-
addingLink: false,
|
|
74
|
-
clipboardURL: undefined
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
getLinkSelection() {
|
|
78
|
-
const {
|
|
79
|
-
value,
|
|
80
|
-
isActive
|
|
81
|
-
} = this.props;
|
|
82
|
-
const startFormat = getActiveFormat(value, 'core/link');
|
|
83
|
-
|
|
84
|
-
// If the link isn't selected, get the link manually by looking around the cursor
|
|
85
|
-
// TODO: handle partly selected links.
|
|
86
|
-
if (startFormat && isCollapsed(value) && isActive) {
|
|
87
|
-
let startIndex = value.start;
|
|
88
|
-
let endIndex = value.end;
|
|
89
|
-
while (value.formats[startIndex]?.find(format => format?.type === startFormat.type)) {
|
|
90
|
-
startIndex--;
|
|
91
|
-
}
|
|
92
|
-
endIndex++;
|
|
93
|
-
while (value.formats[endIndex]?.find(format => format?.type === startFormat.type)) {
|
|
94
|
-
endIndex++;
|
|
95
|
-
}
|
|
96
|
-
return {
|
|
97
|
-
...value,
|
|
98
|
-
start: startIndex + 1,
|
|
99
|
-
end: endIndex
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
return value;
|
|
103
|
-
}
|
|
104
|
-
onRemoveFormat() {
|
|
105
|
-
const {
|
|
106
|
-
onChange,
|
|
107
|
-
speak,
|
|
108
|
-
value
|
|
109
|
-
} = this.props;
|
|
110
|
-
const startFormat = getActiveFormat(value, 'core/link');
|
|
111
|
-
|
|
112
|
-
// Before we try to remove anything we check if there is something at the caret position to remove.
|
|
113
|
-
if (isCollapsed(value) && startFormat === undefined) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
const linkSelection = this.getLinkSelection();
|
|
117
|
-
onChange(removeFormat(linkSelection, name));
|
|
118
|
-
speak(__('Link removed.'), 'assertive');
|
|
119
|
-
}
|
|
120
|
-
async getURLFromClipboard() {
|
|
121
|
-
const clipboardText = await Clipboard.getString();
|
|
122
|
-
if (!clipboardText) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
// Check if pasted text is URL.
|
|
126
|
-
if (!isURL(clipboardText)) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
this.setState({
|
|
130
|
-
clipboardURL: clipboardText
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
render() {
|
|
134
|
-
const {
|
|
135
|
-
isActive,
|
|
136
|
-
activeAttributes,
|
|
137
|
-
onChange
|
|
138
|
-
} = this.props;
|
|
139
|
-
const linkSelection = this.getLinkSelection();
|
|
140
|
-
// If no URL is set and we have a clipboard URL let's use it.
|
|
141
|
-
if (!activeAttributes.url && this.state.clipboardURL) {
|
|
142
|
-
activeAttributes.url = this.state.clipboardURL;
|
|
143
|
-
}
|
|
144
|
-
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
145
|
-
children: [/*#__PURE__*/_jsx(ModalLinkUI, {
|
|
146
|
-
isVisible: this.state.addingLink,
|
|
147
|
-
isActive: isActive,
|
|
148
|
-
activeAttributes: activeAttributes,
|
|
149
|
-
onClose: this.stopAddingLink,
|
|
150
|
-
onChange: onChange,
|
|
151
|
-
onRemove: this.onRemoveFormat,
|
|
152
|
-
value: linkSelection
|
|
153
|
-
}), /*#__PURE__*/_jsx(RichTextToolbarButton, {
|
|
154
|
-
name: "link",
|
|
155
|
-
icon: linkIcon,
|
|
156
|
-
title: __('Link'),
|
|
157
|
-
onClick: this.addLink,
|
|
158
|
-
isActive: isActive,
|
|
159
|
-
shortcutType: "primary",
|
|
160
|
-
shortcutCharacter: "k"
|
|
161
|
-
})]
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
})
|
|
165
|
-
};
|
|
166
|
-
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Clipboard","__","Component","withSpokenMessages","RichTextToolbarButton","applyFormat","getActiveFormat","getTextContent","isCollapsed","removeFormat","slice","isURL","link","linkIcon","ModalLinkUI","isValidHref","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","name","title","tagName","className","attributes","url","target","rel","edit","LinkEdit","constructor","arguments","addLink","bind","stopAddingLink","onRemoveFormat","getURLFromClipboard","state","addingLink","value","onChange","props","text","newValue","type","start","end","activeFormats","needsSelectionUpdate","setState","clipboardURL","undefined","getLinkSelection","isActive","startFormat","startIndex","endIndex","formats","find","format","speak","linkSelection","clipboardText","getString","render","activeAttributes","children","isVisible","onClose","onRemove","icon","onClick","shortcutType","shortcutCharacter"],"sources":["@wordpress/format-library/src/link/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withSpokenMessages } from '@wordpress/components';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tapplyFormat,\n\tgetActiveFormat,\n\tgetTextContent,\n\tisCollapsed,\n\tremoveFormat,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\nimport { link as linkIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ModalLinkUI from './modal';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\n\nexport const link = {\n\tname,\n\ttitle: __( 'Link' ),\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\tedit: withSpokenMessages(\n\t\tclass LinkEdit extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\n\t\t\t\tthis.addLink = this.addLink.bind( this );\n\t\t\t\tthis.stopAddingLink = this.stopAddingLink.bind( this );\n\t\t\t\tthis.onRemoveFormat = this.onRemoveFormat.bind( this );\n\t\t\t\tthis.getURLFromClipboard =\n\t\t\t\t\tthis.getURLFromClipboard.bind( this );\n\t\t\t\tthis.state = {\n\t\t\t\t\taddingLink: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\taddLink() {\n\t\t\t\tconst { value, onChange } = this.props;\n\t\t\t\tconst text = getTextContent( slice( value ) );\n\n\t\t\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\t\t\tconst newValue = applyFormat( value, {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: { url: text },\n\t\t\t\t\t} );\n\t\t\t\t\tnewValue.start = newValue.end;\n\t\t\t\t\tnewValue.activeFormats = [];\n\t\t\t\t\tonChange( { ...newValue, needsSelectionUpdate: true } );\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState( { addingLink: true } );\n\t\t\t\t\tthis.getURLFromClipboard();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstopAddingLink() {\n\t\t\t\tthis.setState( { addingLink: false, clipboardURL: undefined } );\n\t\t\t}\n\n\t\t\tgetLinkSelection() {\n\t\t\t\tconst { value, isActive } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// If the link isn't selected, get the link manually by looking around the cursor\n\t\t\t\t// TODO: handle partly selected links.\n\t\t\t\tif ( startFormat && isCollapsed( value ) && isActive ) {\n\t\t\t\t\tlet startIndex = value.start;\n\t\t\t\t\tlet endIndex = value.end;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ startIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tstartIndex--;\n\t\t\t\t\t}\n\n\t\t\t\t\tendIndex++;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ endIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tendIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tstart: startIndex + 1,\n\t\t\t\t\t\tend: endIndex,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tonRemoveFormat() {\n\t\t\t\tconst { onChange, speak, value } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// Before we try to remove anything we check if there is something at the caret position to remove.\n\t\t\t\tif ( isCollapsed( value ) && startFormat === undefined ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\n\t\t\t\tonChange( removeFormat( linkSelection, name ) );\n\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t}\n\n\t\t\tasync getURLFromClipboard() {\n\t\t\t\tconst clipboardText = await Clipboard.getString();\n\t\t\t\tif ( ! clipboardText ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Check if pasted text is URL.\n\t\t\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.setState( { clipboardURL: clipboardText } );\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\tconst { isActive, activeAttributes, onChange } = this.props;\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\t\t\t\t// If no URL is set and we have a clipboard URL let's use it.\n\t\t\t\tif ( ! activeAttributes.url && this.state.clipboardURL ) {\n\t\t\t\t\tactiveAttributes.url = this.state.clipboardURL;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ModalLinkUI\n\t\t\t\t\t\t\tisVisible={ this.state.addingLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\t\t\tonClose={ this.stopAddingLink }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonRemove={ this.onRemoveFormat }\n\t\t\t\t\t\t\tvalue={ linkSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tonClick={ this.addLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t),\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { Keyboard } from 'react-native';
|
|
5
|
-
import { useNavigation, useRoute } from '@react-navigation/native';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* WordPress dependencies
|
|
9
|
-
*/
|
|
10
|
-
import { useEffect, useMemo, useRef } from '@wordpress/element';
|
|
11
|
-
import { LinkPicker } from '@wordpress/components';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Internal dependencies
|
|
15
|
-
*/
|
|
16
|
-
import linkSettingsScreens from './screens';
|
|
17
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
-
const LinkPickerScreen = () => {
|
|
19
|
-
const navigation = useNavigation();
|
|
20
|
-
const route = useRoute();
|
|
21
|
-
const navigateToLinkTimeoutRef = useRef(null);
|
|
22
|
-
const navigateBackTimeoutRef = useRef(null);
|
|
23
|
-
const onLinkPicked = ({
|
|
24
|
-
url,
|
|
25
|
-
title
|
|
26
|
-
}) => {
|
|
27
|
-
Keyboard.dismiss();
|
|
28
|
-
navigateToLinkTimeoutRef.current = setTimeout(() => {
|
|
29
|
-
navigation.navigate(linkSettingsScreens.settings, {
|
|
30
|
-
inputValue: url,
|
|
31
|
-
text: title
|
|
32
|
-
});
|
|
33
|
-
}, 100);
|
|
34
|
-
};
|
|
35
|
-
const onCancel = () => {
|
|
36
|
-
Keyboard.dismiss();
|
|
37
|
-
navigateBackTimeoutRef.current = setTimeout(() => {
|
|
38
|
-
navigation.goBack();
|
|
39
|
-
}, 100);
|
|
40
|
-
};
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
return () => {
|
|
43
|
-
clearTimeout(navigateToLinkTimeoutRef.current);
|
|
44
|
-
clearTimeout(navigateBackTimeoutRef.current);
|
|
45
|
-
};
|
|
46
|
-
}, []);
|
|
47
|
-
const {
|
|
48
|
-
inputValue
|
|
49
|
-
} = route.params;
|
|
50
|
-
return useMemo(() => {
|
|
51
|
-
return /*#__PURE__*/_jsx(LinkPicker, {
|
|
52
|
-
value: inputValue,
|
|
53
|
-
onLinkPicked: onLinkPicked,
|
|
54
|
-
onCancel: onCancel
|
|
55
|
-
});
|
|
56
|
-
}, [inputValue]);
|
|
57
|
-
};
|
|
58
|
-
export default LinkPickerScreen;
|
|
59
|
-
//# sourceMappingURL=link-picker-screen.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Keyboard","useNavigation","useRoute","useEffect","useMemo","useRef","LinkPicker","linkSettingsScreens","jsx","_jsx","LinkPickerScreen","navigation","route","navigateToLinkTimeoutRef","navigateBackTimeoutRef","onLinkPicked","url","title","dismiss","current","setTimeout","navigate","settings","inputValue","text","onCancel","goBack","clearTimeout","params","value"],"sources":["@wordpress/format-library/src/link/modal-screens/link-picker-screen.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Keyboard } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo, useRef } from '@wordpress/element';\n\nimport { LinkPicker } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport linkSettingsScreens from './screens';\n\nconst LinkPickerScreen = () => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst navigateToLinkTimeoutRef = useRef( null );\n\tconst navigateBackTimeoutRef = useRef( null );\n\n\tconst onLinkPicked = ( { url, title } ) => {\n\t\tKeyboard.dismiss();\n\t\tnavigateToLinkTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.navigate( linkSettingsScreens.settings, {\n\t\t\t\tinputValue: url,\n\t\t\t\ttext: title,\n\t\t\t} );\n\t\t}, 100 );\n\t};\n\n\tconst onCancel = () => {\n\t\tKeyboard.dismiss();\n\t\tnavigateBackTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.goBack();\n\t\t}, 100 );\n\t};\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tclearTimeout( navigateToLinkTimeoutRef.current );\n\t\t\tclearTimeout( navigateBackTimeoutRef.current );\n\t\t};\n\t}, [] );\n\n\tconst { inputValue } = route.params;\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkPicker\n\t\t\t\tvalue={ inputValue }\n\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\tonCancel={ onCancel }\n\t\t\t/>\n\t\t);\n\t}, [ inputValue ] );\n};\n\nexport default LinkPickerScreen;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,aAAa,EAAEC,QAAQ,QAAQ,0BAA0B;;AAElE;AACA;AACA;AACA,SAASC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,oBAAoB;AAE/D,SAASC,UAAU,QAAQ,uBAAuB;;AAElD;AACA;AACA;AACA,OAAOC,mBAAmB,MAAM,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5C,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC9B,MAAMC,UAAU,GAAGV,aAAa,CAAC,CAAC;EAClC,MAAMW,KAAK,GAAGV,QAAQ,CAAC,CAAC;EACxB,MAAMW,wBAAwB,GAAGR,MAAM,CAAE,IAAK,CAAC;EAC/C,MAAMS,sBAAsB,GAAGT,MAAM,CAAE,IAAK,CAAC;EAE7C,MAAMU,YAAY,GAAGA,CAAE;IAAEC,GAAG;IAAEC;EAAM,CAAC,KAAM;IAC1CjB,QAAQ,CAACkB,OAAO,CAAC,CAAC;IAClBL,wBAAwB,CAACM,OAAO,GAAGC,UAAU,CAAE,MAAM;MACpDT,UAAU,CAACU,QAAQ,CAAEd,mBAAmB,CAACe,QAAQ,EAAE;QAClDC,UAAU,EAAEP,GAAG;QACfQ,IAAI,EAAEP;MACP,CAAE,CAAC;IACJ,CAAC,EAAE,GAAI,CAAC;EACT,CAAC;EAED,MAAMQ,QAAQ,GAAGA,CAAA,KAAM;IACtBzB,QAAQ,CAACkB,OAAO,CAAC,CAAC;IAClBJ,sBAAsB,CAACK,OAAO,GAAGC,UAAU,CAAE,MAAM;MAClDT,UAAU,CAACe,MAAM,CAAC,CAAC;IACpB,CAAC,EAAE,GAAI,CAAC;EACT,CAAC;EAEDvB,SAAS,CAAE,MAAM;IAChB,OAAO,MAAM;MACZwB,YAAY,CAAEd,wBAAwB,CAACM,OAAQ,CAAC;MAChDQ,YAAY,CAAEb,sBAAsB,CAACK,OAAQ,CAAC;IAC/C,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM;IAAEI;EAAW,CAAC,GAAGX,KAAK,CAACgB,MAAM;EACnC,OAAOxB,OAAO,CAAE,MAAM;IACrB,oBACCK,IAAA,CAACH,UAAU;MACVuB,KAAK,EAAGN,UAAY;MACpBR,YAAY,EAAGA,YAAc;MAC7BU,QAAQ,EAAGA;IAAU,CACrB,CAAC;EAEJ,CAAC,EAAE,CAAEF,UAAU,CAAG,CAAC;AACpB,CAAC;AAED,eAAeb,gBAAgB","ignoreList":[]}
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useNavigation, useRoute } from '@react-navigation/native';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* WordPress dependencies
|
|
8
|
-
*/
|
|
9
|
-
import { __ } from '@wordpress/i18n';
|
|
10
|
-
import { useState, useContext, useEffect, useMemo } from '@wordpress/element';
|
|
11
|
-
import { prependHTTP } from '@wordpress/url';
|
|
12
|
-
import { BottomSheet, BottomSheetContext } from '@wordpress/components';
|
|
13
|
-
import { create, insert, isCollapsed, applyFormat, getTextContent, slice } from '@wordpress/rich-text';
|
|
14
|
-
import { external, textColor } from '@wordpress/icons';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Internal dependencies
|
|
18
|
-
*/
|
|
19
|
-
import { createLinkFormat, isValidHref } from '../utils';
|
|
20
|
-
import linkSettingsScreens from './screens';
|
|
21
|
-
import styles from '../modal.scss';
|
|
22
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
|
-
const LinkSettingsScreen = ({
|
|
24
|
-
onRemove,
|
|
25
|
-
onClose,
|
|
26
|
-
onChange,
|
|
27
|
-
speak,
|
|
28
|
-
value,
|
|
29
|
-
isActive,
|
|
30
|
-
activeAttributes,
|
|
31
|
-
isVisible
|
|
32
|
-
}) => {
|
|
33
|
-
const [text, setText] = useState(getTextContent(slice(value)));
|
|
34
|
-
const [opensInNewWindow, setOpensInNewWindows] = useState(activeAttributes.target === '_blank');
|
|
35
|
-
const [linkValues, setLinkValues] = useState({
|
|
36
|
-
isActiveLink: isActive,
|
|
37
|
-
isRemovingLink: false
|
|
38
|
-
});
|
|
39
|
-
const {
|
|
40
|
-
shouldEnableBottomSheetMaxHeight,
|
|
41
|
-
onHandleClosingBottomSheet,
|
|
42
|
-
listProps
|
|
43
|
-
} = useContext(BottomSheetContext);
|
|
44
|
-
const navigation = useNavigation();
|
|
45
|
-
const route = useRoute();
|
|
46
|
-
const {
|
|
47
|
-
inputValue = activeAttributes.url || ''
|
|
48
|
-
} = route.params || {};
|
|
49
|
-
const onLinkCellPressed = () => {
|
|
50
|
-
shouldEnableBottomSheetMaxHeight(false);
|
|
51
|
-
navigation.navigate(linkSettingsScreens.picker, {
|
|
52
|
-
inputValue
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
useEffect(() => {
|
|
56
|
-
onHandleClosingBottomSheet(() => {
|
|
57
|
-
submit(inputValue, {
|
|
58
|
-
skipStateUpdates: true
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
}, [inputValue, opensInNewWindow, text]);
|
|
62
|
-
useEffect(() => {
|
|
63
|
-
const {
|
|
64
|
-
isActiveLink,
|
|
65
|
-
isRemovingLink
|
|
66
|
-
} = linkValues;
|
|
67
|
-
if (!!inputValue && !isActiveLink && isVisible) {
|
|
68
|
-
submitLink({
|
|
69
|
-
shouldCloseBottomSheet: false
|
|
70
|
-
});
|
|
71
|
-
} else if ((inputValue === '' && isActiveLink || isRemovingLink) && isVisible) {
|
|
72
|
-
removeLink({
|
|
73
|
-
shouldCloseBottomSheet: false
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}, [inputValue, isVisible, linkValues.isActiveLink, linkValues.isRemovingLink]);
|
|
77
|
-
const clearFormat = ({
|
|
78
|
-
skipStateUpdates = false
|
|
79
|
-
} = {}) => {
|
|
80
|
-
onChange({
|
|
81
|
-
...value,
|
|
82
|
-
activeFormats: []
|
|
83
|
-
});
|
|
84
|
-
if (!skipStateUpdates) {
|
|
85
|
-
setLinkValues({
|
|
86
|
-
isActiveLink: false,
|
|
87
|
-
isRemovingLink: true
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
const submitLink = ({
|
|
92
|
-
shouldCloseBottomSheet = true,
|
|
93
|
-
skipStateUpdates = false
|
|
94
|
-
} = {}) => {
|
|
95
|
-
const url = prependHTTP(inputValue);
|
|
96
|
-
const linkText = text || inputValue;
|
|
97
|
-
const format = createLinkFormat({
|
|
98
|
-
url,
|
|
99
|
-
opensInNewWindow,
|
|
100
|
-
text: linkText
|
|
101
|
-
});
|
|
102
|
-
let newAttributes;
|
|
103
|
-
if (isCollapsed(value) && !isActive) {
|
|
104
|
-
// Insert link.
|
|
105
|
-
const toInsert = applyFormat(create({
|
|
106
|
-
text: linkText
|
|
107
|
-
}), format, 0, linkText.length);
|
|
108
|
-
newAttributes = insert(value, toInsert);
|
|
109
|
-
} else if (text !== getTextContent(slice(value))) {
|
|
110
|
-
// Edit text in selected link.
|
|
111
|
-
const toInsert = applyFormat(create({
|
|
112
|
-
text
|
|
113
|
-
}), format, 0, text.length);
|
|
114
|
-
newAttributes = insert(value, toInsert, value.start, value.end);
|
|
115
|
-
} else {
|
|
116
|
-
// Transform selected text into link.
|
|
117
|
-
newAttributes = applyFormat(value, format);
|
|
118
|
-
}
|
|
119
|
-
// Move selection to end of link.
|
|
120
|
-
const textLength = newAttributes.text.length;
|
|
121
|
-
// check for zero width spaces
|
|
122
|
-
if (newAttributes.end > textLength) {
|
|
123
|
-
newAttributes.start = textLength;
|
|
124
|
-
newAttributes.end = textLength;
|
|
125
|
-
} else {
|
|
126
|
-
newAttributes.start = newAttributes.end;
|
|
127
|
-
}
|
|
128
|
-
newAttributes.activeFormats = [];
|
|
129
|
-
onChange({
|
|
130
|
-
...newAttributes,
|
|
131
|
-
needsSelectionUpdate: true
|
|
132
|
-
});
|
|
133
|
-
if (!skipStateUpdates) {
|
|
134
|
-
setLinkValues({
|
|
135
|
-
isActiveLink: true,
|
|
136
|
-
isRemovingLink: false
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
if (!isValidHref(url)) {
|
|
140
|
-
speak(__('Warning: the link has been inserted but may have errors. Please test it.'), 'assertive');
|
|
141
|
-
} else if (isActive) {
|
|
142
|
-
speak(__('Link edited.'), 'assertive');
|
|
143
|
-
} else {
|
|
144
|
-
speak(__('Link inserted'), 'assertive');
|
|
145
|
-
}
|
|
146
|
-
if (shouldCloseBottomSheet) {
|
|
147
|
-
onClose();
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
const removeLink = ({
|
|
151
|
-
shouldCloseBottomSheet = true,
|
|
152
|
-
skipStateUpdates = false
|
|
153
|
-
} = {}) => {
|
|
154
|
-
clearFormat({
|
|
155
|
-
skipStateUpdates
|
|
156
|
-
});
|
|
157
|
-
onRemove();
|
|
158
|
-
if (shouldCloseBottomSheet) {
|
|
159
|
-
onClose();
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
const submit = (submitValue, {
|
|
163
|
-
skipStateUpdates = false
|
|
164
|
-
} = {}) => {
|
|
165
|
-
if (submitValue === '') {
|
|
166
|
-
removeLink({
|
|
167
|
-
skipStateUpdates
|
|
168
|
-
});
|
|
169
|
-
} else {
|
|
170
|
-
submitLink({
|
|
171
|
-
skipStateUpdates
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
useEffect(() => {
|
|
176
|
-
const unsubscribe = navigation.addListener('focus', () => {
|
|
177
|
-
const {
|
|
178
|
-
params = {}
|
|
179
|
-
} = route;
|
|
180
|
-
if (!text && params.text) {
|
|
181
|
-
setText(params.text);
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
return unsubscribe;
|
|
185
|
-
}, [navigation, route.params?.text, text]);
|
|
186
|
-
return useMemo(() => {
|
|
187
|
-
const shouldShowLinkOptions = !!inputValue;
|
|
188
|
-
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
189
|
-
children: [/*#__PURE__*/_jsx(BottomSheet.LinkCell, {
|
|
190
|
-
value: inputValue,
|
|
191
|
-
onPress: onLinkCellPressed
|
|
192
|
-
}), /*#__PURE__*/_jsx(BottomSheet.Cell, {
|
|
193
|
-
icon: textColor,
|
|
194
|
-
label: __('Link text'),
|
|
195
|
-
value: text,
|
|
196
|
-
placeholder: __('Add link text'),
|
|
197
|
-
onChangeValue: setText,
|
|
198
|
-
onSubmit: submit,
|
|
199
|
-
separatorType: shouldShowLinkOptions ? undefined : 'none'
|
|
200
|
-
}), shouldShowLinkOptions && /*#__PURE__*/_jsxs(_Fragment, {
|
|
201
|
-
children: [/*#__PURE__*/_jsx(BottomSheet.SwitchCell, {
|
|
202
|
-
icon: external,
|
|
203
|
-
label: __('Open in new tab'),
|
|
204
|
-
value: opensInNewWindow,
|
|
205
|
-
onValueChange: setOpensInNewWindows,
|
|
206
|
-
separatorType: "fullWidth"
|
|
207
|
-
}), /*#__PURE__*/_jsx(BottomSheet.Cell, {
|
|
208
|
-
label: __('Remove link'),
|
|
209
|
-
labelStyle: styles.clearLinkButton,
|
|
210
|
-
separatorType: "none",
|
|
211
|
-
onPress: removeLink
|
|
212
|
-
})]
|
|
213
|
-
})]
|
|
214
|
-
});
|
|
215
|
-
}, [inputValue, text, opensInNewWindow, listProps.safeAreaBottomInset]);
|
|
216
|
-
};
|
|
217
|
-
export default LinkSettingsScreen;
|
|
218
|
-
//# sourceMappingURL=link-settings-screen.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useNavigation","useRoute","__","useState","useContext","useEffect","useMemo","prependHTTP","BottomSheet","BottomSheetContext","create","insert","isCollapsed","applyFormat","getTextContent","slice","external","textColor","createLinkFormat","isValidHref","linkSettingsScreens","styles","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","LinkSettingsScreen","onRemove","onClose","onChange","speak","value","isActive","activeAttributes","isVisible","text","setText","opensInNewWindow","setOpensInNewWindows","target","linkValues","setLinkValues","isActiveLink","isRemovingLink","shouldEnableBottomSheetMaxHeight","onHandleClosingBottomSheet","listProps","navigation","route","inputValue","url","params","onLinkCellPressed","navigate","picker","submit","skipStateUpdates","submitLink","shouldCloseBottomSheet","removeLink","clearFormat","activeFormats","linkText","format","newAttributes","toInsert","length","start","end","textLength","needsSelectionUpdate","submitValue","unsubscribe","addListener","shouldShowLinkOptions","children","LinkCell","onPress","Cell","icon","label","placeholder","onChangeValue","onSubmit","separatorType","undefined","SwitchCell","onValueChange","labelStyle","clearLinkButton","safeAreaBottomInset"],"sources":["@wordpress/format-library/src/link/modal-screens/link-settings-screen.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useContext, useEffect, useMemo } from '@wordpress/element';\nimport { prependHTTP } from '@wordpress/url';\nimport { BottomSheet, BottomSheetContext } from '@wordpress/components';\nimport {\n\tcreate,\n\tinsert,\n\tisCollapsed,\n\tapplyFormat,\n\tgetTextContent,\n\tslice,\n} from '@wordpress/rich-text';\nimport { external, textColor } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { createLinkFormat, isValidHref } from '../utils';\nimport linkSettingsScreens from './screens';\n\nimport styles from '../modal.scss';\n\nconst LinkSettingsScreen = ( {\n\tonRemove,\n\tonClose,\n\tonChange,\n\tspeak,\n\tvalue,\n\tisActive,\n\tactiveAttributes,\n\tisVisible,\n} ) => {\n\tconst [ text, setText ] = useState( getTextContent( slice( value ) ) );\n\tconst [ opensInNewWindow, setOpensInNewWindows ] = useState(\n\t\tactiveAttributes.target === '_blank'\n\t);\n\tconst [ linkValues, setLinkValues ] = useState( {\n\t\tisActiveLink: isActive,\n\t\tisRemovingLink: false,\n\t} );\n\n\tconst {\n\t\tshouldEnableBottomSheetMaxHeight,\n\t\tonHandleClosingBottomSheet,\n\t\tlistProps,\n\t} = useContext( BottomSheetContext );\n\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst { inputValue = activeAttributes.url || '' } = route.params || {};\n\tconst onLinkCellPressed = () => {\n\t\tshouldEnableBottomSheetMaxHeight( false );\n\t\tnavigation.navigate( linkSettingsScreens.picker, { inputValue } );\n\t};\n\tuseEffect( () => {\n\t\tonHandleClosingBottomSheet( () => {\n\t\t\tsubmit( inputValue, { skipStateUpdates: true } );\n\t\t} );\n\t}, [ inputValue, opensInNewWindow, text ] );\n\n\tuseEffect( () => {\n\t\tconst { isActiveLink, isRemovingLink } = linkValues;\n\t\tif ( !! inputValue && ! isActiveLink && isVisible ) {\n\t\t\tsubmitLink( { shouldCloseBottomSheet: false } );\n\t\t} else if (\n\t\t\t( ( inputValue === '' && isActiveLink ) || isRemovingLink ) &&\n\t\t\tisVisible\n\t\t) {\n\t\t\tremoveLink( { shouldCloseBottomSheet: false } );\n\t\t}\n\t}, [\n\t\tinputValue,\n\t\tisVisible,\n\t\tlinkValues.isActiveLink,\n\t\tlinkValues.isRemovingLink,\n\t] );\n\n\tconst clearFormat = ( { skipStateUpdates = false } = {} ) => {\n\t\tonChange( { ...value, activeFormats: [] } );\n\t\tif ( ! skipStateUpdates ) {\n\t\t\tsetLinkValues( { isActiveLink: false, isRemovingLink: true } );\n\t\t}\n\t};\n\n\tconst submitLink = ( {\n\t\tshouldCloseBottomSheet = true,\n\t\tskipStateUpdates = false,\n\t} = {} ) => {\n\t\tconst url = prependHTTP( inputValue );\n\t\tconst linkText = text || inputValue;\n\t\tconst format = createLinkFormat( {\n\t\t\turl,\n\t\t\topensInNewWindow,\n\t\t\ttext: linkText,\n\t\t} );\n\t\tlet newAttributes;\n\t\tif ( isCollapsed( value ) && ! isActive ) {\n\t\t\t// Insert link.\n\t\t\tconst toInsert = applyFormat(\n\t\t\t\tcreate( { text: linkText } ),\n\t\t\t\tformat,\n\t\t\t\t0,\n\t\t\t\tlinkText.length\n\t\t\t);\n\t\t\tnewAttributes = insert( value, toInsert );\n\t\t} else if ( text !== getTextContent( slice( value ) ) ) {\n\t\t\t// Edit text in selected link.\n\t\t\tconst toInsert = applyFormat(\n\t\t\t\tcreate( { text } ),\n\t\t\t\tformat,\n\t\t\t\t0,\n\t\t\t\ttext.length\n\t\t\t);\n\t\t\tnewAttributes = insert( value, toInsert, value.start, value.end );\n\t\t} else {\n\t\t\t// Transform selected text into link.\n\t\t\tnewAttributes = applyFormat( value, format );\n\t\t}\n\t\t// Move selection to end of link.\n\t\tconst textLength = newAttributes.text.length;\n\t\t// check for zero width spaces\n\t\tif ( newAttributes.end > textLength ) {\n\t\t\tnewAttributes.start = textLength;\n\t\t\tnewAttributes.end = textLength;\n\t\t} else {\n\t\t\tnewAttributes.start = newAttributes.end;\n\t\t}\n\t\tnewAttributes.activeFormats = [];\n\t\tonChange( { ...newAttributes, needsSelectionUpdate: true } );\n\t\tif ( ! skipStateUpdates ) {\n\t\t\tsetLinkValues( { isActiveLink: true, isRemovingLink: false } );\n\t\t}\n\n\t\tif ( ! isValidHref( url ) ) {\n\t\t\tspeak(\n\t\t\t\t__(\n\t\t\t\t\t'Warning: the link has been inserted but may have errors. Please test it.'\n\t\t\t\t),\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t} else if ( isActive ) {\n\t\t\tspeak( __( 'Link edited.' ), 'assertive' );\n\t\t} else {\n\t\t\tspeak( __( 'Link inserted' ), 'assertive' );\n\t\t}\n\n\t\tif ( shouldCloseBottomSheet ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst removeLink = ( {\n\t\tshouldCloseBottomSheet = true,\n\t\tskipStateUpdates = false,\n\t} = {} ) => {\n\t\tclearFormat( { skipStateUpdates } );\n\t\tonRemove();\n\t\tif ( shouldCloseBottomSheet ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst submit = ( submitValue, { skipStateUpdates = false } = {} ) => {\n\t\tif ( submitValue === '' ) {\n\t\t\tremoveLink( { skipStateUpdates } );\n\t\t} else {\n\t\t\tsubmitLink( { skipStateUpdates } );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = navigation.addListener( 'focus', () => {\n\t\t\tconst { params = {} } = route;\n\t\t\tif ( ! text && params.text ) {\n\t\t\t\tsetText( params.text );\n\t\t\t}\n\t\t} );\n\t\treturn unsubscribe;\n\t}, [ navigation, route.params?.text, text ] );\n\n\treturn useMemo( () => {\n\t\tconst shouldShowLinkOptions = !! inputValue;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\tvalue={ inputValue }\n\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t/>\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ textColor }\n\t\t\t\t\tlabel={ __( 'Link text' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tplaceholder={ __( 'Add link text' ) }\n\t\t\t\t\tonChangeValue={ setText }\n\t\t\t\t\tonSubmit={ submit }\n\t\t\t\t\tseparatorType={ shouldShowLinkOptions ? undefined : 'none' }\n\t\t\t\t/>\n\t\t\t\t{ shouldShowLinkOptions && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BottomSheet.SwitchCell\n\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tvalue={ opensInNewWindow }\n\t\t\t\t\t\t\tonValueChange={ setOpensInNewWindows }\n\t\t\t\t\t\t\tseparatorType=\"fullWidth\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\t\tlabelStyle={ styles.clearLinkButton }\n\t\t\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t\t\t\tonPress={ removeLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [ inputValue, text, opensInNewWindow, listProps.safeAreaBottomInset ] );\n};\n\nexport default LinkSettingsScreen;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["settings","picker"],"sources":["@wordpress/format-library/src/link/modal-screens/screens.native.js"],"sourcesContent":["export default {\n\tsettings: 'linkSettings',\n\tpicker: 'linkPicker',\n};\n"],"mappings":"AAAA,eAAe;EACdA,QAAQ,EAAE,cAAc;EACxBC,MAAM,EAAE;AACT,CAAC","ignoreList":[]}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useMemo } from '@wordpress/element';
|
|
5
|
-
import { BottomSheet, withSpokenMessages } from '@wordpress/components';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Internal dependencies
|
|
9
|
-
*/
|
|
10
|
-
import screens from './modal-screens/screens';
|
|
11
|
-
import LinkSettingsScreen from './modal-screens/link-settings-screen';
|
|
12
|
-
import LinkPickerScreen from './modal-screens/link-picker-screen';
|
|
13
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
const ModalLinkUI = ({
|
|
15
|
-
isVisible,
|
|
16
|
-
...restProps
|
|
17
|
-
}) => {
|
|
18
|
-
return useMemo(() => {
|
|
19
|
-
return /*#__PURE__*/_jsx(BottomSheet, {
|
|
20
|
-
isVisible: isVisible,
|
|
21
|
-
hideHeader: true,
|
|
22
|
-
onClose: restProps.onClose,
|
|
23
|
-
hasNavigation: true,
|
|
24
|
-
testID: "link-settings-modal",
|
|
25
|
-
children: /*#__PURE__*/_jsxs(BottomSheet.NavigationContainer, {
|
|
26
|
-
animate: true,
|
|
27
|
-
main: true,
|
|
28
|
-
children: [/*#__PURE__*/_jsx(BottomSheet.NavigationScreen, {
|
|
29
|
-
name: screens.settings,
|
|
30
|
-
children: /*#__PURE__*/_jsx(LinkSettingsScreen, {
|
|
31
|
-
isVisible: isVisible,
|
|
32
|
-
...restProps
|
|
33
|
-
})
|
|
34
|
-
}), /*#__PURE__*/_jsx(BottomSheet.NavigationScreen, {
|
|
35
|
-
name: screens.picker,
|
|
36
|
-
isScrollable: true,
|
|
37
|
-
fullScreen: true,
|
|
38
|
-
children: /*#__PURE__*/_jsx(LinkPickerScreen, {})
|
|
39
|
-
})]
|
|
40
|
-
})
|
|
41
|
-
});
|
|
42
|
-
}, [isVisible]);
|
|
43
|
-
};
|
|
44
|
-
export default withSpokenMessages(ModalLinkUI);
|
|
45
|
-
//# sourceMappingURL=modal.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","BottomSheet","withSpokenMessages","screens","LinkSettingsScreen","LinkPickerScreen","jsx","_jsx","jsxs","_jsxs","ModalLinkUI","isVisible","restProps","hideHeader","onClose","hasNavigation","testID","children","NavigationContainer","animate","main","NavigationScreen","name","settings","picker","isScrollable","fullScreen"],"sources":["@wordpress/format-library/src/link/modal.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { BottomSheet, withSpokenMessages } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport screens from './modal-screens/screens';\nimport LinkSettingsScreen from './modal-screens/link-settings-screen';\nimport LinkPickerScreen from './modal-screens/link-picker-screen';\n\nconst ModalLinkUI = ( { isVisible, ...restProps } ) => {\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ isVisible }\n\t\t\t\thideHeader\n\t\t\t\tonClose={ restProps.onClose }\n\t\t\t\thasNavigation\n\t\t\t\ttestID=\"link-settings-modal\"\n\t\t\t>\n\t\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t\t<BottomSheet.NavigationScreen name={ screens.settings }>\n\t\t\t\t\t\t<LinkSettingsScreen\n\t\t\t\t\t\t\tisVisible={ isVisible }\n\t\t\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\t\tname={ screens.picker }\n\t\t\t\t\t\tisScrollable\n\t\t\t\t\t\tfullScreen\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkPickerScreen />\n\t\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t</BottomSheet.NavigationContainer>\n\t\t\t</BottomSheet>\n\t\t);\n\t}, [ isVisible ] );\n};\n\nexport default withSpokenMessages( ModalLinkUI );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,uBAAuB;;AAEvE;AACA;AACA;AACA,OAAOC,OAAO,MAAM,yBAAyB;AAC7C,OAAOC,kBAAkB,MAAM,sCAAsC;AACrE,OAAOC,gBAAgB,MAAM,oCAAoC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElE,MAAMC,WAAW,GAAGA,CAAE;EAAEC,SAAS;EAAE,GAAGC;AAAU,CAAC,KAAM;EACtD,OAAOZ,OAAO,CAAE,MAAM;IACrB,oBACCO,IAAA,CAACN,WAAW;MACXU,SAAS,EAAGA,SAAW;MACvBE,UAAU;MACVC,OAAO,EAAGF,SAAS,CAACE,OAAS;MAC7BC,aAAa;MACbC,MAAM,EAAC,qBAAqB;MAAAC,QAAA,eAE5BR,KAAA,CAACR,WAAW,CAACiB,mBAAmB;QAACC,OAAO;QAACC,IAAI;QAAAH,QAAA,gBAC5CV,IAAA,CAACN,WAAW,CAACoB,gBAAgB;UAACC,IAAI,EAAGnB,OAAO,CAACoB,QAAU;UAAAN,QAAA,eACtDV,IAAA,CAACH,kBAAkB;YAClBO,SAAS,EAAGA,SAAW;YAAA,GAClBC;UAAS,CACd;QAAC,CAC2B,CAAC,eAC/BL,IAAA,CAACN,WAAW,CAACoB,gBAAgB;UAC5BC,IAAI,EAAGnB,OAAO,CAACqB,MAAQ;UACvBC,YAAY;UACZC,UAAU;UAAAT,QAAA,eAEVV,IAAA,CAACF,gBAAgB,IAAE;QAAC,CACS,CAAC;MAAA,CACC;IAAC,CACtB,CAAC;EAEhB,CAAC,EAAE,CAAEM,SAAS,CAAG,CAAC;AACnB,CAAC;AAED,eAAeT,kBAAkB,CAAEQ,WAAY,CAAC","ignoreList":[]}
|