HEX
Server: Apache/2.4.65 (Debian)
System: Linux 88f31f35b0b8 6.1.0-38-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.147-1 (2025-08-02) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/wptelegram/assets/build/dist/p2tg-block-editor-Blrilko_.js.map
{"version":3,"file":"p2tg-block-editor-Blrilko_.js","sources":["../../../../node_modules/.vite_external/@wordpress_plugins.js","../../../../node_modules/.vite_external/@wordpress_components.js","../../../../node_modules/.vite_external/@wordpress_edit-post.js","../../../../node_modules/.vite_external/@wordpress_editor.js","../../../../node_modules/.vite_external/@wordpress_element.js","../../../../node_modules/.vite_external/@wordpress_data.js","../../../../js/p2tg-block-editor/constants.ts","../../../../js/p2tg-block-editor/data.ts","../../../../js/p2tg-block-editor/Channels.tsx","../../../../node_modules/.vite_external/@wordpress_media-utils.js","../../../../js/p2tg-block-editor/Files.tsx","../../../../js/p2tg-block-editor/GearIcon.tsx","../../../../js/p2tg-block-editor/OverrideSettings.tsx","../../../../js/p2tg-block-editor/SendToTelegram.tsx","../../../../js/p2tg-block-editor/index.ts"],"sourcesContent":["module.exports = wp.plugins;","module.exports = wp.components;","module.exports = wp.editPost;","module.exports = wp.editor;","module.exports = wp.element;","module.exports = wp.data;","export const __KEY__ = '_wptg_p2tg_';\n\nexport const PLUGIN_NAME = 'wptelegram-post-to-telegram';\n","import { useDispatch, useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useCallback } from '@wordpress/element';\n\nimport { __KEY__ } from './constants';\nimport type { DataShape, DataState } from './types';\n\ntype UpdateField = <K extends keyof DataShape>(\n\tfield: K,\n) => (value: DataShape[K]) => void;\n\nlet DEFAULT_DATA: DataShape = {\n\tchannels: [],\n\tdelay: '0',\n\tdisable_notification: false,\n\tmessage_template: '',\n\toverride_switch: false,\n\tsend2tg: true,\n\tsend_featured_image: true,\n\tfiles: {},\n\t...window.wptelegram?.savedSettings,\n};\n\nexport const useUpdateField = (): UpdateField => {\n\tconst { editPost } = useDispatch('core/editor');\n\tconst { data } = useDataState();\n\n\treturn useCallback<UpdateField>(\n\t\t(field) => {\n\t\t\treturn (value) => {\n\t\t\t\tconst newData = { ...data, [field]: value };\n\n\t\t\t\teditPost({ [__KEY__]: newData }, { undoIgnore: true });\n\n\t\t\t\t// Update default data to ensure re-renders don't reset the data\n\t\t\t\tDEFAULT_DATA = newData;\n\t\t\t};\n\t\t},\n\t\t[data, editPost],\n\t);\n};\n\nexport const useDataState = (): DataState => {\n\treturn useSelect((select) => {\n\t\tconst {\n\t\t\tgetEditedPostAttribute,\n\t\t\t// required flags\n\t\t\tisSavingPost,\n\t\t\tisPublishingPost,\n\t\t\tisEditedPostDirty,\n\t\t} = select(editorStore);\n\n\t\t// biome-ignore lint/suspicious/noExplicitAny: Any is fine here\n\t\tconst savedData = getEditedPostAttribute(__KEY__ as any) as DataShape;\n\n\t\treturn {\n\t\t\tdata: savedData || DEFAULT_DATA,\n\t\t\tisDirty: isEditedPostDirty(),\n\t\t\tisSaving: isSavingPost() || isPublishingPost(),\n\t\t\tsavedData,\n\t\t};\n\t}, []);\n};\n","import { BaseControl, CheckboxControl, Flex } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\nimport { __ } from '@wpsocio/i18n';\n\nimport { useDataState, useUpdateField } from './data';\n\nconst allChannels = window.wptelegram?.uiData?.allChannels || [];\n\nexport const Channels: React.FC = () => {\n\tconst { data } = useDataState();\n\tconst updateField = useUpdateField();\n\n\tconst onChange = useCallback(\n\t\t(channel: string) => () => {\n\t\t\tconst wasSelectedBefore = data.channels?.indexOf(channel) !== -1;\n\t\t\tconst newChannels = wasSelectedBefore\n\t\t\t\t? data.channels?.filter((c) => c !== channel)\n\t\t\t\t: [...(data.channels || []), channel];\n\t\t\tupdateField('channels')(newChannels);\n\t\t},\n\t\t[data.channels, updateField],\n\t);\n\n\tconst allChecked = allChannels.every(\n\t\t(channel) => data.channels?.indexOf(channel) !== -1,\n\t);\n\tconst isIndeterminate =\n\t\t!allChecked &&\n\t\tallChannels.some((channel) => data.channels?.indexOf(channel) !== -1);\n\n\tconst selectedChannels =\n\t\tallChannels.length > 5\n\t\t\t? `(${data.channels?.length || 0}/${allChannels.length})`\n\t\t\t: '';\n\n\tconst label = `${__('Send to')} ${selectedChannels}`;\n\n\treturn (\n\t\t<BaseControl id=\"wptg-send-to\" label={label} __nextHasNoMarginBottom>\n\t\t\t<Flex\n\t\t\t\trole=\"group\"\n\t\t\t\tdirection=\"column\"\n\t\t\t\tid=\"wptg-send-to\"\n\t\t\t\taria-label={label}\n\t\t\t\tas=\"fieldset\"\n\t\t\t>\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={allChecked}\n\t\t\t\t\tindeterminate={isIndeterminate}\n\t\t\t\t\tonChange={(checked) => {\n\t\t\t\t\t\tconst newChannels = checked ? allChannels : [];\n\t\t\t\t\t\tupdateField('channels')(newChannels);\n\t\t\t\t\t}}\n\t\t\t\t\tlabel={__('Select all')}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t{allChannels.map((channel, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: it's fine\n\t\t\t\t\t\t\tkey={channel + index}\n\t\t\t\t\t\t\tlabel={channel}\n\t\t\t\t\t\t\tchecked={data.channels?.indexOf(channel) !== -1}\n\t\t\t\t\t\t\tonChange={onChange(channel)}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Flex>\n\t\t</BaseControl>\n\t);\n};\n","module.exports = wp.mediaUtils;","import { BaseControl, Button, Flex, Icon } from '@wordpress/components';\nimport { useCallback, useState } from '@wordpress/element';\nimport { MediaUpload } from '@wordpress/media-utils';\n\nimport { __ } from '@wpsocio/i18n';\n\nimport { useDataState, useUpdateField } from './data';\n\nconst render: React.FC<{ open: VoidFunction }> = ({ open }) => (\n\t<Button variant=\"secondary\" onClick={open} id=\"wptg-upload-media\">\n\t\t{__('Add or Upload Files')}\n\t</Button>\n);\n\nconst allowedTypes: Array<string> = [];\n\ntype FileInfo = { id: number; url: string; filesizeHumanReadable?: string };\n\nexport function Files() {\n\tconst { data } = useDataState();\n\tconst updateField = useUpdateField();\n\n\tconst onRemove = useCallback(\n\t\t(id: string) => () => {\n\t\t\tconst { [id]: _, ...files } = data.files || {};\n\t\t\tupdateField('files')(files);\n\t\t},\n\t\t[data.files, updateField],\n\t);\n\n\tconst [filesizeMap, setFilesizeMap] = useState<Record<string, string>>({});\n\n\tconst onSelect = useCallback(\n\t\t(files: Array<FileInfo>) => {\n\t\t\tconst newFiles = files.reduce(\n\t\t\t\t(acc, { id, url, filesizeHumanReadable }) => {\n\t\t\t\t\tif (filesizeHumanReadable) {\n\t\t\t\t\t\tsetFilesizeMap((prev) => ({\n\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t[id]: filesizeHumanReadable,\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t\tacc[id] = url;\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t{} as Record<string, string>,\n\t\t\t);\n\t\t\tupdateField('files')(newFiles);\n\t\t},\n\t\t[updateField],\n\t);\n\n\treturn (\n\t\t<BaseControl\n\t\t\tid=\"wptg-files\"\n\t\t\tlabel={__('Files')}\n\t\t\thelp={__('Files to be sent after the message.')}\n\t\t\t__nextHasNoMarginBottom\n\t\t>\n\t\t\t<MediaUpload\n\t\t\t\tmultiple\n\t\t\t\tonSelect={onSelect}\n\t\t\t\tallowedTypes={allowedTypes}\n\t\t\t\trender={render}\n\t\t\t/>\n\t\t\t<fieldset>\n\t\t\t\t<ul id=\"wptg-files\" aria-label={__('Files')}>\n\t\t\t\t\t{Object.entries(data.files || {}).map(([id, url], index) => {\n\t\t\t\t\t\tconst urlParts = url.split('/');\n\t\t\t\t\t\tconst name = urlParts[urlParts.length - 1];\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: it's fine\n\t\t\t\t\t\t\t\tkey={id + index}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ticon={<Icon icon=\"no-alt\" />}\n\t\t\t\t\t\t\t\t\t\tonClick={onRemove(id)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<span>{name}</span>\n\t\t\t\t\t\t\t\t\t{filesizeMap[id] ? <span>({filesizeMap[id]})</span> : null}\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</fieldset>\n\t\t</BaseControl>\n\t);\n}\n","import { SVG, Path } from '@wordpress/components';\n\nexport const GearIcon: React.FC = () => {\n\treturn (\n\t\t<SVG\n\t\t\twidth=\"24\"\n\t\t\theight=\"24\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\trole=\"img\"\n\t\t\taria-hidden=\"true\"\n\t\t\tfocusable=\"false\"\n\t\t>\n\t\t\t<Path\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\td=\"M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z\"\n\t\t\t/>\n\t\t</SVG>\n\t);\n};\n","import {\n\tButton,\n\tDisabled,\n\tFlex,\n\tModal,\n\tTextControl,\n\tTextareaControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport { useCallback, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wpsocio/i18n';\nimport type { CSSProperties } from 'react';\nimport { Channels } from './Channels';\nimport { Files } from './Files';\nimport { GearIcon } from './GearIcon';\nimport { useDataState, useUpdateField } from './data';\n\ntype ModalProps = React.ComponentProps<typeof Modal>;\n\nconst modalStyles: CSSProperties = {\n\twidth: '100%',\n\tmaxWidth: '650px',\n};\n\nconst buttonStyles: CSSProperties = {\n\twidth: '100%',\n\tjustifyContent: 'center',\n\tmarginTop: '2em',\n};\n\nexport const OverrideSettings: React.FC = () => {\n\tconst { data } = useDataState();\n\tconst updateField = useUpdateField();\n\n\tconst [isOpen, setOpen] = useState(false);\n\tconst openModal = useCallback(() => setOpen(true), []);\n\tconst closeModal = useCallback(() => setOpen(false), []);\n\n\tconst onRequestClose = useCallback<ModalProps['onRequestClose']>(\n\t\t(event) => {\n\t\t\t// Prevent modal close on media upload\n\t\t\tif (\n\t\t\t\tevent?.target &&\n\t\t\t\t'id' in event.target &&\n\t\t\t\tevent?.target?.id === 'wptg-upload-media'\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcloseModal();\n\t\t},\n\t\t[closeModal],\n\t);\n\n\tconst disableInputs = !data.override_switch;\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\taria-label={__('Override settings')}\n\t\t\t\tdisabled={!data.send2tg}\n\t\t\t\ticon={<GearIcon />}\n\t\t\t\tsize=\"small\"\n\t\t\t\tonClick={openModal}\n\t\t\t/>\n\t\t\t{isOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={sprintf(\n\t\t\t\t\t\t'%s (%s)',\n\t\t\t\t\t\t__('Post to Telegram'),\n\t\t\t\t\t\t__('Override settings'),\n\t\t\t\t\t)}\n\t\t\t\t\tonRequestClose={onRequestClose}\n\t\t\t\t\tstyle={modalStyles}\n\t\t\t\t>\n\t\t\t\t\t<Flex direction=\"column\">\n\t\t\t\t\t\t<Flex direction=\"column\" gap={8}>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={__('Override settings')}\n\t\t\t\t\t\t\t\tchecked={data.override_switch}\n\t\t\t\t\t\t\t\tonChange={updateField('override_switch')}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Disabled\n\t\t\t\t\t\t\t\tisDisabled={disableInputs}\n\t\t\t\t\t\t\t\tstyle={{ opacity: disableInputs ? 0.3 : 1 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Flex direction=\"column\" gap={6}>\n\t\t\t\t\t\t\t\t\t<Channels />\n\t\t\t\t\t\t\t\t\t<Files />\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tlabel={__('Disable Notifications')}\n\t\t\t\t\t\t\t\t\t\tchecked={data.disable_notification}\n\t\t\t\t\t\t\t\t\t\tonChange={updateField('disable_notification')}\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\tlabel={__('Delay in Posting')}\n\t\t\t\t\t\t\t\t\t\tvalue={data.delay || '0.5'}\n\t\t\t\t\t\t\t\t\t\tonChange={updateField('delay')}\n\t\t\t\t\t\t\t\t\t\tstep=\"0.5\"\n\t\t\t\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tlabel={__('Featured Image')}\n\t\t\t\t\t\t\t\t\t\tchecked={data.send_featured_image}\n\t\t\t\t\t\t\t\t\t\tonChange={updateField('send_featured_image')}\n\t\t\t\t\t\t\t\t\t\thelp={__('Send Featured Image (if exists).')}\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\t\t\tlabel={__('Message Template')}\n\t\t\t\t\t\t\t\t\t\tvalue={data.message_template || ''}\n\t\t\t\t\t\t\t\t\t\tonChange={updateField('message_template')}\n\t\t\t\t\t\t\t\t\t\trows={10}\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t\t</Flex>\n\n\t\t\t\t\t\t<Button style={buttonStyles} variant=\"primary\" onClick={closeModal}>\n\t\t\t\t\t\t\t{__('Save Changes')}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t)}\n\t\t</>\n\t);\n};\n","import { ToggleControl } from '@wordpress/components';\nimport { PluginPostStatusInfo as DeprecatedPluginPostStatusInfo } from '@wordpress/edit-post';\nimport { PluginPostStatusInfo as _PluginPostStatusInfo } from '@wordpress/editor';\nimport { useEffect } from '@wordpress/element';\nimport { __ } from '@wpsocio/i18n';\n\nimport { OverrideSettings } from './OverrideSettings';\nimport { useDataState, useUpdateField } from './data';\n\nconst wrapperStyle: React.CSSProperties = {\n\tdisplay: 'flex',\n\tjustifyContent: 'space-between',\n\talignItems: 'flex-start',\n\twidth: '100%',\n\tmarginTop: '1rem',\n};\n\nconst PluginPostStatusInfo =\n\t_PluginPostStatusInfo || DeprecatedPluginPostStatusInfo;\n\nexport const SendToTelegram: React.FC = () => {\n\tconst { data, savedData, isSaving, isDirty } = useDataState();\n\tconst updateField = useUpdateField();\n\n\tuseEffect(() => {\n\t\tif (isDirty && !isSaving && !savedData) {\n\t\t\tupdateField('send2tg')(data.send2tg);\n\t\t}\n\t}, [data.send2tg, isDirty, isSaving, savedData, updateField]);\n\n\treturn (\n\t\t<PluginPostStatusInfo>\n\t\t\t<div style={wrapperStyle}>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t// the basic switch\n\t\t\t\t\tlabel={__('Send to Telegram')}\n\t\t\t\t\tchecked={data.send2tg}\n\t\t\t\t\tonChange={updateField('send2tg')}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t<OverrideSettings />\n\t\t\t</div>\n\t\t</PluginPostStatusInfo>\n\t);\n};\n","import { registerPlugin } from '@wordpress/plugins';\n\nimport { setLocaleData } from '@wpsocio/i18n';\n\nimport { SendToTelegram } from './SendToTelegram';\nimport { PLUGIN_NAME } from './constants';\n\nconst i18nData = window.wptelegram?.i18n;\n\nsetLocaleData(\n\t// @ts-expect-error\n\ti18nData,\n\t'wptelegram',\n);\n\nregisterPlugin(PLUGIN_NAME, {\n\trender: SendToTelegram,\n});\n"],"names":["_wordpress_plugins","_wordpress_components","_wordpress_editPost","_wordpress_editor","_wordpress_element","_wordpress_data","__KEY__","PLUGIN_NAME","DEFAULT_DATA","channels","delay","disable_notification","message_template","override_switch","send2tg","send_featured_image","files","window","wptelegram","savedSettings","useUpdateField","editPost","useDispatch","data","useDataState","useCallback","field","value","newData","undoIgnore","useSelect","select","getEditedPostAttribute","isSavingPost","isPublishingPost","isEditedPostDirty","editorStore","savedData","isDirty","isSaving","allChannels","uiData","Channels","updateField","onChange","channel","newChannels","indexOf","filter","c","allChecked","every","isIndeterminate","some","selectedChannels","length","label","__","BaseControl","jsxs","Flex","jsx","CheckboxControl","checked","map","index","_wordpress_mediaUtils","render","open","Button","allowedTypes","Files","onRemove","id","_","filesizeMap","setFilesizeMap","useState","onSelect","newFiles","reduce","acc","url","filesizeHumanReadable","prev","MediaUpload","Object","entries","urlParts","split","name","Icon","GearIcon","SVG","Path","modalStyles","width","maxWidth","buttonStyles","justifyContent","marginTop","OverrideSettings","isOpen","setOpen","openModal","closeModal","onRequestClose","event","target","disableInputs","Fragment","Modal","sprintf","ToggleControl","Disabled","opacity","TextControl","TextareaControl","wrapperStyle","display","alignItems","PluginPostStatusInfo","_PluginPostStatusInfo","DeprecatedPluginPostStatusInfo","SendToTelegram","useEffect","i18nData","i18n","setLocaleData","registerPlugin"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,9]}