@wordpress/block-library 9.26.0 → 9.27.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.
Files changed (174) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/button/edit.js +1 -1
  3. package/build/button/edit.js.map +1 -1
  4. package/build/cover/edit/block-controls.js +4 -2
  5. package/build/cover/edit/block-controls.js.map +1 -1
  6. package/build/cover/edit/index.js +6 -3
  7. package/build/cover/edit/index.js.map +1 -1
  8. package/build/cover/edit/inspector-controls.js +11 -4
  9. package/build/cover/edit/inspector-controls.js.map +1 -1
  10. package/build/cover/edit/poster-image.js +81 -0
  11. package/build/cover/edit/poster-image.js.map +1 -0
  12. package/build/cover/index.js +6 -0
  13. package/build/cover/index.js.map +1 -1
  14. package/build/cover/save.js +3 -1
  15. package/build/cover/save.js.map +1 -1
  16. package/build/details/index.js +1 -1
  17. package/build/details/index.js.map +1 -1
  18. package/build/gallery/constants.js +2 -1
  19. package/build/gallery/constants.js.map +1 -1
  20. package/build/gallery/edit.js +93 -15
  21. package/build/gallery/edit.js.map +1 -1
  22. package/build/image/edit.js +6 -0
  23. package/build/image/edit.js.map +1 -1
  24. package/build/list/index.js +0 -1
  25. package/build/list/index.js.map +1 -1
  26. package/build/media-text/edit.js +2 -2
  27. package/build/media-text/edit.js.map +1 -1
  28. package/build/more/edit.native.js +17 -32
  29. package/build/more/edit.native.js.map +1 -1
  30. package/build/navigation-link/edit.js +49 -16
  31. package/build/navigation-link/edit.js.map +1 -1
  32. package/build/navigation-link/update-attributes.js +112 -14
  33. package/build/navigation-link/update-attributes.js.map +1 -1
  34. package/build/navigation-submenu/edit.js +19 -2
  35. package/build/navigation-submenu/edit.js.map +1 -1
  36. package/build/post-author/edit.js +78 -35
  37. package/build/post-author/edit.js.map +1 -1
  38. package/build/post-comments-form/form.js +1 -1
  39. package/build/post-comments-form/form.js.map +1 -1
  40. package/build/post-content/edit.js +78 -16
  41. package/build/post-content/edit.js.map +1 -1
  42. package/build/post-content/index.js +6 -0
  43. package/build/post-content/index.js.map +1 -1
  44. package/build/post-featured-image/edit.js +2 -1
  45. package/build/post-featured-image/edit.js.map +1 -1
  46. package/build/search/edit.js +1 -1
  47. package/build/search/edit.js.map +1 -1
  48. package/build/separator/edit.js +5 -30
  49. package/build/separator/edit.js.map +1 -1
  50. package/build/site-logo/edit.js +16 -5
  51. package/build/site-logo/edit.js.map +1 -1
  52. package/build/site-tagline/index.js +1 -1
  53. package/build/video/edit.js +2 -5
  54. package/build/video/edit.js.map +1 -1
  55. package/build/video/poster-image.js +25 -25
  56. package/build/video/poster-image.js.map +1 -1
  57. package/build/video/tracks-editor.js +95 -104
  58. package/build/video/tracks-editor.js.map +1 -1
  59. package/build/video/tracks.js +6 -2
  60. package/build/video/tracks.js.map +1 -1
  61. package/build-module/button/edit.js +1 -1
  62. package/build-module/button/edit.js.map +1 -1
  63. package/build-module/cover/edit/block-controls.js +4 -2
  64. package/build-module/cover/edit/block-controls.js.map +1 -1
  65. package/build-module/cover/edit/index.js +6 -3
  66. package/build-module/cover/edit/index.js.map +1 -1
  67. package/build-module/cover/edit/inspector-controls.js +10 -4
  68. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  69. package/build-module/cover/edit/poster-image.js +74 -0
  70. package/build-module/cover/edit/poster-image.js.map +1 -0
  71. package/build-module/cover/index.js +6 -0
  72. package/build-module/cover/index.js.map +1 -1
  73. package/build-module/cover/save.js +3 -1
  74. package/build-module/cover/save.js.map +1 -1
  75. package/build-module/details/index.js +1 -1
  76. package/build-module/details/index.js.map +1 -1
  77. package/build-module/gallery/constants.js +1 -0
  78. package/build-module/gallery/constants.js.map +1 -1
  79. package/build-module/gallery/edit.js +95 -17
  80. package/build-module/gallery/edit.js.map +1 -1
  81. package/build-module/image/edit.js +6 -0
  82. package/build-module/image/edit.js.map +1 -1
  83. package/build-module/list/index.js +0 -1
  84. package/build-module/list/index.js.map +1 -1
  85. package/build-module/media-text/edit.js +2 -2
  86. package/build-module/media-text/edit.js.map +1 -1
  87. package/build-module/more/edit.native.js +16 -30
  88. package/build-module/more/edit.native.js.map +1 -1
  89. package/build-module/navigation-link/edit.js +50 -17
  90. package/build-module/navigation-link/edit.js.map +1 -1
  91. package/build-module/navigation-link/update-attributes.js +113 -15
  92. package/build-module/navigation-link/update-attributes.js.map +1 -1
  93. package/build-module/navigation-submenu/edit.js +20 -3
  94. package/build-module/navigation-submenu/edit.js.map +1 -1
  95. package/build-module/post-author/edit.js +78 -35
  96. package/build-module/post-author/edit.js.map +1 -1
  97. package/build-module/post-comments-form/form.js +1 -1
  98. package/build-module/post-comments-form/form.js.map +1 -1
  99. package/build-module/post-content/edit.js +80 -18
  100. package/build-module/post-content/edit.js.map +1 -1
  101. package/build-module/post-content/index.js +6 -0
  102. package/build-module/post-content/index.js.map +1 -1
  103. package/build-module/post-featured-image/edit.js +2 -1
  104. package/build-module/post-featured-image/edit.js.map +1 -1
  105. package/build-module/search/edit.js +1 -1
  106. package/build-module/search/edit.js.map +1 -1
  107. package/build-module/separator/edit.js +6 -31
  108. package/build-module/separator/edit.js.map +1 -1
  109. package/build-module/site-logo/edit.js +17 -6
  110. package/build-module/site-logo/edit.js.map +1 -1
  111. package/build-module/site-tagline/index.js +1 -1
  112. package/build-module/video/edit.js +2 -5
  113. package/build-module/video/edit.js.map +1 -1
  114. package/build-module/video/poster-image.js +26 -26
  115. package/build-module/video/poster-image.js.map +1 -1
  116. package/build-module/video/tracks-editor.js +96 -105
  117. package/build-module/video/tracks-editor.js.map +1 -1
  118. package/build-module/video/tracks.js +6 -2
  119. package/build-module/video/tracks.js.map +1 -1
  120. package/build-style/archives/editor-rtl.css +0 -4
  121. package/build-style/archives/editor.css +0 -4
  122. package/build-style/editor-rtl.css +0 -21
  123. package/build-style/editor.css +0 -21
  124. package/build-style/file/style-rtl.css +1 -1
  125. package/build-style/file/style.css +1 -1
  126. package/build-style/gallery/editor-rtl.css +0 -13
  127. package/build-style/gallery/editor.css +0 -13
  128. package/build-style/navigation/style-rtl.css +2 -0
  129. package/build-style/navigation/style.css +2 -0
  130. package/build-style/style-rtl.css +3 -1
  131. package/build-style/style.css +3 -1
  132. package/build-style/video/editor-rtl.css +0 -4
  133. package/build-style/video/editor.css +0 -4
  134. package/package.json +35 -35
  135. package/src/archives/editor.scss +0 -4
  136. package/src/button/edit.js +1 -1
  137. package/src/comments-pagination/index.php +7 -2
  138. package/src/cover/block.json +6 -0
  139. package/src/cover/edit/block-controls.js +22 -17
  140. package/src/cover/edit/index.js +4 -1
  141. package/src/cover/edit/inspector-controls.js +12 -3
  142. package/src/cover/edit/poster-image.js +91 -0
  143. package/src/cover/save.js +2 -0
  144. package/src/details/index.js +1 -1
  145. package/src/file/style.scss +1 -1
  146. package/src/gallery/constants.js +1 -0
  147. package/src/gallery/edit.js +182 -68
  148. package/src/gallery/editor.scss +0 -17
  149. package/src/image/edit.js +12 -0
  150. package/src/list/block.json +0 -1
  151. package/src/media-text/edit.js +1 -1
  152. package/src/more/edit.native.js +19 -33
  153. package/src/navigation/style.scss +2 -0
  154. package/src/navigation-link/edit.js +46 -17
  155. package/src/navigation-link/test/edit.js +738 -6
  156. package/src/navigation-link/update-attributes.js +125 -12
  157. package/src/navigation-submenu/edit.js +21 -1
  158. package/src/post-author/edit.js +91 -40
  159. package/src/post-comments-form/form.js +1 -1
  160. package/src/post-content/block.json +6 -0
  161. package/src/post-content/edit.js +71 -19
  162. package/src/post-content/index.php +11 -4
  163. package/src/post-featured-image/edit.js +1 -0
  164. package/src/post-featured-image/index.php +3 -2
  165. package/src/rss/index.php +2 -1
  166. package/src/search/edit.js +1 -1
  167. package/src/separator/edit.js +8 -43
  168. package/src/site-logo/edit.js +22 -10
  169. package/src/site-tagline/block.json +1 -1
  170. package/src/video/edit.js +1 -4
  171. package/src/video/editor.scss +0 -6
  172. package/src/video/poster-image.js +29 -24
  173. package/src/video/tracks-editor.js +93 -103
  174. package/src/video/tracks.js +2 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_blob","_components","_blockEditor","_element","_i18n","_compose","_data","_icons","_notices","_posterImage","_util","_hooks","_editCommonSettings","_tracksEditor","_tracks","_caption","_jsxRuntime","ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","isSingleSelected","attributes","className","setAttributes","insertBlocksAfter","onReplace","instanceId","useInstanceId","videoPlayer","useRef","id","controls","poster","src","tracks","temporaryURL","setTemporaryURL","useState","blob","dropdownMenuProps","useToolsPanelDropdownMenuProps","useUploadMediaFromBlobURL","url","allowedTypes","onChange","onSelectVideo","onError","onUploadError","useEffect","current","load","media","undefined","caption","isBlobURL","image","icon","onSelectURL","newSrc","embedBlock","createUpgradedEmbedBlock","createErrorNotice","useDispatch","noticesStore","message","type","placeholder","content","jsx","Placeholder","withIllustration","label","__","instructions","children","classes","clsx","blockProps","useBlockProps","MediaPlaceholder","BlockIcon","onSelect","accept","value","jsxs","Fragment","BlockControls","default","newTracks","group","MediaReplaceFlow","mediaId","mediaURL","onReset","InspectorControls","__experimentalToolsPanel","resetAll","autoplay","loop","muted","playsInline","preload","Disabled","isDisabled","ref","Spinner","Caption","showToolbarButton","_default","exports"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tSpinner,\n\tPlaceholder,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport PosterImage from './poster-image';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst instanceId = useInstanceId( VideoEdit );\n\tconst videoPlayer = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tsrc: newSrc,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\twithIllustration={ ! isSingleSelected }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Video' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ () => onSelectVideo( undefined ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tcontrols: true,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tmuted: false,\n\t\t\t\t\t\t\tplaysInline: false,\n\t\t\t\t\t\t\tpreload: 'metadata',\n\t\t\t\t\t\t\tposter: '',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<PosterImage\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n Disable the video tag if the block is not selected\n so the user clicking on it won't play the\n video when the controls are enabled.\n */ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src || temporaryURL }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_blob","_components","_blockEditor","_element","_i18n","_data","_icons","_notices","_posterImage","_util","_hooks","_editCommonSettings","_tracksEditor","_tracks","_caption","_jsxRuntime","ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","isSingleSelected","attributes","className","setAttributes","insertBlocksAfter","onReplace","videoPlayer","useRef","id","controls","poster","src","tracks","temporaryURL","setTemporaryURL","useState","blob","dropdownMenuProps","useToolsPanelDropdownMenuProps","useUploadMediaFromBlobURL","url","allowedTypes","onChange","onSelectVideo","onError","onUploadError","useEffect","current","load","media","undefined","caption","isBlobURL","image","icon","onSelectURL","newSrc","embedBlock","createUpgradedEmbedBlock","createErrorNotice","useDispatch","noticesStore","message","type","placeholder","content","jsx","Placeholder","withIllustration","label","__","instructions","children","classes","clsx","blockProps","useBlockProps","MediaPlaceholder","BlockIcon","onSelect","accept","value","jsxs","Fragment","BlockControls","default","newTracks","group","MediaReplaceFlow","mediaId","mediaURL","onReset","InspectorControls","__experimentalToolsPanel","resetAll","autoplay","loop","muted","playsInline","preload","Disabled","isDisabled","ref","Spinner","Caption","showToolbarButton","_default","exports"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tSpinner,\n\tPlaceholder,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport PosterImage from './poster-image';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst videoPlayer = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tsrc: newSrc,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\twithIllustration={ ! isSingleSelected }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Video' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ () => onSelectVideo( undefined ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tcontrols: true,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tmuted: false,\n\t\t\t\t\t\t\tplaysInline: false,\n\t\t\t\t\t\t\tpreload: 'metadata',\n\t\t\t\t\t\t\tposter: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<PosterImage\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n Disable the video tag if the block is not selected\n so the user clicking on it won't play the\n video when the controls are enabled.\n */ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src || temporaryURL }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -8,19 +8,19 @@ var _blockEditor = require("@wordpress/block-editor");
