| 1 |
(function(react, _elementor_editor_controls, _elementor_editor_editing_panel, _elementor_editor_responsive, _elementor_editor_styles_repository, _elementor_editor_ui, _elementor_menus, _elementor_query, _elementor_session, _elementor_store, _elementor_ui, _wordpress_i18n, _elementor_editor_styles, _elementor_utils, _elementor_http_client, _elementor_icons, _elementor_editor, _elementor_editor_v1_adapters) { |
| 2 |
|
| 3 |
//#region \0rolldown/runtime.js |
| 4 |
var __create = Object.create; |
| 5 |
var __defProp = Object.defineProperty; |
| 6 |
var __name = (target, value) => __defProp(target, "name", { |
| 7 |
value, |
| 8 |
configurable: true |
| 9 |
}); |
| 10 |
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; |
| 11 |
var __getOwnPropNames = Object.getOwnPropertyNames; |
| 12 |
var __getProtoOf = Object.getPrototypeOf; |
| 13 |
var __hasOwnProp = Object.prototype.hasOwnProperty; |
| 14 |
var __exportAll = (all, no_symbols) => { |
| 15 |
let target = {}; |
| 16 |
for (var name in all) { |
| 17 |
__defProp(target, name, { |
| 18 |
get: all[name], |
| 19 |
enumerable: true |
| 20 |
}); |
| 21 |
} |
| 22 |
if (!no_symbols) { |
| 23 |
__defProp(target, Symbol.toStringTag, { value: "Module" }); |
| 24 |
} |
| 25 |
return target; |
| 26 |
}; |
| 27 |
var __copyProps = (to, from, except, desc) => { |
| 28 |
if (from && typeof from === "object" || typeof from === "function") { |
| 29 |
for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { |
| 30 |
key = keys[i]; |
| 31 |
if (!__hasOwnProp.call(to, key) && key !== except) { |
| 32 |
__defProp(to, key, { |
| 33 |
get: ((k) => from[k]).bind(null, key), |
| 34 |
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable |
| 35 |
}); |
| 36 |
} |
| 37 |
} |
| 38 |
} |
| 39 |
return to; |
| 40 |
}; |
| 41 |
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { |
| 42 |
value: mod, |
| 43 |
enumerable: true |
| 44 |
}) : target, mod)); |
| 45 |
|
| 46 |
//#endregion |
| 47 |
react = __toESM(react); |
| 48 |
|
| 49 |
//#region packages/packages/core/editor-default-styles/src/allowed-tags.ts |
| 50 |
var getElementorConfig = () => window.elementor?.config ?? {}; |
| 51 |
var getAllowedDefaultStyleTags = () => { |
| 52 |
const tags = getElementorConfig().atomic?.default_styles?.allowed_tags; |
| 53 |
if (!tags?.length) return []; |
| 54 |
return tags; |
| 55 |
}; |
| 56 |
var getDefaultActiveTag = (tags) => { |
| 57 |
if (tags.includes("h1")) return "h1"; |
| 58 |
return tags[0] ?? ""; |
| 59 |
}; |
| 60 |
var isAllowedDefaultStyleTag = (tag, tags = getAllowedDefaultStyleTags()) => tags.includes(tag); |
| 61 |
|
| 62 |
//#endregion |
| 63 |
//#region packages/packages/core/editor-default-styles/src/capabilities.ts |
| 64 |
var UPDATE_DEFAULT_STYLES_CAPABILITY_KEY = "manage_options"; |
| 65 |
var getCapabilities = () => { |
| 66 |
return { |
| 67 |
update: UPDATE_DEFAULT_STYLES_CAPABILITY_KEY, |
| 68 |
create: UPDATE_DEFAULT_STYLES_CAPABILITY_KEY, |
| 69 |
delete: UPDATE_DEFAULT_STYLES_CAPABILITY_KEY, |
| 70 |
updateProps: UPDATE_DEFAULT_STYLES_CAPABILITY_KEY |
| 71 |
}; |
| 72 |
}; |
| 73 |
|
| 74 |
//#endregion |
| 75 |
//#region packages/packages/core/editor-default-styles/src/store.ts |
| 76 |
var initialState = { |
| 77 |
data: {}, |
| 78 |
initialData: {}, |
| 79 |
isDirty: false |
| 80 |
}; |
| 81 |
var SLICE_NAME = "defaultStyles"; |
| 82 |
var slice = (0, _elementor_store.__createSlice)({ |
| 83 |
name: SLICE_NAME, |
| 84 |
initialState, |
| 85 |
reducers: { |
| 86 |
load(state, { payload: { data } }) { |
| 87 |
const normalizedData = Array.isArray(data) ? {} : data; |
| 88 |
state.initialData = structuredClone(normalizedData); |
| 89 |
state.data = structuredClone(normalizedData); |
| 90 |
state.isDirty = false; |
| 91 |
}, |
| 92 |
update(state, { payload }) { |
| 93 |
state.data[payload.style.id] = { |
| 94 |
...state.data[payload.style.id], |
| 95 |
...payload.style |
| 96 |
}; |
| 97 |
state.isDirty = true; |
| 98 |
}, |
| 99 |
updateProps(state, { payload }) { |
| 100 |
const style = state.data[payload.id] ?? { |
| 101 |
id: payload.id, |
| 102 |
label: payload.id, |
| 103 |
type: "class", |
| 104 |
variants: [] |
| 105 |
}; |
| 106 |
const variant = (0, _elementor_editor_styles.getVariantByMeta)(style, payload.meta); |
| 107 |
let customCss = ("custom_css" in payload ? payload.custom_css : variant?.custom_css) ?? null; |
| 108 |
customCss = customCss?.raw ? customCss : null; |
| 109 |
if (variant) { |
| 110 |
const payloadProps = JSON.parse(JSON.stringify(payload.props)); |
| 111 |
if ((payload.mode ?? "merge") === "replace") variant.props = payloadProps; |
| 112 |
else variant.props = { |
| 113 |
...variant.props, |
| 114 |
...payloadProps |
| 115 |
}; |
| 116 |
variant.custom_css = customCss; |
| 117 |
} else style.variants.push({ |
| 118 |
meta: payload.meta, |
| 119 |
props: payload.props, |
| 120 |
custom_css: customCss |
| 121 |
}); |
| 122 |
state.data[payload.id] = style; |
| 123 |
state.isDirty = true; |
| 124 |
}, |
| 125 |
reset(state) { |
| 126 |
state.data = state.initialData; |
| 127 |
state.isDirty = false; |
| 128 |
}, |
| 129 |
commit(state) { |
| 130 |
state.initialData = state.data; |
| 131 |
state.isDirty = false; |
| 132 |
}, |
| 133 |
deleteTag(state, { payload }) { |
| 134 |
delete state.data[payload]; |
| 135 |
state.isDirty = true; |
| 136 |
} |
| 137 |
} |
| 138 |
}); |
| 139 |
var selectData = (0, _elementor_store.__createSelector)((state) => state.defaultStyles.data, (data) => data); |
| 140 |
var selectIsDirty = (0, _elementor_store.__createSelector)((state) => state.defaultStyles.isDirty, (isDirty) => isDirty); |
| 141 |
var selectInitialData = (0, _elementor_store.__createSelector)((state) => state.defaultStyles.initialData, (initialData) => initialData); |
| 142 |
var selectTagStyle = (0, _elementor_store.__createSelector)([selectData, (_state, id) => id], (data, id) => data[id]); |
| 143 |
|
| 144 |
//#endregion |
| 145 |
//#region packages/packages/core/editor-default-styles/src/default-styles-provider.ts |
| 146 |
var DEFAULT_STYLES_PROVIDER_KEY = "default-styles"; |
| 147 |
var DEFAULT_STYLES_CSS_NAME_PREFIX = "e-default-"; |
| 148 |
var resolveCssName = (id) => `${DEFAULT_STYLES_CSS_NAME_PREFIX}${id}`; |
| 149 |
var placeholderDefinition = (id) => ({ |
| 150 |
id, |
| 151 |
label: id, |
| 152 |
type: "class", |
| 153 |
variants: [] |
| 154 |
}); |
| 155 |
var asClassDefinition = (style) => ({ |
| 156 |
...style, |
| 157 |
type: "class" |
| 158 |
}); |
| 159 |
var defaultStylesStylesProvider = (0, _elementor_editor_styles_repository.createStylesProvider)({ |
| 160 |
key: DEFAULT_STYLES_PROVIDER_KEY, |
| 161 |
priority: 15, |
| 162 |
labels: { |
| 163 |
singular: (0, _wordpress_i18n.__)("tag", "elementor"), |
| 164 |
plural: (0, _wordpress_i18n.__)("tags", "elementor") |
| 165 |
}, |
| 166 |
subscribe: (cb) => subscribeWithStates(cb), |
| 167 |
capabilities: getCapabilities(), |
| 168 |
actions: { |
| 169 |
all: () => getAllowedDefaultStyleTags().map((tag) => { |
| 170 |
const style = selectData((0, _elementor_store.__getState)())[tag]; |
| 171 |
return style ? asClassDefinition(style) : placeholderDefinition(tag); |
| 172 |
}), |
| 173 |
get: (id) => { |
| 174 |
const style = selectData((0, _elementor_store.__getState)())[id]; |
| 175 |
return style ? asClassDefinition(style) : placeholderDefinition(id); |
| 176 |
}, |
| 177 |
resolveCssName, |
| 178 |
update: (payload) => { |
| 179 |
(0, _elementor_store.__dispatch)(slice.actions.update({ style: payload })); |
| 180 |
}, |
| 181 |
delete: (id) => { |
| 182 |
(0, _elementor_store.__dispatch)(slice.actions.deleteTag(id)); |
| 183 |
}, |
| 184 |
updateProps: (args) => { |
| 185 |
(0, _elementor_store.__dispatch)(slice.actions.updateProps({ |
| 186 |
id: args.id, |
| 187 |
meta: args.meta, |
| 188 |
props: args.props, |
| 189 |
mode: args.mode |
| 190 |
})); |
| 191 |
}, |
| 192 |
updateCustomCss: (args) => { |
| 193 |
(0, _elementor_store.__dispatch)(slice.actions.updateProps({ |
| 194 |
id: args.id, |
| 195 |
meta: args.meta, |
| 196 |
custom_css: args.custom_css, |
| 197 |
props: {} |
| 198 |
})); |
| 199 |
} |
| 200 |
} |
| 201 |
}); |
| 202 |
var subscribeWithStates = (cb) => { |
| 203 |
let previousState = selectData((0, _elementor_store.__getState)()); |
| 204 |
return (0, _elementor_store.__subscribeWithSelector)((state) => selectData(state), (currentState) => { |
| 205 |
cb(previousState, currentState); |
| 206 |
previousState = currentState; |
| 207 |
}); |
| 208 |
}; |
| 209 |
|
| 210 |
//#endregion |
| 211 |
//#region packages/packages/core/editor-default-styles/src/api.ts |
| 212 |
var RESOURCE_URL = "/default-styles"; |
| 213 |
var BASE_URL = "elementor/v1"; |
| 214 |
var apiClient = { |
| 215 |
all: () => (0, _elementor_http_client.httpService)().get(`${BASE_URL}${RESOURCE_URL}`), |
| 216 |
put: (tag, variants) => (0, _elementor_http_client.httpService)().put(`${BASE_URL}${RESOURCE_URL}/${tag}`, { |
| 217 |
type: "class", |
| 218 |
variants |
| 219 |
}), |
| 220 |
delete: (tag) => (0, _elementor_http_client.httpService)().delete(`${BASE_URL}${RESOURCE_URL}/${tag}`) |
| 221 |
}; |
| 222 |
|
| 223 |
//#endregion |
| 224 |
//#region packages/packages/core/editor-default-styles/src/save-default-styles.ts |
| 225 |
function getChangedTags(state) { |
| 226 |
const current = selectData(state); |
| 227 |
const initial = selectInitialData(state); |
| 228 |
const changed = []; |
| 229 |
Object.keys(current).forEach((tag) => { |
| 230 |
const currentStyle = current[tag]; |
| 231 |
const initialStyle = initial[tag]; |
| 232 |
if (!initialStyle || (0, _elementor_utils.hash)(currentStyle) !== (0, _elementor_utils.hash)(initialStyle)) changed.push(tag); |
| 233 |
}); |
| 234 |
Object.keys(initial).forEach((tag) => { |
| 235 |
if (!current[tag]) changed.push(tag); |
| 236 |
}); |
| 237 |
return changed; |
| 238 |
} |
| 239 |
async function saveDefaultStyles() { |
| 240 |
const state = (0, _elementor_store.__getState)(); |
| 241 |
if (!selectIsDirty(state)) return; |
| 242 |
const data = selectData(state); |
| 243 |
const changedTags = getChangedTags(state); |
| 244 |
await Promise.all(changedTags.map(async (tag) => { |
| 245 |
const style = data[tag]; |
| 246 |
if (!style || style.variants.length === 0) { |
| 247 |
await apiClient.delete(tag); |
| 248 |
return; |
| 249 |
} |
| 250 |
await apiClient.put(tag, style.variants); |
| 251 |
})); |
| 252 |
(0, _elementor_store.__dispatch)(slice.actions.commit()); |
| 253 |
} |
| 254 |
|
| 255 |
//#endregion |
| 256 |
//#region packages/packages/core/editor-default-styles/src/components/tag-state-menu.tsx |
| 257 |
function TagStateMenu({ popupState, anchorEl, activeState, onSelectState }) { |
| 258 |
return /* @__PURE__ */ react.createElement(_elementor_ui.Menu, { |
| 259 |
MenuListProps: { |
| 260 |
dense: true, |
| 261 |
sx: { minWidth: "160px" } |
| 262 |
}, |
| 263 |
...(0, _elementor_ui.bindMenu)(popupState), |
| 264 |
anchorEl, |
| 265 |
anchorOrigin: { |
| 266 |
vertical: "bottom", |
| 267 |
horizontal: "left" |
| 268 |
}, |
| 269 |
transformOrigin: { |
| 270 |
horizontal: "left", |
| 271 |
vertical: -4 |
| 272 |
}, |
| 273 |
disableAutoFocusItem: true |
| 274 |
}, /* @__PURE__ */ react.createElement(_elementor_editor_editing_panel.PseudoStateMenuItems, { |
| 275 |
states: _elementor_editor_editing_panel.DEFAULT_PSEUDO_STATES, |
| 276 |
activeState, |
| 277 |
onSelectState, |
| 278 |
onClose: popupState.close |
| 279 |
})); |
| 280 |
} |
| 281 |
|
| 282 |
//#endregion |
| 283 |
//#region packages/packages/core/editor-default-styles/src/components/tag-chip.tsx |
| 284 |
var CHIP_SIZE = "tiny"; |
| 285 |
function TagChip({ label, chipProps, activeState, onSelectState }) { |
| 286 |
const popupState = (0, _elementor_ui.usePopupState)({ |
| 287 |
variant: "popover", |
| 288 |
popupId: "tag-state-menu" |
| 289 |
}); |
| 290 |
const [chipRef, setChipRef] = (0, react.useState)(null); |
| 291 |
const { onDelete: _onDelete, ...chipGroupProps } = chipProps; |
| 292 |
const isShowingState = Boolean(activeState); |
| 293 |
return /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(_elementor_ui.UnstableChipGroup, { |
| 294 |
ref: setChipRef, |
| 295 |
...chipGroupProps, |
| 296 |
"aria-label": `Edit ${label}`, |
| 297 |
role: "group", |
| 298 |
sx: (theme) => ({ "&.MuiChipGroup-root.MuiAutocomplete-tag": { margin: theme.spacing(.125) } }) |
| 299 |
}, /* @__PURE__ */ react.createElement(_elementor_ui.Chip, { |
| 300 |
size: CHIP_SIZE, |
| 301 |
label, |
| 302 |
variant: isShowingState ? "standard" : "filled", |
| 303 |
shape: "rounded", |
| 304 |
color: "default", |
| 305 |
onClick: () => { |
| 306 |
if (isShowingState) onSelectState(null); |
| 307 |
}, |
| 308 |
sx: (theme) => ({ |
| 309 |
lineHeight: 1, |
| 310 |
borderRadius: `${theme.shape.borderRadius * .75}px` |
| 311 |
}) |
| 312 |
}), /* @__PURE__ */ react.createElement(_elementor_ui.Chip, { |
| 313 |
icon: isShowingState ? void 0 : /* @__PURE__ */ react.createElement(_elementor_icons.DotsVerticalIcon, { fontSize: "tiny" }), |
| 314 |
size: CHIP_SIZE, |
| 315 |
label: isShowingState ? /* @__PURE__ */ react.createElement(_elementor_ui.Stack, { |
| 316 |
direction: "row", |
| 317 |
gap: .5, |
| 318 |
alignItems: "center" |
| 319 |
}, /* @__PURE__ */ react.createElement(_elementor_ui.Typography, { variant: "inherit" }, activeState), /* @__PURE__ */ react.createElement(_elementor_icons.DotsVerticalIcon, { fontSize: "tiny" })) : void 0, |
| 320 |
variant: "filled", |
| 321 |
shape: "rounded", |
| 322 |
color: "default", |
| 323 |
...(0, _elementor_ui.bindTrigger)(popupState), |
| 324 |
"aria-label": (0, _wordpress_i18n.__)("Open tag state menu", "elementor"), |
| 325 |
sx: (theme) => ({ |
| 326 |
borderRadius: `${theme.shape.borderRadius * .75}px`, |
| 327 |
paddingRight: 0, |
| 328 |
...!isShowingState ? { paddingLeft: 0 } : {}, |
| 329 |
".MuiChip-label": isShowingState ? { paddingRight: 0 } : { padding: 0 } |
| 330 |
}) |
| 331 |
})), /* @__PURE__ */ react.createElement(TagStateMenu, { |
| 332 |
popupState, |
| 333 |
anchorEl: chipRef, |
| 334 |
activeState, |
| 335 |
onSelectState |
| 336 |
})); |
| 337 |
} |
| 338 |
|
| 339 |
//#endregion |
| 340 |
//#region packages/packages/core/editor-default-styles/src/components/default-styles-tab-embedded.tsx |
| 341 |
var { useMenuItems } = _elementor_menus.controlActionsMenu; |
| 342 |
var SHIM_ELEMENT_ID = "default-styles-editor-shim"; |
| 343 |
var SHIM_CLASSES_PROP = "__default_styles_classes__"; |
| 344 |
var TAG_SELECTOR_ID = "default-styles-tag-selector"; |
| 345 |
var LAST_ACTIVE_TAG_STORAGE_KEY = `default-styles/last-active-tag`; |
| 346 |
function readStoredActiveTag(allowedTags) { |
| 347 |
const storedTag = (0, _elementor_session.getSessionStorageItem)(LAST_ACTIVE_TAG_STORAGE_KEY); |
| 348 |
if (storedTag && isAllowedDefaultStyleTag(storedTag, allowedTags)) return storedTag; |
| 349 |
return getDefaultActiveTag(allowedTags); |
| 350 |
} |
| 351 |
function toTagChip(tag) { |
| 352 |
return { |
| 353 |
label: tag, |
| 354 |
value: tag, |
| 355 |
fixed: true |
| 356 |
}; |
| 357 |
} |
| 358 |
var shimElement = { |
| 359 |
id: SHIM_ELEMENT_ID, |
| 360 |
type: "default-style" |
| 361 |
}; |
| 362 |
var shimElementType = { |
| 363 |
key: "default-style", |
| 364 |
controls: [], |
| 365 |
propsSchema: {}, |
| 366 |
title: (0, _wordpress_i18n.__)("Default Style", "elementor") |
| 367 |
}; |
| 368 |
function DefaultStylesTabEmbedded({ onRequestClose, onExposeCloseAttempt }) { |
| 369 |
const allowedTags = (0, react.useMemo)(() => getAllowedDefaultStyleTags(), []); |
| 370 |
const tagOptions = (0, react.useMemo)(() => allowedTags.map((tag) => ({ |
| 371 |
label: tag, |
| 372 |
value: tag |
| 373 |
})), [allowedTags]); |
| 374 |
const [selectedTag, setSelectedTagState] = (0, react.useState)(() => readStoredActiveTag(allowedTags)); |
| 375 |
const [activeStyleState, setActiveStyleState] = (0, react.useState)(null); |
| 376 |
const breakpoint = (0, _elementor_editor_responsive.useActiveBreakpoint)(); |
| 377 |
const menuItems = useMenuItems().default; |
| 378 |
const controlReplacements = (0, _elementor_editor_controls.getControlReplacements)(); |
| 379 |
const isDirty = (0, _elementor_store.__useSelector)(selectIsDirty); |
| 380 |
const { mutateAsync: save, isPending: isSaving } = useSave(); |
| 381 |
const { open: openSaveChangesDialog, close: closeSaveChangesDialog, isOpen: isSaveChangesDialogOpen } = (0, _elementor_editor_ui.useDialog)(); |
| 382 |
const { userCan } = (0, _elementor_editor_styles_repository.useUserStylesCapability)(); |
| 383 |
const canEdit = userCan(DEFAULT_STYLES_PROVIDER_KEY).updateProps; |
| 384 |
const setSelectedTag = (tag) => { |
| 385 |
setSelectedTagState(tag); |
| 386 |
(0, _elementor_session.setSessionStorageItem)(LAST_ACTIVE_TAG_STORAGE_KEY, tag); |
| 387 |
}; |
| 388 |
const handleClosePanel = (0, react.useCallback)(() => { |
| 389 |
if (canEdit && isDirty) { |
| 390 |
openSaveChangesDialog(); |
| 391 |
return; |
| 392 |
} |
| 393 |
onRequestClose(); |
| 394 |
}, [ |
| 395 |
canEdit, |
| 396 |
isDirty, |
| 397 |
onRequestClose, |
| 398 |
openSaveChangesDialog |
| 399 |
]); |
| 400 |
(0, react.useEffect)(() => { |
| 401 |
if (!onExposeCloseAttempt) return; |
| 402 |
onExposeCloseAttempt(() => handleClosePanel()); |
| 403 |
return () => onExposeCloseAttempt(null); |
| 404 |
}, [onExposeCloseAttempt, handleClosePanel]); |
| 405 |
usePreventUnload(canEdit && isDirty); |
| 406 |
const handleTagSelect = (_selected, reason, option) => { |
| 407 |
if (reason !== "selectOption" || !option.value) return; |
| 408 |
setSelectedTag(option.value); |
| 409 |
setActiveStyleState(null); |
| 410 |
}; |
| 411 |
const resetAndClosePanel = () => { |
| 412 |
(0, _elementor_store.__dispatch)(slice.actions.reset()); |
| 413 |
closeSaveChangesDialog(); |
| 414 |
onRequestClose(); |
| 415 |
}; |
| 416 |
const handleSaveAndContinue = async () => { |
| 417 |
try { |
| 418 |
await save(); |
| 419 |
} catch { |
| 420 |
return; |
| 421 |
} |
| 422 |
closeSaveChangesDialog(); |
| 423 |
onRequestClose(); |
| 424 |
}; |
| 425 |
return /* @__PURE__ */ react.createElement(_elementor_ui.ErrorBoundary, { fallback: null }, /* @__PURE__ */ react.createElement(_elementor_editor_ui.ThemeProvider, null, /* @__PURE__ */ react.createElement(_elementor_editor_controls.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ react.createElement(_elementor_editor_controls.ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ react.createElement(_elementor_ui.Stack, { sx: { |
| 426 |
flex: 1, |
| 427 |
minHeight: 0, |
| 428 |
overflow: "hidden", |
| 429 |
display: "flex", |
| 430 |
flexDirection: "column" |
| 431 |
} }, /* @__PURE__ */ react.createElement(_elementor_ui.Box, { sx: { |
| 432 |
flex: 1, |
| 433 |
minHeight: 0, |
| 434 |
overflow: "auto" |
| 435 |
} }, /* @__PURE__ */ react.createElement(_elementor_ui.Stack, { sx: { |
| 436 |
px: 2, |
| 437 |
pt: 1, |
| 438 |
gap: 1 |
| 439 |
} }, /* @__PURE__ */ react.createElement(_elementor_ui.FormControl, { |
| 440 |
fullWidth: true, |
| 441 |
size: "small" |
| 442 |
}, /* @__PURE__ */ react.createElement(_elementor_ui.FormLabel, { |
| 443 |
htmlFor: TAG_SELECTOR_ID, |
| 444 |
size: "small", |
| 445 |
sx: { mb: 1 } |
| 446 |
}, (0, _wordpress_i18n.__)("Tag", "elementor")), /* @__PURE__ */ react.createElement(_elementor_editor_editing_panel.CreatableAutocomplete, { |
| 447 |
id: TAG_SELECTOR_ID, |
| 448 |
size: "tiny", |
| 449 |
placeholder: (0, _wordpress_i18n.__)("Type tag name", "elementor"), |
| 450 |
options: tagOptions, |
| 451 |
selected: [toTagChip(selectedTag)], |
| 452 |
onSelect: handleTagSelect, |
| 453 |
renderTags: (values, getTagProps) => values.map((value, index) => /* @__PURE__ */ react.createElement(TagChip, { |
| 454 |
key: value.value ?? value.label, |
| 455 |
label: value.label, |
| 456 |
chipProps: getTagProps({ index }), |
| 457 |
activeState: activeStyleState, |
| 458 |
onSelectState: setActiveStyleState |
| 459 |
})) |
| 460 |
}))), /* @__PURE__ */ react.createElement(_elementor_editor_editing_panel.ElementProvider, { |
| 461 |
element: shimElement, |
| 462 |
elementType: shimElementType, |
| 463 |
settings: {} |
| 464 |
}, /* @__PURE__ */ react.createElement(_elementor_editor_editing_panel.ClassesPropProvider, { prop: SHIM_CLASSES_PROP }, /* @__PURE__ */ react.createElement(_elementor_editor_editing_panel.StyleProvider, { |
| 465 |
meta: { |
| 466 |
breakpoint, |
| 467 |
state: activeStyleState |
| 468 |
}, |
| 469 |
id: selectedTag, |
| 470 |
setId: () => {}, |
| 471 |
setMetaState: setActiveStyleState |
| 472 |
}, /* @__PURE__ */ react.createElement(_elementor_session.SessionStorageProvider, { prefix: selectedTag }, /* @__PURE__ */ react.createElement(_elementor_editor_editing_panel.StyleInheritanceProvider, null, /* @__PURE__ */ react.createElement(_elementor_editor_editing_panel.SectionsList, null, /* @__PURE__ */ react.createElement(_elementor_editor_editing_panel.StyleSections, null), /* @__PURE__ */ react.createElement(_elementor_editor_editing_panel.StyleTabSlot, null)), /* @__PURE__ */ react.createElement(_elementor_ui.Box, { sx: { height: "150px" } }))))))), canEdit ? /* @__PURE__ */ react.createElement(_elementor_ui.Box, { sx: { |
| 473 |
flexShrink: 0, |
| 474 |
px: 2, |
| 475 |
py: 1.5 |
| 476 |
} }, /* @__PURE__ */ react.createElement(_elementor_ui.Button, { |
| 477 |
fullWidth: true, |
| 478 |
size: "small", |
| 479 |
color: "global", |
| 480 |
variant: "contained", |
| 481 |
onClick: () => void save(), |
| 482 |
disabled: !isDirty, |
| 483 |
loading: isSaving |
| 484 |
}, (0, _wordpress_i18n.__)("Save changes", "elementor"))) : null))), canEdit && isSaveChangesDialogOpen && /* @__PURE__ */ react.createElement(_elementor_editor_ui.SaveChangesDialog, null, /* @__PURE__ */ react.createElement(_elementor_editor_ui.SaveChangesDialog.Title, { onClose: closeSaveChangesDialog }, (0, _wordpress_i18n.__)("You have unsaved changes", "elementor")), /* @__PURE__ */ react.createElement(_elementor_editor_ui.SaveChangesDialog.Content, null, /* @__PURE__ */ react.createElement(_elementor_editor_ui.SaveChangesDialog.ContentText, null, (0, _wordpress_i18n.__)("You have unsaved changes in Default Styles.", "elementor")), /* @__PURE__ */ react.createElement(_elementor_editor_ui.SaveChangesDialog.ContentText, null, (0, _wordpress_i18n.__)("To avoid losing your updates, save your changes before leaving.", "elementor"))), /* @__PURE__ */ react.createElement(_elementor_editor_ui.SaveChangesDialog.Actions, { actions: { |
| 485 |
discard: { |
| 486 |
label: (0, _wordpress_i18n.__)("Discard", "elementor"), |
| 487 |
action: resetAndClosePanel |
| 488 |
}, |
| 489 |
confirm: { |
| 490 |
label: (0, _wordpress_i18n.__)("Save & Continue", "elementor"), |
| 491 |
action: handleSaveAndContinue |
| 492 |
} |
| 493 |
} })))); |
| 494 |
} |
| 495 |
function useSave() { |
| 496 |
return (0, _elementor_query.useMutation)({ mutationFn: () => saveDefaultStyles() }); |
| 497 |
} |
| 498 |
function usePreventUnload(isDirty) { |
| 499 |
(0, react.useEffect)(() => { |
| 500 |
const handleBeforeUnload = (event) => { |
| 501 |
if (isDirty) event.preventDefault(); |
| 502 |
}; |
| 503 |
window.addEventListener("beforeunload", handleBeforeUnload); |
| 504 |
return () => { |
| 505 |
window.removeEventListener("beforeunload", handleBeforeUnload); |
| 506 |
}; |
| 507 |
}, [isDirty]); |
| 508 |
} |
| 509 |
|
| 510 |
//#endregion |
| 511 |
//#region packages/packages/core/editor-default-styles/src/load-default-styles.ts |
| 512 |
async function loadDefaultStyles() { |
| 513 |
try { |
| 514 |
const items = (await apiClient.all()).data.data; |
| 515 |
(0, _elementor_store.__dispatch)(slice.actions.load({ data: items })); |
| 516 |
} catch {} |
| 517 |
} |
| 518 |
|
| 519 |
//#endregion |
| 520 |
//#region packages/packages/core/editor-default-styles/src/components/populate-store.tsx |
| 521 |
var V2_PANEL_ROUTE = "panel/v2"; |
| 522 |
function PopulateStore() { |
| 523 |
(0, react.useEffect)(() => { |
| 524 |
loadDefaultStyles(); |
| 525 |
(0, _elementor_editor_v1_adapters.registerDataHook)("after", "editor/documents/attach-preview", async () => { |
| 526 |
if (selectIsDirty((0, _elementor_store.__getState)())) return; |
| 527 |
await loadDefaultStyles(); |
| 528 |
}); |
| 529 |
return (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.routeCloseEvent)(V2_PANEL_ROUTE), () => { |
| 530 |
if (selectIsDirty((0, _elementor_store.__getState)())) return; |
| 531 |
loadDefaultStyles(); |
| 532 |
}); |
| 533 |
}, []); |
| 534 |
return null; |
| 535 |
} |
| 536 |
|
| 537 |
//#endregion |
| 538 |
//#region packages/packages/core/editor-default-styles/src/init.ts |
| 539 |
function init() { |
| 540 |
(0, _elementor_store.__registerSlice)(slice); |
| 541 |
(0, _elementor_editor_editing_panel.registerElementPanelDefaults)("default-style", { |
| 542 |
defaultTab: "style", |
| 543 |
defaultSectionsExpanded: { style: [] } |
| 544 |
}); |
| 545 |
_elementor_editor_styles_repository.stylesRepository.register(defaultStylesStylesProvider); |
| 546 |
(0, _elementor_editor.injectIntoLogic)({ |
| 547 |
id: "default-styles-populate-store", |
| 548 |
component: PopulateStore |
| 549 |
}); |
| 550 |
} |
| 551 |
|
| 552 |
//#endregion |
| 553 |
//#region packages/packages/core/editor-default-styles/src/index.ts |
| 554 |
var src_exports = /* @__PURE__ */ __exportAll({ |
| 555 |
DefaultStylesTabEmbedded: () => DefaultStylesTabEmbedded, |
| 556 |
init: () => init |
| 557 |
}); |
| 558 |
|
| 559 |
//#endregion |
| 560 |
//#region \0elementor-package-library-entry |
| 561 |
(window.elementorV2 = window.elementorV2 || {}).editorDefaultStyles = src_exports; |
| 562 |
|
| 563 |
//#endregion |
| 564 |
})(React, elementorV2.editorControls, elementorV2.editorEditingPanel, elementorV2.editorResponsive, elementorV2.editorStylesRepository, elementorV2.editorUi, elementorV2.menus, elementorV2.query, elementorV2.session, elementorV2.store, elementorV2.ui, wp.i18n, elementorV2.editorStyles, elementorV2.utils, elementorV2.httpClient, elementorV2.icons, elementorV2.editor, elementorV2.editorV1Adapters); |
| 565 |
window.elementorV2.editorDefaultStyles?.init?.(); |
| 566 |
//# sourceMappingURL=editor-default-styles.js.map |