@wordpress/block-library 9.15.0 → 9.16.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/CHANGELOG.md +2 -0
- package/build/button/edit.js +2 -1
- package/build/button/edit.js.map +1 -1
- package/build/columns/edit.js +1 -1
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +1 -1
- package/build/columns/edit.native.js.map +1 -1
- package/build/comment-template/edit.js +2 -2
- package/build/comment-template/edit.js.map +1 -1
- package/build/comments-pagination-next/index.js +7 -6
- package/build/comments-pagination-next/index.js.map +1 -1
- package/build/comments-pagination-previous/index.js +7 -6
- package/build/comments-pagination-previous/index.js.map +1 -1
- package/build/cover/deprecated.js +1 -1
- package/build/cover/deprecated.js.map +1 -1
- package/build/details/edit.js +12 -17
- package/build/details/edit.js.map +1 -1
- package/build/details/index.js +3 -0
- package/build/details/index.js.map +1 -1
- package/build/embed/util.js +1 -1
- package/build/embed/util.js.map +1 -1
- package/build/file/edit.js +7 -4
- package/build/file/edit.js.map +1 -1
- package/build/file/transforms.js +1 -1
- package/build/file/transforms.js.map +1 -1
- package/build/file/utils/index.js +1 -1
- package/build/file/utils/index.js.map +1 -1
- package/build/form-input/edit.js +1 -1
- package/build/form-input/edit.js.map +1 -1
- package/build/gallery/edit.js +1 -1
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/transforms.js +2 -2
- package/build/gallery/transforms.js.map +1 -1
- package/build/gallery/use-get-new-images.js +1 -1
- package/build/gallery/use-get-new-images.js.map +1 -1
- package/build/list-item/edit.native.js +2 -2
- package/build/list-item/edit.native.js.map +1 -1
- package/build/media-text/edit.native.js +2 -2
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/media-container.native.js +4 -4
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/navigation/edit/index.js +8 -4
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/index.js +15 -0
- package/build/navigation/index.js.map +1 -1
- package/build/navigation-link/edit.js +1 -1
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +9 -18
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -1
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/index.js +11 -0
- package/build/page-list/index.js.map +1 -1
- package/build/post-author-name/edit.js +41 -12
- package/build/post-author-name/edit.js.map +1 -1
- package/build/post-comments-link/index.js +7 -1
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-featured-image/overlay-controls.js +2 -1
- package/build/post-featured-image/overlay-controls.js.map +1 -1
- package/build/query/edit/inspector-controls/author-control.js +1 -1
- package/build/query/edit/inspector-controls/author-control.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +110 -61
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/utils.js +1 -1
- package/build/query/utils.js.map +1 -1
- package/build/query-title/edit.js +39 -14
- package/build/query-title/edit.js.map +1 -1
- package/build/query-total/index.js +7 -1
- package/build/query-total/index.js.map +1 -1
- package/build/quote/transforms.js +1 -1
- package/build/quote/transforms.js.map +1 -1
- package/build/rss/edit.js +1 -0
- package/build/rss/edit.js.map +1 -1
- package/build/rss/index.js +6 -0
- package/build/rss/index.js.map +1 -1
- package/build/search/edit.js +2 -1
- package/build/search/edit.js.map +1 -1
- package/build/site-logo/edit.js +26 -35
- package/build/site-logo/edit.js.map +1 -1
- package/build/social-links/edit.js +2 -1
- package/build/social-links/edit.js.map +1 -1
- package/build/table-of-contents/edit.js +24 -8
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/video/edit.native.js +3 -3
- package/build/video/edit.native.js.map +1 -1
- package/build-module/button/edit.js +3 -2
- package/build-module/button/edit.js.map +1 -1
- package/build-module/columns/edit.js +1 -1
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +1 -1
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/comment-template/edit.js +2 -2
- package/build-module/comment-template/edit.js.map +1 -1
- package/build-module/comments-pagination-next/index.js +7 -6
- package/build-module/comments-pagination-next/index.js.map +1 -1
- package/build-module/comments-pagination-previous/index.js +7 -6
- package/build-module/comments-pagination-previous/index.js.map +1 -1
- package/build-module/cover/deprecated.js +1 -1
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/details/edit.js +13 -18
- package/build-module/details/edit.js.map +1 -1
- package/build-module/details/index.js +3 -0
- package/build-module/details/index.js.map +1 -1
- package/build-module/embed/util.js +1 -1
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/edit.js +7 -4
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/transforms.js +1 -1
- package/build-module/file/transforms.js.map +1 -1
- package/build-module/file/utils/index.js +1 -1
- package/build-module/file/utils/index.js.map +1 -1
- package/build-module/form-input/edit.js +1 -1
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/gallery/edit.js +1 -1
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/transforms.js +2 -2
- package/build-module/gallery/transforms.js.map +1 -1
- package/build-module/gallery/use-get-new-images.js +1 -1
- package/build-module/gallery/use-get-new-images.js.map +1 -1
- package/build-module/list-item/edit.native.js +2 -2
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/media-text/edit.native.js +2 -2
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/media-container.native.js +4 -4
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/navigation/edit/index.js +8 -4
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/index.js +15 -0
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation-link/edit.js +1 -1
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +9 -18
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -1
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/index.js +11 -0
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/post-author-name/edit.js +42 -13
- package/build-module/post-author-name/edit.js.map +1 -1
- package/build-module/post-comments-link/index.js +7 -1
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-featured-image/overlay-controls.js +2 -1
- package/build-module/post-featured-image/overlay-controls.js.map +1 -1
- package/build-module/query/edit/inspector-controls/author-control.js +1 -1
- package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +111 -62
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/utils.js +1 -1
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-title/edit.js +40 -15
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/query-total/index.js +7 -1
- package/build-module/query-total/index.js.map +1 -1
- package/build-module/quote/transforms.js +1 -1
- package/build-module/quote/transforms.js.map +1 -1
- package/build-module/rss/edit.js +1 -0
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/rss/index.js +6 -0
- package/build-module/rss/index.js.map +1 -1
- package/build-module/search/edit.js +3 -2
- package/build-module/search/edit.js.map +1 -1
- package/build-module/site-logo/edit.js +27 -36
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/social-links/edit.js +2 -1
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js +25 -9
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/video/edit.native.js +3 -3
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/editor-rtl.css +6 -43
- package/build-style/editor.css +6 -43
- package/build-style/freeform/editor-rtl.css +2 -4
- package/build-style/freeform/editor.css +2 -4
- package/build-style/gallery/editor-rtl.css +2 -4
- package/build-style/gallery/editor.css +2 -4
- package/build-style/image/style-rtl.css +24 -10
- package/build-style/image/style.css +24 -10
- package/build-style/navigation/style-rtl.css +8 -6
- package/build-style/navigation/style.css +8 -6
- package/build-style/query/editor-rtl.css +0 -27
- package/build-style/query/editor.css +0 -27
- package/build-style/site-logo/editor-rtl.css +2 -8
- package/build-style/site-logo/editor.css +2 -8
- package/build-style/social-links/style-rtl.css +2 -5
- package/build-style/social-links/style.css +2 -5
- package/build-style/style-rtl.css +34 -21
- package/build-style/style.css +34 -21
- package/package.json +35 -35
- package/src/audio/test/transforms.native.js +4 -3
- package/src/button/edit.js +6 -2
- package/src/columns/edit.js +1 -1
- package/src/columns/edit.native.js +1 -1
- package/src/comment-template/edit.js +2 -2
- package/src/comments-pagination-next/block.json +0 -5
- package/src/comments-pagination-next/index.js +6 -0
- package/src/comments-pagination-previous/block.json +0 -5
- package/src/comments-pagination-previous/index.js +6 -0
- package/src/cover/deprecated.js +1 -1
- package/src/cover/test/__snapshots__/edit.native.js.snap +1 -1
- package/src/cover/test/edit.js +7 -7
- package/src/cover/test/edit.native.js +2 -2
- package/src/cover/test/transforms.native.js +9 -5
- package/src/details/block.json +3 -0
- package/src/details/edit.js +12 -23
- package/src/editor.scss +1 -1
- package/src/embed/test/index.js +1 -1
- package/src/embed/util.js +1 -1
- package/src/file/edit.js +4 -3
- package/src/file/test/transforms.native.js +4 -3
- package/src/file/transforms.js +1 -1
- package/src/file/utils/index.js +1 -1
- package/src/form-input/edit.js +1 -1
- package/src/freeform/editor.scss +4 -3
- package/src/gallery/edit.js +1 -1
- package/src/gallery/editor.scss +4 -2
- package/src/gallery/test/transforms.native.js +4 -3
- package/src/gallery/transforms.js +2 -2
- package/src/gallery/use-get-new-images.js +1 -1
- package/src/image/block.json +8 -1
- package/src/image/editor.scss +1 -1
- package/src/image/index.php +9 -13
- package/src/image/style.scss +17 -7
- package/src/image/test/edit.native.js +1 -1
- package/src/image/test/transforms.native.js +4 -3
- package/src/list/test/edit.native.js +1 -1
- package/src/list-item/edit.native.js +2 -2
- package/src/media-text/edit.native.js +2 -2
- package/src/media-text/media-container.native.js +4 -4
- package/src/media-text/test/transforms.native.js +9 -5
- package/src/navigation/edit/index.js +4 -0
- package/src/navigation/index.js +20 -0
- package/src/navigation/style.scss +7 -4
- package/src/navigation-link/edit.js +1 -1
- package/src/navigation-link/link-ui.js +7 -13
- package/src/navigation-submenu/edit.js +1 -1
- package/src/page-list/block.json +11 -0
- package/src/paragraph/style.scss +1 -1
- package/src/post-author-name/edit.js +53 -15
- package/src/post-comments-link/block.json +7 -1
- package/src/post-content/block.json +1 -1
- package/src/post-featured-image/overlay-controls.js +1 -0
- package/src/query/edit/inspector-controls/author-control.js +1 -1
- package/src/query/edit/inspector-controls/index.js +148 -88
- package/src/query/editor.scss +0 -31
- package/src/query/utils.js +1 -1
- package/src/query-title/edit.js +60 -19
- package/src/query-total/block.json +7 -1
- package/src/quote/transforms.js +1 -1
- package/src/rss/block.json +6 -0
- package/src/rss/edit.js +1 -0
- package/src/search/edit.js +6 -2
- package/src/separator/deprecated.scss +1 -1
- package/src/site-logo/edit.js +34 -47
- package/src/site-logo/editor.scss +3 -6
- package/src/social-link/index.php +2 -2
- package/src/social-links/edit.js +1 -0
- package/src/social-links/style.scss +3 -3
- package/src/table-of-contents/edit.js +38 -19
- package/src/video/edit.native.js +3 -3
- package/src/video/test/transforms.native.js +4 -3
|
@@ -108,17 +108,16 @@
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
.block-library-site-logo__inspector-
|
|
111
|
+
.block-library-site-logo__inspector-media-replace-container {
|
|
112
|
+
// Ensure the dropzone is positioned to the size of the item.
|
|
112
113
|
position: relative;
|
|
114
|
+
|
|
113
115
|
// Since there is no option to skip rendering the drag'n'drop icon in drop
|
|
114
116
|
// zone, we hide it for now.
|
|
115
117
|
.components-drop-zone__content-icon {
|
|
116
118
|
display: none;
|
|
117
119
|
}
|
|
118
|
-
}
|
|
119
120
|
|
|
120
|
-
.block-library-site-logo__inspector-upload-container,
|
|
121
|
-
.block-library-site-logo__inspector-media-replace-container {
|
|
122
121
|
button.components-button {
|
|
123
122
|
color: $gray-900;
|
|
124
123
|
box-shadow: inset 0 0 0 1px $gray-400;
|
|
@@ -144,9 +143,7 @@
|
|
|
144
143
|
text-align: start;
|
|
145
144
|
text-align-last: center;
|
|
146
145
|
}
|
|
147
|
-
}
|
|
148
146
|
|
|
149
|
-
.block-library-site-logo__inspector-media-replace-container {
|
|
150
147
|
.components-dropdown {
|
|
151
148
|
display: block;
|
|
152
149
|
}
|
|
@@ -42,9 +42,9 @@ function render_block_core_social_link( $attributes, $content, $block ) {
|
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* Prepend URL with https:// if it doesn't appear to contain a scheme
|
|
45
|
-
* and it's not a relative link
|
|
45
|
+
* and it's not a relative link or a fragment.
|
|
46
46
|
*/
|
|
47
|
-
if ( ! parse_url( $url, PHP_URL_SCHEME ) && ! str_starts_with( $url, '//' ) ) {
|
|
47
|
+
if ( ! parse_url( $url, PHP_URL_SCHEME ) && ! str_starts_with( $url, '//' ) && ! str_starts_with( $url, '#' ) ) {
|
|
48
48
|
$url = 'https://' . $url;
|
|
49
49
|
}
|
|
50
50
|
|
package/src/social-links/edit.js
CHANGED
|
@@ -70,8 +70,9 @@
|
|
|
70
70
|
.wp-block-social-link {
|
|
71
71
|
display: block;
|
|
72
72
|
border-radius: 9999px; // This makes it pill-shaped instead of oval, in cases where the image fed is not perfectly sized.
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
@media not (prefers-reduced-motion) {
|
|
74
|
+
transition: transform 0.1s ease;
|
|
75
|
+
}
|
|
75
76
|
|
|
76
77
|
// Dimensions.
|
|
77
78
|
height: auto;
|
|
@@ -80,7 +81,6 @@
|
|
|
80
81
|
align-items: center;
|
|
81
82
|
display: flex;
|
|
82
83
|
line-height: 0;
|
|
83
|
-
transition: transform 0.1s ease;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
&:hover {
|
|
@@ -10,11 +10,12 @@ import {
|
|
|
10
10
|
} from '@wordpress/block-editor';
|
|
11
11
|
import { createBlock } from '@wordpress/blocks';
|
|
12
12
|
import {
|
|
13
|
-
PanelBody,
|
|
14
13
|
Placeholder,
|
|
15
14
|
ToggleControl,
|
|
16
15
|
ToolbarButton,
|
|
17
16
|
ToolbarGroup,
|
|
17
|
+
__experimentalToolsPanel as ToolsPanel,
|
|
18
|
+
__experimentalToolsPanelItem as ToolsPanelItem,
|
|
18
19
|
} from '@wordpress/components';
|
|
19
20
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
20
21
|
import { renderToString } from '@wordpress/element';
|
|
@@ -29,6 +30,7 @@ import { tableOfContents as icon } from '@wordpress/icons';
|
|
|
29
30
|
import TableOfContentsList from './list';
|
|
30
31
|
import { linearToNestedHeadingList } from './utils';
|
|
31
32
|
import { useObserveHeadings } from './hooks';
|
|
33
|
+
import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
|
|
32
34
|
|
|
33
35
|
/** @typedef {import('./utils').HeadingData} HeadingData */
|
|
34
36
|
|
|
@@ -79,7 +81,7 @@ export default function TableOfContentsEdit( {
|
|
|
79
81
|
);
|
|
80
82
|
|
|
81
83
|
const { replaceBlocks } = useDispatch( blockEditorStore );
|
|
82
|
-
|
|
84
|
+
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
83
85
|
const headingTree = linearToNestedHeadingList( headings );
|
|
84
86
|
|
|
85
87
|
const toolbarControls = canInsertList && (
|
|
@@ -108,25 +110,42 @@ export default function TableOfContentsEdit( {
|
|
|
108
110
|
|
|
109
111
|
const inspectorControls = (
|
|
110
112
|
<InspectorControls>
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
<ToolsPanel
|
|
114
|
+
label={ __( 'Settings' ) }
|
|
115
|
+
resetAll={ () => {
|
|
116
|
+
setAttributes( {
|
|
117
|
+
onlyIncludeCurrentPage: false,
|
|
118
|
+
} );
|
|
119
|
+
} }
|
|
120
|
+
dropdownMenuProps={ dropdownMenuProps }
|
|
121
|
+
>
|
|
122
|
+
<ToolsPanelItem
|
|
123
|
+
hasValue={ () => !! onlyIncludeCurrentPage }
|
|
114
124
|
label={ __( 'Only include current page' ) }
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
setAttributes( { onlyIncludeCurrentPage: value } )
|
|
118
|
-
}
|
|
119
|
-
help={
|
|
120
|
-
onlyIncludeCurrentPage
|
|
121
|
-
? __(
|
|
122
|
-
'Only including headings from the current page (if the post is paginated).'
|
|
123
|
-
)
|
|
124
|
-
: __(
|
|
125
|
-
'Include headings from all pages (if the post is paginated).'
|
|
126
|
-
)
|
|
125
|
+
onDeselect={ () =>
|
|
126
|
+
setAttributes( { onlyIncludeCurrentPage: false } )
|
|
127
127
|
}
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
isShownByDefault
|
|
129
|
+
>
|
|
130
|
+
<ToggleControl
|
|
131
|
+
__nextHasNoMarginBottom
|
|
132
|
+
label={ __( 'Only include current page' ) }
|
|
133
|
+
checked={ onlyIncludeCurrentPage }
|
|
134
|
+
onChange={ ( value ) =>
|
|
135
|
+
setAttributes( { onlyIncludeCurrentPage: value } )
|
|
136
|
+
}
|
|
137
|
+
help={
|
|
138
|
+
onlyIncludeCurrentPage
|
|
139
|
+
? __(
|
|
140
|
+
'Only including headings from the current page (if the post is paginated).'
|
|
141
|
+
)
|
|
142
|
+
: __(
|
|
143
|
+
'Include headings from all pages (if the post is paginated).'
|
|
144
|
+
)
|
|
145
|
+
}
|
|
146
|
+
/>
|
|
147
|
+
</ToolsPanelItem>
|
|
148
|
+
</ToolsPanel>
|
|
130
149
|
</InspectorControls>
|
|
131
150
|
);
|
|
132
151
|
|
package/src/video/edit.native.js
CHANGED
|
@@ -72,7 +72,7 @@ class VideoEdit extends Component {
|
|
|
72
72
|
this.finishMediaUploadWithFailure.bind( this );
|
|
73
73
|
this.updateMediaProgress = this.updateMediaProgress.bind( this );
|
|
74
74
|
this.onVideoPressed = this.onVideoPressed.bind( this );
|
|
75
|
-
this.
|
|
75
|
+
this.onVideoContainerLayout = this.onVideoContainerLayout.bind( this );
|
|
76
76
|
this.onFocusCaption = this.onFocusCaption.bind( this );
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -179,7 +179,7 @@ class VideoEdit extends Component {
|
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
|
|
182
|
+
onVideoContainerLayout( event ) {
|
|
183
183
|
const { width } = event.nativeEvent.layout;
|
|
184
184
|
const height = width / VIDEO_ASPECT_RATIO;
|
|
185
185
|
if ( height !== this.state.videoContainerHeight ) {
|
|
@@ -321,7 +321,7 @@ class VideoEdit extends Component {
|
|
|
321
321
|
|
|
322
322
|
return (
|
|
323
323
|
<View
|
|
324
|
-
onLayout={ this.
|
|
324
|
+
onLayout={ this.onVideoContainerLayout }
|
|
325
325
|
style={ containerStyle }
|
|
326
326
|
>
|
|
327
327
|
{ showVideo && (
|
|
@@ -15,12 +15,12 @@ const initialHtml = `
|
|
|
15
15
|
<figure class="wp-block-video"><video controls src="https://i.cloudup.com/YtZFJbuQCE.mov"></video><figcaption class="wp-element-caption">Cloudup video</figcaption></figure>
|
|
16
16
|
<!-- /wp:video -->`;
|
|
17
17
|
|
|
18
|
-
const
|
|
18
|
+
const transformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
19
19
|
const nonMediaTransforms = [ 'File' ];
|
|
20
20
|
const blockTransforms = [
|
|
21
21
|
'Cover',
|
|
22
22
|
'Media & Text',
|
|
23
|
-
...
|
|
23
|
+
...transformsWithInnerBlocks,
|
|
24
24
|
...nonMediaTransforms,
|
|
25
25
|
];
|
|
26
26
|
|
|
@@ -31,7 +31,8 @@ describe( `${ block } block transforms`, () => {
|
|
|
31
31
|
const screen = await initializeEditor( { initialHtml } );
|
|
32
32
|
const newBlock = await transformBlock( screen, block, blockTransform, {
|
|
33
33
|
isMediaBlock: ! nonMediaTransforms.includes( blockTransform ),
|
|
34
|
-
hasInnerBlocks:
|
|
34
|
+
hasInnerBlocks:
|
|
35
|
+
transformsWithInnerBlocks.includes( blockTransform ),
|
|
35
36
|
} );
|
|
36
37
|
expect( newBlock ).toBeVisible();
|
|
37
38
|
expect( getEditorHtml() ).toMatchSnapshot();
|