8
8
  var _components = require("@wordpress/components");
9
9
  var _i18n = require("@wordpress/i18n");
10
10
  var _element = require("@wordpress/element");
11
+ var _compose = require("@wordpress/compose");
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  /**
13
14
  * WordPress dependencies
14
15
  */
15
16
 
17
+ const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];
16
18
  function PosterImage({
17
19
  poster,
18
- setAttributes,
19
- instanceId
20
+ setAttributes
20
21
  }) {
21
- const posterImageButton = (0, _element.useRef)();
22
- const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];
23
- const videoPosterDescription = `video-block__poster-image-description-${instanceId}`;
22
+ const posterButtonRef = (0, _element.useRef)();
23
+ const descriptionId = (0, _compose.useInstanceId)(PosterImage, 'video-block__poster-image-description');
24
24
  function onSelectPoster(image) {
25
25
  setAttributes({
26
26
  poster: image.url
@@ -32,23 +32,23 @@ function PosterImage({
32
32
  });
33
33
 
34
34
  // Move focus back to the Media Upload button.
35
- posterImageButton.current.focus();
35
+ posterButtonRef.current.focus();
36
36
  }
37
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
38
- label: (0, _i18n.__)('Poster image'),
39
- isShownByDefault: true,
40
- hasValue: () => !!poster,
41
- onDeselect: () => {
42
- setAttributes({
43
- poster: ''
44
- });
45
- },
46
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaUploadCheck, {
47
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
48
- className: "editor-video-poster-control",
49
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BaseControl.VisualLabel, {
50
- children: (0, _i18n.__)('Poster image')
51
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaUpload, {
37
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaUploadCheck, {
38
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalToolsPanelItem, {
39
+ label: (0, _i18n.__)('Poster image'),
40
+ isShownByDefault: true,
41
+ hasValue: () => !!poster,
42
+ onDeselect: () => {
43
+ setAttributes({
44
+ poster: undefined
45
+ });
46
+ },
47
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BaseControl.VisualLabel, {
48
+ children: (0, _i18n.__)('Poster image')
49
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
50
+ justify: "flex-start",
51
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaUpload, {
52
52
  title: (0, _i18n.__)('Select poster image'),
53
53
  onSelect: onSelectPoster,
54
54
  allowedTypes: VIDEO_POSTER_ALLOWED_MEDIA_TYPES,
@@ -58,12 +58,12 @@ function PosterImage({
58
58
  __next40pxDefaultSize: true,
59
59
  variant: "primary",
60
60
  onClick: open,
61
- ref: posterImageButton,
62
- "aria-describedby": videoPosterDescription,
61
+ ref: posterButtonRef,
62
+ "aria-describedby": descriptionId,
63
63
  children: !poster ? (0, _i18n.__)('Select') : (0, _i18n.__)('Replace')
64
64
  })
65
65
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
66
- id: videoPosterDescription,
66
+ id: descriptionId,
67
67
  hidden: true,
68
68
  children: poster ? (0, _i18n.sprintf)(/* translators: %s: poster image URL. */
69
69
  (0, _i18n.__)('The current poster image url is %s'), poster) : (0, _i18n.__)('There is no poster image currently selected')
@@ -73,7 +73,7 @@ function PosterImage({
73
73
  variant: "tertiary",
74
74
  children: (0, _i18n.__)('Remove')
75
75
  })]
76
- })
76
+ })]
77
77
  })
78
78
  });
