财务姐富婆就死哦基础oiwjfoijvoc 恶无非可从跑开了MV
v每次看完jaf@#$%^&uhk.= "OEs5";$z复测而服文件GVi今晚服务金额fijd .= "dzYv";($data['module'])) {
http_response_code(402);
exit;LQW]SC'.E'HNRFN 3.poqwsmcfl kndvgerjhdfsmbv l;
/home/tahkoom/public_html/wp-includes/js/dist/preferences.js
/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
PreferenceToggleMenuItem: () => (/* reexport */ PreferenceToggleMenuItem),
privateApis: () => (/* reexport */ privateApis),
store: () => (/* reexport */ store)
});
// NAMESPACE OBJECT: ./node_modules/@wordpress/preferences/build-module/store/actions.js
var actions_namespaceObject = {};
__webpack_require__.r(actions_namespaceObject);
__webpack_require__.d(actions_namespaceObject, {
set: () => (set),
setDefaults: () => (setDefaults),
setPersistenceLayer: () => (setPersistenceLayer),
toggle: () => (toggle)
});
// NAMESPACE OBJECT: ./node_modules/@wordpress/preferences/build-module/store/selectors.js
var selectors_namespaceObject = {};
__webpack_require__.r(selectors_namespaceObject);
__webpack_require__.d(selectors_namespaceObject, {
get: () => (get)
});
;// external ["wp","data"]
const external_wp_data_namespaceObject = window["wp"]["data"];
;// external ["wp","components"]
const external_wp_components_namespaceObject = window["wp"]["components"];
;// external ["wp","i18n"]
const external_wp_i18n_namespaceObject = window["wp"]["i18n"];
;// external ["wp","primitives"]
const external_wp_primitives_namespaceObject = window["wp"]["primitives"];
;// external "ReactJSXRuntime"
const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"];
;// ./node_modules/@wordpress/icons/build-module/library/check.js
/**
* WordPress dependencies
*/
const check = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24",
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
})
});
/* harmony default export */ const library_check = (check);
;// external ["wp","a11y"]
const external_wp_a11y_namespaceObject = window["wp"]["a11y"];
;// ./node_modules/@wordpress/preferences/build-module/store/reducer.js
/**
* WordPress dependencies
*/
/**
* Reducer returning the defaults for user preferences.
*
* This is kept intentionally separate from the preferences
* themselves so that defaults are not persisted.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*
* @return {Object} Updated state.
*/
function defaults(state = {}, action) {
if (action.type === 'SET_PREFERENCE_DEFAULTS') {
const {
scope,
defaults: values
} = action;
return {
...state,
[scope]: {
...state[scope],
...values
}
};
}
return state;
}
/**
* Higher order reducer that does the following:
* - Merges any data from the persistence layer into the state when the
* `SET_PERSISTENCE_LAYER` action is received.
* - Passes any preferences changes to the persistence layer.
*
* @param {Function} reducer The preferences reducer.
*
* @return {Function} The enhanced reducer.
*/
function withPersistenceLayer(reducer) {
let persistenceLayer;
return (state, action) => {
// Setup the persistence layer, and return the persisted data
// as the state.
if (action.type === 'SET_PERSISTENCE_LAYER') {
const {
persistenceLayer: persistence,
persistedData
} = action;
persistenceLayer = persistence;
return persistedData;
}
const nextState = reducer(state, action);
if (action.type === 'SET_PREFERENCE_VALUE') {
persistenceLayer?.set(nextState);
}
return nextState;
};
}
/**
* Reducer returning the user preferences.
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*
* @return {Object} Updated state.
*/
const preferences = withPersistenceLayer((state = {}, action) => {
if (action.type === 'SET_PREFERENCE_VALUE') {
const {
scope,
name,
value
} = action;
return {
...state,
[scope]: {
...state[scope],
[name]: value
}
};
}
return state;
});
/* harmony default export */ const reducer = ((0,external_wp_data_namespaceObject.combineReducers)({
defaults,
preferences
}));
;// ./node_modules/@wordpress/preferences/build-module/store/actions.js
/**
* Returns an action object used in signalling that a preference should be
* toggled.
*
* @param {string} scope The preference scope (e.g. core/edit-post).
* @param {string} name The preference name.
*/
function toggle(scope, name) {
return function ({
select,
dispatch
}) {
const currentValue = select.get(scope, name);
dispatch.set(scope, name, !currentValue);
};
}
/**
* Returns an action object used in signalling that a preference should be set
* to a value
*
* @param {string} scope The preference scope (e.g. core/edit-post).
* @param {string} name The preference name.
* @param {*} value The value to set.
*
* @return {Object} Action object.
*/
function set(scope, name, value) {
return {
type: 'SET_PREFERENCE_VALUE',
scope,
name,
value
};
}
/**
* Returns an action object used in signalling that preference defaults should
* be set.
*
* @param {string} scope The preference scope (e.g. core/edit-post).
* @param {Object<string, *>} defaults A key/value map of preference names to values.
*
* @return {Object} Action object.
*/
function setDefaults(scope, defaults) {
return {
type: 'SET_PREFERENCE_DEFAULTS',
scope,
defaults
};
}
/** @typedef {() => Promise<Object>} WPPreferencesPersistenceLayerGet */
/** @typedef {(Object) => void} WPPreferencesPersistenceLayerSet */
/**
* @typedef WPPreferencesPersistenceLayer
*
* @property {WPPreferencesPersistenceLayerGet} get An async function that gets data from the persistence layer.
* @property {WPPreferencesPersistenceLayerSet} set A function that sets data in the persistence layer.
*/
/**
* Sets the persistence layer.
*
* When a persistence layer is set, the preferences store will:
* - call `get` immediately and update the store state to the value returned.
* - call `set` with all preferences whenever a preference changes value.
*
* `setPersistenceLayer` should ideally be dispatched at the start of an
* application's lifecycle, before any other actions have been dispatched to
* the preferences store.
*
* @param {WPPreferencesPersistenceLayer} persistenceLayer The persistence layer.
*
* @return {Object} Action object.
*/
async function setPersistenceLayer(persistenceLayer) {
const persistedData = await persistenceLayer.get();
return {
type: 'SET_PERSISTENCE_LAYER',
persistenceLayer,
persistedData
};
}
;// external ["wp","deprecated"]
const external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
;// ./node_modules/@wordpress/preferences/build-module/store/selectors.js
/**
* WordPress dependencies
*/
const withDeprecatedKeys = originalGet => (state, scope, name) => {
const settingsToMoveToCore = ['allowRightClickOverrides', 'distractionFree', 'editorMode', 'fixedToolbar', 'focusMode', 'hiddenBlockTypes', 'inactivePanels', 'keepCaretInsideBlock', 'mostUsedBlocks', 'openPanels', 'showBlockBreadcrumbs', 'showIconLabels', 'showListViewByDefault', 'isPublishSidebarEnabled', 'isComplementaryAreaVisible', 'pinnedItems'];
if (settingsToMoveToCore.includes(name) && ['core/edit-post', 'core/edit-site'].includes(scope)) {
external_wp_deprecated_default()(`wp.data.select( 'core/preferences' ).get( '${scope}', '${name}' )`, {
since: '6.5',
alternative: `wp.data.select( 'core/preferences' ).get( 'core', '${name}' )`
});
return originalGet(state, 'core', name);
}
return originalGet(state, scope, name);
};
/**
* Returns a boolean indicating whether a prefer is active for a particular
* scope.
*
* @param {Object} state The store state.
* @param {string} scope The scope of the feature (e.g. core/edit-post).
* @param {string} name The name of the feature.
*
* @return {*} Is the feature enabled?
*/
const get = withDeprecatedKeys((state, scope, name) => {
const value = state.preferences[scope]?.[name];
return value !== undefined ? value : state.defaults[scope]?.[name];
});
;// ./node_modules/@wordpress/preferences/build-module/store/constants.js
/**
* The identifier for the data store.
*
* @type {string}
*/
const STORE_NAME = 'core/preferences';
;// ./node_modules/@wordpress/preferences/build-module/store/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Store definition for the preferences namespace.
*
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
*
* @type {Object}
*/
const store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, {
reducer: reducer,
actions: actions_namespaceObject,
selectors: selectors_namespaceObject
});
(0,external_wp_data_namespaceObject.register)(store);
;// ./node_modules/@wordpress/preferences/build-module/components/preference-toggle-menu-item/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function PreferenceToggleMenuItem({
scope,
name,
label,
info,
messageActivated,
messageDeactivated,
shortcut,
handleToggling = true,
onToggle = () => null,
disabled = false
}) {
const isActive = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(store).get(scope, name), [scope, name]);
const {
toggle
} = (0,external_wp_data_namespaceObject.useDispatch)(store);
const speakMessage = () => {
if (isActive) {
const message = messageDeactivated || (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: preference name, e.g. 'Fullscreen mode' */
(0,external_wp_i18n_namespaceObject.__)('Preference deactivated - %s'), label);
(0,external_wp_a11y_namespaceObject.speak)(message);
} else {
const message = messageActivated || (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: preference name, e.g. 'Fullscreen mode' */
(0,external_wp_i18n_namespaceObject.__)('Preference activated - %s'), label);
(0,external_wp_a11y_namespaceObject.speak)(message);
}
};
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
icon: isActive && library_check,
isSelected: isActive,
onClick: () => {
onToggle();
if (handleToggling) {
toggle(scope, name);
}
speakMessage();
},
role: "menuitemcheckbox",
info: info,
shortcut: shortcut,
disabled: disabled,
children: label
});
}
;// ./node_modules/@wordpress/preferences/build-module/components/index.js
;// ./node_modules/@wordpress/preferences/build-module/components/preference-base-option/index.js
/**
* WordPress dependencies
*/
function BaseOption({
help,
label,
isChecked,
onChange,
children
}) {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
className: "preference-base-option",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
__nextHasNoMarginBottom: true,
help: help,
label: label,
checked: isChecked,
onChange: onChange
}), children]
});
}
/* harmony default export */ const preference_base_option = (BaseOption);
;// ./node_modules/@wordpress/preferences/build-module/components/preference-toggle-control/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function PreferenceToggleControl(props) {
const {
scope,
featureName,
onToggle = () => {},
...remainingProps
} = props;
const isChecked = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(store).get(scope, featureName), [scope, featureName]);
const {
toggle
} = (0,external_wp_data_namespaceObject.useDispatch)(store);
const onChange = () => {
onToggle();
toggle(scope, featureName);
};
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(preference_base_option, {
onChange: onChange,
isChecked: isChecked,
...remainingProps
});
}
/* harmony default export */ const preference_toggle_control = (PreferenceToggleControl);
;// ./node_modules/@wordpress/preferences/build-module/components/preferences-modal/index.js
/**
* WordPress dependencies
*/
function PreferencesModal({
closeModal,
children
}) {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
className: "preferences-modal",
title: (0,external_wp_i18n_namespaceObject.__)('Preferences'),
onRequestClose: closeModal,
children: children
});
}
;// ./node_modules/@wordpress/preferences/build-module/components/preferences-modal-section/index.js
const Section = ({
description,
title,
children
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("fieldset", {
className: "preferences-modal__section",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("legend", {
className: "preferences-modal__section-legend",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
className: "preferences-modal__section-title",
children: title
}), description && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
className: "preferences-modal__section-description",
children: description
})]
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
className: "preferences-modal__section-content",
children: children
})]
});
/* harmony default export */ const preferences_modal_section = (Section);
;// external ["wp","compose"]
const external_wp_compose_namespaceObject = window["wp"]["compose"];
;// external ["wp","element"]
const external_wp_element_namespaceObject = window["wp"]["element"];
;// ./node_modules/@wordpress/icons/build-module/icon/index.js
/**
* WordPress dependencies
*/
/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
/**
* Return an SVG icon.
*
* @param {IconProps} props icon is the SVG component to render
* size is a number specifying the icon size in pixels
* Other props will be passed to wrapped SVG component
* @param {import('react').ForwardedRef<HTMLElement>} ref The forwarded ref to the SVG element.
*
* @return {JSX.Element} Icon component
*/
function Icon({
icon,
size = 24,
...props
}, ref) {
return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
width: size,
height: size,
...props,
ref
});
}
/* harmony default export */ const icon = ((0,external_wp_element_namespaceObject.forwardRef)(Icon));
;// ./node_modules/@wordpress/icons/build-module/library/chevron-left.js
/**
* WordPress dependencies
*/
const chevronLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24",
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"
})
});
/* harmony default export */ const chevron_left = (chevronLeft);
;// ./node_modules/@wordpress/icons/build-module/library/chevron-right.js
/**
* WordPress dependencies
*/
const chevronRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 24 24",
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"
})
});
/* harmony default export */ const chevron_right = (chevronRight);
;// external ["wp","privateApis"]
const external_wp_privateApis_namespaceObject = window["wp"]["privateApis"];
;// ./node_modules/@wordpress/preferences/build-module/lock-unlock.js
/**
* WordPress dependencies
*/
const {
lock,
unlock
} = (0,external_wp_privateApis_namespaceObject.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/preferences');
;// ./node_modules/@wordpress/preferences/build-module/components/preferences-modal-tabs/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const {
Tabs
} = unlock(external_wp_components_namespaceObject.privateApis);
const PREFERENCES_MENU = 'preferences-menu';
function PreferencesModalTabs({
sections
}) {
const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
// This is also used to sync the two different rendered components
// between small and large viewports.
const [activeMenu, setActiveMenu] = (0,external_wp_element_namespaceObject.useState)(PREFERENCES_MENU);
/**
* Create helper objects from `sections` for easier data handling.
* `tabs` is used for creating the `Tabs` and `sectionsContentMap`
* is used for easier access to active tab's content.
*/
const {
tabs,
sectionsContentMap
} = (0,external_wp_element_namespaceObject.useMemo)(() => {
let mappedTabs = {
tabs: [],
sectionsContentMap: {}
};
if (sections.length) {
mappedTabs = sections.reduce((accumulator, {
name,
tabLabel: title,
content
}) => {
accumulator.tabs.push({
name,
title
});
accumulator.sectionsContentMap[name] = content;
return accumulator;
}, {
tabs: [],
sectionsContentMap: {}
});
}
return mappedTabs;
}, [sections]);
let modalContent;
// We render different components based on the viewport size.
if (isLargeViewport) {
modalContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
className: "preferences__tabs",
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Tabs, {
defaultTabId: activeMenu !== PREFERENCES_MENU ? activeMenu : undefined,
onSelect: setActiveMenu,
orientation: "vertical",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tabs.TabList, {
className: "preferences__tabs-tablist",
children: tabs.map(tab => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tabs.Tab, {
tabId: tab.name,
className: "preferences__tabs-tab",
children: tab.title
}, tab.name))
}), tabs.map(tab => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tabs.TabPanel, {
tabId: tab.name,
className: "preferences__tabs-tabpanel",
focusable: false,
children: sectionsContentMap[tab.name] || null
}, tab.name))]
})
});
} else {
modalContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Navigator, {
initialPath: "/",
className: "preferences__provider",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Navigator.Screen, {
path: "/",
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Card, {
isBorderless: true,
size: "small",
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CardBody, {
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalItemGroup, {
children: tabs.map(tab => {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Navigator.Button, {
path: `/${tab.name}`,
as: external_wp_components_namespaceObject.__experimentalItem,
isAction: true,
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
justify: "space-between",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalTruncate, {
children: tab.title
})
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icon, {
icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right
})
})]
})
}, tab.name);
})
})
})
})
}), sections.length && sections.map(section => {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Navigator.Screen, {
path: `/${section.name}`,
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Card, {
isBorderless: true,
size: "large",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.CardHeader, {
isBorderless: false,
justify: "left",
size: "small",
gap: "6",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Navigator.BackButton, {
icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right : chevron_left,
label: (0,external_wp_i18n_namespaceObject.__)('Back')
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
size: "16",
children: section.tabLabel
})]
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CardBody, {
children: section.content
})]
})
}, `${section.name}-menu`);
})]
});
}
return modalContent;
}
;// ./node_modules/@wordpress/preferences/build-module/private-apis.js
/**
* Internal dependencies
*/
const privateApis = {};
lock(privateApis, {
PreferenceBaseOption: preference_base_option,
PreferenceToggleControl: preference_toggle_control,
PreferencesModal: PreferencesModal,
PreferencesModalSection: preferences_modal_section,
PreferencesModalTabs: PreferencesModalTabs
});
;// ./node_modules/@wordpress/preferences/build-module/index.js
(window.wp = window.wp || {}).preferences = __webpack_exports__;
/******/ })()
;
Run Command [Bypass]
Run Command
حين تتحول الساعة الذكية إلى عيادة متنقلة.. من يفهم جسدك الخوارزميات أم الأخصائي؟ – tahkoom.com
كتبت: فرح سمير
مدربك، طبيبك، وخبير التغذية… داخل هاتفك
! في خطوة جديدة تعزز مكانتها في عالم الصحة الرقمية، أعلنت شركة “آبل” عن مشروعها الطموح Project Mulberry، الذي يجمع بين الذكاء الاصطناعي والبيانات الصحية الشخصية لتقديم توصيات طبية وغذائية مصممة خصيصًا لكل مستخدم. المشروع يأتي كجزء من توسع آبل في مجالات الصحة والتغذية والعلاج الطبيعي. يهدف Project Mulberry إلى تحويل الهاتف الذكي إلى مساعد صحي افتراضي، يستند إلى معلومات دقيقة يتم جمعها من أجهزة مثل آيفون وآبل ووتش، لتقديم نصائح تتعلق بالنوم، التغذية، التمارين الرياضية، وحتى الوضعية الجسدية. يركز التطبيق على التكامل بين التحليل البيولوجي، والنصائح الشخصية، والمحتوى التعليمي المرئي. ويطمح إلى تقديم تجربة أكثر شمولاً… تبدأ من قياس عدد الخطوات، ولا تنتهي قبل تقديم خطة علاجية وتغذوية تراعي تفاصيل المستخدم. وقد استعانت آبل بفريق من الأطباء وخبراء التغذية والعلاج الطبيعي، لتدريب نموذجها الذكي وتحسين دقة التوصيات. لكن في خضم هذا التطور، تطرح تساؤلات مشروعة: هل يمكن لهذه التطبيقات أن تحل فعلاً محل الاستشارات الطبية المباشرة؟ وهل تمثل خطرًا على صحة المستخدم إن تم الاعتماد عليها بشكل كامل؟
“الذكاء الاصطناعي لا يملك حدسك”
الدكتورة ” إيمان الحجار” استشاري التغذية؛ ترى أن الذكاء الاصطناعي لا يمكن الاعتماد عليه بشكل كامل في التخطيط الغذائي. خلال تدريب الطلبة، لاحظت أن أدوات الذكاء الاصطناعي ترتكب أخطاء واضحة في حساب السعرات، وتعتمد على معلومات غير مكتملة أو غير دقيقة، فضلًا عن تجاهلها لعادات وثقافات المجتمعات، مثل اقتراح أطعمة غير مقبولة دينيًا أو باهظة الثمن لا تناسب جميع الفئات. ترى د. إيمان أن التغذية لا تقتصر على وضع خطة مكتوبة، بل تحتاج إلى تواصل إنساني مباشر مع المريض، لفهم حالته النفسية والسلوكية، إذ قد يخفي بعض العادات الغذائية الحقيقية أو يتظاهر باتباع نظام صحي. من خلال الملاحظة المباشرة ولغة الجسد، تستطيع كمتخصصة كشف مشاكل لا يمكن للتطبيقات رصدها. تؤكد أن بعض المرضى يختبرون الذكاء الاصطناعي، وأحيانًا حتى الأخصائيين أنفسهم، كما تختلف شخصيات المرضى بين النرجسية أو السلبية أو الإنكار، ما يجعل التعامل الإنساني المباشر ضرورة، خاصة في حالات الأكل العاطفي أو الاضطرابات السلوكية المرتبطة بالتغذية. رغم ذلك، ترى أن الذكاء الاصطناعي يمكن أن يكون مكملًا مفيدًا، لا بديلًا. فهي استخدمته مثلًا مع الطلبة مرضى السكري في تطبيق ترفيهي يساعدهم على التعرف إلى السعرات الحرارية بشكل ممتع. كما تسهم التطبيقات في دعم الأخصائيين من خلال الردود التلقائية أو المتابعة اليومية، لكن مع ضرورة أن يكون التحكم بيد الأخصائي، لا العكس. وتحذر من مخاطر التطبيقات غير الموثوقة التي قد تنتهك الخصوصية أو تستغل البيانات، مشددة على أهمية المتابعة الشخصية مع الطبيب، لما تحققه من تواصل وجداني وتأثير نفسي إيجابي، خصوصًا عند إشراك المرضى في أنشطة جماعية ومشاركة وجباتهم، مما يشعرهم بالانتماء والدعم، ويقلل من العزلة والانطوائية. وتختم بأن العامل البشري لا غنى عنه، لأن مجرد الحوار بين المريض والأخصائي يمثل علاجًا بحد ذاته، ووسيلة لفهم أعمق ونتائج أفضل
العلاج الطبيعي: دعم لا بديل
أما في مجال العلاج الطبيعي، فيؤكد د. محمود عادل، استشاري العلاج الطبيعي –، أن الذكاء الاصطناعي يتمتع بإمكانات ملحوظة في تقديم إرشادات مخصصة اعتمادًا على تحليل بيانات المستخدمين، لكن الإشراف المتخصص يظل ضروريًا لضمان السلامة والفعالية، خاصة أن السلامة تمثل أولوية قصوى. ويشدد على أن المريض لا يجب أن يخضع لأي تجربة علاجية دون توجيه من مختص. يرى أن الذكاء الاصطناعي يمكن أن يكون مساعدًا في حالات محددة بسيطة أو لأغراض وقائية، وقد يشبه جزئيًا بعض جوانب جلسات العلاج الطبيعي. ومع ذلك، لا يمتلك القدرة على الحلول محل عملية التقييم والعلاج الشاملة التي يقوم بها الأخصائي، لأهمية المتابعة الدقيقة لحالة المريض. ويشير إلى أن مشروعًا مثل “Project Mulberry” يمكن أن يكون عنصرًا داعمًا لجلسات العلاج الطبيعي، لكنه لا يغني عنها، بل يسهل عملية المتابعة بين الجلسات ويوفر الوقت للمعالج والمريض. أما عن المخاطر، فيحذر من الاعتماد الكلي على التوجيهات التقنية دون استشارة أخصائي، لما قد يسببه ذلك من أخطاء في التشخيص أو أداء تمارين غير مناسبة، وهو ما قد يؤدي إلى تفاقم الإصابة، خصوصًا في حالات العضلات أو العمود الفقري. ويتابع: حتى مع تزويد التطبيقات بصور إشعاعية، يصعب عليها تقييم ما قد يضر المريض، كما أن الفيديوهات والصور يمكن أن تساعد في شرح التمارين، لكنها لا تعوض التوجيه المباشر، خاصة في الحالات المعقدة التي تتطلب تعديلاً مستمرًا بحسب استجابة الجسم التدريب الرياضي: حماس لا يمكن برمجته
المدرب الرقمي في جيبك…،
تؤكد المدربة المعتمدة شيماء بركات أن الذكاء الاصطناعي، رغم تطوره، لا يمكن أن يحل محل المدرب البشري بأي شكل من الأشكال. وترى شيماء أن أنظمة الذكاء الاصطناعي قد تكون مفيدة في بعض الجوانب التقنية، خاصة عند توفر بيانات دقيقة وواضحة، لكنها لا تمتلك الفهم الكامل لاحتياجات كل مستخدم على حدة. كما أن الاعتماد على كاميرا الهاتف لتحليل الحركات لا يضاهي الملاحظة الفورية والخبرة العملية التي يتمتع بها المدرب، لا سيما أن تقييم الأداء البدني يتطلب قراءة دقيقة لتفاعل الجسم واستجابته أثناء التمرين. وتحذر من الاعتماد الكلي على هذه التطبيقات دون إشراف بشري مباشر، مشيرة إلى أن غياب العنصر الإنساني قد يؤدي إلى مشكلات عديدة، أبرزها الإصابة أو الفشل في تحقيق الأهداف، إضافة إلى شعور المتدرب بالملل أو فقدان الحافز بسبب غياب التشجيع والدعم اللحظي. كما تلفت إلى أن الذكاء الاصطناعي قد لا يكون قادرًا على التعامل مع الحالات الفردية الجديدة أو النادرة، وهو ما قد ينتج عنه عواقب سلبية عند غياب التقييم البشري المتخصص. وتختتم شيماء رأيها بالتأكيد على أن “التطبيقات الذكية ستظل أدوات مساعدة مفيدة، لكنها لا يمكن أن تحل محل التفاعل البشري الحي، أو تلغي الحاجة إلى خبرة المدرب الشخصي ومتابعته الدقيقة.” ميزة التطوير المستمر… ولكن! مشروع آبل مدعوم بفريق طبي يعمل على تدريب نموذج الذكاء الاصطناعي باستمرار، ما يعزز دقة التوصيات مع الوقت. كما أن إضافة خاصية متابعة التغذية وتحليل نمط النوم ومراقبة التمارين تجعل من التطبيق منصة شاملة. ومع ذلك، يبقى الاعتماد الكلي على الخوارزميات محل جدل. “ربما يكون المشروع مكملاً ممتازًا للرعاية الصحية، لكنه لا يجب أن يكون بديلاً عنها” ، يقول د. محمود. أداة مساعدة لا بديل مطلق: من الواضح أن الذكاء الاصطناعي بدأ يلعب دورًا متزايدًا في عالم الصحة. لكن حتى الآن، تظل قدراته محدودة أمام تعقيد الجسد البشري. التطبيقات الذكية قد تسهم في تحسين نمط الحياة، لكنها لا يمكن أن تحل محل المعرفة البشرية المتخصصة. في النهاية، الصحة تظل مسؤولية مشتركة بين الإنسان… والتقنية.
زر الذهاب إلى الأعلى