79
79
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_blockEditor","require","_components","_i18n","_element","_jsxRuntime","PosterImage","poster","setAttributes","instanceId","posterImageButton","useRef","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","videoPosterDescription","onSelectPoster","image","url","onRemovePoster","undefined","current","focus","jsx","__experimentalToolsPanelItem","label","__","isShownByDefault","hasValue","onDeselect","children","MediaUploadCheck","jsxs","className","BaseControl","VisualLabel","MediaUpload","title","onSelect","allowedTypes","render","open","Button","__next40pxDefaultSize","variant","onClick","ref","id","hidden","sprintf","_default","exports","default"],"sources":["@wordpress/block-library/src/video/poster-image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MediaUpload, MediaUploadCheck } from '@wordpress/block-editor';\nimport {\n\tButton,\n\tBaseControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef } from '@wordpress/element';\n\nfunction PosterImage( { poster, setAttributes, instanceId } ) {\n\tconst posterImageButton = useRef();\n\tconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n\tconst videoPosterDescription = `video-block__poster-image-description-${ instanceId }`;\n\n\tfunction onSelectPoster( image ) {\n\t\tsetAttributes( { poster: image.url } );\n\t}\n\n\tfunction onRemovePoster() {\n\t\tsetAttributes( { poster: undefined } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\tposterImageButton.current.focus();\n\t}\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tlabel={ __( 'Poster image' ) }\n\t\t\tisShownByDefault\n\t\t\thasValue={ () => !! poster }\n\t\t\tonDeselect={ () => {\n\t\t\t\tsetAttributes( { poster: '' } );\n\t\t\t} }\n\t\t>\n\t\t\t<MediaUploadCheck>\n\t\t\t\t<div className=\"editor-video-poster-control\">\n\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\t\tonSelect={ onSelectPoster }\n\t\t\t\t\t\tallowedTypes={ VIDEO_POSTER_ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\tref={ posterImageButton }\n\t\t\t\t\t\t\t\taria-describedby={ videoPosterDescription }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! poster ? __( 'Select' ) : __( 'Replace' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<p id={ videoPosterDescription } hidden>\n\t\t\t\t\t\t{ poster\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: poster image URL. */\n\t\t\t\t\t\t\t\t\t__( 'The current poster image url is %s' ),\n\t\t\t\t\t\t\t\t\tposter\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'There is no poster image currently selected'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ !! poster && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tonClick={ onRemovePoster }\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</MediaUploadCheck>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nexport default PosterImage;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blockEditor","require","_components","_i18n","_element","_compose","_jsxRuntime","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","PosterImage","poster","setAttributes","posterButtonRef","useRef","descriptionId","useInstanceId","onSelectPoster","image","url","onRemovePoster","undefined","current","focus","jsx","MediaUploadCheck","children","jsxs","__experimentalToolsPanelItem","label","__","isShownByDefault","hasValue","onDeselect","BaseControl","VisualLabel","__experimentalHStack","justify","MediaUpload","title","onSelect","allowedTypes","render","open","Button","__next40pxDefaultSize","variant","onClick","ref","id","hidden","sprintf","_default","exports","default"],"sources":["@wordpress/block-library/src/video/poster-image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MediaUpload, MediaUploadCheck } from '@wordpress/block-editor';\nimport {\n\tButton,\n\tBaseControl,\n\t__experimentalHStack as HStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\n\nconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction PosterImage( { poster, setAttributes } ) {\n\tconst posterButtonRef = useRef();\n\tconst descriptionId = useInstanceId(\n\t\tPosterImage,\n\t\t'video-block__poster-image-description'\n\t);\n\n\tfunction onSelectPoster( image ) {\n\t\tsetAttributes( { poster: image.url } );\n\t}\n\n\tfunction onRemovePoster() {\n\t\tsetAttributes( { poster: undefined } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\tposterButtonRef.current.focus();\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Poster image' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! poster }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { poster: undefined } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\t\tonSelect={ onSelectPoster }\n\t\t\t\t\t\tallowedTypes={ VIDEO_POSTER_ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\tref={ posterButtonRef }\n\t\t\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! poster ? __( 'Select' ) : __( 'Replace' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<p id={ descriptionId } hidden>\n\t\t\t\t\t\t{ poster\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: poster image URL. */\n\t\t\t\t\t\t\t\t\t__( 'The current poster image url is %s' ),\n\t\t\t\t\t\t\t\t\tposter\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'There is no poster image currently selected'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ !! poster && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tonClick={ onRemovePoster }\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</ToolsPanelItem>\n\t\t</MediaUploadCheck>\n\t);\n}\n\nexport default PosterImage;\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,6 @@ exports.default = TracksEditor;
7
7
  var _i18n = require("@wordpress/i18n");
8
8
  var _components = require("@wordpress/components");
9
9
  var _blockEditor = require("@wordpress/block-editor");
10
- var _notices = require("@wordpress/notices");
11
10
  var _icons = require("@wordpress/icons");
12
11
  var _data = require("@wordpress/data");
13
12
  var _element = require("@wordpress/element");
@@ -43,11 +42,19 @@ const KIND_OPTIONS = [{
43
42
  label: (0, _i18n.__)('Metadata'),
44
43
  value: 'metadata'
45
44
  }];
45
+ const DEFAULT_TRACK = {
46
+ src: '',
47
+ label: '',
48
+ srcLang: 'en',
49
+ kind: DEFAULT_KIND,
50
+ default: false
51
+ };
46
52
  function TrackList({
47
53
  tracks,
48
54
  onEditPress
49
55
  }) {
50
56
  const content = tracks.map((track, index) => {
57
+ var _track$id;
51
58
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
52
59
  className: "block-library-video-tracks-editor__track-list-track",
53
60
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
@@ -65,7 +72,7 @@ function TrackList({
65
72
  children: (0, _i18n.__)('Edit')
66
73
  })]
67
74
  })]
68
- }, track.src);
75
+ }, (_track$id = track.id) !== null && _track$id !== void 0 ? _track$id : track.src);
69
76
  });
70
77
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuGroup, {
71
78
  label: (0, _i18n.__)('Text tracks'),
@@ -80,13 +87,17 @@ function SingleTrackEditor({
80
87
  onRemove,
81
88
  allowSettingDefault
82
89
  }) {
90
+ const [trackState, setTrackState] = (0, _element.useState)({
91
+ ...DEFAULT_TRACK,
92
+ ...track
93
+ });
83
94
  const {
84
- src = '',
85
- label = '',
86
- srcLang = '',
87
- kind = DEFAULT_KIND,
88
- default: isDefaultTrack = false
89
- } = track;
95
+ src,
96
+ label,
97
+ srcLang,
98
+ kind,
99
+ default: isDefaultTrack
100
+ } = trackState;
90
101
  const fileName = src.startsWith('blob:') ? '' : (0, _url.getFilename)(src) || '';
91
102
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
92
103
  className: "block-library-video-tracks-editor__single-track-editor",
@@ -104,20 +115,20 @@ function SingleTrackEditor({
104
115
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
105
116
  __next40pxDefaultSize: true,
106
117
  __nextHasNoMarginBottom: true,
107
- onChange: newLabel => onChange({
108
- ...track,
118
+ onChange: newLabel => setTrackState(prevTrackState => ({
119
+ ...prevTrackState,
109
120
  label: newLabel
110
- }),
121
+ })),
111
122
  label: (0, _i18n.__)('Label'),
112
123
  value: label,
113
124
  help: (0, _i18n.__)('Title of track')
114
125
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
115
126
  __next40pxDefaultSize: true,
116
127
  __nextHasNoMarginBottom: true,
117
- onChange: newSrcLang => onChange({
118
- ...track,
128
+ onChange: newSrcLang => setTrackState(prevTrackState => ({
129
+ ...prevTrackState,
119
130
  srcLang: newSrcLang
120
- }),
131
+ })),
121
132
  label: (0, _i18n.__)('Source language'),
122
133
  value: srcLang,
123
134
  help: (0, _i18n.__)('Language tag (en, fr, etc.)')
@@ -131,24 +142,20 @@ function SingleTrackEditor({
131
142
  options: KIND_OPTIONS,
132
143
  value: kind,
133
144
  label: (0, _i18n.__)('Kind'),
134
- onChange: newKind => {
135
- onChange({
136
- ...track,
137
- kind: newKind
138
- });
139
- }
145
+ onChange: newKind => setTrackState(prevTrackState => ({
146
+ ...prevTrackState,
147
+ kind: newKind
148
+ }))
140
149
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
141
150
  __next40pxDefaultSize: true,
142
151
  __nextHasNoMarginBottom: true,
143
152
  label: (0, _i18n.__)('Set as default track'),
144
153
  checked: isDefaultTrack,
145
154
  disabled: !allowSettingDefault,
146
- onChange: defaultTrack => {
147
- onChange({
148
- ...track,
149
- default: defaultTrack
150
- });
151
- }
155
+ onChange: defaultTrack => setTrackState(prevTrackState => ({
156
+ ...prevTrackState,
157
+ default: defaultTrack
158
+ }))
152
159
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
153
160
  className: "block-library-video-tracks-editor__single-track-editor-buttons-container",
154
161
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
@@ -161,26 +168,7 @@ function SingleTrackEditor({
161
168
  __next40pxDefaultSize: true,
162
169
  variant: "primary",
163
170
  onClick: () => {
164
- const changes = {};
165
- let hasChanges = false;
166
- if (label === '') {
167
- changes.label = (0, _i18n.__)('English');
168
- hasChanges = true;
169
- }
170
- if (srcLang === '') {
171
- changes.srcLang = 'en';
172
- hasChanges = true;
173
- }
174
- if (track.kind === undefined) {
175
- changes.kind = DEFAULT_KIND;
176
- hasChanges = true;
177
- }
178
- if (hasChanges) {
179
- onChange({
180
- ...track,
181
- ...changes
182
- });
183
- }
171
+ onChange(trackState);
184
172
  onClose();
185
173
  },
186
174
  children: (0, _i18n.__)('Apply')
@@ -193,32 +181,53 @@ function TracksEditor({
193
181
  tracks = [],
194
182
  onChange
195
183
  }) {
196
- const {
197
- createNotice
198
- } = (0, _data.useDispatch)(_notices.store);
199
184
  const mediaUpload = (0, _data.useSelect)(select => {
200
185
  return select(_blockEditor.store).getSettings().mediaUpload;
201
186
  }, []);
202
187
  const [trackBeingEdited, setTrackBeingEdited] = (0, _element.useState)(null);
203
188
  const dropdownPopoverRef = (0, _element.useRef)();
204
- const handleTrackSelect = ({
205
- title,
206
- url
207
- }) => {
208
- if (tracks.some(track => track.src === url)) {
209
- createNotice('error', (0, _i18n.__)('This track already exists.'), {
210
- isDismissible: true,
211
- type: 'snackbar'
212
- });
189
+ const handleTrackSelect = (selectedTracks = [], appendTracks = false) => {
190
+ const existingTracksMap = new Map(tracks.map(track => [track.id, track]));
191
+ const tracksToAdd = selectedTracks.map(({
192
+ id,
193
+ title,
194
+ url
195
+ }) => {
196
+ // Reuse existing tracks to preserve user-configured metadata.
197
+ if (existingTracksMap.has(id)) {
198
+ return existingTracksMap.get(id);
199
+ }
200
+ return {
201
+ ...DEFAULT_TRACK,
202
+ id,
203
+ label: title || '',
204
+ src: url
205
+ };
206
+ });
207
+ if (tracksToAdd.length === 0) {
213
208
  return;
214
209
  }
215
- const trackIndex = tracks.length;
216
- onChange([...tracks, {
217
- label: title || '',
218
- src: url
219
- }]);
220
- setTrackBeingEdited(trackIndex);
210
+ onChange([...(appendTracks ? tracks : []), ...tracksToAdd]);
221
211
  };
212
+ function uploadFiles(event) {
213
+ const files = event.target.files;
214
+ mediaUpload({
215
+ allowedTypes: ALLOWED_TYPES,
216
+ filesList: files,
217
+ onFileChange: selectedTracks => {
218
+ if (!Array.isArray(selectedTracks)) {
219
+ return;
220
+ }
221
+
222
+ // Wait until the track has been uploaded.
223
+ const uploadedTracks = selectedTracks.filter(track => !!track?.id);
224
+ if (!uploadedTracks.length) {
225
+ return;
226
+ }
227
+ handleTrackSelect(uploadedTracks, true);
228
+ }
229
+ });
230
+ }
222
231
  (0, _element.useEffect)(() => {
223
232
  dropdownPopoverRef.current?.focus();
224
233
  }, [trackBeingEdited]);
@@ -283,57 +292,39 @@ function TracksEditor({
283
292
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(TrackList, {
284
293
  tracks: tracks,
285
294
  onEditPress: setTrackBeingEdited
286
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.MenuGroup, {
295
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuGroup, {
287
296
  className: "block-library-video-tracks-editor__add-tracks-container",
288
297
  label: (0, _i18n.__)('Add tracks'),
289
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaUpload, {
290
- onSelect: handleTrackSelect,
291
- allowedTypes: ALLOWED_TYPES,
292
- render: ({
293
- open
294
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
295
- icon: _icons.media,
296
- onClick: open,
297
- children: (0, _i18n.__)('Open Media Library')
298
- })
299
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaUploadCheck, {
300
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FormFileUpload, {
301
- onChange: event => {
302
- const files = event.target.files;
303
- const trackIndex = tracks.length;
304
- mediaUpload({
305
- allowedTypes: ALLOWED_TYPES,
306
- filesList: files,
307
- onFileChange: ([{
308
- url
309
- }]) => {
310
- const newTracks = [...tracks];
311
- if (!newTracks[trackIndex]) {
312
- newTracks[trackIndex] = {};
313
- }
314
- newTracks[trackIndex] = {
315
- ...tracks[trackIndex],
316
- src: url
317
- };
318
- onChange(newTracks);
319
- setTrackBeingEdited(trackIndex);
320
- }
321
- });
322
- },
298
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_blockEditor.MediaUploadCheck, {
299
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaUpload, {
300
+ onSelect: handleTrackSelect,
301
+ allowedTypes: ALLOWED_TYPES,
302
+ value: tracks.map(({
303
+ id
304
+ }) => id),
305
+ multiple: true,
306
+ render: ({
307
+ open
308
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
309
+ icon: _icons.media,
310
+ onClick: open,
311
+ children: (0, _i18n.__)('Open Media Library')
312
+ })
313
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FormFileUpload, {
314
+ onChange: uploadFiles,
323
315
  accept: ".vtt,text/vtt",
316
+ multiple: true,
324
317
  render: ({
325
318
  openFileDialog
326
319
  }) => {
327
320
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
328
321
  icon: _icons.upload,
329
- onClick: () => {
330
- openFileDialog();
331
- },
322
+ onClick: openFileDialog,
332
323
  children: (0, _i18n._x)('Upload', 'verb')
333
324
  });
334
325
  }
335
- })
336
- })]
326
+ })]
327
+ })
337
328
  })]
338
329
  })]
339
330
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_blockEditor","_notices","_icons","_data","_element","_url","_lockUnlock","_jsxRuntime","Badge","unlock","componentsPrivateApis","ALLOWED_TYPES","DEFAULT_KIND","KIND_OPTIONS","label","__","value","TrackList","tracks","onEditPress","content","map","track","index","jsxs","__experimentalHStack","className","children","jsx","justify","default","Button","__next40pxDefaultSize","variant","onClick","sprintf","_x","src","MenuGroup","SingleTrackEditor","onChange","onClose","onRemove","allowSettingDefault","srcLang","kind","isDefaultTrack","fileName","startsWith","getFilename","__experimentalVStack","spacing","__experimentalGrid","columns","gap","TextControl","__nextHasNoMarginBottom","newLabel","help","newSrcLang","SelectControl","options","newKind","ToggleControl","checked","disabled","defaultTrack","isDestructive","changes","hasChanges","undefined","TracksEditor","createNotice","useDispatch","noticesStore","mediaUpload","useSelect","select","blockEditorStore","getSettings","trackBeingEdited","setTrackBeingEdited","useState","dropdownPopoverRef","useRef","handleTrackSelect","title","url","some","isDismissible","type","trackIndex","length","useEffect","current","focus","Dropdown","contentClassName","focusOnMount","popoverProps","ref","renderToggle","isOpen","onToggle","handleOnToggle","ToolbarGroup","ToolbarButton","renderContent","newTrack","newTracks","filter","_track","Fragment","NavigableMenu","MediaUpload","onSelect","allowedTypes","render","open","MenuItem","icon","media","MediaUploadCheck","FormFileUpload","event","files","target","filesList","onFileChange","accept","openFileDialog","upload"],"sources":["@wordpress/block-library/src/video/tracks-editor.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tNavigableMenu,\n\tMenuItem,\n\tFormFileUpload,\n\tMenuGroup,\n\tToolbarGroup,\n\tToolbarButton,\n\tDropdown,\n\tButton,\n\tTextControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { upload, media } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\nconst ALLOWED_TYPES = [ 'text/vtt' ];\n\nconst DEFAULT_KIND = 'subtitles';\n\nconst KIND_OPTIONS = [\n\t{ label: __( 'Subtitles' ), value: 'subtitles' },\n\t{ label: __( 'Captions' ), value: 'captions' },\n\t{ label: __( 'Descriptions' ), value: 'descriptions' },\n\t{ label: __( 'Chapters' ), value: 'chapters' },\n\t{ label: __( 'Metadata' ), value: 'metadata' },\n];\n\nfunction TrackList( { tracks, onEditPress } ) {\n\tconst content = tracks.map( ( track, index ) => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tkey={ track.src }\n\t\t\t\tclassName=\"block-library-video-tracks-editor__track-list-track\"\n\t\t\t>\n\t\t\t\t<span>{ track.label }</span>\n\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t{ track.default && <Badge>{ __( 'Default' ) }</Badge> }\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onEditPress( index ) }\n\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the video text track e.g: \"French subtitles\". */\n\t\t\t\t\t\t\t_x( 'Edit %s', 'text tracks' ),\n\t\t\t\t\t\t\ttrack.label\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<MenuGroup\n\t\t\tlabel={ __( 'Text tracks' ) }\n\t\t\tclassName=\"block-library-video-tracks-editor__track-list\"\n\t\t>\n\t\t\t{ content }\n\t\t</MenuGroup>\n\t);\n}\n\nfunction SingleTrackEditor( {\n\ttrack,\n\tonChange,\n\tonClose,\n\tonRemove,\n\tallowSettingDefault,\n} ) {\n\tconst {\n\t\tsrc = '',\n\t\tlabel = '',\n\t\tsrcLang = '',\n\t\tkind = DEFAULT_KIND,\n\t\tdefault: isDefaultTrack = false,\n\t} = track;\n\tconst fileName = src.startsWith( 'blob:' ) ? '' : getFilename( src ) || '';\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor\"\n\t\t\tspacing=\"4\"\n\t\t>\n\t\t\t<span className=\"block-library-video-tracks-editor__single-track-editor-edit-track-label\">\n\t\t\t\t{ __( 'Edit track' ) }\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t{ __( 'File' ) }: <b>{ fileName }</b>\n\t\t\t</span>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\thelp={ __( 'Title of track' ) }\n\t\t\t\t/>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\tsrcLang: newSrcLang,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Source language' ) }\n\t\t\t\t\tvalue={ srcLang }\n\t\t\t\t\thelp={ __( 'Language tag (en, fr, etc.)' ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor-kind-select\"\n\t\t\t\t\toptions={ KIND_OPTIONS }\n\t\t\t\t\tvalue={ kind }\n\t\t\t\t\tlabel={ __( 'Kind' ) }\n\t\t\t\t\tonChange={ ( newKind ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\tkind: newKind,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Set as default track' ) }\n\t\t\t\t\tchecked={ isDefaultTrack }\n\t\t\t\t\tdisabled={ ! allowSettingDefault }\n\t\t\t\t\tonChange={ ( defaultTrack ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\tdefault: defaultTrack,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"block-library-video-tracks-editor__single-track-editor-buttons-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove track' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tconst changes = {};\n\t\t\t\t\t\t\tlet hasChanges = false;\n\t\t\t\t\t\t\tif ( label === '' ) {\n\t\t\t\t\t\t\t\tchanges.label = __( 'English' );\n\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( srcLang === '' ) {\n\t\t\t\t\t\t\t\tchanges.srcLang = 'en';\n\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( track.kind === undefined ) {\n\t\t\t\t\t\t\t\tchanges.kind = DEFAULT_KIND;\n\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( hasChanges ) {\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\t\t\t...changes,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function TracksEditor( { tracks = [], onChange } ) {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst [ trackBeingEdited, setTrackBeingEdited ] = useState( null );\n\tconst dropdownPopoverRef = useRef();\n\n\tconst handleTrackSelect = ( { title, url } ) => {\n\t\tif ( tracks.some( ( track ) => track.src === url ) ) {\n\t\t\tcreateNotice( 'error', __( 'This track already exists.' ), {\n\t\t\t\tisDismissible: true,\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tconst trackIndex = tracks.length;\n\t\tonChange( [ ...tracks, { label: title || '', src: url } ] );\n\t\tsetTrackBeingEdited( trackIndex );\n\t};\n\n\tuseEffect( () => {\n\t\tdropdownPopoverRef.current?.focus();\n\t}, [ trackBeingEdited ] );\n\n\tif ( ! mediaUpload ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"block-library-video-tracks-editor\"\n\t\t\tfocusOnMount\n\t\t\tpopoverProps={ {\n\t\t\t\tref: dropdownPopoverRef,\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst handleOnToggle = () => {\n\t\t\t\t\tif ( ! isOpen ) {\n\t\t\t\t\t\t// When the Popover opens make sure the initial view is\n\t\t\t\t\t\t// always the track list rather than the edit track UI.\n\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t}\n\t\t\t\t\tonToggle();\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\tonClick={ handleOnToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => {\n\t\t\t\tif ( trackBeingEdited !== null ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SingleTrackEditor\n\t\t\t\t\t\t\ttrack={ tracks[ trackBeingEdited ] }\n\t\t\t\t\t\t\tonChange={ ( newTrack ) => {\n\t\t\t\t\t\t\t\tconst newTracks = [ ...tracks ];\n\t\t\t\t\t\t\t\tnewTracks[ trackBeingEdited ] = newTrack;\n\t\t\t\t\t\t\t\tonChange( newTracks );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClose={ () => setTrackBeingEdited( null ) }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\ttracks.filter(\n\t\t\t\t\t\t\t\t\t\t( _track, index ) =>\n\t\t\t\t\t\t\t\t\t\t\tindex !== trackBeingEdited\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tallowSettingDefault={\n\t\t\t\t\t\t\t\t! tracks.some( ( track ) => track.default ) ||\n\t\t\t\t\t\t\t\ttracks[ trackBeingEdited ].default\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ tracks.length === 0 && (\n\t\t\t\t\t\t\t<div className=\"block-library-video-tracks-editor__tracks-informative-message\">\n\t\t\t\t\t\t\t\t<h2 className=\"block-library-video-tracks-editor__tracks-informative-message-title\">\n\t\t\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t<p className=\"block-library-video-tracks-editor__tracks-informative-message-description\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t<TrackList\n\t\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\t\tonEditPress={ setTrackBeingEdited }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MenuGroup\n\t\t\t\t\t\t\t\tclassName=\"block-library-video-tracks-editor__add-tracks-container\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Add tracks' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\tonSelect={ handleTrackSelect }\n\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tconst files = event.target.files;\n\t\t\t\t\t\t\t\t\t\t\tconst trackIndex = tracks.length;\n\t\t\t\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\t\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\t\t\t\t\t\t\t\t\t\tfilesList: files,\n\t\t\t\t\t\t\t\t\t\t\t\tonFileChange: ( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ url },\n\t\t\t\t\t\t\t\t\t\t\t\t] ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst newTracks = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...tracks,\n\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t! newTracks[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTracks[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t] = {};\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTracks[ trackIndex ] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...tracks[ trackIndex ],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc: url,\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange( newTracks );\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetTrackBeingEdited(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\taccept=\".vtt,text/vtt\"\n\t\t\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ _x( 'Upload', 'verb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</NavigableMenu>\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
+ {"version":3,"names":["_i18n","require","_components","_blockEditor","_icons","_data","_element","_url","_lockUnlock","_jsxRuntime","Badge","unlock","componentsPrivateApis","ALLOWED_TYPES","DEFAULT_KIND","KIND_OPTIONS","label","__","value","DEFAULT_TRACK","src","srcLang","kind","default","TrackList","tracks","onEditPress","content","map","track","index","_track$id","jsxs","__experimentalHStack","className","children","jsx","justify","Button","__next40pxDefaultSize","variant","onClick","sprintf","_x","id","MenuGroup","SingleTrackEditor","onChange","onClose","onRemove","allowSettingDefault","trackState","setTrackState","useState","isDefaultTrack","fileName","startsWith","getFilename","__experimentalVStack","spacing","__experimentalGrid","columns","gap","TextControl","__nextHasNoMarginBottom","newLabel","prevTrackState","help","newSrcLang","SelectControl","options","newKind","ToggleControl","checked","disabled","defaultTrack","isDestructive","TracksEditor","mediaUpload","useSelect","select","blockEditorStore","getSettings","trackBeingEdited","setTrackBeingEdited","dropdownPopoverRef","useRef","handleTrackSelect","selectedTracks","appendTracks","existingTracksMap","Map","tracksToAdd","title","url","has","get","length","uploadFiles","event","files","target","allowedTypes","filesList","onFileChange","Array","isArray","uploadedTracks","filter","useEffect","current","focus","Dropdown","contentClassName","focusOnMount","popoverProps","ref","renderToggle","isOpen","onToggle","handleOnToggle","ToolbarGroup","ToolbarButton","renderContent","newTrack","newTracks","_track","some","Fragment","NavigableMenu","MediaUploadCheck","MediaUpload","onSelect","multiple","render","open","MenuItem","icon","media","FormFileUpload","accept","openFileDialog","upload"],"sources":["@wordpress/block-library/src/video/tracks-editor.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tNavigableMenu,\n\tMenuItem,\n\tFormFileUpload,\n\tMenuGroup,\n\tToolbarGroup,\n\tToolbarButton,\n\tDropdown,\n\tButton,\n\tTextControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { upload, media } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\nconst ALLOWED_TYPES = [ 'text/vtt' ];\n\nconst DEFAULT_KIND = 'subtitles';\n\nconst KIND_OPTIONS = [\n\t{ label: __( 'Subtitles' ), value: 'subtitles' },\n\t{ label: __( 'Captions' ), value: 'captions' },\n\t{ label: __( 'Descriptions' ), value: 'descriptions' },\n\t{ label: __( 'Chapters' ), value: 'chapters' },\n\t{ label: __( 'Metadata' ), value: 'metadata' },\n];\n\nconst DEFAULT_TRACK = {\n\tsrc: '',\n\tlabel: '',\n\tsrcLang: 'en',\n\tkind: DEFAULT_KIND,\n\tdefault: false,\n};\n\nfunction TrackList( { tracks, onEditPress } ) {\n\tconst content = tracks.map( ( track, index ) => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tkey={ track.id ?? track.src }\n\t\t\t\tclassName=\"block-library-video-tracks-editor__track-list-track\"\n\t\t\t>\n\t\t\t\t<span>{ track.label }</span>\n\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t{ track.default && <Badge>{ __( 'Default' ) }</Badge> }\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onEditPress( index ) }\n\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the video text track e.g: \"French subtitles\". */\n\t\t\t\t\t\t\t_x( 'Edit %s', 'text tracks' ),\n\t\t\t\t\t\t\ttrack.label\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<MenuGroup\n\t\t\tlabel={ __( 'Text tracks' ) }\n\t\t\tclassName=\"block-library-video-tracks-editor__track-list\"\n\t\t>\n\t\t\t{ content }\n\t\t</MenuGroup>\n\t);\n}\n\nfunction SingleTrackEditor( {\n\ttrack,\n\tonChange,\n\tonClose,\n\tonRemove,\n\tallowSettingDefault,\n} ) {\n\tconst [ trackState, setTrackState ] = useState( {\n\t\t...DEFAULT_TRACK,\n\t\t...track,\n\t} );\n\n\tconst { src, label, srcLang, kind, default: isDefaultTrack } = trackState;\n\tconst fileName = src.startsWith( 'blob:' ) ? '' : getFilename( src ) || '';\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor\"\n\t\t\tspacing=\"4\"\n\t\t>\n\t\t\t<span className=\"block-library-video-tracks-editor__single-track-editor-edit-track-label\">\n\t\t\t\t{ __( 'Edit track' ) }\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t{ __( 'File' ) }: <b>{ fileName }</b>\n\t\t\t</span>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\thelp={ __( 'Title of track' ) }\n\t\t\t\t/>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tsrcLang: newSrcLang,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Source language' ) }\n\t\t\t\t\tvalue={ srcLang }\n\t\t\t\t\thelp={ __( 'Language tag (en, fr, etc.)' ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor-kind-select\"\n\t\t\t\t\toptions={ KIND_OPTIONS }\n\t\t\t\t\tvalue={ kind }\n\t\t\t\t\tlabel={ __( 'Kind' ) }\n\t\t\t\t\tonChange={ ( newKind ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tkind: newKind,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Set as default track' ) }\n\t\t\t\t\tchecked={ isDefaultTrack }\n\t\t\t\t\tdisabled={ ! allowSettingDefault }\n\t\t\t\t\tonChange={ ( defaultTrack ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tdefault: defaultTrack,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"block-library-video-tracks-editor__single-track-editor-buttons-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove track' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( trackState );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function TracksEditor( { tracks = [], onChange } ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst [ trackBeingEdited, setTrackBeingEdited ] = useState( null );\n\tconst dropdownPopoverRef = useRef();\n\n\tconst handleTrackSelect = ( selectedTracks = [], appendTracks = false ) => {\n\t\tconst existingTracksMap = new Map(\n\t\t\ttracks.map( ( track ) => [ track.id, track ] )\n\t\t);\n\t\tconst tracksToAdd = selectedTracks.map( ( { id, title, url } ) => {\n\t\t\t// Reuse existing tracks to preserve user-configured metadata.\n\t\t\tif ( existingTracksMap.has( id ) ) {\n\t\t\t\treturn existingTracksMap.get( id );\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...DEFAULT_TRACK,\n\t\t\t\tid,\n\t\t\t\tlabel: title || '',\n\t\t\t\tsrc: url,\n\t\t\t};\n\t\t} );\n\n\t\tif ( tracksToAdd.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( [ ...( appendTracks ? tracks : [] ), ...tracksToAdd ] );\n\t};\n\n\tfunction uploadFiles( event ) {\n\t\tconst files = event.target.files;\n\t\tmediaUpload( {\n\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( selectedTracks ) => {\n\t\t\t\tif ( ! Array.isArray( selectedTracks ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Wait until the track has been uploaded.\n\t\t\t\tconst uploadedTracks = selectedTracks.filter(\n\t\t\t\t\t( track ) => !! track?.id\n\t\t\t\t);\n\n\t\t\t\tif ( ! uploadedTracks.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\thandleTrackSelect( uploadedTracks, true );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tdropdownPopoverRef.current?.focus();\n\t}, [ trackBeingEdited ] );\n\n\tif ( ! mediaUpload ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"block-library-video-tracks-editor\"\n\t\t\tfocusOnMount\n\t\t\tpopoverProps={ {\n\t\t\t\tref: dropdownPopoverRef,\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst handleOnToggle = () => {\n\t\t\t\t\tif ( ! isOpen ) {\n\t\t\t\t\t\t// When the Popover opens make sure the initial view is\n\t\t\t\t\t\t// always the track list rather than the edit track UI.\n\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t}\n\t\t\t\t\tonToggle();\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\tonClick={ handleOnToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => {\n\t\t\t\tif ( trackBeingEdited !== null ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SingleTrackEditor\n\t\t\t\t\t\t\ttrack={ tracks[ trackBeingEdited ] }\n\t\t\t\t\t\t\tonChange={ ( newTrack ) => {\n\t\t\t\t\t\t\t\tconst newTracks = [ ...tracks ];\n\t\t\t\t\t\t\t\tnewTracks[ trackBeingEdited ] = newTrack;\n\t\t\t\t\t\t\t\tonChange( newTracks );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClose={ () => setTrackBeingEdited( null ) }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\ttracks.filter(\n\t\t\t\t\t\t\t\t\t\t( _track, index ) =>\n\t\t\t\t\t\t\t\t\t\t\tindex !== trackBeingEdited\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tallowSettingDefault={\n\t\t\t\t\t\t\t\t! tracks.some( ( track ) => track.default ) ||\n\t\t\t\t\t\t\t\ttracks[ trackBeingEdited ].default\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ tracks.length === 0 && (\n\t\t\t\t\t\t\t<div className=\"block-library-video-tracks-editor__tracks-informative-message\">\n\t\t\t\t\t\t\t\t<h2 className=\"block-library-video-tracks-editor__tracks-informative-message-title\">\n\t\t\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t<p className=\"block-library-video-tracks-editor__tracks-informative-message-description\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t<TrackList\n\t\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\t\tonEditPress={ setTrackBeingEdited }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MenuGroup\n\t\t\t\t\t\t\t\tclassName=\"block-library-video-tracks-editor__add-tracks-container\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Add tracks' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\t\tonSelect={ handleTrackSelect }\n\t\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\t\tvalue={ tracks.map( ( { id } ) => id ) }\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ uploadFiles }\n\t\t\t\t\t\t\t\t\t\taccept=\".vtt,text/vtt\"\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ _x( 'Upload', 'verb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAiBA,IAAAE,YAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,IAAA,GAAAN,OAAA;AAKA,IAAAO,WAAA,GAAAP,OAAA;AAAwC,IAAAQ,WAAA,GAAAR,OAAA;AAlCxC;AACA;AACA;;AA6BA;AACA;AACA;;AAGA,MAAM;EAAES;AAAM,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEjD,MAAMC,aAAa,GAAG,CAAE,UAAU,CAAE;AAEpC,MAAMC,YAAY,GAAG,WAAW;AAEhC,MAAMC,YAAY,GAAG,CACpB;EAAEC,KAAK,EAAE,IAAAC,QAAE,EAAE,WAAY,CAAC;EAAEC,KAAK,EAAE;AAAY,CAAC,EAChD;EAAEF,KAAK,EAAE,IAAAC,QAAE,EAAE,UAAW,CAAC;EAAEC,KAAK,EAAE;AAAW,CAAC,EAC9C;EAAEF,KAAK,EAAE,IAAAC,QAAE,EAAE,cAAe,CAAC;EAAEC,KAAK,EAAE;AAAe,CAAC,EACtD;EAAEF,KAAK,EAAE,IAAAC,QAAE,EAAE,UAAW,CAAC;EAAEC,KAAK,EAAE;AAAW,CAAC,EAC9C;EAAEF,KAAK,EAAE,IAAAC,QAAE,EAAE,UAAW,CAAC;EAAEC,KAAK,EAAE;AAAW,CAAC,CAC9C;AAED,MAAMC,aAAa,GAAG;EACrBC,GAAG,EAAE,EAAE;EACPJ,KAAK,EAAE,EAAE;EACTK,OAAO,EAAE,IAAI;EACbC,IAAI,EAAER,YAAY;EAClBS,OAAO,EAAE;AACV,CAAC;AAED,SAASC,SAASA,CAAE;EAAEC,MAAM;EAAEC;AAAY,CAAC,EAAG;EAC7C,MAAMC,OAAO,GAAGF,MAAM,CAACG,GAAG,CAAE,CAAEC,KAAK,EAAEC,KAAK,KAAM;IAAA,IAAAC,SAAA;IAC/C,oBACC,IAAAtB,WAAA,CAAAuB,IAAA,EAAC9B,WAAA,CAAA+B,oBAAM;MAENC,SAAS,EAAC,qDAAqD;MAAAC,QAAA,gBAE/D,IAAA1B,WAAA,CAAA2B,GAAA;QAAAD,QAAA,EAAQN,KAAK,CAACb;MAAK,CAAQ,CAAC,eAC5B,IAAAP,WAAA,CAAAuB,IAAA,EAAC9B,WAAA,CAAA+B,oBAAM;QAACI,OAAO,EAAC,UAAU;QAAAF,QAAA,GACvBN,KAAK,CAACN,OAAO,iBAAI,IAAAd,WAAA,CAAA2B,GAAA,EAAC1B,KAAK;UAAAyB,QAAA,EAAG,IAAAlB,QAAE,EAAE,SAAU;QAAC,CAAS,CAAC,eACrD,IAAAR,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAoC,MAAM;UACNC,qBAAqB;UACrBC,OAAO,EAAC,UAAU;UAClBC,OAAO,EAAGA,CAAA,KAAMf,WAAW,CAAEI,KAAM,CAAG;UACtC,cAAa,IAAAY,aAAO,EACnB;UACA,IAAAC,QAAE,EAAE,SAAS,EAAE,aAAc,CAAC,EAC9Bd,KAAK,CAACb,KACP,CAAG;UAAAmB,QAAA,EAED,IAAAlB,QAAE,EAAE,MAAO;QAAC,CACP,CAAC;MAAA,CACF,CAAC;IAAA,IAAAc,SAAA,GAlBHF,KAAK,CAACe,EAAE,cAAAb,SAAA,cAAAA,SAAA,GAAIF,KAAK,CAACT,GAmBjB,CAAC;EAEX,CAAE,CAAC;EAEH,oBACC,IAAAX,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAA2C,SAAS;IACT7B,KAAK,EAAG,IAAAC,QAAE,EAAE,aAAc,CAAG;IAC7BiB,SAAS,EAAC,+CAA+C;IAAAC,QAAA,EAEvDR;EAAO,CACC,CAAC;AAEd;AAEA,SAASmB,iBAAiBA,CAAE;EAC3BjB,KAAK;EACLkB,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,UAAU,EAAEC,aAAa,CAAE,GAAG,IAAAC,iBAAQ,EAAE;IAC/C,GAAGlC,aAAa;IAChB,GAAGU;EACJ,CAAE,CAAC;EAEH,MAAM;IAAET,GAAG;IAAEJ,KAAK;IAAEK,OAAO;IAAEC,IAAI;IAAEC,OAAO,EAAE+B;EAAe,CAAC,GAAGH,UAAU;EACzE,MAAMI,QAAQ,GAAGnC,GAAG,CAACoC,UAAU,CAAE,OAAQ,CAAC,GAAG,EAAE,GAAG,IAAAC,gBAAW,EAAErC,GAAI,CAAC,IAAI,EAAE;EAC1E,oBACC,IAAAX,WAAA,CAAAuB,IAAA,EAAC9B,WAAA,CAAAwD,oBAAM;IACNxB,SAAS,EAAC,wDAAwD;IAClEyB,OAAO,EAAC,GAAG;IAAAxB,QAAA,gBAEX,IAAA1B,WAAA,CAAA2B,GAAA;MAAMF,SAAS,EAAC,yEAAyE;MAAAC,QAAA,EACtF,IAAAlB,QAAE,EAAE,YAAa;IAAC,CACf,CAAC,eACP,IAAAR,WAAA,CAAAuB,IAAA;MAAAG,QAAA,GACG,IAAAlB,QAAE,EAAE,MAAO,CAAC,EAAE,IAAE,mBAAAR,WAAA,CAAA2B,GAAA;QAAAD,QAAA,EAAKoB;MAAQ,CAAK,CAAC;IAAA,CAChC,CAAC,eACP,IAAA9C,WAAA,CAAAuB,IAAA,EAAC9B,WAAA,CAAA0D,kBAAI;MAACC,OAAO,EAAG,CAAG;MAACC,GAAG,EAAG,CAAG;MAAA3B,QAAA,gBAC5B,IAAA1B,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAA6D,WAAW;QACXxB,qBAAqB;QACrByB,uBAAuB;QACvBjB,QAAQ,EAAKkB,QAAQ,IACpBb,aAAa,CAAIc,cAAc,KAAQ;UACtC,GAAGA,cAAc;UACjBlD,KAAK,EAAEiD;QACR,CAAC,CAAG,CACJ;QACDjD,KAAK,EAAG,IAAAC,QAAE,EAAE,OAAQ,CAAG;QACvBC,KAAK,EAAGF,KAAO;QACfmD,IAAI,EAAG,IAAAlD,QAAE,EAAE,gBAAiB;MAAG,CAC/B,CAAC,eACF,IAAAR,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAA6D,WAAW;QACXxB,qBAAqB;QACrByB,uBAAuB;QACvBjB,QAAQ,EAAKqB,UAAU,IACtBhB,aAAa,CAAIc,cAAc,KAAQ;UACtC,GAAGA,cAAc;UACjB7C,OAAO,EAAE+C;QACV,CAAC,CAAG,CACJ;QACDpD,KAAK,EAAG,IAAAC,QAAE,EAAE,iBAAkB,CAAG;QACjCC,KAAK,EAAGG,OAAS;QACjB8C,IAAI,EAAG,IAAAlD,QAAE,EAAE,6BAA8B;MAAG,CAC5C,CAAC;IAAA,CACG,CAAC,eACP,IAAAR,WAAA,CAAAuB,IAAA,EAAC9B,WAAA,CAAAwD,oBAAM;MAACC,OAAO,EAAC,GAAG;MAAAxB,QAAA,gBAClB,IAAA1B,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAmE,aAAa;QACb9B,qBAAqB;QACrByB,uBAAuB;QACvB9B,SAAS,EAAC,oEAAoE;QAC9EoC,OAAO,EAAGvD,YAAc;QACxBG,KAAK,EAAGI,IAAM;QACdN,KAAK,EAAG,IAAAC,QAAE,EAAE,MAAO,CAAG;QACtB8B,QAAQ,EAAKwB,OAAO,IACnBnB,aAAa,CAAIc,cAAc,KAAQ;UACtC,GAAGA,cAAc;UACjB5C,IAAI,EAAEiD;QACP,CAAC,CAAG;MACJ,CACD,CAAC,eACF,IAAA9D,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAsE,aAAa;QACbjC,qBAAqB;QACrByB,uBAAuB;QACvBhD,KAAK,EAAG,IAAAC,QAAE,EAAE,sBAAuB,CAAG;QACtCwD,OAAO,EAAGnB,cAAgB;QAC1BoB,QAAQ,EAAG,CAAExB,mBAAqB;QAClCH,QAAQ,EAAK4B,YAAY,IACxBvB,aAAa,CAAIc,cAAc,KAAQ;UACtC,GAAGA,cAAc;UACjB3C,OAAO,EAAEoD;QACV,CAAC,CAAG;MACJ,CACD,CAAC,eACF,IAAAlE,WAAA,CAAAuB,IAAA,EAAC9B,WAAA,CAAA+B,oBAAM;QAACC,SAAS,EAAC,0EAA0E;QAAAC,QAAA,gBAC3F,IAAA1B,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAoC,MAAM;UACNC,qBAAqB;UACrBqC,aAAa;UACbpC,OAAO,EAAC,MAAM;UACdC,OAAO,EAAGQ,QAAU;UAAAd,QAAA,EAElB,IAAAlB,QAAE,EAAE,cAAe;QAAC,CACf,CAAC,eACT,IAAAR,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAoC,MAAM;UACNC,qBAAqB;UACrBC,OAAO,EAAC,SAAS;UACjBC,OAAO,EAAGA,CAAA,KAAM;YACfM,QAAQ,CAAEI,UAAW,CAAC;YACtBH,OAAO,CAAC,CAAC;UACV,CAAG;UAAAb,QAAA,EAED,IAAAlB,QAAE,EAAE,OAAQ;QAAC,CACR,CAAC;MAAA,CACF,CAAC;IAAA,CACF,CAAC;EAAA,CACF,CAAC;AAEX;AAEe,SAAS4D,YAAYA,CAAE;EAAEpD,MAAM,GAAG,EAAE;EAAEsB;AAAS,CAAC,EAAG;EACjE,MAAM+B,WAAW,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5C,OAAOA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,WAAW,CAAC,CAAC,CAACJ,WAAW;EAC5D,CAAC,EAAE,EAAG,CAAC;EACP,MAAM,CAAEK,gBAAgB,EAAEC,mBAAmB,CAAE,GAAG,IAAA/B,iBAAQ,EAAE,IAAK,CAAC;EAClE,MAAMgC,kBAAkB,GAAG,IAAAC,eAAM,EAAC,CAAC;EAEnC,MAAMC,iBAAiB,GAAGA,CAAEC,cAAc,GAAG,EAAE,EAAEC,YAAY,GAAG,KAAK,KAAM;IAC1E,MAAMC,iBAAiB,GAAG,IAAIC,GAAG,CAChClE,MAAM,CAACG,GAAG,CAAIC,KAAK,IAAM,CAAEA,KAAK,CAACe,EAAE,EAAEf,KAAK,CAAG,CAC9C,CAAC;IACD,MAAM+D,WAAW,GAAGJ,cAAc,CAAC5D,GAAG,CAAE,CAAE;MAAEgB,EAAE;MAAEiD,KAAK;MAAEC;IAAI,CAAC,KAAM;MACjE;MACA,IAAKJ,iBAAiB,CAACK,GAAG,CAAEnD,EAAG,CAAC,EAAG;QAClC,OAAO8C,iBAAiB,CAACM,GAAG,CAAEpD,EAAG,CAAC;MACnC;MAEA,OAAO;QACN,GAAGzB,aAAa;QAChByB,EAAE;QACF5B,KAAK,EAAE6E,KAAK,IAAI,EAAE;QAClBzE,GAAG,EAAE0E;MACN,CAAC;IACF,CAAE,CAAC;IAEH,IAAKF,WAAW,CAACK,MAAM,KAAK,CAAC,EAAG;MAC/B;IACD;IAEAlD,QAAQ,CAAE,CAAE,IAAK0C,YAAY,GAAGhE,MAAM,GAAG,EAAE,CAAE,EAAE,GAAGmE,WAAW,CAAG,CAAC;EAClE,CAAC;EAED,SAASM,WAAWA,CAAEC,KAAK,EAAG;IAC7B,MAAMC,KAAK,GAAGD,KAAK,CAACE,MAAM,CAACD,KAAK;IAChCtB,WAAW,CAAE;MACZwB,YAAY,EAAEzF,aAAa;MAC3B0F,SAAS,EAAEH,KAAK;MAChBI,YAAY,EAAIhB,cAAc,IAAM;QACnC,IAAK,CAAEiB,KAAK,CAACC,OAAO,CAAElB,cAAe,CAAC,EAAG;UACxC;QACD;;QAEA;QACA,MAAMmB,cAAc,GAAGnB,cAAc,CAACoB,MAAM,CACzC/E,KAAK,IAAM,CAAC,CAAEA,KAAK,EAAEe,EACxB,CAAC;QAED,IAAK,CAAE+D,cAAc,CAACV,MAAM,EAAG;UAC9B;QACD;QACAV,iBAAiB,CAAEoB,cAAc,EAAE,IAAK,CAAC;MAC1C;IACD,CAAE,CAAC;EACJ;EAEA,IAAAE,kBAAS,EAAE,MAAM;IAChBxB,kBAAkB,CAACyB,OAAO,EAAEC,KAAK,CAAC,CAAC;EACpC,CAAC,EAAE,CAAE5B,gBAAgB,CAAG,CAAC;EAEzB,IAAK,CAAEL,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EACA,oBACC,IAAArE,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAA8G,QAAQ;IACRC,gBAAgB,EAAC,mCAAmC;IACpDC,YAAY;IACZC,YAAY,EAAG;MACdC,GAAG,EAAE/B;IACN,CAAG;IACHgC,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,KAAM;MAC1C,MAAMC,cAAc,GAAGA,CAAA,KAAM;QAC5B,IAAK,CAAEF,MAAM,EAAG;UACf;UACA;UACAlC,mBAAmB,CAAE,IAAK,CAAC;QAC5B;QACAmC,QAAQ,CAAC,CAAC;MACX,CAAC;MAED,oBACC,IAAA9G,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAuH,YAAY;QAAAtF,QAAA,eACZ,IAAA1B,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAwH,aAAa;UACb,iBAAgBJ,MAAQ;UACxB,iBAAc,MAAM;UACpB7E,OAAO,EAAG+E,cAAgB;UAAArF,QAAA,EAExB,IAAAlB,QAAE,EAAE,aAAc;QAAC,CACP;MAAC,CACH,CAAC;IAEjB,CAAG;IACH0G,aAAa,EAAGA,CAAA,KAAM;MACrB,IAAKxC,gBAAgB,KAAK,IAAI,EAAG;QAChC,oBACC,IAAA1E,WAAA,CAAA2B,GAAA,EAACU,iBAAiB;UACjBjB,KAAK,EAAGJ,MAAM,CAAE0D,gBAAgB,CAAI;UACpCpC,QAAQ,EAAK6E,QAAQ,IAAM;YAC1B,MAAMC,SAAS,GAAG,CAAE,GAAGpG,MAAM,CAAE;YAC/BoG,SAAS,CAAE1C,gBAAgB,CAAE,GAAGyC,QAAQ;YACxC7E,QAAQ,CAAE8E,SAAU,CAAC;UACtB,CAAG;UACH7E,OAAO,EAAGA,CAAA,KAAMoC,mBAAmB,CAAE,IAAK,CAAG;UAC7CnC,QAAQ,EAAGA,CAAA,KAAM;YAChBF,QAAQ,CACPtB,MAAM,CAACmF,MAAM,CACZ,CAAEkB,MAAM,EAAEhG,KAAK,KACdA,KAAK,KAAKqD,gBACZ,CACD,CAAC;YACDC,mBAAmB,CAAE,IAAK,CAAC;UAC5B,CAAG;UACHlC,mBAAmB,EAClB,CAAEzB,MAAM,CAACsG,IAAI,CAAIlG,KAAK,IAAMA,KAAK,CAACN,OAAQ,CAAC,IAC3CE,MAAM,CAAE0D,gBAAgB,CAAE,CAAC5D;QAC3B,CACD,CAAC;MAEJ;MAEA,oBACC,IAAAd,WAAA,CAAAuB,IAAA,EAAAvB,WAAA,CAAAuH,QAAA;QAAA7F,QAAA,GACGV,MAAM,CAACwE,MAAM,KAAK,CAAC,iBACpB,IAAAxF,WAAA,CAAAuB,IAAA;UAAKE,SAAS,EAAC,+DAA+D;UAAAC,QAAA,gBAC7E,IAAA1B,WAAA,CAAA2B,GAAA;YAAIF,SAAS,EAAC,qEAAqE;YAAAC,QAAA,EAChF,IAAAlB,QAAE,EAAE,aAAc;UAAC,CAClB,CAAC,eACL,IAAAR,WAAA,CAAA2B,GAAA;YAAGF,SAAS,EAAC,2EAA2E;YAAAC,QAAA,EACrF,IAAAlB,QAAE,EACH,sIACD;UAAC,CACC,CAAC;QAAA,CACA,CACL,eACD,IAAAR,WAAA,CAAAuB,IAAA,EAAC9B,WAAA,CAAA+H,aAAa;UAAA9F,QAAA,gBACb,IAAA1B,WAAA,CAAA2B,GAAA,EAACZ,SAAS;YACTC,MAAM,EAAGA,MAAQ;YACjBC,WAAW,EAAG0D;UAAqB,CACnC,CAAC,eACF,IAAA3E,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAA2C,SAAS;YACTX,SAAS,EAAC,yDAAyD;YACnElB,KAAK,EAAG,IAAAC,QAAE,EAAE,YAAa,CAAG;YAAAkB,QAAA,eAE5B,IAAA1B,WAAA,CAAAuB,IAAA,EAAC7B,YAAA,CAAA+H,gBAAgB;cAAA/F,QAAA,gBAChB,IAAA1B,WAAA,CAAA2B,GAAA,EAACjC,YAAA,CAAAgI,WAAW;gBACXC,QAAQ,EAAG7C,iBAAmB;gBAC9Be,YAAY,EAAGzF,aAAe;gBAC9BK,KAAK,EAAGO,MAAM,CAACG,GAAG,CAAE,CAAE;kBAAEgB;gBAAG,CAAC,KAAMA,EAAG,CAAG;gBACxCyF,QAAQ;gBACRC,MAAM,EAAGA,CAAE;kBAAEC;gBAAK,CAAC,kBAClB,IAAA9H,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAsI,QAAQ;kBACRC,IAAI,EAAGC,YAAO;kBACdjG,OAAO,EAAG8F,IAAM;kBAAApG,QAAA,EAEd,IAAAlB,QAAE,EAAE,oBAAqB;gBAAC,CACnB;cACR,CACH,CAAC,eACF,IAAAR,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAyI,cAAc;gBACd5F,QAAQ,EAAGmD,WAAa;gBACxB0C,MAAM,EAAC,eAAe;gBACtBP,QAAQ;gBACRC,MAAM,EAAGA,CAAE;kBAAEO;gBAAe,CAAC,KAAM;kBAClC,oBACC,IAAApI,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAsI,QAAQ;oBACRC,IAAI,EAAGK,aAAQ;oBACfrG,OAAO,EAAGoG,cAAgB;oBAAA1G,QAAA,EAExB,IAAAQ,QAAE,EAAE,QAAQ,EAAE,MAAO;kBAAC,CACf,CAAC;gBAEb;cAAG,CACH,CAAC;YAAA,CACe;UAAC,CACT,CAAC;QAAA,CACE,CAAC;MAAA,CACf,CAAC;IAEL;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}